Distanzprobleme in der Ebene (Literatur: deberg et al., Kapitel 7,9) Christian Knauer 1 Motivation: Alle nächsten Nachbarn Gegeben: Eine Menge von Punkten P in der Ebene Berechne: Zu jedem Punkt aus P alle seine nächsten Nachbarn 2
Motivation: Minimaler aufspannender Baum Gegeben: Eine Menge von Punkten P in der Ebene Berechne: Einen aufspannenden Baum von P der unter allen aufspannenden Bäumen von P die Summe der Kantenlängen minimiert ( minimaler aufspannender Baum MST) 3 Motivation: Nächster-Nachbar Anfragen Gegeben: Eine Menge von Punkten P in der Ebene Berechne: Eine Datenstruktur, mit der man zu einem Anfragepunkt q?r 2 die Menge N(q) aller Punkte aus P finden kann, die näher an q liegen, als alle Punkte aus P\N(q) (Nächster-Nachbar Anfrage) 4
Motivation: Postamtproblem Gegeben: Eine Menge von n Punkten P={p 1,,p n } in der Ebene Berechne: Die Unterteilung der Ebene in Regionen N 1,,N n, so dass N i = {p?r 2 für alle 1=j=n: d 2 (p,p i )=d 2 (p,p j )} (inkl. einer Datenstruktur, mit der man Punktlokalisierungsanfragen für diese Unterteilung beantworten kann) 5 Definition des Voronoi-Diagramms Def.: Sei P={p 1,,p n }?R 2 eine Menge von Punkten, sowie p,q?r 2 B(p,q) := {x?r 2 d 2 (x,p) = d 2 (x,q)} bezeichnet die Menge der Punkte in der Ebene, die von p und q den gleichen Abstand haben, den Bisektor von p und q N(p,P) := {x?r 2 für alle 1=j=n : d 2 (x,p) = d 2 (x,p j )} bezeichnet die Menge der Punkte in der Ebene, die näher an p als an allen Punkten aus P liegen, die Voronoi-Region von p bezüglich P VD(P) := {x?r 2 es gibt 1=i<j=n: x?n(p i,p) und x?n(p j,p)} bezeichnet die Menge der Punkte in der Ebene, die an mindestens zwei Voronoi-Regionen beteiligt sind, das Voronoi-Diagram von P Voronoi-Knoten: Punkt, der an mindestens drei Voronoi-Regionen beteiligt ist Voronoi-Kante: maximal zusammenhängende Menge von Punkten, die an genau zwei Voronoi-Regionen beteiligt sind 6
Elementare Eigenschaften (n=2) Bem.: B(p,q) ist die Mittelsenkrechte auf der Strecke pq N(p,q) ist die von B(p,q) begrenzte Halbebene B(p,q) = B(q,p) = VD({p,q}) N(p,q) p B(p,q) N(q,p) q 7 Eigenschaften des Voronoi-Diagramms Lemma Voronoi-Regionen sind konvex Voronoi-Kanten sind Strecken oder Strahlen (ohne Endpunkte), deren Endpunkte Voronoi-Knoten sind (Geraden treten genau dann als Voronoi-Kanten auf, wenn alle Punkte aus P auf einer Geraden liegen) Beweisidee N(p,P) = q?p\{p} N(p,q) N(p,q) ist eine Halbebene U 8
Charakterisierung von Punkten Lemma: Betrachte zu einem Punkt x?r 2 einen Kreis C(x) mit dem Mittelpunkt x, dessen Radius (der anfangs Null ist) sich langsam vergrössert. Zu einem gewissen Zeitpunkt wird C(x) zum ersten Mal auf einen (oder mehrere) Punkte aus P treffen. Dabei gilt C(x) trifft zuerst nur auf p?p gdw. x liegt in der Voronoi-Region von p C(x) trifft zuerst nur auf p,q?p gdw. x liegt auf der Voronoi-Kante zwischen den Voronoi-Regionen von p und q C(x) trifft zuerst nur auf p 1,,p k?p mit k>2 gdw. x ist ein Voronoi-Knoten, an den die Voronoi-Regionen von p 1,,p k angrenzen Bew. Übung 9 Komplexität des Voronoi-Diagramms Satz: Voronoi-Knoten + Voronoi-Kanten + Voronoi-Regionen =O(n) Beweis: VD(P) kann als planarer Graph G=(V,E) mit Knotenmenge V={Voronoi-Knoten}?{v 8 } und Kantenmenge E={Voronoi-Kanten} betrachtet werden (v 8 ist ein zusätzlicher, unendlich ferner Knoten, der zu allen unbeschränkten Voronoi-Kanten inzident ist). Die Behauptung folgt dann mit der Euler-Formel. v 8 10
Einschub: Dualität planarer Graphen Def. Sei G ein planarer Graph. Der duale Graph G* hat als Knoten die Facetten von G und für jede Kante e von G die zwei Facetten f und g trennt gibt es in G* eine Kante e* zwischen den Knoten f* und g*. G G* 11 Eigenschaften der Dualität Satz (ohne Beweis). Für einen zusammenhängenden, planaren Graphen G gilt: G* ist planarund zusammenhängend G** ist isomorph zu G 12
Definition der Delaunay-Triangulierung Def.: Sei P?R 2 eine Menge von Punkten DT(P) := VD(P)* bezeichnet den dualen Graphen des Voronoi- Diagramms von P, die Delaunay-Triangulierung von P Bem.: DT(P) hat eine natürliche planare Einbettung: die Einbettung einer Ecke v=n(p,p) von DT(P) - also einer Voronoi-Region von VD(P) - ist der Punkt p die Einbettung einer Kante e={u,v} von DT(P) ist die Verbindungsstrecke zwischen den Einbettungen von u und v 13 Triangulierungen von Punktmengen Def.: Eine Triangulierung einer Menge von Punkten P?R 2 ist ein planarer Graph mit den Punkten von P als Knoten, bei dem die innere Facetten alle Dreiecke sind, und dessen äussere Facette von den Kanten der konvexen Hülle von P beschränkt wird Bem.: Eine planarer Graph G mit den Punkten von P als Knoten ist genau dann eine Triangulierug von P, wenn keine Kante in G eingefügt werden kann, ohne die Planarität von G zu zerstören ( maximal planarer Graph ) Bem.: DT(P) ist eine Triangulierung von P gdw. es in P nicht mehr als drei Punkte gibt, die auf einem leeren Kreis liegen ( allgemeine Lage ) 14
Delaunay Voronoi Lemma: Sei P?R 2 eine Menge von n Punkten. Dann sind VD(P) und DT(P) in O(n) Zeit auseinander konstruierbar. Beweis: Übung 15 Anwendungen der Delaunay-Triangulierung Lemma.: Sei P?R 2 eine Menge von Punkten und p,q?p. Falls der Kreis (inklusive Rand) mit pq als Durchmesser keine weiteren Punkte von P enthält, dann ist pq eine Kante von DT(P). Bew.: Sei m der Mittelpunkt des leeren Kreises C(m) mit pq als Durchmesser. Aus obiger Charakterisierung von Punkten bezüglich des Voronoi-Diagramms folgt, dass m auf der Voronoi-Kante zwischen den Voronoi-Regionen von p und q liegt, also p und q in DT(P) durch eine Kante verbunden werden. 16
Anwendung: Alle nächsten Nachbarn Satz.: Sei P?R 2 eine Menge von Punkten. Jeder Punkt aus P ist mit seinen nächsten Nachbarn in DT(P) durch eine Kante verbunden. Bew.: Sei p?p und q ein nächster Nachbar von p der in DT(P) nicht mit p verbunden ist. Betrachten wir den Kreis C mit Durchmesser pq. Nach obigem Lemma liegt auf dem Rand oder im Inneren von C mindestens ein Punkt r. Damit ist d 2 (p,r) < d 2 (p,q), also q kein nächster Nachbar von p, im Widerspruch zur Annahme. p r C q 17 Anwendung: Alle nächsten Nachbarn Satz: Kennt man die Delaunay-Triangulierung DT(P) einer Menge von n Punkten P in der Ebene, dann kann man in O(n) Zeit für jeden Punkt aus P alle seine nächsten Nachbarn berechnen. Bew.: Um zu p?p alle seine nächsten Nachbarn zu finden, genügt es nach dem Lemma, die Nachbarn von p in DT(P) zu betrachten. Die Anzahl der insgesamt berechneten Abstände ist somit O(n). 18
Anwendung: Minimaler aufspannender Baum Satz.: Sei P?R 2 eine Menge von Punkten. Die Kanten jedes minimalen aufspannenden Baumes (MST) von P sind Kanten in DT(P). Bew.: Angenommen, e={p,q} ist eine Kante in einem MST S von P, die nicht in DT(P) ist. Nach dem Lemma liegt auf dem Rand oder im Inneren des Kreises C mit Durchmesser pq ein Punkt r, für den damit max(d 2 (p,r), d 2 (q,r)) < d 2 (p,q). Wird e aus S entfernt, so entstehen zwei Bäume T, U die zusammen P aufspannen. Falls r?u (r?t), entsteht durch einfügen der Kante pr (qr) ein aufspannender Baum S mit S < S, im Widerspruch zur Minimalität von S. T p C e r q U 19 Anwendung: Minimaler aufspannender Baum Satz: Kennt man die Delaunay-Triangulierung DT(P) einer Menge von n Punkten P in der Ebene, kann man in O(n log n) Zeit einen minimalen aufspannenden Baum von P berechnen. Bew.: Die Laufzeit des Algorithmus von Prim angewendet auf die Delaunay-Triangulierung DT(P) ist O(n log n). 20
Berechnung des Voronoi-Diagramms Gegeben: Eine Menge von n Punkten P in der Ebene Berechne: Das Voronoi-Diagramm VD(P) (als ebene Unterteilung oder planaren Graphen) Eine Datenstruktur, die effizient Punktlokalisierungsanfragen in VD(P) beantworten kann 21 Berechnung der Delaunay-Triangulierung Gegeben: Eine Menge von n Punkten P in der Ebene Berechne: Die Delaunay-Triangulierung DT(P) (als ebene Unterteilung) Eine Datenstruktur, die effizient Punktlokalisierungsanfragen in DT(P) beantworten kann 22
Untere Schranken Lemma: Die Voronoi-Region eines Punktes p?p ist genau dann unbeschränkt, wenn p auf dem Rand der konvexen Hülle von P liegt. Beweis: Übung Folgerung: aus VD(P) kann in O(n) Zeit die konvexe Hülle von P konstruiert werden jeder vergleichsbasierte Algorithmus zur Berechnung von VD(P) benötigt? (n log n) Schritte aus DT(P) kann in O(n) Zeit VD(P) konstruiert jeder vergleichsbasierte Algorithmus zur Berechnung von DT(P) benötigt? (n log n) Schritte 23 Charakterisierung von Delaunay-Dreiecken Lemma: Seien p,q,r?p und? das von diesen drei Punkten aufgespannte Dreieck. Dann sind folgende Aussagen äquivalent: 1) Das Dreieck? gehört zu DT(P) ( ist ein Delaunay-Dreieck ) 2) Der Umkreismittelpunkt von? ist ein Knoten von VD(P) 3) Der Umkreis von? enthält keinen Punkt von P Beweis : (2) (3): vgl. Charakterisierung von Punkten im Voronoi- Diagramm 24
Charakterisierung von Delaunay-Dreiecken Beweis: (1) (3): <= Falls der Umkreis von? leer ist, so ist der Um-kreismittelpunkt m von? ein Knoten von VD(P) (wg. der Äquivalenz (2) (3)). m ist der Schnittpunkt der Bisektoren von pq,qr,pr (Mittelsenkrechten), so dass in einer Umgebung von m diese Bisektoren als Voronoi-Kanten in VD(P) existieren. Damit gehört? zu DT(P). => Angenommen im Umkreis C von? gibt es einen weiteren Punkt s?p. Falls s??, dann gehört? nicht zu DT(P). Falls s?c\? (o.b.d.a.) zwischen p und q liegt, dann ist jedes x?b(p,q) entweder näher zu s als zu p und q, oder näher zu r als zu p und q. Damit gibt es keine Voronoi-Kante zwischen den Voronoi-Regionen von p und q und die Kante pq (und damit?) gehört nicht zu DT(P) p r s q C B(p,q) 25 Charakterisierung Delaunay-Triangulierung 1 Lemma: Sei T eine Triangulierung einer Menge von n Punkten P in der Ebene. Dann ist T=DT(P) gdw. der Umkreis jedes Dreiecks aus T leer ist. Bew.: Folgt unmittelbar aus der Charakterisierung von Delaunay-Dreiecken. 26
Lokal zulässige Dreiecke Def.: Sei T eine Triangulierung einer Menge von n Punkten P in der Ebene. Ein Dreieck? von T heisst lokal zulässig, falls die Ecken der zu? benachbarten Dreiecke nicht im Umkreis von? liegen. T heisst lokal zulässig, wenn in T alle Dreiecke lokal zulässig sind. 27 Charakterisierung Delaunay-Triangulierung 2 Lemma (ohne Beweis): Sei T eine Triangulierung einer Menge von n Punkten P in der Ebene. T=DT(P) gdw. T lokal zulässig ist. T=DT(P) gdw. T den kleinsten Innenwinkel maximiert. 28
Lokal zulässige Vierecke Def.: Sei T eine Triangulierung einer Menge von Punkten P in der Ebene. Ein Viereck? von P ist ein Paar von benachbarten Dreiecken?=?(p,q,r) und?*=?(p,q,s) von P (p,q,r,s?p). Das Viereck? heisst lokal zulässig, wenn s nicht im Umkreis von? liegt (und damit r nicht im Umkreis von?* liegt) 29 Charakterisierung Delaunay-Triangulierung 3 Lemma: Sei T eine Triangulierung einer Menge von n Punkten P in der Ebene. Dann ist T=DT(P) gdw. jedes Viereck in T lokal zulässig ist. Bew.: Sei? ein Dreieck von T.? bildet zusammen mit allen benachbarten Dreiecken?* lokal zulässige Vierecke. Damit ist auch? lokal zulässig und T=DT(P). 30
Lawson-Flip Def.: Sei T eine Triangulierung einer Menge von Punkten in der Ebene und? ein lokal unzulässiges Dreieck von T. Sei?* ein zu? benachbartes Dreieck, dessen Ecke nicht im Umkreis von? liegt. Die Operation, bei der wir in dem von? und?* gebildetem konvexen Viereck? die gemeinsame Kante e von? und?* durch die andere Diagonale von? ersetzen heisst Lawson-Flip in?.??? e? * 31 Eigenschaften des Lawson-Flip Lemma: Sei T eine Triangulierung einer Menge von Punkten in der Ebene und? ein lokal unzulässiges konvexes Viereck in T. Nach einem Lawson-Flip in? ist dieses Viereck lokal zulässig. Beweis: Übung 32
Algorithmus zur Berechnung von DT(P) Eingabe: eine Triangulierung T einer Menge P von n Punkten in der Ebene Ausgabe: die Delaunay-Triangulierung DT(P) von P while T enthält ein lokal unzulässiges konvexes Viereck? do führe den Lawson-Flip in? durch Bem.: Man kann zeigen, dass eine geflippte Kante nie wieder erscheint. Daher ist die Delaunay-Triangulierung nach O(n 2 ) Lawson-Flips erreicht. Man kann je zwei Triangulierungen T, T* durch O(n 2 ) Lawson-Flips ineinander überführen 33