Distanzprobleme in der Ebene

Werbung
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
Distanzprobleme in der Ebene - Christian Knauer
2
1
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)
Distanzprobleme in der Ebene - Christian Knauer
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?R2 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)
Distanzprobleme in der Ebene - Christian Knauer
4
2
Motivation: Postamtproblem
§
§
Gegeben: Eine Menge von n Punkten P={p1,…,p n} in der Ebene
Berechne: Die Unterteilung der Ebene in Regionen N1,…,N n,
so dass Ni = {p?R2|für alle 1=j=n: d2(p,pi )=d2(p,p j)} (inkl. einer
Datenstruktur, mit der man Punktlokalisierungsanfragen für
diese Unterteilung beantworten kann)
Distanzprobleme in der Ebene - Christian Knauer
5
Definition des Voronoi-Diagramms
§
Def.: Sei P={p1 ,…,pn}?R2 eine Menge von Punkten, sowie p,q?R2
§
§
§
§
§
B(p,q) := {x?R2 |d 2 (x,p) = d2 (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?R2 |für alle 1=j=n : d2 (x,p) = d2 (x,pj)} 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?R2 |es gibt 1=i<j=n: x?N(pi ,P) und x?N(pj,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
Distanzprobleme in der Ebene - Christian Knauer
6
3
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
Distanzprobleme in der Ebene - Christian Knauer
7
Eigenschaften des Voronoi-Diagramms
§
Lemma
§
Beweisidee
§
§
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)
N(p,P) = q?P\{p} N(p,q)
N(p,q) ist eine Halbebene
U
§
§
Distanzprobleme in der Ebene - Christian Knauer
8
4
Charakterisierung von Punkten
§
Lemma: Betrachte zu einem Punkt x?R2 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 p1 ,…,pk?P mit k>2 gdw.
x ist ein Voronoi-Knoten, an den die
Voronoi-Regionen von p1 ,…,pk angrenzen
Bew. à Übung
9
Distanzprobleme in der Ebene - Christian Knauer
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}?{v8 } und Kantenmenge
E={Voronoi-Kanten} betrachtet werden
(v8 ist ein zusätzlicher, „unendlich ferner“ Knoten, der zu allen
unbeschränkten Voronoi-Kanten inzident ist).
Die Behauptung folgt dann mit der Euler-Formel.
v8
Distanzprobleme in der Ebene - Christian Knauer
10
5
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*
Distanzprobleme in der Ebene - Christian Knauer
11
Eigenschaften der Dualität
§
Satz (ohne Beweis). Für einen zusammenhängenden,
planaren Graphen G gilt:
§
§
G* ist planar und zusammenhängend
G** ist isomorph zu G
Distanzprobleme in der Ebene - Christian Knauer
12
6
Definition der Delaunay-Triangulierung
§
Def.: Sei P?R2 eine Menge von Punkten
§
Bem.: DT(P) hat eine natürliche planare Einbettung:
§
§
§
DT(P) := VD(P)* bezeichnet den dualen Graphen des VoronoiDiagramms von P, die Delaunay-Triangulierung von P
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
Distanzprobleme in der Ebene - Christian Knauer
13
Triangulierungen von Punktmengen
§
§
§
Def.: Eine Triangulierung einer Menge von Punkten P?R2 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“)
Distanzprobleme in der Ebene - Christian Knauer
14
7
Delaunay ßà Voronoi
§
§
Lemma: Sei P?R2 eine Menge von n Punkten. Dann sind VD(P)
und DT(P) in O(n) Zeit auseinander konstruierbar.
Beweis: à Übung
Distanzprobleme in der Ebene - Christian Knauer
15
Anwendungen der Delaunay-Triangulierung
§
§
Lemma.: Sei P?R2 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.
Distanzprobleme in der Ebene - Christian Knauer
16
8
Anwendung: Alle nächsten Nachbarn …
§
§
Satz.: Sei P?R2 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 d2(p,r) < d2(p,q),
also q kein nächster Nachbar von p,
im Widerspruch zur Annahme.
C
p
Distanzprobleme in der Ebene - Christian Knauer
r
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).
Distanzprobleme in der Ebene - Christian Knauer
18
9
Anwendung: Minimaler aufspannender Baum …
§
§
Satz.: Sei P?R2 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(d2(p,r),
d2(q,r)) < d2(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.
C
p
q
e
r
T
Distanzprobleme in der Ebene - Christian Knauer
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).
Distanzprobleme in der Ebene - Christian Knauer
20
10
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
Distanzprobleme in der Ebene - Christian Knauer
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
Distanzprobleme in der Ebene - Christian Knauer
22
11
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
Distanzprobleme in der Ebene - Christian Knauer
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 VoronoiDiagramm
Distanzprobleme in der Ebene - Christian Knauer
24
12
… Charakterisierung von Delaunay-Dreiecken
§
… Beweis:
§ (1) ó (3): „<=“ Falls der Umkreis von ? leer
ist, so ist der U m-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)
s
p
q
C
r
B(p,q)
Distanzprobleme in der Ebene - Christian Knauer
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.
Distanzprobleme in der Ebene - Christian Knauer
26
13
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.
Distanzprobleme in der Ebene - Christian Knauer
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.
Distanzprobleme in der Ebene - Christian Knauer
28
14
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)
Distanzprobleme in der Ebene - Christian Knauer
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).
Distanzprobleme in der Ebene - Christian Knauer
30
15
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 ?*
Distanzprobleme in der Ebene - Christian Knauer
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
Distanzprobleme in der Ebene - Christian Knauer
32
16
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(n2) Lawson-Flips erreicht.
§ Man kann je zwei Triangulierungen T, T* durch O(n2)
Lawson-Flips ineinander überführen
Distanzprobleme in der Ebene - Christian Knauer
33
17
Herunterladen