© Copyright CRGRAPH 2015 Visual-XSel 13.0 1 Erstellung eines Weibull-Diagramms Weiter mit Klick.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem....
-
Upload
liese-wolfel -
Category
Documents
-
view
106 -
download
0
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!