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