RHEINISCHE FRIEDRICH-WILHELMS-UNIVERSITÄT BONN INSTITUT FÜR INFORMATIK I ______________________________________________________________________________ Shanni Cai Verbindende gefärbte Punktmengen 31. Oktober 2006 ______________________________________________________________________________ ______________________________________________________________________________ Seminararbeit im WS 2006/2007 Betreuer: Martin Köhler Sanaz Kamali 1 Zusammenfassung In dieser Ausarbeitung wird ein Ramsey-Typ-Problem betrachtet. Gegeben ist eine zweifarbige Menge S von n Punkte in der Ebene, d.h. jeder Punkt von S ist rot oder blau gefärbt. Sei S = B∪R (R∩B=∅). Wir wollen in Ο(nlogn) Laufzeit einen kreuzungsfreien Spannbaum T(R) für R und einen kreuzungsfreien Spannbaum T(B) für B finden. Die Anzahl von Kreuzungen zwischen T(R) und T(B) und der Durchmesser von T(R) und T(B) sollen klein bleiben. Wir untersuchen zuerst den Fall des Dreieckes. Wenn CH(S) ein blaues oder ein rotes Dreieck ist, existiert eine Triangulation von S, die einen (roten) Spannbaum für R, einen (blauen) Spannbaum für B und einen grünen Spannbaum für S hat. Die drei Spannbäume können in O(nlogn) Laufzeit berechnet werden. Dann untersuchen wir eine allgemeine Punktmenge, die eine beliebige Anzahl von Punkten auf ihrer konvexen Hülle CH(S) haben. Sei g die Anzahl der grünen Kanten von CH(S). Sei h die Anzahl von Knoten von CH(S). In O(nlogn) Laufzeit können wir einen blauen kreuzungsfreien Spannbaum T(B) für B und einen roten kreuzungsfreien Spannbaum T(R) für R finden. T(B) und T(R) kreuzen sich minimal oft und haben den Durchmesser O(logn+h). Der Algorithmus ist nicht kompliziert und kann ohne eine nicht-triviale Datenstruktur implementiert werden. 2 Inhaltsverzeichnis 1. Einführung 2. Der Fall vom Dreieck 3. Allgemeine zweifarbige Mengen 4. Varianten 4.1 Gespitztheit 4.2 Starrheit 4.3 Extremitätsbäume 4.4 Flippdistanz 3 1. Einführung Wir möchten ein Ramsey-Typ Problem untersuchen. Zuerst lernen wir die Ramsey-Theorie kennen. Der Ursprung der Ramsey-Theorie ist nicht eindeutig. Frank Plumpton Ramsey war ein britischer Mathematiker und Logiker. F. P. Ramsey interessierte sich in seiner Arbeit von 1930 für Entscheidungsprobleme in logischen Systemen. Dabei erkannte er den heute nach ihm benannten Satz auch als eigenständig wichtig, war aber in erster Linie an dessen Anwendung für besagte Entscheidungsprobleme interessiert. Ein klassisches Beispiel der Ramsey-Theorie ist das sogenannte ,,Partyproblem“: Wieviele Gäste muss man auf eine Party einladen, so dass es auf jeden Fall drei Personen gibt, die alle einander entweder kennen oder nicht kennen. Dabei wird vorausgesetzt, dass ,,einander kennen“ eine symmetrische Beziehung ist, d.h. wenn eine Person eine Andere kennt, so ist dies auch in umgekehrter Richtung der Fall. Wir können dieses Problem als graphentheoretisches Problem interpretieren: Gegeben sei ein vollständiger Graph der Größe k, dessen Kanten blau oder rot gefärbt sind. Wie groß ist k zu wählen, damit es immer einen einfarbigen vollständigen Teilgraph der Größe 3 gibt? Der klassische Satz von Ramsey (1930): Enthält ein Graph hinreichend viele Knoten (abhängig von k), so enthält er entweder eine vollständige oder eine unabhängige Knotenmenge der Größe k. Beim so genannten Satz von Ramsey betrachtet man eine Verallgemeinerung des ,,Partyproblems“. Dabei werden nun Färbungen mit r verschiedenen Farben betrachtet, und man fragt nach vollständigen Teilgraphen dieser Größe. Zusätzlich werden Hypergraphen anstelle gewöhnlicher Graphen betrachtet. Der Satz von Ramsey stellt sicher, dass es stets eine Lösung gibt, d.h. eine der geforderten Beziehungen ist stets erfüllt, wenn wir nur hinreichend viele Knoten betrachten. Hier möchten wir noch ein paar Grundbegriffe erwähnen. Man kann einen Graphen 2 G = (V, E) im R oder auf einer anderen Fläche geometrisch realisieren, indem man seine Knoten auf paarweise verschiedene Punkte abbildet und seine Kanten auf einfache Wege, die die entsprechenden Punkte verbinden und unterwegs keine anderen Punkte berühren. Das Ergebnis nennt man einen geometrischen Graphen, d.h. in solch einem Graph sind keine drei Punkte auf einer Linie, wobei die Kanten gerade Liniensegmente sind, die zwei Punkte verbinden. Sei S eine Menge von n Punkten in eindeutiger Position in einer Ebene. Sei S = B∪R (R∩B=∅) eine zweifarbige Menge von n Punkten, d.h. mit zwei beliebigen Farben ist jeder Punkt in R rot und jeder Punkt in B blau. Mit zwei Farben können wir einen geometrischen Graph K(S) konstruieren. Die Kanten von K(S), die zwei gleichfarbige Punkte verbinden, haben dieselbe Farbe. Die anderen Kanten von K(S) sind grün, wobei Grün die dritte Farbe ist. Finden einen monochromatischen Subgraph von K(S) mit speziellen Eigenschaften, ist ein Thema der klassischen Ramsey-Theorie. Ein kreuzungsfreier geometrischer Graph G ist ein Graph, bei dem sich keine Kanten kreuzen. Zwei geometrische Graphen G 1 and G2 heißen kompatibel, wenn keine Kante von 4 G 1 eine Kante von G 2 kreuzt. Wir möchten untersuchen, wie ein kreuzungsfreier Spannbaum T(R) für R und ein kreuzungsfreier Spannbaum T(B) für B so konstruiert werden können, dass die Anzahl der Kreuzungen zwischen T(R) und T(B), sowie der Durchmesser von T(R) und T(B), klein bleiben. Zur Bezeichnung von unteren Schranken dient die Omega-Notation. Es seien f, g Funktionen von natürlichen Zahlen, in die nicht-negativen reellen Zahlen. Man definiert: g ∈ Ω( f ): ⇔ f ∈ Ο( g ) ⇔ es gibt n 0 ≥ 0 und c > 0, so dass g(n) ≥ cf(n) für alle n ≥ n 0 gilt. Und man definiert: Ο( f ) = {g; es gibt n 0 ≥ 0 und C > 0, so dass g(n) ≤ Cf(n) für alle n ≥ n0 gilt}, und für ein g ∈ Ο( f ) sagt man: g “ist (in) groß Ο von f“. Inhaltlich bedeutet das, dass fast überall die Funktion g durch f nach oben beschränkt ist – bis auf einen konstanten Faktor. Man verwendet die Theta – Notation g∈ Θ( f ): ⇔ g ∈ Ο( f ) und g ∈ Ω( f ), um auszudrücken, dass g und f etwa gleich groß sind. Diese Beziehung ist offenbar eine Äquivalenzrelation. 2. Der Fall vom Dreieck Sei S eine zweifarbige Punktmenge. Ein Dreieck, das drei Punkte in S überspannt, heißt rotes Dreieck, wenn genau eine Kante von ∆ rot ist. Es heißt blaues Dreieck, wenn genau eine Kante von ∆ blau ist. Jedes rote oder blaue Dreieck hat zwei grüne Kanten. z.B. Abbildung 1: ein blaues Dreieck und ein rotes Dreieck 5 Eine Teilmenge K von R d heißt konvex, wenn sie zu je zwei Punkten p, q auch das Liniensegment pq enthält. Für eine beliebige Teilmenge S des R d ist ch(S) = I K die K ⊇S K konvex kleinste konvexe Menge, die S enthält. Sie wird die konvexe Hülle von S genannt. Hier ist ch(S) die konvexe Hülle von S. z. B: Abbildung 2 : Eine Menge S von 12 Punkten in der Ebene und ihre konvexe Hülle Lemma 1 Sei S = B∪R eine zweifarbige Menge von n Punkten, so dass CH(S) ein rotes oder blaues Dreieck ist. Es existiert eine Triangulation von S, die einen (roten) Spannbaum für R, einen (blauen) Spannbaum für B, und einen grünen Spannbaum für S enthält. Beweis: Wir können die Induktion über die Punktanzahl von S im Inneren des Dreieckes ∆ anwenden. Wir nehmen an, ∆ ist ein rotes Dreieck. ∆ hat eine einzige rote Kante r r 1 2 und einen einzigen blauen Knoten. (Falls ∆ ein blaues Dreieck ist, dann hat ∆ eine ähnliche Situation. ∆ hat eine einzige blaue Kante und einen einzigen roten Knoten.) Sei b die inneren blauen Punkte und r die inneren roten Punkte. In dem Fall von r + b = 0 ist das Lemma trivial. CH(S) ist rot. Wir unterscheiden zwei Fälle: Zuerst, falls b = 0 und r > 0, können wir b 1 mit jedem roten inneren Punkt von ∆ verbinden und einen Fächer der grünen Kante erhalten. Wir verbinden die roten Punkte in der Reihefolge der Fächer und bekommen einen roten Weg, indem wir entweder r 1 oder r 2 verbinden. Wir erhalten den resultierenden Graph durch Triangulation, der dann drei Spannbäume enthält. (Siehe Abbildung 3). 6 b 1 r r 1 2 Abbildung 3: 1.Fall der Teilung eines roten Dreieckes Wenn b > 0, wählen wir verbinden wir b 2 mit r 1 2 von ∆ und verbinden r 2 b und b 2 und b 1 mit einer blauen Kante. Dann mit zwei grünen Kanten. Dann wird ∆ von drei Dreiecken mit weniger inneren Punkten geteilt. Jedes Dreieck hat genau zwei grüne Kanten und eine rote oder blaue Kante. (Siehe Abbildung 4). b 1 b r 2 r 1 2 Abbildung 4: 2. Fall der Teilung eines roten Dreieckes 7 Durch Induktion existiert die Triangulation im Dreieck, die einen Spannbaum für R wegen r r 1 2 , einen Spannbaum für B wegen der Kante für S wegen dem gemeinsamen Punkt b 2 bb 1 2 , und einen grünen Spannbaum hat. Wir möchten zeigen, dass eine Laufzeit O(nlogn) durch die Teilung von Dreiecken in einer ausgewogenen Weise erreicht werden kann. Dafür können wir das Teilungsergebnis von Lemma 2 benutzen. Lemma 2 Sei I eine Menge von k Punkten in Inneren eines Dreieckes ∆ . Es existiert ein Punkt p∈I, so dass die drei Dreiecke, die durch Teilung des Dreieckes mit den Kanten von p nach Knoten von ∆ entstehen, jeweils höchstens 2k Punkte 3 von I enthalten. p kann in der Zeit O(k) berechnet werden. p Beweis: Sei c ein fester Knoten von ∆ . Sei I. Der Punkt p k 3 und der Punkt p 2k 3 1 ,..., p k die zyklische Reihe der Punktmenge kann mittels eines mediane Algorithmus in O(k) Laufzeit berechnet werden. Die zwei Strahlen, die wir als cp k 3 und cp 2k 3 jeweils definieren, teilen I in drei Submengen A, B und C der Größe höchstens k . (Siehe Abbildung 5). 3 c Abbildung 5: balancierte Teilung 8 Um das Dreieck zu teilen, wählen wir als p einen Punkt in B mit minimalem Abstand zur Linie, durch die Kante von ∆, gegenüber von c. Die daraus resultierenden drei Dreiecke enthalten höchstens 2k 3 Punkte von I, weil die zwei Dreiecke, die c als Knoten haben, keinen Punkt von A oder von C enthalten. Und das dritte Dreieck enthält keinen Punkt von B\{ p }. B und p können durch Überprüfung jedes Punktes in I in O(k) Zeit gefunden werden. Jetzt können wir das folgende Lemma beweisen: Lemma 3 Die drei Spannbäume in Lemma 1 können in O(nlogn) Zeit berechnet werden. Beweis: Sei S eine Menge von n Punkte, d.h. ⎢S ⎢= n. Wir nehmen an, dass CH(S) ein blaues ∆ oder ein rotes Dreieck 0 ist. Sei R und B jeweils die Menge der roten und der blauen 0 0 ∆ . Sei r = R0 , b0 = B 0 . Wir nehmen r > 0 und b0 > 0 an. Falls ∆ blau ist, finden wir mittels Lemma 2 einen Punkt p ∈ R , der ∆ in drei Dreiecke 2 ∆ , ∆ und ∆ teilt. Jedes Dreieck enthält höchstens r Punkte von R . Wenn ∆ rot ist, Punkte von S in Inneren von 0 0 0 0 0 0 0 1 3 2 wählen wir p∈ B0 so, dass höchstens 0 3 ∆ ∆ ,∆ in drei Dreiecke 0 1 2 ∆ und 3 0 geteilt wird und jedes 2b Punkte von B enthält. Dadurch werden R und B jeweils in drei 3 Submengen 0 0 0 R i und B i 0 (i = 1, 2, 3) geteilt. Diese Schritte gehen in Zeit O( r 0 + b 0 ), die auch die Zeit für die Konstruktion des roten, blauen und grünen Spannbaum enthält. Wir machen mit jedem ∆ i weiter, bis r i = R i und ∆ i blau, oder b i = B i und ∆ i rot ist. Dieser Prozess kann durch einen Ternärbaum T ( siehe Abbildung 6 ) repräsentiert werden, dessen Knoten Dreiecke ∆ j sind und durch die Menge ( R j , B j ) charakterisiert werden. Ein Ternärbaum ist ein Baum, bei dem jeder Knoten höchstens drei Kinder hat. Die Wurzel von T ist ( R0 , B0 ) und für jede Ebene von T ist die totale Anzahl der Punkte in der Menge für ihre Knoten höchstens n = ⎜S⎢. Falls ( R j , B j ) kein Blatt von T ist, haben wir für jedes ihrer 2 2 ≤ r j und bk ≤ b j . Damit ist die Höhe r j und bk ≤ b j , oder r k 3 3 von T in O(logn). Weil alle Punkte in jeder Ebene des Baumes maximal einmal betrachtet werden, braucht man in jeder Ebene den maximalen Aufwand O(n). Deshalb kann T in der Zeit O(nlogn) konstruiert werden. Wir beachten, dass der rote Baum und der blaue Baum einen Durchmesser von O(logn) haben. Wir müssen noch den Spannbaum für die Blätter von T berechnen. Jedes Blatt ist ein Dreieck ∆’ mit einer einfarbigen inneren Menge X. Wir Kinder ( Rk , Bk ) r k ≤ 9 beachten, dass die Farbe von ∆’ mit der Farbe von X übereinstimmen. Die korrespondierenden grünen und roten (jeweilig grünen und blauen) Spannbäume können wir durch Sortieren von X zyklisch nach den Knoten von ∆’ in Zeit O(nlogn) für alle Blätter berechnen. ( R0 , ( R1 , B 1 ) ( R2 , ......... B k ) B 2 ) ........... ) ( R3 , ......... ( Rj , B j ) ( Rk , 0 B ........ B 3 ) .............. ....... .......... .......... Abbildung 6: ein Ternärbaum 3. Allgemeine zweifarbige Mengen Jetzt möchten wir eine Verallgemeinerung von Lemma 1 für Punktemengen beweisen. Sei S=B∪R. CH(S) sei beliebig. 10 Lemma 4 Sei S = B∪R eine beliebige zweifarbige Punktmenge, und sei g die Anzahl von grünen Kanten von CH(S). Es existiert eine Triangulation von S, die einen grünen Spannbaum für S, einen (blauen) Spannbaum für B, und einen (roten) g 2 Spannwald für R mit genau max{ ,1} Komponenten enthält. Beweis: Wir nehmen an, dass CH(S) rote und blaue Punkte in Inneren hat. Wir wissen, dass g gerade ist. Wir unterscheiden zwei Fälle. Falls g = 0, so ist die Menge der Knoten auf CH(S) einfarbig. Hier wählen wir Blau. Der rote Fall wäre symmetrisch. Wir wählen irgendeinen inneren Punkt p aus und verbinden p mit jedem Knoten von CH(S) mit einer grünen Kante. (Siehe Abbildung 7). Abbildung 7: Fächer, um rotes und blaues Dreieck zu bekommen(1. Fall) Dies teilt CH(S) in blaue Dreiecke. In jedem Dreieck existiert die Triangulation, die rote, blaue und grüne Spannbäume wie in Lemma 1 beschrieben erhält. Für solch zwei beliebige Dreiecke, bei denen Bäume mit gleicher Farbe in Inneren schon verbunden sind, gilt: Blaue Bäume über die Kante von CH(S) verbunden, und die roten und grünen Bäume treffen sich am Punkt p. Dies beweist das Lemma für den Fall g = 0. Sei g ≥ 2. Wir wählen irgendeinen blauen Knoten q von CH(S) aus und verbinden q mit den anderen blauen Knoten von CH(S), so dass CH(S) wie folgt Polygone geteilt wird: Jedes Polygon hat genau zwei grüne Kanten. Die Anzahl der Polygone ist damit der Fächer leer und CH(S) ist das einzige Polygon. (Siehe Abbildung 8): 11 g . 2 Falls g = 2, ist Abbildung 8: Nach der Teilung hat jedes Polygon genau zwei grüne Kanten. Wir triangulieren jedes dieser Polygone Q (wenn Q kein Dreieck mehr ist) durch Konstruktion von zwei Fächern mit grünen Kanten, die jeweils in einem blauen Knoten b und einem roten Knoten von CH(S) konzentriert sind. (Siehe Abbildung 9): Abbildung 9: Fächer, um rotes und blaues Dreieck zu bekommen(2. Fall ) Jedes Dreieck ist dabei blau oder rot. Deshalb enthält es eine Triangulation, die rote, blaue und grüne Bäume wie in Lemma 1 erhält. In einem festen Polygon Q sind zwei blaue Spannbäume (für Dreiecke von Q) über b oder über blaue Kanten von Q verbunden; zwei rote Spannbäume sind über r oder über rote Kanten von Q verbunden, und zwei grüne Spannbäume beinhalten gemeinsam b oder r oder sie sind durch die Kante br verbunden. Außerdem gilt für verschiedene Polygone Q und Q’: Ihre blauen Bäume und ihre grünen Bäume (aber nicht ihre roten Bäume) sind über dem blauen Knoten q von CH(S), den wir g oben gewählt haben, verbunden. Weil es g grüne Kanten in der konvexen Hülle gibt und 2 Polygone existieren, wird für jedes dieser Polygone ein roter Spannbaum konstruiert. Deshalb g existieren rote Spannbäume für R. Dies beweist das Lemma für den Fall g ≥ 2. 2 12 Jetzt möchten wir das wichtigste Ergebnis beweisen: Theorem 5 Sei S = B∪R eine zweifarbige Menge von n Punkten. Sei h die Anzahl des Knotens von CH(S). In der Laufzeit O(nlogn) können wir einen blauen kreuzungsfreien Spannbaum T(B) für B, und einen roten kreuzungsfreien Spannbaum T(R) für R berechnen, so dass T(B) und T(R) sich minimal oft kreuzen und beide Bäume einen Durchmesser von O(logn+h) haben. Beweis: Im Dreiecksfall möchten wir kompatible blaue und rote Spannbäume von kleinem Durchmesser bekommen, deshalb müssen wir die Konstruktion wie im Beweis von Lemma 1 etwas ändern. Wir beachten hier den grünen Baum nicht mehr. Sei CH(S) ein blaues Dreieck. Im Fall r = 0 und b > 0 verbinden wir jeden blauen inneren Punkt von ∆ mit irgendeinem der zwei blauen Knoten von ∆ (besser als mit dem roten Knoten). Siehe Abbildung 10. Mittels der Strategie im Beweis vom Lemma 3 erhalten rote und blaue Bäume vom Durchmesser O(logn) für den Dreiecksfall in Zeit O(nlogn). Abbildung 10: Verbindung jedes blauen inneren Punkt mit irgendeinem blauen Scheitelpunkt Basierend auf dieser Modifikation wird die Konstruktion im Beweis vom Lemma 4 benutzt. Wir erhalten einen blauen kreuzungsfreien Spannbaum T(B) für B, und einen roten kreuzungsfreien Spannwald F(R) für R, so dass T(B) und F(R) kompatibel sind. Der Baum T(B), sowie jede Komponente von F(R) hat den Durchmesser O(h+logn). Sei g die Anzahl der grünen Kanten von CH(S). Wenn g ≤ 2, dann ist F(R) schon ein Baum. Sei nun g ≥ 4. Jede Komponente C von F(R) liegt im Subpolygon Q(C) von CH(S). (Angrenzende) Subpolygone Q( C1 ) und Q( C 2 ) haben eine gemeinsame blaue Diagonale, bb’ von CH(S). Eine Diagonale eines einfachen Polygon P mit n Ecken ist ein Liniensegment zwischen zwei Ecken, das in P enthalten ist, aber mit dem Rand von P nur seine Endpunkte gemeinsam hat. Eine Diagonale zerlegt das Polygon immer in zwei echte Teilpolygone. z.B: 13 Abbildung 11: d ist eine Diagonale. f und g sind keine Diagonalen. Außerdem ist durch die Konstruktion im Beweis vom Lemma 1 bb’ die gemeinsame Kante der zwei blauen Dreiecke bb’r und bb’r’, siehe Abbildung 12: r’ r Abbildung 12: Der rote Baum und der blaue Baum kreuzen nur einmal. Die Punktemengen B 1 und B 2 , die die Dreiecke enthalten, sollen blau sein. Wir beobachten, dass bb’r ∪ bb’r’ ein konvexes Viereck ist und deshalb das Liniensegment rr’ enthält. Der Baum T(B) verbindet die Punkte in B 1 und B mittels blauer Kanten, mit entweder b oder b’. Diese 2 blauen Kanten können so geändert werden, dass keine das Liniensegment rr’ kreuzen. Das heißt, es muss für alle blauen Punkte aus B 1 und B entschieden werden, ob sie links von rr´ liegen 2 (dann werden sie mit b verbunden) oder ob sie rechts von rr´ liegen (dann werden sie mit b´ verbunden). Wenn wir die roten Komponenten C 14 1 und C 2 mit der Kante rr’ verbinden, kreuzt der daraus resultierende rote Baum T(B) auf einer einzigen Kante, bb’. Dann ergibt sich die Laufzeit O(⎜ B1 ⎜+⎜ B2 ⎜) für Q( C1 ) und Q( C 2 ). Insgesamt gibt es genau g 2 aufeinander folgende angrenzende Subpolygon Q(C). Das bedeutet, dass, wenn F(R) zu einem Baum T(R) verbunden ist, dieser T(B) genau g 2 -1 Mal kreuzt. Außerdem hat T(R) einen Durchmesser von O(g+h+logn) = O(h+logn). Korollar 6 Sei S eine rot-blaue Menge von n Punkten. Entscheidend ist, ob S kompatible blaue, rote und grüne kreuzungsfreie Spannbäume zulässt, und konstruieren diese Bäume im Falle von ihrer Existenz. Dies kann in Zeit Ο(nlogn) getan werden. Wenn wir CH(S) berechnen, und untersuchen, ob die Anzahl ihrer grünen Kanten höchstens zwei sind, können wir das Entscheidungsproblem lösen. Alle die benötigten Algorithmen brauchen Ο(n) Platz. 4. Varianten 4.1 Gespitztheit Ein geometrischer geradliniger Graph heißt gespitzt, wenn für jeden seiner Knoten v von dem Graph irgendeine Halbebene existiert, die durch einer Linie durch v begrenzt wird und alle Kanten zu v enthält. Eine Halbebene ist die Menge aller Punkte, die auf einer Seite einer gegebenen Geraden liegen. Nicht jede Triangulation enthält einen gespitzten Spannbaum. In Lemma 4 können sowohl der blaue Spannbaum T(B) als auch der rote Spannwald F(R) gezwungen werden, gespitzt zu sein, wenn sie in einer gemeinsamen Triangulation liegen. Die Knoten von CH(S) sind immer gespitzt. Erstens, im Fall von g = 0, müssen wir irgendeinen roten Innenpunkt p wählen, um CH(S) in blaue Dreiecke aufzuspalten. Wähle p in minimalem Abstand zu der Grenze von CH(S), wird p gespitzt garantiert, wenn rote Kanten später zu p hinzufügt werden: Alle roten Punkte liegen in der Halbebene begrenzt von einer Linie durch p parallel zu einer Kante von CH(S). Zweitens, in der Konstruktion im Beweis von Lemma 1, müssen wir irgendeinen roten Punkt r innerhalb eines blauen Dreieckes ∆ wählen. Wir können r wieder in minimalem Abstand zu der ( einzigartigen ) blauen Kante von ∆ nehmen. Weil nur rote Kanten innerhalb eines Dreiecks ∆ zu r hinzufügen werden, ist r gespitzt garantiert. Auch wir müssen jede monochromatische Punktmenge innerhalb eines Dreieckes von derselben Farbe durch einen Weg verbinden. Aber diese Punkte haben höchstens den Grad zwei und sind gespitzt. Dies garantiert die Gespitztheit von F(R) mit der Konstruktion, die gerade beschrieben wurde. Das Argument für die Gespitztheit von T(B) ist analog. 15 Wir beobachten, dass der entsprechende grüne Spannbaum noch nicht gespitzt sein kann. 2 Beachte, dass die Berechnungszeit für T(B) und F(R) auf Θ( n ) im schlechtesten Fall erhöht, wenn Aufspaltung nicht mehr in einer ausgeglichenen Weise existiert. 4.2 Starrheit Ein geometrischer Graph G heißt starr, wenn der einzige Weg zur Verschiebung eines Knoten von G, ohne die Länge von irgendeiner Kante in G zu ändern, ist, alle Kanten von dem Graph verschieben. G heißt minimal starr, wenn G starr ist, aber diese Eigenschaft löst, sobald irgendwelche seiner Kante entfernt wird. Der blaue, der rote und der grüne Graph in Lemma 4 zusammen erbringen einen minimal starren Graphen, M, wenn der rote Spannwald F(R) zu einem Baum in einer beliebigen Weise verbunden ist. Die Anzahl der Kanten von M ist genau 2n-3, nämlich, n-1 in dem grünen Baum, ⏐B⏐ - 1 in dem blauen Baum, und ⏐R⏐ - 1 in dem roten Baum. Außerdem hat jeder Subgraph von M mit k ≥ 2 Knoten höchstens 2k – 3 Kanten, weil solch ein Subraph aus einem Wald jeder Farbe auf der jeweiligen Anzahl von Knoten besteht. Das heißt, M ist ein sogenannter Laman-Graph und ist minimal starr. Sei G = (V, E) ein Graph mit n Knoten und m Kanten. G ist ein Lamam-Graph, falls m = 2n-3 und jede Untermenge von k ≥ 2 Knoten höchstens 2k-3 Kanten hat. Ein Graph G mit n Knoten ist genau dann ein Laman-Graph, wenn er eine Henneberg-Konstruktion, angefangen mit einer Kante (n = 2), besitzt. Henneberg I – Schritt: Ein neuer Knoten wird durch zwei neue Kanten mit zwei schon vorhandenen Knoten verbunden. Henneberg II – Schritt: Ein neuer Knoten wird auf einer schon vorhandenen Kante hinzugefügt (dadurch wird die alte Kante in zwei Kanten geteilt) und mit einem dritten Knoten durch einen neue Kante verbunden. Z. B.: (a) (b) (c) Abbildung 13: (a) Henneberg I – Schritt, (b) und (c) Henneberg II – Schritt. Tatsächlich bilden der rote, der blaue und der grüne Graph eine sogenannte 3T2 Zerlegung von M. 16 4.3 Extremitätsbäume Wenn die Spannbäume T(R) und T(B) wie in Theorem 5 benutzt werden, wieviel Länge ist verloren, im Vergleich zu den minimalen Spannbäumen MST(R) und MST(B) von R und B? Abbildung 14: Viele lange blaue Kanten Weil die Spannbäume, die in Theorem 5 konstruiert werden, wenige Überschneidungen haben, werden sie länger als minimal Spannbäume. Von der Abbildung 14 können wir erkennen, dass das Längeverhältnis zwischen T(B) und MST(B) beliebig schlecht sein kann, nämlich, Θ(n). 4.4 Flippdistanz Wie sieht die Flippendistanz der Delaunay-Triangulation von S = B∪R zu irgendeiner Triangulation aus, die die Spannbäume für beide Submengen R und B enthält? Die Delaunay-Triangulation ist ein gebräuchliches Verfahren, um aus einer Punktemenge ein Dreiecksnetz zu erstellen. In einer Delaunay-Triangulation erfüllen alle Dreiecke des Dreiecksnetzes die sogenannte Umkreisbedingung: Der Umkreis eines Dreiecks des Netzes darf keine weiteren Punkte der vorgegebenen Punktmenge enthalten. Die DelaunayTriangulation ist nicht eindeutig, falls auf einem Umkreis mehr als drei Punkte liegen, d. h. der Anwender kann sich beliebig aussuchen, welche drei Punkte er zu einem Dreieck verbindet. Flippen basiert auf einer lokalen Auswertung der Umkreisbedingung. Zunächst wird mit einem einfachen Algorithmus ein beliebiges Dreiecksnetz erzeugt. Dieses muss keineswegs die Umkreisbedingung erfüllen, es darf lediglich keine sich überschneidenden Kanten enthalten. Dann wird für jeweils zwei Dreiecke, die eine Seite gemeinsam haben, überprüft, ob der Umkreis der gemeinsamen Kante leer ist. Ist dies der Fall, so stört die Kante die Erfüllung der Umkreisbedingung nicht und die nächsten beiden Dreiecke werden 17 betrachtet. Ansonsten wird die gemeinsame Kante geflippt, das heißt, sie wird durch eine Kante ersetzt, die die anderen beiden Dreiecksenden verbindet. Nach dem Flippen ist der Umkreis über der neuen gemeinsamen Kante garantiert leer und die Umkreisbedingung somit lokal erfüllt. Abbildung 15 ist ein Beispiel: Flip (a) (b) Abbildung 15: Flippen(Durch Flippen der gemeinsamen Kante wird die lokale DelaunayBedingung erfüllt). Diese oben erwähnte Frage ist nur sinnvoll, wenn solche Triangulation existiert, d. h. wenn der rote und der blaue Baum in einer kompatiblen Weise gewählt werden können. Wir 2 nehmen an, dass solche Triangulation existiert. Dann können Ω( n ) Flips benötigt werden, um die Kante, die zwei blaue Punkte verbindet, einzufügen. Siehe Abbildung 16: 2 Abbildung 16: Für das Einfügen von blauen Kanten braucht man Ω ( n ) Flips. 18