Et eller andet datalogi… Voronoi Diagrammer Gerth Stølting Brodal / Kasper Green Larsen Institut for Datalogi Aarhus Universitet Tak til tutorerne for at invitere mig til at holde foredraget Datalogi, Studiestart 2014
Kasper Gerth Ph.d. Datalogi, Aarhus Universitet (2005-2013) Ansat ved Institut for Datalogi (2014-) Forskning og undervisning: Algoritmik GymnasiumViborg PhD AU AU 01 04 05 08 11 13 14 Gerth Ph.d. Datalogi, Aarhus Universitet (1989-1997) Ansat ved Institut for Datalogi (1998-) Forskning og undervisning: Algoritmik Instruktor, Studenterprogrammør (Kasper) Gymnasium Aabenraa AU PhD PostDoc AU 83 85 88 89 93 95 96 97 98
Algoritmik på Datalogi dPersp dIntProg Calculus 1 ComputerArkitektur dProg2 Calculus 2 dADS1 dWebTec dIntDesign dADS2 dProgSprog dRegAut 2. år dDB dBerLog Pervasive Int. Mat. Modellering SoftwareArkitektur dConc Mat. Modellering 1 Videnskabsteori dDistSys dSik 3. år dOvs Optimering dEkspSys Kombinatorisk Søgning 4. år Computational Geometry Topics in Discrete Geometry Alg. Engineering Strengalgoritmer Randomiserede Alg. 5. år Avancerede Datastrukturer I/O Algoritmer Machine Learning Speciale Andre algoritmikkurser Algoritmer i bioinformatik Dynamiske algoritmer Spilteori Kompleksitetsteori … Denne forelæsning Ph.d.
Punkter og Linier Undgå kvadratrødder irrational p1 Dist( 𝑝 1 , 𝑝 2 )= 𝑥 1 − 𝑥 2 2 + 𝑦 1 − 𝑦 2 2 Dist( 𝑝 3 , 𝑝 1 )<Dist( 𝑝 3 , 𝑝 2 ) ? ⇕ 2^32 = 4294967296 Kunne regne med ”algebraiske tal” på eksakte koefficienter, hvis man vil forsøge at håndtere \sqrt Dist(p1,p2)=8.60232526704, Sqrt(72) = Dist(p3,p1) < Dist(p3,p2) = sqrt(65) p2 overløb ≤ 2 42949672952 𝑥 3 − 𝑥 1 2 + 𝑦 3 − 𝑦 1 2 < 𝑥 3 − 𝑥 2 2 + 𝑦 3 − 𝑦 2 2 Undgå kvadratrødder Vurder størrelsen af mellemresultater koordinater = heltal 0..4294967295
Punkter og Linier p3 tættest på p2 q2 = q1 + p1 -p2 = (a2,b2) p3 tættest på p2 ⇕ P3 p3 til venstre for linien gennem q1 og q2 p1 ⇕ (a1-x3)(b2-y3) - (b1-y3)(a2-x3) > 0 q1 = (p1 +p2)/2 = (a1,b1) Ikke heltal “midtnormal” 2^32 = 4294967296 Kunne regne med ”algebraiske tal” på eksakte koefficienter, hvis man vil forsøge at håndtere \sqrt Dist(p1,p2)=8.60232526704, Sqrt(72) = Dist(p3,p1) < Dist(p3,p2) = sqrt(65) Gang alle koordinater med 2 for at ungå 1/2 p2 koordinater = heltal 0..4294967295
Punkter og Linier Linieskæringer har rationale koordinater Regn med brøkker Ikke heltal (x,y) p4 p2 (x1y2 - y1x2)(x3 - x4) - (x1 - x2)(x3y4 - y3x4) x = 2^32 = 4294967296 Kunne regne med ”algebraiske tal” på eksakte koefficienter, hvis man vil forsøge at håndtere \sqrt Dist(p1,p2)=8.60232526704, Sqrt(72) = Dist(p3,p1) < Dist(p3,p2) = sqrt(65) (x1 - x2)(y3 - y4) - (y1 - y2)(x3 - x4) (x1y2 - y1x2)(y3 - y4) - (y1 - y2)(x3y4 - y3x4) y = (x1 - x2)(y3 - y4) - (y1 - y2)(x3 - x4) koordinater = heltal 0..4294967295
Voronoi Celle l3 l5 l1 l4 l2 p4 p5 p3 p6 p2 p1 Voronoi Celle = Konveks polygon p2 p1
Voronoi Diagram Konvekse hylster Voronoi diagram anvendelse : Hvilken radiomast er tættest på ? Voronoi diagram : potentielt n2 kanter (del af bisektorer), men kan vise at der er kun er ≤2n Voronoi knuder centrum for cirkel med tre randpunkter Største tomme cirkel har centrum i en Voronoi knude ”Uendelige” Voronoi kanter kanter på det konvekse hylster
Biologisk hypotese: Mønsteret på en giraf er et Voronoi diagram, dvs Biologisk hypotese: Mønsteret på en giraf er et Voronoi diagram, dvs. der findes en mængde punkter
Dirichlet 1850, Voronoi 1908, Boldyrev 1909, … Descartes 1644 Defineret/opfundet mange gange i litteraturen Dirichlet 1850, Voronoi 1908, Boldyrev 1909, …
Web-side der visualiser dynamiske ændringer i Voronoi diagrammet alexbeutel.com/webgl/voronoi.html alexbeutel.com/webgl/voronoi.html
Triangulering af Terrain Data TIN = Triangulated Irregular Network
Hvilken Triangulering ? p2 p5 spidse vinkler p6 p8 p7 p4 P9 p1 p3
Delauney Triangulering Voronoi diagram Delauney triangulering Dual Antager general position = trekanter Flader i Delauney trianguleringen = knuder i Voronoi diagrammet Delauney trianguleringer maximerer mindste vinkel
Inkrementel Konstruktion af Delauney Triangulering / Voronoi Diagram Antag vi har konstrueret Delauney triangulering for 28 punkter, og indsætter punkt nummer 29 Indsættelse af det 29. punkt
Inkrementel Konstruktion af Delauney Triangulering / Voronoi Diagram p Indsæt punkterne i tilfældig rækkefølge: Find trekanten indeholdene næste punkt p Lav kanter til trekantens hjørner ”Flip” kanter i ulovlige trekanter
Euler’s Sætning for Plane Grafer Voronoi diagrammer og Delauney trianguleringer indeholder ≤ 3n segmenter knude kant flade Bevis for Euler: Induktion. Start med en knude; hver yderligere kant tilføjer enten en flade eller en knude. V≥3 => E≤3V-6 : * Hver flade mindst 3 tilstødende (halv)kanter; * 2E=#halv-kanter≥3F F≤2/3*E V+2/3*E-E ≥ 2 V≥2+E/3 E≤3V-6 # knuder + # flader - # kanter = 2 15 + 4 - 17 = 2 (gælder for sammenhængende grafer der kan tegnes uden krydsende kanter)
Inkrementel Konstruktion af Delauney Triangulering / Voronoi Diagram p Forventet ≤ 6 ”flips” per indsættelse ⟹ totalt forventet ≤ 6n ”flips”
Voronoi Diagram af Linier www.cise.ufl.edu/~sitharam/... Diagrammet består af liniestykker og parabolske kurver
2. ordens Voronoi Diagram B AB A
3. ordens Voronoi Diagram ABC C B
Længst Væk Voronoi Diagram Konvekse hylster Konveks hylster => stråler på modsat side Størrelse O(n) A
Manhattan Bar B You are here Bar A Bar C
Afstandsmål Euklidisk afstand = L2 afstand P1 Euklidisk afstand = L2 afstand 𝑝 1 − 𝑝 2 2 = 𝑥 1 − 𝑥 2 2 + 𝑦 1 − 𝑦 2 2 Manhattan afstand = L1 afstand P2 𝑝 1 − 𝑝 2 1 = 𝑥 1 − 𝑥 2 + 𝑦 1 − 𝑦 2 L2 Voronoi Diagram L1 Voronoi Diagram
3D Voronoi Diagram Plads O(n^2)
Voronoi Art
Opsummering Algoritmik – et datalogisk forskningsområde Voronoi diagrammer = eksempel inden for delområdet ”computational geometry” Matematiske begreber og bevisførelser essentielle for at kunne arbejde med algoritmik www.cs.au.dk/~gerth/slides/voronoi14.pdf
Punkt Lokalisering (Trapez Dekomposition og Kort)
Gerth Ph.d. Datalogi, Aarhus Universitet (1989-1997) Ansat ved Institut for Datalogi (1998-) Forskning og undervisning: Algoritmik Gymnasium Aabenraa AU PhD PostDoc AU 83 85 88 89 93 95 96 97 98
Voronoi Diagram Konvekse hylster Voronoi diagram anvendelse : Hvilken radiomast er tættest på ? Voronoi diagram : potentielt n2 kanter (del af bisektorer), men kan vise at der er kun er ≤2n Voronoi knuder centrum for cirkel med tre randpunkter Største tomme cirkel har centrum i en Voronoi knude ”Uendelige” Voronoi kanter kanter på det konvekse hylster
Computer Grafik : Voronoi Splinter https://www.youtube.com/watch?v=FIPu9_OGFgc 3:00” www.youtube.com/watch?v=FIPu9_OGFgc