Institut für Kartographie und GeoinformationProf. Dr. Lutz Plümer
Diskrete Mathematik IIVorlesung 8
08.06.00
Voronoi-Diagramme
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
22
Konstruktion des Voronoi-Diagramms
„Divide and Conquer“
1. Input: Gegeben ist eine Menge P von mindestens 2 Punkten
2. Divide: Zerlege P in zwei etwa gleich große Teilmengen P1 und P2
3. Rekursiv: Berechne Voronoi-Diagramme von P1 und P2
4. Merge: Verknüpfe die beiden in Schritt 3 gebildeten Diagramme
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
O(n * log n)wenn „Divide“ and „Merge“ nicht mehr als n Schritte benötigen,
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
33
P1
P2
Aufteilung der Menge P in P1 und P2
P
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
44
Voronoi-Diagramm von P1
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
55
Voronoi-Diagramm von P2
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
66
Was ist das schwierigste Teilproblem? - Merge
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
77
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 Tangenten
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
88
Tangente
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
99
Tangente – konvexe Hülle
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1010
Konvexe Hülle
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1111
Eine Tangente T an die Punktmenge P
• geht durch zwei Punkte von P• teilt die Ebene in zwei Halbebenen so, daß alle
Punkte in der gleichen Halbebene liegen• die Tangenten bestimmen die Lage der Kanten für
die neue konvexe Hülle beider Punktmengen• Konstruktion der Tangenten im Detail:
– später
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1212
Vereinigung
Mittelsenkrechte bilden
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1313
Vereinigung
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1414
Vereinigung
Aktive Voronoi-Regionen
Schnittpunkte mit Seg-menten suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1515
Vereinigung
Aktive Voronoi-Regionen
Schnittpunkte mit Seg-menten suchen
Neue aktive VR (Voronoi-Region)
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1616
Vereinigung
Aktive Voronoi-Regionen
Schnittpunkte mit Seg-menten suchen
Neue aktive VR
Mittelsenkrechte zuwischenden aktiven VR
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1717
Vereinigung
Schnittpunkte suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1818
Vereinigung
Schnittpunkte suchen
Neue aktive VR suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
1919
Vereinigung
Schnittpunkte suchen
Neue aktive VR suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2020
Vereinigung
Schnittpunkte suchen
Neue aktive VR suchen
Mittelsenkrechte deraktiven VR
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2121
Vereinigung
Schnittpunkte suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2222
Vereinigung
Schnittpunkte suchen
Neue aktive VR suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2323
Vereinigung
Schnittpunkte suchen
Neue aktive VR suchen
Mittelsenkrechte deraktiven VR
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2424
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2525
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Mittelsenkrechte deraktiven VR
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2626
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2727
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Mittelsenkrechte deraktiven VR
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2828
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
2929
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Mittelsenkrechte deraktiven VR
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3030
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3131
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Mittelsenkrechte deraktiven VR
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3232
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3333
Vereinigung
Nächsten relevanten Schnittpunkte suchen
Neue aktive VR suchen
Verknüpfung mit der Mittel-senkrechten vom Anfang
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3434
Vereinigung
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3535
Löschen der überflüssigen Segmente
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3636
Löschen der überflüssigen Segmente
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3737
Ergebnis: Voronoi-Diagramm von P
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3838
Datenstruktur für Voronoi-Diagramm
• Doppelt verkettete Kantenliste• Durchlaufen des Kantenumrings in linearer Zeit• Direkter Zugriff auf die benachbarten Maschen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
3939
Kosten
• wie lange dauert die Konstruktion des trennenden Kantenzuges?
• Zahl der Teilkanten / Knoten des Kantenzuges• Zahl Berechnungen von Schnittpunkten mit den
benachbarten Voronoi-Regionen
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
4040
Länge des Kantenzuges im Worst Case
O(n)
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
4141
Größenordnung des Kanten-Umrings im worst case
O(n)
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
4242
O(n) * O(n) = O(n2) ?
Voronoi-Regionen sind konvex
Kantenzug ist monoton
war jetzt alles umsonst?
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
4343
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!
Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00Lutz Plümer - Diskrete Mathematik II - SS 2000 - Vorlesung 8 - 08.06.00
4444
Top Related