Matematické modelování VORONÉHO DIAGRAMY Oldřich Petřík Osobní číslo: Obor: e-mail: A07065 Počítačová grafika a výpočetní systémy opetrik@students.zcu.cz Datum odevzdání: 7.3.2008
Obsah 1 Úvod 5 2 Historie 5 2.1 Georgij Feodosjevič Voronoj.................... 5 2.2 Historie Voroného diagramu.................... 6 3 Definice (obecný n-rozměrný případ) 7 4 Konstrukce 7 5 Jak vypadají Voroného diagramy 9 6 Příklady problémů 11 6.1 Problém nejbližší pošty....................... 11 6.2 Problém skládky odpadu...................... 12 7 Delaunayova triangulace 13 8 Zobecnění 14 8.1 Přidání vah............................. 14 8.2 Rozšíření generující množiny.................... 15 8.3 Pohyb bodů............................. 15 8.4 Změna metriky........................... 16 9 Použití 16 9.1 Počítačová grafika.......................... 16 9.2 Biologie, příroda.......................... 17 9.3 Chemie................................ 18 9.4 Geografie.............................. 19 9.5 Geometrické problémy....................... 20 9.6 Robotika............................... 20 10 Shrnutí 20
1 Úvod V této práci se budu zabývat problematikou dělení prostoru v závislosti na zadané množině bodů, konkrétně způsobem nazývaným obvykle Voroného diagramy. Uvedu několik faktů z historie, definici základního principu této metody dělení prostoru, možnosti jejího zobecnění a několik algoritmů používaných ke konstrukci Voroného diagramů. Na závěr přiblížím oblasti, ve kterých se metoda v praxi používá. 2 Historie 2.1 Georgij Feodosjevič Voronoj Narodil se 28. dubna 1868 ve Zhuravce na Ukrajině. Již na gymnáziu projevoval matematický talent, zejména v algebře. Vyřešil problém spojený s faktorizací polynomů, což vedlo k jeho první publikaci, článku v časopisu Journal of Elementary Mathematics. Po gymnáziu nastoupil ke studiu na Fakultě fyziky a matematiky Univerzity v Petrohradě, kde se opět věnoval především algebře. Když jeho otec odešel do důchodu, musel Voronoj začít doučovat matematiku, aby pokryl náklady na studia. To ho velmi vyčerpávalo, přesto v roce 1889 školu úspěšně dokončil disertací o Bernoulliho číslech. Rozhodl se ve studiu dále pokračovat a v roce 1894 ho završil prací na téma algebraických čísel spojených s kořeny nerozložitelných kubických rovnic. V dalších letech vyučoval na Varšavské univerzitě, kde získal titul profesora matematiky. Obhájil doktorskou práci o řetězových zlomcích, která byla na tak vysoké úrovni, že za ni Voronoj získal Buňakovského cenu od Petrohradské akademie věd. Jeho studenty na Varšavské univerzitě byli mimo jiné Boris Delaunay a Wac law Sierpiński. V roce 1895 se mu narodil syn Jurij Jurijevič, který se stal průkopníkem v transplantační medicíně a provedl první transplantaci ledvin. Později se Voronoj zabýval hlouběji teorií algebraických čísel a také geometrií čísel. Tehdy také zobecnil metodu dělení prostoru dnes nazývanou Voroného diagram. Roku 1907 se stal členem Petrohradské akademie věd. Začal se věnovat teorii indefinitních kvadratických forem. V té době měl ale již velké bolesti způsobené žlučovými kameny a práci na toto téma bohužel nestihl dokončit. Zemřel 20. listopadu 1908 ve Varšavě. 5
2.2 Historie Voroného diagramu Někdy se také vyskytuje termín Voroného teselace nebo dělení, zejména v prostorech s dimenzí vyšší než 2. Poprvé se s neformálním užitím tohoto dělení prostoru setkáváme v Descartově práci,,principy filozofie z roku 1644, kde s jejich pomocí ukazoval uspořádání hmoty ve sluneční soustavě a jejím okolí. Dále dvou- a třírozměrné případy užíval německý matematik Johann Peter Gustav Lejeune Dirichlet ve své studii o kvadratických formách z roku 1850. Podle něj se také pro diagram používá někdy termín Dirichletova mozaika a pro buňku diagramu Dirichletova doména. Britský fyzik John Snow v roce 1854 pomocí Voroného diagramu vysvětlil rozšíření cholery v londýnské čtvrti Soho v oblasti, která měla blíže k nakažené studně na Broad Street než k ostatním studnám v okolí. Diagram je pojmenován po Georgiji Feodosjeviči Voroném, který v roce 1908 definoval a studoval zobecněnou n-rozměrnou formu tohoto dělení prostoru. Voroného diagramy se v geofyzice a meteorologii někdy nazývají Thiessenovy polygony podle amerického meteorologa Alfreda H. Thiessena, používají se zde k analýze prostorově rozložených dat (měření srážek, vlhkosti, atd.). Ve fyzice materiálů jsou známé také jako Wigner-Seitzovy jednotkové buňky. Diagramy růstu krystalů s reciprokou mřížkou jsou nazývány Brillouinovými zónami, na obecných krystalových mřížkách v Lieových grupách se pak označují jako fundamentální domény. V prostorech s obecnou metrikou se těmto diagramům říká metrické fundamentální polygony. V matematice jsou Voroného diagramy speciálním případem dekompozice metrického prostoru určené vzdálenostmi od specifické diskrétní množiny objektů v prostoru, například diskrétní množiny bodů. Kromě matematiky se dnes hojně používají v biologii, medicíně, robotice, chemii, geografii, kartografii apod. 6
3 Definice (obecný n-rozměrný případ) Necht E n je n-rozměrný euklidovský prostor a S konečná nespojitá množina m bodů na tomto prostoru. Pro každé dva body P, Q S; P Q definujeme dělící nadrovinu ρ(p, Q) ρ(q, P ) a dva poloprostory D(P, Q), D(Q, P ): X ρ(p, Q); P X = Q X X D(P, Q); P X < Q X X D(Q, P ); P X > Q X kde P X a Q X je vzdálenost bodu P resp. Q od bodu X. Potom Voroného buňka (případně Voroného oblast) ν(p, S) bodu P z množiny S je definována průnikem: ν(p, S) = D(P, Q) Q S\P a Voroného diagram V or(s) definujeme jako sjednocení hranic všech takových buněk na množině S. Protože buňky jsou otevřené množny, můžeme psát: ( ) V (S) = E n \ ν(p, S) P S Z definice je zřejmé, že Voroného diagram dělí prostor E n na m buněk. Každá pak obsahuje všechny body, které mají nejblíže k jednomu bodu z množiny S. Všechny Voroného buňky jsou konvexní mnohoúhelníky. Některé z nich jsou nekonečné - ty korespondují s body konvexního obalu (konvexní obal množiny bodů S v reálném vektorovém prostoru V je nejmenší množina obsahující S). Hranicí mezi dvěma sousedními oblastmi je úsečka (případně polopřímka nebo přímka), která leží na ose úsečky spojující odpovídající body sousedních oblastí. Obvykle se potkávají tři Voroného oblasti v jednom bodu, který se nazývá Voroného bod. Body definující buňky, které se v tomto bodě setkávají, leží na jedné kružnici, jejíž středem je právě tento Voroného bod. 4 Konstrukce Pro výpočet Voroného diagramu můžeme použít několik algoritmů: Průnik polorovin Přímá aplikace definice Voroného diagramu složitost výpočtu jedné buňky je O(n log n), tedy O(n 2 log n) pro výpočet celého diagramu. Inkrementální Najdeme diagram pro nějaký jednoduchý případ (například vybereme dva nebo tři body z množiny generátorů) a pak postupně přidáváme po jednom zbylé body. 7
Rozděl a panuj Zadanou generující množinu rekurzivně rozdělujeme, dokud nemáme množinu tří bodů, ze kterých jednoduše sestrojíme diagram. Poté zpětným chodem spojujeme diagramy částí v diagram celku. Algoritmus je náchylný na numerické chyby, ale vypočítá celý diagram v čase O(n log n). Fortunova metoda (zametací) Používá se tzv. zametací přímka, kterou postupně pohybujeme jedním směrem. Jak přímka prochází body generující množiny, z každého bodu konstruujeme parabolu množinu bodů, které jsou stejně vzdálené od generujícího bodu a zametací přímky. S rostoucí vzdáleností přímky a bodu se parabola postupně rozevírá. Setkají-li se dvě paraboly, jejich průsečík leží na hraně Voroného diagramu. V místě, kde se setkají tři paraboly, vzniká bod diagramu. Vypočítá celý diagram v čase O(n log n). Metoda zdvihu Transformací přiřazujeme bodu P = [p x, p y ] paraboloid z = x 2 + y 2 a rovinu z = 2p x x + 2p y y (p 2 x + p 2 y), která je tečnou rovinou paraboloidu v bodě P = [p x, p y, p 2 x + p 2 y] ( P odpovídá kolmému průmětu bodu P na paraboloid). Najdeme všechny obrazy bodů generující množiny na paraboloid odpovídající tečné roviny a projekce konvexního mnohostěnu vzniklého průnikem rovin je hledaný Voroného diagram. Z Delaunayovy triangulace Máme-li k dispozici Delaunayovu triangulaci na zadané množině bodů, můžeme na základě duality sestrojit Voroného diagram. Najdeme středy opsaných kružnic všech trojúhelníků. Tyto jsou z principu duality Voroného body. Pro každé dva sousedící trojúhelníky spojíme středy jejich opsaných kružnic, čímž získáme hranice vnitřních Voroného oblastí. Hranice vnějších oblastí jsou pak polopřímky, které leží na osách stran konvexního obalu množiny generujících bodů, viz Delaunayova triangulace, 7. Pomocí kružnic V každém bodě z generující množiny sestrojíme kružnici. Poloměr všech kružnic pak necháme růst od nuly do nekonečna, pro všechny body stejně. Průsečíky dvou kružnic určují body na hranách diagramu, tří a více kružnic pak vrcholy diagramu. Protnou-li se kružnice v nějakém bodě, jejich další průsečíky s ostatními kružnicemi ve směru od středu kružnic do tohoto bodu ignorujeme. V praktických implementacích na rastrových obrazech se rostoucí kružnice aproximují pomocí dilatace. 8
5 Jak vypadají Voroného diagramy Pokud je množina S dvoubodová (máme daná dvě místa P a Q), budou oblastmi Voroného diagramu poloroviny ohraničené osou úsečky P Q. D(P, Q)... otevřená polorovina obsahující bod P D(Q, P )... otevřená polorovina obsahující bod Q Pro vícebodovou množinu S je Voroného oblast průnikem n 1 polorovin a proto jde o otevřenou konvexní mnohoúhelníkovou oblast ohraničenou nejvýše n 1 vrcholy a nejvýše n 1 hranami. Otevřené buňky náleží bodům sítě P i, které tvoří konvexní obal množiny S. Voroného diagram je vždy souvislý. Obrázek 1: Konstrukce Voroného diagramu Hrany Voroného diagramu jsou části přímek tedy úsečky a polopřímky (na okrajích). Pokud jsou všechny body sítě kolineární, jsou hrany dokonce celé přímky, pokud existuje alespoň jeden bod sítě nekolineární s ostatními, žádná hrana pak nemůže být přímkou (viz obr.2). Obrázek 2: Voroného diagramy pro sít kolineárních bodů Pomocí Eulerovy věty můžeme dokázat, že počet vrcholů diagramu V or(s) je nejvýše 2n 5 a počet hran nejvýše 3n 6, kde n je počet bodů sítě množiny S (Eulerova věta udává vztah mezi počtem vrcholů (V ), hran (E) a stěn (F ) konvexního mnohostěnu: V E + F = 2). 9
Obrázek 3: Voroného diagramy pro sít obsahující alespoň čtyři body ležící na kružnici Přidáme nevlastní vrchol (V + 1) E + F = 2: d i = 2E i V + 1 = 2 + E n 2E 3(V + 1) = 3(2 + E n) 2E 3(2 + E n) 3n 6 E E = (V + 1) + n 2 2E = 2(V + 1) + 2n 4 2(V + 1) + 2n 4 3(V + 1) 2n 5 V Dále víme, že hrany buněk jsou částmi os úseček P i P j, kde P i, P j jsou body sítě množiny S a Voroného vrcholy jsou průsečíky těchto os. Všechny osy ale nemusí definovat hrany a všechny průsečíky os nemusí tvořit vrcholy Voroného diagramu. Bod X leží na hraně V or(s) právě tehdy, když je středem kružnice, která prochází dvěma body sítě a žádný jiný bod sítě v této kružnici neleží. Obdobně je vrcholem bod Y, který je středem kružnice určené (procházející) třemi body sítě a žádný další bod sítě uvnitř této kružnice neleží (viz obr.4). 10
Obrázek 4: Body na hranách a vrcholech Voroného diagramu Obrázek 5: Voroného diagramy pro speciální rozložení bodů sítě 6 Příklady problémů 6.1 Problém nejbližší pošty Ve městě se nachází pošty a je potřeba zjistit, kteří obyvatelé budou každou z pošt navštěvovat, tedy na kterou poštu to mají nejblíže. Budeme předpokládat některá zjednodušení (která můžeme zobecňovat - viz 8): Neuvažujeme překážky v cestě - domy, zatáčky, řeky, atd., takže náklady na cestu se rovnají součtu ceny dopravy a ceny služeb (ty by měly být všude stejné). Cenu dopravy získáme jako součin ceny za jednotku vzdálenosti (konstantní) a euklidovské vzdálenosti na poštu. Jindy budeme chtít zjistit, do kterého supermarketu chodí lidé nakupovat. V tom případě je třeba minimalizovat celkové náklady, kromě cesty tedy ještě přibývá cena zboží. V tomto modelu musíme přidat ještě další zjednodušení: 11
Cena zboží je stejná v každém obchodě. Náklady na získání zboží jsou rovné součtu ceny zboží a ceny dopravy. Zákazník se snaží minimalizovat náklady na získání zboží. Faktory typu úroveň služeb, šíře sortimentu atd. neuvažujeme. Samozřejmě zejména předpoklady stejných cen a lineárního růstu ceny dopravy uvnitř města nejsou ideální, proto nám tento model poskytuje pouze hrubou aproximaci problému. Při vymodelování situace se vytvoří takové oblasti, kde lidé bydlící v jedné z nich budou jezdit na poštu (do obchodu) odpovídající danému regionu. To přesně odpovídá definici Voroného diagramu, kde pošty jsou body generující sítě a regiony jsou Voroného oblasti. Jakmile tedy sestrojíme Voroného diagram, můžeme pomocí něj vyřešit poštovní problém. Obrázek 6: Poštovní problém a jeho Voroného diagram 6.2 Problém skládky odpadu Máme n bodů v rovině, které reprezentují města, a potřebujeme najít úložiště toxického odpadu tak, aby se nacházelo co nejdál od měst. Zároveň je potřeba umístit odpad dovnitř konvexního obalu bodů reprezentujících města (za ním už je třeba další stát a odpad není možné vyvážet). S touto podmínkou budou všechna potenciální úložiště ležet ve Voroného bodech diagramu generovaného sítí měst a to skutečně nejvíc vzdálené najdeme v tom bodě, ze kterého je do měst v sousedních buňkách nejdále (viz Delaunyova triangulace, 7). Stejným postupem lze například řešit problém umístění nového obchodu. Chceme-li vybudovat nový obchod v určené oblasti, bude nejvýhodnější ho umístit tak, aby byl co nejvíce vzdálen od všech ostatních obchodů podobného zaměření. Tím pokryjeme největší oblast zákazníků, kteří budou mít do našeho obchodu blíže než do ostatních. Protože vlastně hledáme kružnici s největším poloměrem se středem v některém z Voroného bodů, všechny podobné problémy se souhrnně označují problém největší kružnice. 12
7 Delaunayova triangulace Delaunayovu triangulaci dostaneme, pokud spojíme navzájem úsečkami ty body sítě, jejichž buňky ve Voroného diagramu sousedí (viz obr.7). Delaunayova triangulace je duální k Voroného diagramu, rozděluje konvexní obal bodů na sít trojúhelníků a díky dualitě jedno určuje druhé (tedy pokud máme spočítaný Voroného diagram, snadno dostaneme Delaunayovu triangulaci a naopak). Taková triangulace lokálně maximalizuje nejmenší úhly. Uvnitř kružnice opsané každému jejímu trojúhelníku neleží žádný další vrchol triangulace (to vyplývá z konstrukce diagramu, viz 5). Protože Voroného diagram má nejvýše 3n 6 hran, v okamžiku, kdy chceme najít nejbližší 2 body z generující sítě, stačí prohledat 3n 6 dvojic (ty, mezi nimiž existuje hrana v Delaunayově triangulaci) namísto všech n(n 1) 2 dvojic původně připadajících v úvahu. Některé ze zajímavých vlastností Delaunayovy triangulace potom jsou: Dualita k Voroného diagramu Jedno určuje druhé. Body příslušné sousedním oblastem ve Voroného diagramu jsou spojeny hranou v Delaunayově triangulaci. Naopak spojnice středů opsaných kružnic dvou sousedních trojúhelníků v triangulaci definuje hranu v diagramu. Hrana v triangulaci je kolmá na hranici mezi oblastmi v diagramu příslušnými ke koncovým bodům této hrany. Vlastnost prázdé kružnice Kružnice opsaná libovolnému trojúhelníků z Delaunayovy triangulace neobsahuje žádný další bod sítě. Jde o rovinný graf Má z Eulerovy věty maximálně 3n 6 hran a 2n 5 trojúhelníků. Tato vlastnost může být využita při redukci problémů z třídy kvadratické složitosti (nejbližší pár bodů) na lineární. Samotná konstrukce triangulace má ale složitost O(n log n) Obsahuje trojúhelníky s maximálním nejmenším úhlem Snaží se tvar trojúhelníků co nejvíce přiblížit rovnostrannému. Pokud bychom sepsali seznam všech úhlů v Delaunayově triangulaci ve vzestupném pořadí a udělali totéž s jakoukoliv jinou triangulací stejné množiny bodů, delaunayovský seznam bude určitě lexikograficky menší. 13
Obrázek 7: Delaunayova triangulace a její maximalizace minimálního úhlu 8 Zobecnění Zobecněním Voroného diagramů rozumíme změnu některých základních předpokladů. 8.1 Přidání vah Jednotlivým bodům generující sítě přidáme váhy (to může reprezentovat například nižší ceny v některých obchodech z výše uvedeného problému). Nyní tedy máme množinu n bodů v rovině S = {P 1,..., P n } a k nim odpovídající váhy v 1,..., v n. Změníme definici oblasti: bod Q leží v oblasti ν(p i ) právě tehdy, když QP i < QP j j i v i v j Hranami tohoto Voroného diagramu budou části kružnic a části přímek. Obrázek 8: Přidání vah bodům generující sítě 14
8.2 Rozšíření generující množiny Je možné kromě bodů přidat jako zdrojové objekty i přímky. Pak hledáme množiny bodů, které mají stejnou vzdálenost od pevně daného bodu a přímky, což je definice paraboly, a množiny bodů se stejnými vzdálenostmi od 2 bodů a od 2 přímek (obojí jsou přímky). Hrany Voroného diagramu takové generující množiny tedy budou části přímek a části parabol. Tyto diagramy se využívají například v GIS. Množinu S bychom mohli rozšířit ještě o oblouky křivek a pak bychom museli zavést pojem osy křivky. Tato problematika by se řešila zavedením axiomatických a abstraktních Voroného diagramů. Stejně tak bychom mohli nadefinovat Voroného diagram měřením vzdáleností k plochám místo k bodům. Tyto typy Voroného buněk se používají v segmentaci obrazů (to je potřeba například při jejich kompresi nebo dekompozici), k optickému rozpoznávání charakterů a v dalších počítačových aplikacích. Ve výzkumu materiálů jsou polykrystalizace mikrostruktur v kovových slitinách běžně reprezentovány použitím Voroného mozaiky. 8.3 Pohyb bodů Pro začátek budeme uvažovat situaci, kdy v dané soustavě generujících bodů P 1,..., P n 1, P n budeme posledním bodem P n pohybovat. Zkoumáním topologických vlastností Voroného diagramů bylo zjištěno, že globální změna nastane tehdy, jestliže bod P n přidáváme nebo mažeme, nebo když se změní konvexní obal množiny S = {P 1,..., P n 1, P n }. V ostatních případech se budou měnit pouze buňky příslušné k sousedním bodům. Složitější případ nastane, necháme-li pohybovat všechny body soustavy. Jako analogii k problému nejbližší pošty můžeme za generující body sítě brát pošt áky, kteří se pohybují po městě. Pohyb každého z nich můžeme popsat rovnicí p i = s i +v i t, kde s i R je pozice i-tého pošt áka v čase t = 0 a v i jeho rychlost. Mezi pošt áky umístíme další pohybující se osobu p i+1 a zajímá nás, ke komu bude v čase t = 0 nejblíž a koho dohoní jako prvního. Řešení může vést k diagramu ve třídimenzionálním prostoru (x, y, t), kde osa t je kolmá na zbylé dvě osy a znázorňuje čas. V každém čase t j množina bodů p i (t j ) definuje rovinný Voroného diagram V or(p i (t j )). S pohybem generujících bodů v čase se mění spojitě odpovídající Voroného diagram a vytváří tak 3D objekty, kde hrany diagramu generují stěny a vrcholy generují hrany 3D diagramu (Voroného diagram pohybujících se bodů). 15
8.4 Změna metriky Voroného diagramy nemusíme počítat pouze v euklidovské metrice, mohli bychom použít například metriku L p, kde definujeme vzdálenost dvou bodů v rovině P = [p x, p y ], Q = [q x, q y ] jako P Q p = p p x q x p + p y q y p P Q = max { p x q x, p y q y } Samozřejmě v těchto metrikách bude vypadat Voroného diagram jinak než v Euklidovské metrice (viz obr.9). Obrázek 9: Voroného diagram v L 1 metrice 9 Použití 9.1 Počítačová grafika V počítačové grafice se pomocí Voroného diagramů vytvářejí barevné mozaiky. V obrázku se vybere množina obrazových bodů jako generující množina diagramu a každá buňka se pak obarví podle barvy příslušného bodu, čímž vznikne efekt mozaiky. Tvar a velikost buněk lze ovlivnit vhodnou volbou rozmístění a množstvím generujících bodů. Tohoto postupu můžeme využít při kompresi digitálního obrazu, kdy se vytvoří mozaika a v každé buňce se pak zabýváme pouze rozdíly mezi barvou buňky a barvou zpracovávaného bodu. Jinou aplikací je hledání nejbližších sousedů v zadané množině bodů. Zkonstruujeme-li nad množinou Voroného diagram, stačí nám najít nejkratší vzdálenost bodů příslušných sousedním buňkám. Tyto body jsou pak nejbližší dvojicí. Postup lze dále využít například k hledání shluků v množině. Jestliže například chceme rozlišit několik druhů objektů v obrazu, určíme n klíčových vlastností, podle kterých je lze od sebe rozlišit. Vzorové objekty pak na základě těchto 16
Obrázek 10: Dekompozice fotky na mozaiku pomocí Voroného diagramu vlastností umístíme do n-rozměrného prostoru a vytvoříme nad nimi Voroného diagram. Pro každý určovaný objekt pak stačí zjistit, do které buňky diagramu patří a tím se určí jeho druh. 9.2 Biologie, příroda Biologický model růstu rostlin máme danou skupinu rostlin v rovině, které jsou charakterizované souřadnicemi, poloměrem a druhem. Různé druhy mají rozdílná pravidla, podle kterých rostou a která definují poměr mezi velikostí oblasti, kterou rostlina okupuje, a šířkou této rostliny. Naším úkolem je studovat vztahy velikost vzdálenost, velikost plocha a vztahy v hustě posázeném systému rostoucích rostlin. K tomu se používá vážený euklidovský Voroného diagram. Rostliny jsou reprezentovány body sítě, diagram je pro komunitu rostlin konstruován inkrementální metodou, oblast okupovaná rostlinou se spočítá jako obsah oblasti odpovídající buňky Voroného diagramu. Obdobně se dá modelovat růst buněk v mitóze (zelená, obr.11) ty obalují krevní cesty (červená) a jsou obalené odpočívajícími buňkami (fialová), které tvoří hrozny skupiny buněk. Modře zobrazené rozlišené buňky doplňují prostor a obklopují hrozny. Včelí plástve jsou také postavené do tvaru Voroného diagramu, dokonce do speciálního mozaikovitého případu. Každá larva má mít stejně velký a stejně tvarovaný prostor, čehož se docílí právě tím, že se speciálně rozmístěné larvy vezmou jako generující body pro Voroného diagram. Výsledná struktura bude z horního pohledu množina šestiúhelníků (obr.11). Voroného diagramy se také používají k modelování teritorií jednotlivých zvířat, stád, tlup apod. Do buněk Voroného buněk se tvarují křídla vážek. Mořské korály si staví buňky do tvaru Voroného diagramů (každý tvoreček staví rozdílnou rychlostí a v okamžiku setkání se sousedem už nemůže pokračovat dál). 17
Obrázek 11: Model růstu rostlin (vlevo), simulace růstu buněk (uprostřed), včelí plástve V důsledku smršt ování a roztahování půdy kvůli zamrzání a tání tundry (Island, severní Evropa) nebo kvůli vysušování a zavodňování zeminy (solné pouště v Jižní Americe) do těchto tvarů praská nebo se naopak shlukuje zem. Dál je možné v přírodě pomocí 3D Voroného diagramů modelovat srážky a jejich regionální předpověd. Obrázek 12: Voroného diagramy v přírodě - křídlo vážky, poušt Atacama, tundra na Islandu, korál 9.3 Chemie Voroného mozaikový rozklad běžný 3D model buněk, chemických prvků apod. se vykresluje jako Voroného mozaika generujících bodů v prostoru. Kolem každého bodu je oblast, jejíž všechny body jsou k bodu sítě blíž než ke kterémukoliv dalšímu. Při konstrukci 3D diagramu necháme z každého bodu sítě růst kouli, všechny stejnou rychlostí. Tam, kde se dvě sousední dotknou, dostáváme kontaktní bod. Po projití všech bodů můžeme sestrojit Voroného diagram, kde jsou všechny oblasti konvexními mnohostěny. Polygony náležící bodům konvexního obalu jsou otevřené. Na obrázku 13 vlevo je aproximace Kelvinovy pěny Voroného diagramem všechny buňky mají jednotný tvar, jsou plné a splňují Plateau pravidlo pěnové rovnováhy (tři stěny se potkávají pod úhlem 120 a čtyři vzpěry pod úhlem 109,5 ). Aby toto platilo, musí být stěny a hrany lehce zahnuté. 18
Pokud potřebujeme namodelovat tvar krystalu nějaké látky, stačí nám znát rozložení atomů v něm. Ty pak bereme jako generující množinu bodů pro Voroného diagram, ten sestrojíme, najdeme Delaunayovu triangulaci a ta je pak velmi dobrou aproximací tvaru krystalu (obr.13 vpravo). Voroného diagramy se také používají k určení strukturálních vlastností proteinů (nalezení největšího volného prostoru, konstrukce povrchu molekul atd.). Obrázek 13: 3D Voroného diagramy využívané v chemii 9.4 Geografie V geografii se Voroného diagramy využívají k analýze sídel. Například rozložíme Zemi na polygony založené na hustotě lidské populace. Kde je vyšší hustota obyvatel, bude víc buněk (a samozřejmě budou menší). Tam, kde žije obyvatel málo, vznikne málo velkých regionů viz následující obrázek. Obrázek 14: Regiony s konstantním počtem obyvatel 19
9.5 Geometrické problémy Pomocí Voroného diagramů se řeší také velké množství geometrických problémů. Jak uspořádat kabely různého průměru do válcového objektu, problém nalezení nejkratší cesty, stromu s nejkratším součtem délek hran (MST, minimal spanning tree), problém největšího toku nebo výše zmíněné problémy největší kružnice a nejbližší pošty. Nalezením MST pak můžeme aproximovat řešení problému obchodního cestujícího. Nalezená cesta bude v nejhorším případě dvakrát delší než optimální řešení, ovšem výměnou za značné urychlení výpočtu. 9.6 Robotika V kybernetice a robotice se Voroného diagramy používají pro plánování cesty robotů a jiných pohybujících se strojů. Využijeme zobecněného Voroného diagramu, kdy generující množinou budou překážky v prostoru. Nad nimi potom zkonstruujeme diagram. Bude-li se robot pohybovat po hranách diagramu, bude v každém okamžiku v ideální pozici vzhledem k překážkám, nebot od těch nejbližších bude mít stejnou vzdálenost. 10 Shrnutí Dělení prostoru známé jako Voroného diagram se poprvé objevilo již v sedmnáctém století. Jeho větší využití je zdokumentováno ve století devatenáctém. Počátkem dvacátého století se diagramy zabýval nadaný ruský matematik G. F. Voronoj, který provedl jejich zobecnění a po něm byly také pojmenovány. Voroného diagramy jsou dělením prostoru na základě generující množiny bodů, kdy v každé buňce je euklidovská vzdálenost všech bodů od příslušného generujícího bodu menší než vzdálenost od všech ostatních bodů generující množiny. Definici je pak možné v různých směrech zobecňovat, například použitím jiných geometrických útvarů jako generující množiny, použitím jiné metriky či přidáním vah k bodům. Uplatnění nachází Voroného diagramy v mnoha odvětvích. Jejich výskyt lze dohledat v různých přírodních jevech, od teritorií zvířat přes buněčné struktury až po růst krystalů. Z toho se také odvíjí jejich využití ve vědách studujících takové jevy biologii, chemii, ale třeba i geologii. Lze je použít k modelování vlivu sídel, kultur, jazyků a podobně. Velkého využití nachází v počítačové grafice a výpočetní geometrii, kde se pomocí nich řeší mnoho problémů. V neposlední řadě jsou pak Voroného diagramy využívány například v kybernetice k řízení pohybu strojů. 20
Reference [bas] [jez] [kap] [sug] Bohumír Bastl: Aplikace geometrie 2 - pomocný učební text František Ježek: Aplikace geometrického modelování (24. konference o geometrii a počítačové grafice) Craig S. Kaplan: Voronoi diagrams and ornamental design Kokichi Sugihara: Voronoi Diagrams [tom] Světlana Tomiczková: Voroneho diagramy [bio] [can] [csk] http://www-history.mcs.st-andrews.ac.uk/biographies/voronoy.html http://www-imagis.imag.fr/membres/marie-paule.cani/lave/ http://www.cgl.uwaterloo.ca/ csk/projects/voronoi/ [epp] http://www.ics.uci.edu/ eppstein/gina/voronoi.html [exp] [gar] [geo] [hje] [sct] http://www.experiencefestival.com/a/voronoi diagram/id/1970321 http://ciks.cbt.nist.gov/ garbocz/closedcell/node5.html http://www.cs.unc.edu/ geom/voronoi/ http://www.diku.dk/hjemmesider/studerende/duff/fortune/ http://www.snibbe.com/scott/bf/index.htm [wiki] http://www.wikipedia.org 21