Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem....

Post on 06-Apr-2015

106 views 0 download

Transcript of Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem....

Institut für Kartographie und GeoinformationProf. Dr. Lutz Plümer

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“

1. Input: Gegeben ist eine Menge P von mindestens 2 Punkten

2. Split: Zerlege P in zwei etwa gleich große Teilmengen P1 und P2

3. Rekursiv: Berechne Voronoi-Diagramme von VD(P1) und VD(P2)

4. Merge: Verknüpfe VD(P1) und VD(P2)

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?

P1

P2

Was ist das schwierigste Teilproblem? - Split

Was ist das schwierigste Teilproblem? - Rekursion I

Was ist das schwierigste Teilproblem? - Rekursion II

Was ist das schwierigste Teilproblem? - Merge

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

P1

P2

Split

P

VD( P2 )

VD( P1 )

Merge

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

min ymin y

max y

Konvexe Hülle von P1 und P2

max y

min ymin y

max 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

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

Vereinigung

Löschen der überflüssigen Segmente

Löschen der überflüssigen Segmente

Ergebnis: Voronoi-Diagramm von P

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

Länge des Kantenzuges im Worst Case

O(n)

Größenordnung des Kanten-Umrings im worst case

O(n)

O(n) * O(n) = O(n2) ?

Voronoi-Regionen sind konvex

Kantenzug ist monoton

war jetzt alles umsonst?

O(n) * O(n) = O(n2) ?

Voronoi-Regionen sind konvex

Kantenzug ist monoton

Keine Kante öfter als zwei mal anfassen!

„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!