12 RNDr., Ph.D. Katedra didaktiky matematiky Univerzita Karlova v Praze Matematicko-fyzikální fakulta petra.surynkova@mff.cuni.cz http://surynkova.info
Definice V( P) nad množinou bodů P { p v rovině 1, p2,..., p n } představuje rozklad množiny na uzavřených či otevřených oblastí V ( P) { V ( p1), V ( p2),..., V ( p n )} takových, že každý bod q V ( p i ) je blíže k bodu p i než k jakémukoliv bodu p P, i j j V( p i ) oblast se nazývá Voronoiova buňka (konvexní polygon), některé oblasti ale neuzavřené P pro libovolný bod a libovolnou buňku platí n q V ( p i ) V( p j ) d( q, p ) d( q, p ) i j
p i ukázka Voronoiva diagramu libovolný bod oblasti má za nejbližšího souseda ze vstupní množiny bod q p i q ( ) V p i
Platí Všechny body oblasti H( p, p ) i j V( p i ) mají stejného nejbližšího souseda pp - polorovina ohraničená osou úsečky obsahující bod i j pi oblast příslušející bodu p i = průnik polorovin V ( pi ) i j H( pi, p j )
ukázka Voronoiva diagramu p 3 p 4 Voronoiův polygon p 2 p 1 p 6 p 7 Voronoiův vrchol (uzel VD) Voronoiova buňka p 5 Voronoiova hrana Generátor bod vstupní množiny p 8 p 9 p 10
Ukázky ů pro n 2,3,4 n 2 p 1 H( p1, p2) V( p1 ) H( p, p ) 2 1 V( p2) p 2
Ukázky ů pro n 2,3,4 n 3 H( p1, p3) V( p ) 1 H ( p, p ) 1 2 H ( p, p ) 1 3 p 1 p 2 H( p1, p2) p 3
Ukázky ů pro n 2,3,4 n 3 V( p ) 1 H ( p, p ) 1 2 H ( p, p ) 1 3 p 1 p 2 p 3
Ukázky ů pro n 2,3,4 n 3 V( p1 ) p 1 V( p2) p 2 p 3
Ukázky ů pro n 2,3,4 n 3 V( p1 ) p 1 V( p2) p 2 V( p3) p 3
Ukázky ů pro n 2,3,4 n 4 p 1 p 2 p 3 p 4
Ukázky ů pro n 2,3,4 n 4 V( p ) 1 H ( p, p ) 1 2 H ( p, p ) 1 3 H ( p, p ) 1 4 p 4 p 1 H( p1, p2) H( p1, p3) p 2 H( p1, p4) p 3
Ukázky ů pro n 2,3,4 n 4 p 1 p 2 V( p ) 1 H ( p, p ) 1 2 H ( p, p ) 1 3 H ( p, p ) 1 4 p 4 p 3
Ukázky ů pro n 2,3,4 n 4 H( p, p ) 2 4 p 1 p 2 H( p, p ) 2 3 p 3 p 4 H( p, p ) 2 1
Ukázky ů pro n 2,3,4 n 4 V( p1 ) V( p2) p 1 p 2 p 3 p 4
Ukázky ů pro n 2,3,4 n 4 p 1 p 2 p 3 p 4
Ukázky ů pro n 2,3,4 n 4 p 1 H( p, p ) 3 4 p 2 H( p, p ) 3 2 p 3 p 4 H( p, p ) 3 1
Ukázky ů pro n 2,3,4 n 4 V( p1 ) V( p2) p 1 p 2 p 3 p 4 V( p3)
Ukázky ů pro n 2,3,4 n 4 H( p, p ) 4 2 4 3 H( p, p ) p 1 p 2 p 3 p 4 H( p, p ) 4 1
Ukázky ů pro n 2,3,4 n 4 V( p1 ) V( p2) p 1 p 2 p 4 V( p4) p 3 V( p3)
Ukázky ů pro pravidelně rozložené body
Ukázky ů pro pravidelně rozložené body
Vlastnosti VD je planární graf každý vrchol Voronoiova diagramu pro má stupeň alespoň 3; právě 3, když na každé kružnici sestrojené z bodů vstupní množiny leží právě 3 body p i n 3 pokud bod leží na hranici konvexního obalu, potom je oblast V( p i ) otevřená každá oblast V( p i ) je konvexní (pokud je uzavřená) bod q je nejbližším bodem p i, jestliže q V ( p i ) Voronoiova hrana je sdílena právě dvěma sousedními buňkami Voronoiova diagramu Voronoiova hrana mezi dvěma sousedními buňkami leží na přímce kolmé ke spojnici dvou bodů (generátorů) pp i j
Vlastnosti VD q bod je vrcholem Voronoiovy oblasti, pokud existuje kružnice procházející třemi nebo více body neobsahuje žádný další bod z P (souvislost s DT) vstupní množiny P a kružnici označujeme jako největší prázdnou kružnici ze všech prázdných kružnic se středem v bodě nechť bod i představuje ortografický průmět bodu i na povrch paraboloidu daného rovnicí 2 2 x y z rovina i k( q, r) p * p, p, p i j k je tečnou rovinou k paraboloidu v bodě q * p i p k( q, r), * l ij průsečnicí rovin i j je přímka, jejíž ortografický průmět do roviny tvoří Voronoiovu hranu xy
Vlastnosti VD z i * l ij * p j * p i j x p i p j y Počítačová geometrie l ij
Vlastnosti VD pokud žádné čtyři body vstupní množiny neleží na kružnici, mají všechny Voronoiovy vrcholy (uzly) stupeň 3 potom stupeň je počet hran vycházejících z vrcholu často se vylučuje případ, kdy kružnice prochází více než třemi body Voronoiův vrchol stejná vzdálenost od 3 bodů ze vstupní množiny Voronoiova hrana každý její bod má stejnou vzdálenost od 2 bodů vstupní množiny p p V( p i ) V( p j ) je-li i nejbližší soused j, potom a sdílejí hranu ve Voronoiově diagramu průměrné množství Voronoiových hran ve Voronoiově buňce nepřekročí hodnotu 6
Vlastnosti VD vztah mezi počtem vrcholů Voronoiova diagramu a počtem hran n je počet bodů vstupní množiny (alespoň 3) v e3n6 v2n5 e rozšiřitelné do vyšších dimenzí ve 3D jsou buňky konvexní mnohostěny duálním grafem k Voronoiovu diagramu je Delaunay triangulace
Vlastnosti VD dualita VD a DT body tvoří současně vrcholy Delaunay triangulace body tvoří hranu v Delaunay triangulaci právě když, a ( ) V p j p i p, p i j sdílejí společnou Voronoiovu hranu středy kružnic opsaných trojúhelníkům v Delaunay triangulaci představují vrcholy Voronoiova diagramu t V( p i )
Vlastnosti VD konvexní obálka vztah mezi VD a DT p j vrchol VD vrchol DT p i
Algoritmy konstrukce VD podle definice pomocí průniku polorovin naivní algoritmus, náročné rozděl a panuj rekurzivní vytvoření VD rozdělení vstupní množiny, tvorba VD proces slučování zametací technika duální graf k triangulaci inkrementální konstrukce Počítačová geometrie
Rozděl a panuj rekurzivní vytvoření VD rozdělení vstupní množiny, tvorba VD proces slučování vstupní množina lineárně rozdělena dělící přímkou na množiny P 1 2 zadanou vstupní množinu bodů rozdělujeme, dokud nemáme množinu tří bodů, ze kterých jednoduše sestrojíme diagram rekurzivně vytváříme V ( P1), V ( P2) slučujeme ( ), ( ) a dostáváme V P V P V( P) 1 2 PP,
Rozděl a panuj Operace slučování pojem separátor 1 2 je množina hran, které jsou sdíleny polygony a separátor je posloupnost hran oddělující ve části patřící množinám Věta V( p i ) PP, 1 2 Jsou-li 1 2 lineárně separovány vertikální přímkou k, tj. je nalevo od přímky k a je napravo od přímky k, potom P 2 V ( P) ( V ( P ) ) ( V ( P ) ) - prostor napravo od PP R 1 2 - prostor nalevo od L PP, ( PP, ) V( P) V ( p j ), pi P1, p j P2 V( P) 1 L 2 (, ) ( PP, ) 1 2 R P 1
k P1 P2
V( P1 ) V( P2 )
V( P1 ) V( P2 )
KO( P1 ) KO( P2 ) společné tečny konvexních obálek
Rozděl a panuj Operace slučování počínaje horní tečnou (mostem) a konče dolní tečnou konvexních obálek nalezení průsečíků osy úsečky s hranami oblastí výběr průsečíku s maximální y-souřadnicí = nový vrchol ve výsledném VD, ukončit hranu v tomto vrcholu přejít k dalšímu bodu nebo P1 P2 p P, p P i 1 j 2 odstranit z V( P1 ) všechny hrany ležící napravo od separátoru PP 1 2 z všechny hrany ležící nalevo od separátoru (, ) V( P ) ( PP 1, 2) 2 V ( p ), V ( p ) i j
( PP, ) 1 2
( PP, ) 1 2
( PP, ) 1 2
Nejčastější oblasti použití Voronoiových diagramů poštovní problém nalezení všech sousedů klasifikace dat kartografická generalizace analýzy shluku poštovní problém optimalizace spádových oblastí vzhledem k centru (či naopak), uplatnění při návrhu polohy nemocnic, průmyslových zón, supermarketů, stanic MHD, kin poloha volena zpravidla do centra Voronoiovy buňky ze všech míst regionu zhruba stejná vzdálenost ze znalosti spádové oblasti lze určit, jaké množství obyvatel bude službu využívat
poštovní problém nutné zahrnout omezující podmínky efektivní chování člověka člověk bude využívat pouze ta centra, ke kterým má blíže než k jiným (snaha o minimalizaci nákladů) lineární růst nákladů pokud náklady nerostou lineárně je nutné zavést jinou metriku stejná kvalita kvalita produktu je ve všech centrech stejná nalezení všech sousedů bodu p p p i V( p i ) V( p) sousedé bodu jsou takové body, jejichž sdílejí s hranu využití v dopravních analýzách, při interpolaci
nalezení všech sousedů bodu p p 3 p p 2 p 1 p 4