Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Liese Wolfel Geändert vor über 9 Jahren
2
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung 5 11. Mai 2000 Konstruktion des Voronoi-Diagramms
3
Voronoi Regionen (Wdhg.) beschränkte Voronoi Regionen unbeschränkte Voronoi Regionen Die konvexe Hülle ver- bindet die unbeschränkten Voronoi Regionen Jede Voroni-Region ist konvex!
4
Eigenschaften von Voronoi-Diagrammen (Wdhg.) Vereinfachende Annahme: aus der gegebenen Punktmenge liegen keine 4 Elemente auf einem gemeinsamen Kreis Jeder Voronoi-Knoten hat genau drei Kanten Das Voronoi-Diagramm von n Punkten hat höchstens 2n – 4 Knoten und 3n – 6 Kanten (linear!) Die Knoten mit unbeschränkten Regionen bilden die konvexe Hülle Der „duale Graph“, bei dem benachbarte Punkte miteinander verbunden werden, bildet eine Delaunay-Triangulation
5
Konstruktion des Voronoi-Diagramms „Divide and Conquer“ 1.Input: Gegeben ist eine Menge P von mindestens 2 Punkten 2.Split: Zerlege P in zwei etwa gleich große Teilmengen P 1 und P 2 3.Rekursiv: Berechne Voronoi-Diagramme von VD(P 1 ) und VD(P 2 ) 4.Merge: Verknüpfe VD(P 1 ) und VD(P 2 ) 5.Halt: Der Abschluß ist erreicht, wenn das Voronoi-Diagramm eines Punktes zu bilden ist, dies ist die ganze Ebene Wie oft ist dieser Zyklus zu durchlaufen?log n mal Die gewünschte Laufzeit O(n * log n) wird erreicht, wenn „ Split“ and „ Merge“ nicht mehr als O(n) Schritte benötigen, Was ist das schwierigste Teilproblem?
6
P1P1 P2P2 Was ist das schwierigste Teilproblem? - Split
7
Was ist das schwierigste Teilproblem? - Rekursion I
8
Was ist das schwierigste Teilproblem? - Rekursion II
9
Was ist das schwierigste Teilproblem? - Merge
10
Teilschritte von „Divide and Conquer“ Input: Sortiere aufsteigend nach x-Koordinate Split: –Bestimme den Median –Zerlege in annähernd gleich große Teilmengen links und rechts des Medians Merge –Konstruktion des trennenden Kantenzuges –Abschneiden überflüssiger Kanten –Bildung der Voronoi-Regionen (wie bei Overlay-Algorithmus) –Einfachster Fall von Merge: die Teilmengen enthalten je einen Punkt der trennende Kantenzug ist die Mittelsenkrechte dieser Punkte
11
P1P1 P2P2 Split P
12
VD( P 2 )
13
VD( P 1 )
14
Merge
15
Konstruktion des trennenden Kantenzuges Was wissen wir über den trennenden Kantenzug? monoton in Nord-Süd-Richtung jede Kante ist Grenze (Mittelsenkrechte) zwischen einer roten und einer grünen Region Problem: sukzessive Identifikation der benachbarten roten und grünen Punkte die nördlichsten und südlichsten Teilstücke sind unbeschränkt, also Halbgeraden die benachbarten roten und grünen Punkte bilden dort unbeschränkte Voronoi-Regionen sie liegen also jeweils auf der roten bzw. grünen konvexen Hülle beginnen wir also mit den beiden (grünen und roten) „Nordspitzen“
16
max y min y max y Konvexe Hülle von P 1 und P 2
17
max y min y max y Konvexe Hülle von P 1 und P 2
18
Konstruktion der Nord- und Südspitzen die konvexe Hülle ist Abfallprodukt der Erzeugung des Voronoi-Diagramms synchrone Herleitung beider Strukturen die konvexe Hülle ergibt sich aus den Teilstrukturen durch Einfügen zweier zusätzlicher Kanten diese verbinden die roten und grünen Nord- und Südspitzen miteinander die neuen Spitzen ergeben sich aus den Minima/Maxima der alten rot-grünen Spitzen Datenstruktur wie bei Overlay (doppelt verkettete Kanten) zusätzlicher Aufwand: O(1)
19
Vereinigung Mittelsenkrechte bilden
20
Vereinigung
21
Aktive Voronoi-Diagramme Schnittpunkte mit Seg- menten suchen
22
Vereinigung Aktive Voronoi-Diagramme Schnittpunkte mit Seg- menten suchen Neues aktives VD
23
Vereinigung Aktive Voronoi-Diagramme Schnittpunkte mit Seg- menten suchen Neues aktives VD Mittelsenkrechte zuwischen den aktiven VD
24
Vereinigung Schnittpunkte suchen
25
Vereinigung Schnittpunkte suchen Neues aktives VD suchen
26
Vereinigung Schnittpunkte suchen Neues aktives VD suchen
27
Vereinigung Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte der aktiven VD
28
Vereinigung Schnittpunkte suchen
29
Vereinigung Schnittpunkte suchen Neues aktives VD suchen
30
Vereinigung Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte der aktiven VD
31
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
32
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte der aktiven VD
33
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
34
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte der aktiven VD
35
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
36
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte der aktiven VD
37
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
38
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte der aktiven VD
39
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
40
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Verknüpfung mit der Mittel- senkrechten vom Anfang
41
Vereinigung
42
Löschen der überflüssigen Segmente
44
Ergebnis: Voronoi-Diagramm von P
45
Datenstruktur für Voronoi-Diagramm Doppelt verkettete Kantenliste Durchlaufen des Kantenumrings in linearer Zeit Direkter Zugriff auf die benachbarten Maschen
46
Kosten wie lange dauert die Konstruktion des trennenden Kantenzuges? Zahl der Teilkanten / Knoten des Kantenzuges Zahl Berechnungen von Schnittpunkten mit den benachbarten Voronoi-Regionen
47
Länge des Kantenzuges im Worst Case O(n)
48
Größenordnung des Kanten-Umrings im worst case O(n)
49
O(n) * O(n) = O(n 2 ) ? Voronoi- Regionen sind konvex Kantenzug ist monoton war jetzt alles umsonst?
50
O(n) * O(n) = O(n 2 ) ? Voronoi- Regionen sind konvex Kantenzug ist monoton Keine Kante öfter als zwei mal anfassen!
51
„Investitionen müssen sich amortisieren“ Ziel: keine Kante mehr als zwei mal „anfassen“ Es gibt insgesamt höchstens 3* n – 6 Kanten O(n) Konvexität der Voronoi-Regionen höchstens zwei Schnittpunkte mit der aktiven Halbgeraden Es genügt, die linken (grünen) Kantenumringe im Uhrzeigersinn und die rechten (roten) Kantenumringe gegen den Uhrzeigersinn zu durchlaufen und den zuletzt gefundenen und verworfenen Schnittpunkt als Haltepunkt zu merken!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.