Dilation in Dreiecks - Delaunay Triangulationen

Werbung
Rheinische Friedrich-Wilhelms-Universität Bonn
Institut für Informatik I
Markus Zilken
Dilation in Dreiecks Delaunay
Triangulationen
26.04.2006
Seminararbeit im SS 2006
Betreuer: Ansgar Gruene
Zusammenfassung
Delaunay-Triangulationen mit Dreiecks-Distanzfunktion haben eine besondere Eigenschaft: In diesen Graphen legt man nur wenig mehr
Weg entlang den Kanten zwischen zwei Punkten A und B zurück ,
als würde man die direkte Verbindung zwischen A und B in einem
vollständigen Graphen benutzen. Dies hat den Vorteil, dass man bei n
Knoten im Graph nur O(n) Kanten hat, anstatt O(n2 ) im vollständigen Graphen. Es wird gezeigt, dass der Faktor, den der Weg von A
nach B, den man entlang Kanten des Graphs nimmt, länger ist als
die (gedachte) direkte Verbindung zwischen beiden Punkten, durch eine obere Schranke von 2 begrenzt ist. Gezeigt wird
√ dies, indem wir
für einen Spezialfall zunächst eine obere Schranke 3 nachweisen, und
dies dann auf den allgemeinen Fall erweitern.
Inhaltsverzeichnis
1 Einführung
1.1 Motivation . . . . . . . . . . .
1.2 Dilation . . . . . . . . . . . . .
1.3 Voronoi-Diagramme . . . . . .
1.4 Delaunay-Triangulationen . . .
1.5 Konstruktion einer angepassten
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
Delaunay Triangulation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
2
3
4
2 Aufstellung und Beweis des Theorems
7
2.1 Das Theorem zur oberen Dilations-Schranke 2 . . . . . . . .√.
7
2.2 Einschränkung auf einen Spezialfall mit der oberen Schranke 3 8
2.3 Beweis der Schranke ≤ 2 . . . . . . . . . . . . . . . . . . . . . 14
3 Einordnung, Anwendungen und Ausblick
1
16
1
1.1
Einführung
Motivation
Hat man einen vollständigen Graphen auf einer Menge S von n Punkten , so
hat man zwar die kürzestmögliche Pfadlänge entlang Kanten des Graphen
zwischen zwei beliebigen Punkten des Graphen, dieser Graph hat allerdings
O(n2 ) Kanten, was für viele Anwendungen zuviel ist. Hier hätte man gerne
O(n) Kanten, dies erfüllt zum Beispiel ein planarer, zusammenhängender
Graph. Dadurch handelt man sich allerdings, im Vergleich zum vollständigen Graphen, eine längere Weglänge zwischen zwei Punkten ein, wo der Weg
zwischen zwei Punkten ja immer dem “direkten Luftweg“ entspricht. Diesen
Faktor zwischen den beiden Wegmöglichkeiten nennt man Dilation (siehe
Section 1.2). Wir zeigen nun, dass es eine Sorte planarer, zusammenhängender Graphen gibt, für die dieser Umweg zwischen zwei beliebigen Punkten
des Graphen maximal doppelt so lang ist wie die geradlinige Verbindung
zwischen den Punkten. Diese Sorte Graphen sind die Delaunay Triangulationen auf Basis einer konvexen Dreiecks-Distanzfunktion. Diese Ausarbeitung
basiert auf einem Artikel von L.P. Chew [1].
1.2
Dilation
Sei G ein planarer, zusammenhängender Graph, und seien A und B zwei
beliebige Punkte aus G. dG (A, B) bezeichnet dann die Länge eines kürzesten Pfades von A nach B in G und d(A, B) den direkten euklidischen
Abstand zwischen A und B. Die Dilation zwischen beiden Punkten ist
G (A,B)
definiert. Die Dilation δ(G) eines Graphen ist dann das
dann als dd(A,B)
G (A,B)
) aller disjunkten Knotenpaare A, B des Graphen.
max( dd(A,B)
1.3
Voronoi-Diagramme
Ein Voronoi-Diagramm zu einer endlichen Punktmenge S im IR2 ist ein geometrischer Graph, der diese Ebene in Bereiche einteilt, die Voronoi-Regionen
V R. Innerhalb einer Voronoi-Region zu einem Punkt p aus S hat p für alle
Punkte der Region den kleinsten Abstand aller Punkte aus S, gemessen an
der festgelegten Distanzfunktion. V oronoi − Kanten verlaufen dort, wo der
euklidische Abstand zu den zwei nächsten Punkten p und q aus S gleich groß
ist, sie verlaufen also orthogonal zur gedachten Strecke pq genau in der Mitte
von pq. Sie bilden die Kanten des Voronoi-Diagramms. V oronoi − Knoten
befinden sich in den Schnittpunkten von Voronoi-Kanten, diese Punkte sind
von den drei oder mehr nächsten Punkten aus S gleichweit entfernt, und
bilden die Knoten des Voronoi-Diagramms. Mehr dazu kann man in Rolf
Kleins Buch Älgorithmische Geometrie”nachlesen [3].
2
1.4
Delaunay-Triangulationen
Die Delaunay-Triangulation lässt sich am besten mit Hilfe der VoronoiDiagramme erklären. Eine Delaunay-Zerlegung einer Punktmenge S in der
Ebene ist der duale Graph des zu S gehörenden Voronoi-Diagramms, wobei die Kanten direkte, geradlinige Verbindungen sind. Haben die VoronoiRegionen zweier Punkte aus S eine gemeinsame Voronoi-Kante, so werden
die beiden Punkte durch eine geradlinige Kante verbunden, auf diese Weise
erhält man die Delaunay-Triangulation von S.
Ein Beispiel für ein euklidisches Voronoi-Diagramm und die zugehörige
Delaunay-Triangulation gibt Abbildung 1. Siehe hierzu ebenfalls auch [3].
Eine wichtige Definition im Zusammenhang mit Delaunay-Triangulationen
ist die folgende
Definition 1 Eine Kante in einem geradlinigen, planaren Graphen G erfüllt
die Leerer-Umkreis-Eigenschaft, wenn es einen durch die Endpunkte dieser
Kante verlaufende Kreis gibt, welcher keine Knoten des Graphen in seinem
Inneren enthält. Trifft dies für alle Kanten von G zu, so spricht man davon,
dass G die Leerer-Umkreis-Eigenschaft erfüllt.
Eine Delaunay-Triangulation ist eine Triangulation von S, welche die LeererUmkreis-Eigenschaft erfüllt.
Denn: In einer Delaunay Triangulation sind zwei Punkte genau dann
durch eine Kante verbunden, wenn ihre Regionen aneinander grenzen, wenn
also ihr Bisektor Anteil am Voronoi-Diagramm hat. Seien p, q zwei solche Punkte aus S, die Nachbarn im Voronoi-Diagramm sind, und sei z
ein Punkt auf deren Bisektorstück, das im Voronoi-Diagramm auftaucht.
Dann gilt nach Definition d(p, z) = d(q, z) < minx∈S\{p,q,z}d(x, z). Mit den
gleichen Argumenten lässt sich die Rückrichtung zeigen: Falls es für zwei
Punkte p, q aus S einen Punkt z ∈ R2 gibt, so dass d(p, z) = d(q, z) <
minx∈S\{p,q,z}d(x, z) gilt, dann sind p und q Voronoi-Nachbarn.
Nun ist ja d(p, z) der Faktor, mit dem man den auf dem Punkt p zentrierten Einheitskreis vergrößern/verkleinern muss, damit z auf seinem Rand
liegt. Es ist leicht zu sehen, dass dies dem Faktor entspricht, mit dem man
eine auf dem Punkt z zentrierte, punkt-gespiegelte Kopie des Einheitskreises
vergrößern/verkleinern muss, damit p auf dessen Rand liegt.
Die oben begründeten Beziehungen zwischen d(p,z), d(q,z) und d(x,z)
für x ∈ S \ {p, q, z} lässt sich also wie folgt übersetzen. Wenn man eine
in z zentrierte, punkt-gespiegelte Kopie des Einheitskreises, sich mit immer
größer werdenden Skalierungsfaktoren so lange ausbreiten lässt, bis der Rand
auf weitere Punkte von S trifft, dann trifft er als erstes (gleichzeitig) auf p
und q. Der so enthaltene punkt-gespiegelte und skalierte Einheitskreis um
z, ist ein leerer Umkreis um das Liniensegment pq.
3
Abbildung 1:
Triangulation.
1.5
Voronoi-Diagramm
und
entsprechende
Delaunay-
Konstruktion einer angepassten Delaunay Triangulation
In diesem Abschnitt definieren wir uns eine spezielle Art von DelaunayTriangulation, auf der wir nachher unsere Schranke beweisen wollen. Zusätzlich legen wir uns noch etwas “Handwerkszeug“ zurecht, dass beim Beweis
von Nutzen sein wird.
Wenn wir normalerweise von einem Voronoi-Diagramm oder einer DelaunayTriangulation reden, gehen wir davon aus, dass diese auf Basis der euklidischen Distanz erzeugt wurden. Es gibt aber durchaus andere Distanzfunktionen, die benutzt werden können. Hier benutzen wir nun eine konvexe
Distanzfunktion (siehe nächster Absatz), genauer: Ein gleichseitiges Dreieck.
Bei der euklidischen Distanzfunktion kann man den Abstand zweier
Punkt ermitteln, indem man einen Kreis, den Einheitskreis, mit seinem
Mittelpunkt in den einen Punkt setzt, und ihn solange vergrößert, oder
schrumpft, bis der Kreisrand den anderen Punkt schneidet. Der so erhaltene Vergrößerungsfaktor entspricht genau dem Abstand zwischen den beiden Punkten. Nach diesem Verfahren kann man nun auch beliebige andere
konvexe “Einheitskreise“ benutzen, die ich aufgrund der Einfachheit weiterhin als (Um)Kreis oder Einheitskreis bezeichne, obwohl man sich immer
klarmachen sollte, dass es sich dabei nicht um einen Kreis im euklidischen
Sinne handeln muss, dieser ist wie gesagt nur ein Spezialfall. Das Zentrum
des Kreises muss auch nicht genau im Mittelpunkt der konvexen Form, also
z.B. dem Schwerpunkt oder Schnitt der Mittelsenkrechten, liegen, wie beim
euklidischen Kreis im Schwerpunkt. Das Zentrum kann sich irgendwo im Innern befinden. Wichtig ist bei Distanzfunktionen mit konvexen Kreisen die
Orientierung des Kreises zur Ebene/zum Graphen, welche beim euklidischen
Kreis irrelevant ist. Später wird dies noch deutlich werden.
4
Wie oben erwähnt, benutzen wir ein gleichseitiges Dreieck als Distanzfunktion zum Aufbau des Voronoi-Diagramms, aus dem dann die zugehörige Delaunay-Triangulationen erzeugt wird. Die Ausrichtung des Dreiecks
ist in Abbildung 2 zu sehen. Das Diagramm ist exakt so definiert wie das
Standard-Voronoi-Diagramm, mit Ausnahme eben der geänderten Distanzfunktion. Das so entstehende sogenannte TD -Voronoi-Diagramm (aus dem
Abbildung 2: Der verwendete Kreis der Distanzfunktion.
Englischen: equiliteral triangle convex distance function Voronoi diagram)
unterscheidet sich in seiner Gestalt vom in Section 1.3 definierten VoronoiDiagramm. So haben die Voronoi-Regionen nicht mehr zwingend konvexe
Form. Trotzdem ist der entstandene Graph planar. Aus diesem TD-VoronoiDiagramm kann man nun direkt auf bekannte Weise eine TD-DelaunayTriangulation erzeugen, der Ausgangspunkt für den Beweis unserer Schranke. Die oben definierte Leerer-Umkreis-Eigenschaft gilt mit Modifikationen
(siehe nächster Absatz) auch für unsere TD-Delaunay-Triangulation, wir
nutzen diese Eigenschaft später noch. Einen Eindruck davon vermittelt Abbildung 3.
Dazu müssen wir den Begriff der Triangulation in unserem Fall ein wenig
einschränken, denn nicht alle Bedingungen, die für eine Triangulation gelten müssen, werden zwingenderweise von einer TD-Delaunay-Triangulation
erfüllt. Die konvexe Hülle einer triangulierten Punktmenge etwa muss gleich
der Außenkanten der Triangulation sein, dies ist z.B. in Abbildung 4 nicht
der Fall, würden wir rechts die fehlende Kante einfügen, so wäre für diese
Kante die Leerer-Umkreis-Eigenschaft nicht erfüllt.
Um diesen Misstand zu beheben, müssen wir für unsere Zwecke die
Triangulations-Bedingungen insofern etwas abschwächen, und definieren unsere Delaunay-Triangulation stattdessen wie folgt:
Definition 2 Eine Delaunay-Triangulation einer Menge von Punkten S ist
ein maximaler planarer, geradliniger Graph auf S, der die Leerer-UmkreisEigenschaft erfüllt.
Maximal heisst, es können keine weiteren Kanten hinzugefügt werden,
ohne die geforderten Eigenschaften zu verletzen. Diese Definition gilt für
5
Abbildung 3: Eine TD-Delaunay-Triangulation und das zugehörige TDVoronoi-Diagramm.
sämtliche Delaunay-Triangulationen, die auf konvexen Distanzfunktionen
beruhen.
Eine weitere nützliche Eigenschaft von Delaunay Triangulationen ist eine Art Erweiterung der Leerer-Umkreis-Eigenschaft auf ganze Dreiecke des
Graphen:
Für jedes Dreieck des Graphen, welches keine weiteren Punkte oder Kanten in seinem Innern enthält, gibt es einen Umkreis, der durch die drei
Eckpunkte des Dreiecks verläuft, und in dessen Innern sich keine weiteren
Knoten des Graphen befinden.
Dies lässt sich analog zur Leerer-Umkreis-eigenschaft für Kanten begründen; zwischen drei Punkten p,q,r existiert genau dann ein DelaunayDreieck, wenn sein Umkreis, also die skalierte und punkt-gespiegelte Kopie
des Einheitskreises, die durch alle drei Punkte verläuft, leer ist. Man benutzt
diesmal nur, dass ein Delaunay-Dreieck zwischen p, q und r genau dann existiert, wenn die drei Voronoi-Regionen in einem Knoten aneinandergrenzen.
Ein Beispiel ist in unserer schon bekannten Delaunay-Triangulation in
Abbildung 5 zu sehen. Das Umkreis-Dreieck im betrachteten Fall ist zum
Dreieck der konvexen Distanzfunktion vertikal gespiegelt.
Nachdem wir nun alle nötigen Voraussetzungen geschaffen haben, können
wir nun übergehen zum Beweis unserer Schranke, wozu im nächsten Abschnitt ein Theorem aufgestellt und bewiesen wird.
6
Abbildung 4: TD-Delaunay-Triangulation mit beispielhaftem leerem Umkreis durch eine Kante.
2
2.1
Aufstellung und Beweis des Theorems
Das Theorem zur oberen Dilations-Schranke 2
Vorgehen: Zum Beweis, dass in der TD-Triangulation für alle Knotenpaare
A, B die Länge des kürzesten verbundenen Pfades ≤ 2|AB| ist, werden wir
nach Aufstellung des Theorems erst einmal einen eingeschränkten, leichter
zu √
zeigenden Spezialfall beweisen, mit einer Pfadlängenbeschränkung von
≤ ( 3)|AB|, um diesen dann zum Beweis der allgemeingültigeren Schranke
zu nutzen.
Theorem 3 Sei S eine Menge von Punkten in der Ebene und T TDDelaunay-Triangulation auf S. Dann ist für jeden kürzesten Pfad zwischen
zwei Knoten A und B, entlang Kanten aus T , die euklidische Pfadlänge
≤ 2|AB|, wobei |AB| die gewöhnliche euklidische Distanz zwischen A und
B bezeichnet.
Zuerst müssen wir die Delaunay-Triangulation auf die gesamte Ebene ausweiten, um den Beweis zu vereinfachen. Dabei hilft uns ein Kniff:
Wir definieren
drei zusätzliche
Knoten im Unendlichen, genauer bei w(2, 0),
√
√
w(−1, 3) und w(−1, − 3), wobei wir w nach ∞ laufen lassen (Abbildung 6). Es ist kein Zufall, dass es sich um genau drei Knoten handelt: Diese
3 Punkte entsprechen einer sehr großen Version des gleichseitigen Dreiecks,
welches wir als Umkreis verwenden. Diese Technik ähnelt der, ein VoronoiDiagramm in der unendlichen Ebene zu begrenzen, indem man es durch eine
große Ausgabe seines Umkreises begrenzt (im gewöhnlichen Fall ein normaler Kreis). Die Aussage des Theorem 3 wird dabei nicht eingeschränkt, da
7
Abbildung 5: TD-Delaunay-Triangulation mit beispielhaftem leerem Umkreis durch ein Dreieck.
man sich leicht klarmachen kann, dass Punkte in der Unendlichkeit niemals
Teil einer endlichen Wegstrecke sind.
2.2
Einschr
√ änkung auf einen Spezialfall mit der oberen Schranke 3
Nun das Lemma zum angekündigten Spezialfall, eine Abbildung hierzu ist
Abbildung 6.
Lemma 4 Sei S eine Menge von Punkten in der Ebene, und T eine TD
Delaunay Triangulation auf S, der Umkreis sei orientiert wie in Abbildung 2.
Gibt es nun zwei Punkte A und B, so dass die Strecke AB horizontal verläuft,
dann
√ gibt es einen Pfad von A nach B entlang Kanten aus T mit Länge
≤ 3|AB|.
Beweis.
Um die Existenz eines solchen Pfades zu beweisen, werden wir im Folgenden einen Algorithmus aufstellen, Algorithm 2.1, der den Pfad mit den
geforderten Eigenschaften berechnet, und zeigen, dass der Algorithmus korrekt arbeitet.
8
Algorithm 2.1 Pfad-Algorithmus
Beginn:
Füge zu S die drei oben definierten Punkte im Unendlichen hinzu. Dadurch wird T zu einer Ansammlung von zusammenhängenden Dreiecken,
wobei für jedes Dreieck die Leerer-Umkreis-Eigenschaft für Dreiecke erfüllt
ist.
Sei L die horizontale Strecke zwischen A und B, dann kann man o.B.d.A
annehmen, dass A links von B liegt (andernfalls Benennung umkehren),
und dass keine weiteren Knoten außer A und B auf L liegen (ansonsten
unterteile L zwischen A und diesem weiteren Knoten V , und zwischen V
und B weiter, und wende den Algorithmus rekursiv auf die Teilstrecken
an). Definiere nun T als Teilgraph von T , der nur die Delaunay-Dreiecke
enthält, die L schneidet (Abbildung 7). T besteht nur aus einer Reihe von
Dreiecken, die man von Links nach Rechts auf L durchlaufen kann.
Der Pfad wird konstruiert, indem man entlang von Knoten Kanten aus
T’ entlang läuft , und sich dabei jedesmal den aktuellen Knoten Pi aus T’
merkt. der Startpunkt P0 ist dabei der Punkt A.
Schritt 1
Δ sei nun das in T Rechteste aller Dreiecke, welches Pi als Knoten enthält,
C ist der leere Umkreis durch das Dreieck Δ.
/* Dadurch, dass wir Δ als das zwischen a und B Rechteste der Dreiecke
mit Knoten Pi definiert haben, ist Pi nun natürlich der am weitesten Links
liegende Knoten von Δ. Dadurch liegt einer der beiden anderen Punkte
von Δ ganz automatisch oberhalb von L und von Pi aus im Uhrzeigersinn
entlang C, der andere Punkt dementsprechend unterhalb L und von Pi
aus gegen den Uhrzeigersinn entlang C. Bezeichne diese Punkte mit Xa
für den oberen und Xb für den unteren Punkt. Ein möglicher Sonderfall
ist, dass entweder Xa oder Xb dem Punkt B entspricht, und damit genau
auf L liegt, für diesen Fall definiere B als sowohl über als auch unter L
liegend. */
Schritt 2 (Siehe Abbildung 8)
if Pi liegt auf der oberen Linken Kante von C then
laufe im Uhrzeigersinn um C
else if Pi liegt auf der unteren linken Kante von C then
laufe gegen den Uhrzeigersinn um C
else if Pi liegt auf der rechten Kante von C then
laufe in Richtung L
end if
Schritt 3
Laufe in der in Schritt 2 gewählten Richtung auf C, bis entweder Xa oder
Xb erreicht wird. Speichere diesen Punkt als Pi+1 .
if Pi+1 = B then
Fertig, verlasse den Algorithmus.9
else
erhöhe i um 1; gehe zu Schritt 1
end if
Abbildung 6: TD-Delaunay-Triangulation mit horizontaler Strecke AB und
Knoten im Unendlichen..
Abbildung 7: T zum Graphen T aus Abbildung 6.
Der zu Beginn des Algorithmus definierte Graph T besteht immer aus
vollständigen Dreiecken, da wir zu der ursprünglichen TD-Triangulation die
drei Punkte im unendlichen hinzugefügt und diese mittrianguliert haben.
Dadurch läuft L immer durch Dreiecke des Graphen, für den Algorithmus
hat dies keine Auswirkungen. Betrachten wir ein Dreieck mit einem Eckpunkt im Unendlichen, so ist das Umkreis-Dreieck auch unendlich gross,
daher auch der oberhalb von L liegenden Teil. Pi muss demnach auf der unteren linken Kante des Umkreis-Dreiecks liegen, und der Algorithmus wählt
den Weg gegen den Uhrzeigersinn und besucht dabei dementsprechend nur
endliche Kanten.
10
Abbildung 8: Umlaufrichtung um C in Schritt 2.
Mit rechtestes Dreieck in Schritt 1 ist gemeint, dass die Dreiecke von
zwischen A und B entlang L angeordnet sind. Das Dreieck, welches in A
beginnt, ist dabei von allen Dreicken aus T das Linkeste, das das in B
endet, das Rechteste.
Die in Schritt 1 des Algorithmus durchgeführte Fallunterscheidung funktioniert, denn würden etwa Xa und Xb beide auf derselben Seite von L liegen,
so liefe L nicht durch das gerade betrachtete Dreieck, was ein Widerspruch
wäre.
Die so aus dem Algorithmus gewonnene Knotenfolge {Pi } mit dazwischenliegenden Kanten aus T nennen wir Pfad P . Wir zeigen nun wie angekündigt, dass P allen Bedingungen des Lemmas 4 genügt.
Lemma 5 : Die Dreiecke Δ in Algorithm 2.1 sind von Links nach Rechts
entlang L angeordnet.
Beweis. Folgt trivialerweise aus der Benutzung des jeweils rechtesten Dreiecks in Schritt 1.
2
Lemma 6 : Algorithm 2.1 terminiert, mit einem Pfad von A nach B.
Beweis. Folgt daraus, dass wir bis zum Ende immer benachbarte Punkte
durchlaufen: In Schritt 1 wählen wir Xa und Xb aus T ja gerade so aus,
dass sie zu Pi aus T benachbart sind. Einer der beiden Punkte Xa oder
Xb wird in Schritt 3 dann als Pi+1 gesetzt, und der Algorithmus für diesen
Knoten erneut durchlaufen, also ist {Pi } ein Pfad entlang Kanten aus T .
Da es aber nur endlich viele Dreiecke und damit nur endlich viele Kanten
und Knoten in T geben kann, folgt, dass Algorithm 2.1 terminiert.
2
Nun führen wir einen weiteren Pfad zu P ein, der Π genannt wird. Dieser
Pfad benutzt dieselbe Knotenmenge {Pi } wie P , allerdings läuft er andere
Kanten entlang. Diese Kanten sind Kanten bzw. Stücke von Kanten des
Umkreis-Dreiecks C des aktuell betrachteten Dreiecks Δ im Algorithm 2.1.
Abbildung 9 verdeutlicht dies. Die von C benutzen Kantenstücke sind exakt
11
die Stücke, auf denen wir in Schritt 2 und 3 entlanglaufen, Π lässt sich also
ohne Mehraufwand während des Durchlaufs von Algorithm 2.1 erstellen.
Wichtig ist noch festzuhalten, dass die Kanten von Π eine ganz bestimmte
Abbildung 9: Ein Δ aus T mit Kantenstück aus P , und der dazugehörige
Umkreis C mit zugehörigem Stück von Π.
Ausrichtung haben, dadurch, dass sie dem gleichwinkligem Umkreis-Dreieck
enstammen. Nimmt man die horizontale Linie L als 0 Grad, und bedenkt,
dass alle Winkel in C 60 Grad haben, so bleiben als mögliche Winkel nur
4 Möglichkeiten: ±30 Grad und ±90 Grad. Dadurch, dass wir im weiteren
eine obere Schranke für die Länge von Π finden, können wir auch eine obere
Schranke für P erhalten. Dazu muss nun |P | gegen |Π| abgeschätzt werden:
Lemma 7 : Seien P und Π wie zuvor definiert. Dann gilt: |P | ≤ |Π| (Die
Pfadlänge von P ist kürzer oder gleich der von Π).
Beweis. Den Beweis erhält man ganz einfach aus Anwendung der Dreiecksungleichung, besteht das Stück von Π aus zwei Kantenstücken von C, so sind
diese immer länger als der direkte Weg von Pi nach Pi+1 auf einer Kante
von Δ. Besteht das Stück von Π nur aus einem Kantenstück von C, so sind
die Stücke aus P und Π zwangsläufig deckungsgleich.
2
Damit können
√
√ wir nun den Beweis von Lemma 4 abschließen. Gefordert
war |P |/|L| ≤ 3. Nach dem Beweis von Lemma 7 reicht uns |Π|/|L| ≤ 3.
Hierzu unterteilen wir L und Π in Teilstrecken, die jeweils an den Schnittpunkten von L und Π starten und enden. Die Menge aller dieser Unterteliungen bezeichnen wir mit {Lj |j ∈ {1, ..., n−1}} und und {Πj |j ∈ {1, ..., n−1}},
im folgenden auch kurz {Lj } und {Πj } (Abbildung 10). Die addierte Länge
dieser Teilstücke sei ab jetzt mit |{Πj }| und
√ |{Lj }| bezeichnet. Nun müssen
wir nur noch für alle j, |{Πj }|/|{Lj }| ≤ 3 zeigen. Um einen Eindruck von
der Form der Stücke zu bekommen, schauen wir uns ein paar Eigenschaften
an, die die Teilstücke für alle j besitzen: Die Eigenschaften der Stücke {Lj }
12
Abbildung 10: Beispiel für ein Πj und ein Lj zwischen A und B.
sind ja trivial ersichtlich: es handelt sich um horizontale Strecken. Es reicht
deshalb, uns nur auf die Form der Strecken {Πj } zu konzentrieren. für j = 1,
dem Beginn der Strecke, liegt das erste Dreieck Δ nach Definition rechts von
P0 = A. Da A demnach entweder auf der linken oberen oder unteren Kante
des Umkreises C liegt, muss der Winkel der ersten Teilstrecke entweder +30
oder −30 Grad betragen, da unser Algorithmus in Schritt 2 nur diese beiden Möglichkeiten hat in der Anfangskonfiguration. Für jedes weitere j ist
das Anfangsstück wiederum das über L hinausgehende Endstück der letzten Teilstrecke Πj−1 . Ein Wegstück kreuzt L aber offensichtlich nur, wenn
Pi sich oberhalb von L und gleichzeitig auf der unteren linken Kante von
C befindet, oder Pi liegt unterhalb von L und gleichzeitig auf der oberen
linken Kante von C. Dies kann man direkt daraus ersehen, dass wir im Algorithmus jeweils immer das rechteste Dreieck als neues Dreieck ausgewählt
haben, und führt dazu, dass nur die Winkel ±30 Grad für den Start von
Segment Πj möglich sind.
O.B.d.A können wir uns außerdem auf ein oberes Teilstück der {Πj }
konzentrieren, denn die unteren Teilstücke lassen sich einfach symmetrisch
entlang L nach oben “klappen“, ohne dass sich dabei ihre Form oder Länge
ändert.
Schritt 2 des Algorithmus betrachtend, haben wir es so nur noch mit zwei
möglichen Winkeln in ganz Πj zu tun: +30 Grad oder −90 Grad, ausgenommen die letzte Teilstrecke am Ende von Πj (Siehe auch linkes Teilbild von
Abbildung 11). Andere Winkel kann es nicht geben, denn ansonsten würden
wir auf dem Umkreisdreieck einen Weg entlanggehen, der nicht Schritt 2
entspricht. Dann wäre aber Δ nicht das rechteste der möglichen Dreiecke
von Pi , es ergäbe sich ein Widerspruch. Wie man in Abbildung 11 erkennen
kann, wechseln sich Winkel von +30 Grad und −90 Grad ab, gefolgt von
einem Endstück mit −30 Grad am Ende von Πj , das ja im weiteren Verlauf
L schneidet und zum Anfangsstück von Πj+1 wird. Diese Form kann man
vereinfachen, in dem man Stücke nach oben “faltet“, wodurch sich die Länge
von Πj nicht ändert, denn es handelt sich im Grunde genommen lediglich
um Parallelverschiebungen von Teilstrecken (Abbildung 11 rechts). So erhalten wir in Πj nur noch 3 Teilstrecken, eine am Anfang mit +30 Grad,
13
Abbildung 11: Ein mögliches Πj in Originalform und ausgeklappt (rechts).
danach eine abwärts mit −90 Grad und zum Schluß das Endstück mit −30
Grad. Nun kann man leicht erkennen, dass |Πj |/|Lj | um so größer wird, je
kleiner die Länge des Endstückes in Πj ist. Im Worst Case führt dies zu
einem rechtwinkligen Dreieck mit den weiteren Innenwinkeln 30 Grad und
60 Grad, wie in Abbildung 12 erkennbar. Dies liefert uns automatisch die
Abbildung 12: Worst Case Dreieck mit Seitenverhältnissen.
Seitenverhältnisse im Dreieck, denn hat die Hypothenuse
die Länge d, so
√
1
haben die Katheten die Längen d sin 60 = 2 d 3 bzw. d sin 30 = 12 d (Siehe
auch [4]), so dass die Seitenlängen von Πj (Hypotenuse +
√ Gegenkathete)
√
|/|Lj | = (1 + 1/2)/( 3/2) = 3 steund Lj (Ankathete) im Verhältnis |Πj√
hen. Damit haben wir das Verhältnis 3 in einem Teilstück Πj gezeigt. Es
gilt:
√
√
√
|Π |
|Πj | ≤
3|Lj | ⇒
|Πj | ≤
∀j : |Ljj | ≤ 3 ⇒ |Πj | ≤ 3|Lj | ⇒
√
√
√ |Πj |
3 |Lj | ⇒ |L | ≤ 3 ⇒ |Π|
3
|L| ≤
j
√
Durch Lemma 7 folgt nun |P |/|L| ≤ 3. Somit ist Lemma 4 bewiesen.
2
2.3
Beweis der Schranke ≤ 2
Nachdem dieser Spezialfall abgehandelt ist, bleibt die Frage: Was passiert,
wenn A und B nicht auf einer horizontalen Linie liegen? Was muß man
vom eben gesehenen Beweis abändern, um ihn auf den allgemeinen Fall
übertragen zu können? Die Antwort lautet erfreulicherweise: Recht wenig.
14
Beweis.(Theorem 3) Um die Einschränkung auf die horizontale Lage der
Strecke AB aufzuheben, werden wir die mögliche Ausrichtung der Strecke
AB im Verhältnis zur Orientierung des Umkreis-Dreiecks C vom bisher einzig betrachteten Wert 0 Grad auf einen 60 Grad breiten Korridor von +30
bis −30 Grad erweitern. Warum diese Orientierungen ausreichen, und wir
nicht alle Orientierungen zwischen −180 Grad und +180 Grad betrachten
müssen, sehen wir, indem wir C mit einem seiner Knoten in A platzieren,
ohne die Orientierung des Dreiecks zu verändern, so dass die Strecke AB
durch C verläuft. Dies erläutert Abbildung 14. Der Winkel β darf dabei nur
bestimmte Werte annehmen, in Abbildung 14 durch Sektoren markiert. Die
zulässigen Winkelgrößen in Grad sind: −30 ≤ β ≤ 30, 90 ≤ β ≤ 150, oder
−150 ≤ β ≤ −90. Dies deckt, wie man sieht, nur die Hälfte der möglichen
Werte für β ab. Die anderen Werte kann man aber abdecken, indem man
C mit einer Ecke nicht in A, sondern in B platziert, und entsprechend die
Punktebezeichnungen tauscht. O.B.d.A kann man so nun, evtl. noch durch
Drehen des gesamten Bildes, davon ausgehen, dass C in A platziert wurde,
und α, das den Winkel zwischen der Strecke AB und der Winkelhalbierenden durch A von C bezeichnet, zwischen −30 und +30 Grad beträgt.
Abbildung 15 zeigt diese Lage. Nun können wir den Beweis von Lemma 4
fast unverändert übernehmen, nur dass die Strecke AB nicht mehr auf der
Horizontalen liegt, sondern um den Winkel α abweicht. Abbildung 16 zeigt
nun die Seitenverhältnisse, die sich wie folgt herleiten lassen:
Für das untere Dreieck gilt: Da wir den Winkel in B nicht kennen,
drücken wir beide Katheten durch α aus, analog zu Abbildung 12. Für das
obere Dreieck gilt ebenfalls nach Abbildung 12: Die gesuchte Hypothenuse
(= X) steht in folgendem Zusammenhang:
d cos α = X sin 60 Grad, dies
√
1
lässt sich auflösen zu d cos α = X 2 3 ⇒ X = √23 d cos α. Die Gegenkathete
ist dann 12 (X).
√
Man erhält
dadurch ein Verhältnis von |Πj|/|Lj | ≤ ((2 + 1)/ 3) cos α +
√
sin α = ( 3) cos α + sin α. Das Maximum dieses Ausdrucks ist 2 und liegt
bei α = 30 Grad, wie man in Abbildung 13 oder durch Berechnung sieht.
Für α = 0 Grad gilt automatisch Lemma 4. Liegt Πj unterhalb von L,
und nicht oberhalb, wie eben angenommen, so ergibt sich dennoch mit den
selben Methoden ebenfalls eine Grenze von 2 für den unteren Fall. Damit
ist Theorem 3 bewiesen.
2
15
√
Abbildung 13: Die Funktion ( 3) cos α+ sin α zwischen 0 Grad und 30 Grad
(Π/6) ≈ 0, 52, mit Maximum bei 30 Grad.
3
Einordnung, Anwendungen und Ausblick
Welche Auswirkungen ergeben sich nun aus diesem Theorem? Die Dilation
in einem planaren, geradlinigen Graphen hat entscheidende Bedeutung für
verschiedene Anwendungen in der realen Welt. So ist das Ergebnis dieses
Theorems besonders für die Netzwerkplanung in der Informatik, aber auch
für Verkehrswegeplanung oder Durchflußplanung interessant. Zum einen ist
natürlich die Garantie interessant, dass die Dilation nicht größer als 2 ist,
dies spart zum Beispiel Zeit oder Treibstoff, unterstützt durch den Aspekt,
dass die TD-Delaunay-Triangulation ja ein planarer Graph ist und als solcher O(n) Kanten enthält, wobei n die Anzahl der gegebenen zu verbindenden Knoten ist. Dies führt zu erheblich weniger benötigten Kanten als bei
einem vollständigen Graphen, bei dem jeder Knoten mit jedem verbunden
ist, und der zwar eine Dilation von 1 aufweist, aber zum einen nicht kreuzungsfrei ist, was bei gewissen Anwendungen, etwa der Verkehrsplanung in
der Ebene, Probleme bereiten kann, und zum anderen die hohe Anzahl an
Kanten hohe Kosten verursachen kann.
Die obere Schranke 2 für TD-Delaunay-Triangulationen ist bis heute
die niedrigste bekannte Dilations-Schranke für eine Klasse von planaren
Graphen, die zu jeder vorgegebenen Punktmenge einen zugehörigen Graphen enthält. Insbesondere ist es die beste bekannte obere Schranke für
den Wert Δ := supP ⊆IR2 ,|P |<∞(infG=(P,E)planar δ(G)), wobei δ(G) wie in
16
Abbildung 14: Mögliche Winkel für das Umkreis-Dreieck und Strecke AB.
Abbildung 15: Ausgangs-Orientierung von C auf AB.
Section 1.2 definiert ist. Die untere Schranke Δ ≥ Π2 wurde gezeigt, indem man die Knotenmenge von regelmässigen n-Ecken benutzte, vgl. dazu
D.Eppstein, “Spanning Trees and Spanners“, S. 20ff. [2]. Obwohl mindestens seit dem Erscheinen dieses Artikels 1989 vermutet wird, dass der Wert
Δ = Π2 ist, genauer, dass für die euklidische Delaunay-Triangulation DT gilt:
∀P : δ(DT (P )) ≤ Π2 , wurde dies bis heute weder bewiesen noch widerlegt.
17
Abbildung 16: Worst Case Seitenverhältnis im allgemeinen Fall.
Literatur
[1] L. P. Chew. There are planar graphs almost as good as the complete
graph. Journal of Computer and System Sciences, 39:205–219, 1989.
[2] D. Eppstein.
Spanning Trees and Spanners.
http://www.ics.uci.edu/ eppstein/pubs/Epp-TR-96-16.pdf.
1996.
[3] R. Klein. Algorithmische Geometrie. Springer Verlag, 2005.
[4] WWW. http://mathworld.wolfram.com/30-60-90triangle.html.
Alle Abbildungen dieses Dokumentes bis auf Abbildung 2, Abbildung 10
Abbildung 13 und Abbildung 14 wurden aus [1] übernommen.
18
Herunterladen