Connecting Colored Sets

Werbung
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
Herunterladen