500 likes | 626 Views
Geoinformation II 6. Sem. Vorlesung 5 11. Mai 2000 Konstruktion des Voronoi-Diagramms. 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!.
E N D
Geoinformation II6. Sem. Vorlesung 5 11. Mai 2000 Konstruktion des Voronoi-Diagramms
Voronoi Regionen (Wdhg.) beschränkte VoronoiRegionen unbeschränkte VoronoiRegionen Die konvexe Hülle ver-bindet die unbeschränktenVoronoi Regionen Jede Voroni-Region ist konvex!
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
Konstruktion des Voronoi-Diagramms „Divide and Conquer“ • Input: Gegeben ist eine Menge P von mindestens 2 Punkten • Split: Zerlege P in zwei etwa gleich große Teilmengen P1 und P2 • Rekursiv: Berechne Voronoi-Diagramme von VD(P1) und VD(P2) • Merge: Verknüpfe VD(P1) und VD(P2) • 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?
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
P2 P1 Split P
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“
max y max y min y min y Konvexe Hülle von P1 und P2
max y max y min y min y Konvexe Hülle von P1 und P2
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)
Vereinigung Mittelsenkrechte bilden
Vereinigung Aktive Voronoi-Diagramme Schnittpunkte mit Seg-menten suchen
Vereinigung Aktive Voronoi-Diagramme Schnittpunkte mit Seg-menten suchen Neues aktives VD
Vereinigung Aktive Voronoi-Diagramme Schnittpunkte mit Seg-menten suchen Neues aktives VD Mittelsenkrechte zuwischenden aktiven VD
Vereinigung Schnittpunkte suchen
Vereinigung Schnittpunkte suchen Neues aktives VD suchen
Vereinigung Schnittpunkte suchen Neues aktives VD suchen
Vereinigung Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte deraktiven VD
Vereinigung Schnittpunkte suchen
Vereinigung Schnittpunkte suchen Neues aktives VD suchen
Vereinigung Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte deraktiven VD
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte deraktiven VD
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte deraktiven VD
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte deraktiven VD
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Mittelsenkrechte deraktiven VD
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen
Vereinigung Nächsten relevanten Schnittpunkte suchen Neues aktives VD suchen Verknüpfung mit der Mittel-senkrechten vom Anfang
Datenstruktur für Voronoi-Diagramm • Doppelt verkettete Kantenliste • Durchlaufen des Kantenumrings in linearer Zeit • Direkter Zugriff auf die benachbarten Maschen
Kosten • wie lange dauert die Konstruktion des trennenden Kantenzuges? • Zahl der Teilkanten / Knoten des Kantenzuges • Zahl Berechnungen von Schnittpunkten mit den benachbarten Voronoi-Regionen
O(n) * O(n) = O(n2) ? war jetzt alles umsonst? Kantenzug ist monoton Voronoi-Regionen sind konvex
O(n) * O(n) = O(n2) ? Keine Kante öfter als zwei mal anfassen! Voronoi-Regionen sind konvex Kantenzug ist monoton
„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!