Lösungen - Lehrstuhl Informatik 1

Werbung
Lösungen zu Algorithmische Graphentheorie
10. April 2006
Aufgabe 1: Wir fassen den Permutationsgraphen als Strecken auf, die zwei Parallelen miteinander
verbinden. Durchlaufe die Strecken in der durch eine der Parallelen gegebenen Reihenfolge. Färbe
jede Strecke v in der kleinsten freien Farbe, d.h. betrachte alle Strecken, die v schneiden, und ermittle
die vergebenen Farben. Die kleinste Farbe, die durch die Schnittstrecken nicht vergeben ist, wird v
zugeordnet.
Die Korrektheit ergibt sich wie folgt. Der obige Algorithmus verwende k Farben. Dann gibt es eine
Strecke, die sich mit k − 1 anderen Strecken schneidet, denen alle schon Farben zugeordnet sind.
Diese Strecke werde mit sk bezeichnet, und erhalte die Farbe k. Dann muss es eine Strecke sk−1
geben, die links von sk liegt und damit früher gefärbt worden ist, sich mit sk schneidet, und die die
Farbe k − 1 erhalten hat. Warum wurde sk−1 mit k − 1 gefärbt? Weil sich links von sk−1 eine Strecke
sk−2 befindet, die sich mit sk−1 schneidet und mit k − 2 gefärbt wurde. Dieses Argument lässt sich
bis s1 fortsetzen. Durch die Lage der Strecken folgt, dass s1 , . . . , sk−1 alle auch sk schneiden. Daher
liegt sk in einer k-Clique, und es sind mindestens k Farben notwendig, um den Graphen zu färben.
Aufgabe 2: Anmerkung: Zwischen der Menge der Permutationsgraphen und der Menge der Intervallgraphen besteht keine Teilmengenbeziehung. D.h., es gibt sowohl Permutationsgraphen, die
keine Intervallgraphen sind, als auch Intervallgraphen, die keine Permutationsgraphen sind.
c) Ein Kreis der Länge 4, dargestellt durch C4 = (1, 2, 3, 4, 1), zu dem ein Knoten 5 und Kanten {1, 5}
und {5, 3} hinzugefügt werden, ist ein Kreissehnengraph, lässt sich aber nicht durch Kreisbögen
darstellen.
Aufgabe 3: a) Der C7 ist ein Kreissehnengraph, der nicht als Dreiecksehnengraph dargestellt
werden kann.
b) Wir nehmen an, dass wir die k-Färbbarkeit nur für festes k entscheiden wollen. Wir wählen zwei
Seiten A und B des Dreiecks, und betrachten zunächst nur Sehnen, die zwischen diesen beiden
Seiten verlaufen, also nur einen von drei Teilen der Kanten von G. Der so erhaltene Graph werde
mit GAB bezeichnet. Sei X der Schnittpunkt von A und B. Da A und B an X getrennt und so
verschoben werden können, dass sie parallel liegen, ist GAB ein Permutationsgraph. Das bedeutet,
dass wir das Cliquenproblem auf GAB effizient lösen können.
Für jede Sehne S ∈ V (GAB ) sei hA (S) der Abstand zwischen dem Schnittpunkt von S mit A und
X. Analog sei hB (S) definiert. Die Höhe einer Sehne sei dann h(S) = hA (S) + hB (S). Die Höhe
einer Clique ist die Summe der Höhen ihrer einzelnen Sehnen.
Aus GAB bilden wir einen reduzierten Graphen R(GAB ). Dazu nehmen wir für jedes i = k, . . . , 1 die
Sehnen der höchsten i-Clique auf. Jede dieser Cliquen ist durch die oben definierte Höhe eindeutig
bestimmt. Sei Ck die höchste k-Clique. Es gilt: Alle unterhalb von Ck , d.h. zwischen der Clique und
X liegenden Sehnen können mit höchstens k Farben gefärbt werden. Dies gilt insbesondere auch
für die Sehnen aus G − GAB , d.h. die Sehnen aus G, die in GAB weggelassen worden sind. Deren
Farben ergeben sich direkt aus der Färbung der Clique. Sei S eine Sehne, die oberhalb von S 0 liegt.
Dann gilt für jede Sehne T ∈ G − GAB : Wenn sich T und S 0 schneiden, schneiden sich auch T und
1
S. Also kann es keinen Farbkonflikt zwischen T und S 0 geben, wenn es keinen Konflikt zwischen T
und S gibt.
Oberhalb von Ck liegende Sehnen können aber nicht auf diese Weise gefärbt werden, da deren Farbe
von Sehnen aus G − GAB beeinflusst werden. Daher wird für i = k − 1, . . . , 1 nicht nur die höchste
i-Clique aufgenommen, sondern auch die i-Cliquen, die gemeinsame Sehnen mit einer j-Clique mit
j > i haben.
Jetzt wiederholen wir das Vorgehen für die anderen zwei Teile von G. Wir betrachten GAC , der die
Sehnen zwischen Seiten A und C enthält, und ermitteln daraus R(GAC ) wie oben. Ebenso bilden
wir R(GCB ) aus GBC . Es gilt jeweils, dass sich aus einer zulässigen Färbung des Restgraphen die
Färbung des Graphen ergibt.
Die Schwierigkeit besteht jetzt noch darin, eine gültige Färbung für den Graphen GR = R(GAB ) ∪
R(GAC ) ∪ R(GBC ) zu finden. Diese kann aber durch Ausprobieren ermittelt werden, da die Größe
von GR nur von k abhängt. Dabei werden höchstens 3k Farben verwendet. Aus der Färbung für GR
ergibt sich die Färbung von G unmittelbar.
Aufgabe 4: Es wird das (allgemeine) Färbungsproblem für Kreisbogengraphen auf das (allgemeine) Färbungsproblem für propere Kreisbogengraphen angegeben, also
Kreisbogen-Färb ≤p propere Kreisbogen-Färb
gezeigt. Sei I = (G, k) eine Eingabe mit G = (V, E) ein Kreisbogengraph und k ∈ N. Sei f eine
Funktion, die wie folgt aus einem Kreisbogengraphen einen properen Kreisbogengraphen macht.
Zunächst wird sichergestellt, dass keine übereinanderliegenden Intervalle mit gleicher Länge vorhanden sind. Falls das der Fall ist, kürzen wir eines an beiden Enden um ein beliebig kleines σ > 0.
Falls G nicht-proper ist, gibt es Bögen A, B, so dass B ⊂ A gilt. Dann werden die Bögen A, B
und alle darüberliegenden Bögen zertrennt. Dies geschieht, indem jeweils ein Bogen der Länge σ
entnommen wird, der Bogen also in zwei Teile zerfällt. Bei der Wahl der Trennstelle muss beachtet
werden, dass diese innerhalb eines Korridors liegt, in dem sich keine Endpunkte von weiteren Bögen
befinden. Ein solcher Korridor existiert immer, dieser habe Länge . Im untersten Bogen brauchen
wir 1 Trennstelle, im darüberliegenden 2, usw. Innerhalb eines Bogens liegen die Trennstellen in
einem Abstand von ε << . Um sicherzustellen, dass neu enstandene Bögen nicht wieder von
anderen Bögen vollständig umschlossen werden, werden die Trennstellen von Schicht zu Schicht um
ein genügend kleines δ > 0 versetzt. Dies lässt sich fortsetzen, bis nur noch propere Bögen übrig
sind. Wenn l die maximale Anzahl von übereinanderliegenden Bögen ist, werden O(l2 ) Trennstellen
benötigt, d.h. f kann in polynomieller Zeit berechnet werden.
Es ist nun zu zeigen:
I ∈ Kreisbogen-Färb g.d.w. f (I) ∈ propere Kreisbogen-Färb.
Wenn I k-färbbar ist, ist offensichtlich auch f (i) k-färbbar. Bögen, die in f (I) geteilt worden sind,
können alle mit der gleichen Farbe wie in I gefärbt werden, da diese Bögen nebeneinander liegen
und sich nicht überschneiden.
Umgekehrt, sei nun f (I) k-färbbar, und c() die zugehörige Färbung. Sollten in f (I) die Teile A1
und A2 eines Bogens A von I nicht mit der gleichen Farbe gefärbt worden sein, kann man den
Graphen so umfärben, dass die Bedingung erfüllt ist, ohne zusätzliche Farben zu verbrauchen. Gelte
c(A1 ) = x und c(A2 ) = y in der k-Färbung von f (I). Man setze nun c(A2 ) = x. Eventuell schneidet
sich aber A2 mit einem Bogen C, der ebenfalls mit c(C) = x gefärbt worden ist. Setze c(C) =
y, usw. Das Vorhandensein des Bogens B stellt sicher, dass bei um den Kreis herumreichenden
Abhängigkeitspfaden mit ungerader Länge keine dritte, zusätzliche Farbe verwendet werden muss.
Dies lässt sich iterativ für alle geteilten Bögen fortsetzen. Also ist auch I k-färbbar.
2
Aufgabe 5: Es gelte bw(G) = k, und seien die Knoten in V durch das Labeling sortiert. Die
Knoten werden in Blöcke Bi = {vi , vi+1 , . . . , vi+k } aufgeteilt. Wegen der beschränkten Bandweite
liegen alle Kanten, die von vi+k aus nach links gehen, innerhalb von Bi . Das bedeutet, um vi zu
färben, müssen nur die Knoten vi+1 , . . . , vi+k betrachtet werden, falls die Abhängigkeiten, die sich
aus weiteren Kanten von vi nach links ergeben, schon berücksichtigt worden sind.
Für Bi wird jede der bis zu k! vielen Färbungen im Speicher gehalten, falls diese eine korrekte
Färbung darstellt. Dann wird Bi+1 betrachtet, und daraus die Farbe von vi bestimmt. Es werden
alle zulässigen Farben für vi+k+1 bestimmt, und geprüft, ob diese zu einer der Färbungen für Bi
passt. Daraus ergeben sich die wiederum bis zu k! vielen Färbungen für Bi+1 , die für den nächsten
Schritt im Speicher gehalten werden.
Aufgabe 6: Dadurch, dass alle Intervalle die gleiche Länge haben, können diese in eine eindeutige Reihenfolge gebracht werden. Wenn Intervall A vor B startet, endet A auch vor B. Seien die
Interalle I1 , I2 , . . . , In der Eingabe jetzt in dieser Reihenfolge gegeben. Um einen Hamilton-Weg
zu finden, fängt man bei dem am weitesten links liegenden Intervall I1 an, und geht von diesem
zum nächstgelegenen nach rechts, also von Ii zu Ii+1 . Wenn Ii und Ii+1 sich überschneiden, gibt es
auch eine Kante zwischen den beiden zugehörigen Knoten. Daraus folgt: Es gibt genau dann einen
Hamilton-Weg, wenn sich Ii und I+1 für alle i = 1, . . . , n − 1 überschneiden. Dies kann leicht geprüft
werden. Der gesuchte Weg ist dann (I1 , . . . , In ).
Für einen Hamilton-Kreis ist es darüberhinaus noch notwendig, einen Weg von In zurück nach I1 zu
finden. Es reicht aus, den folgenden Kreis zu prüfen: (I1 , I3 , I5 , . . . , In/2+1 , In/2 , In/2−2 , . . . , I4 , I2 , I1 ).
Falls dieser existiert, hat der Graph einen Hamilton-Kreis. Angenommen, es gibt einen HamiltonKreis, der nicht in der Reihenfolge jedes zweiten Intervalls vorgeht, also z.B. die Reihenfolge (Ii , Ii+3 , Ii+2 , Ii+1 )
enthält. Dann kann dieser zu (Ii , Ii+2 , Ii+3 , Ii+1 ) umgeordnet werden, da wegen der Sortierung auch
dies einen Weg im Graphen darstellt.
3
Aufgabe 7: Sei G = (V, E) der Graph mit Baumweite tw(G) = k, T = (VT , ET ) der normierte
Baum, in den G eingebettet ist und f : VT → P(V ) die Einbettungsfunktion. In der Datenstruktur
für einen Superknoten s ∈ VT werden alle Kombinationen von Wegen, die zwischen den Knoten
in f (s) möglich sind, gespeichert. Wohingegen an den Blättern von VT nur solche Wege betrachtet
werden, die ausschließlich aus Kanten zwischen Knoten in f (s) bestehen, werden in den höheren
Superknoten immer längere Wege berücksichtigt, bis an der Wurzel Wege auf allen Knoten aus V
zusammengesetzt werden, und damit ein vorhandener Hamilton-Kreis gefunden wird.
Ein Vektor v ∈ {0, . . . , k + 1}k+1 der Datenstruktur speichert eine Menge von knotendisjunkten
Wegen, deren Start- und Endpunkte in f (s) liegen. Dazu enthält v für jeden Knoten aus f (s) einen
Eintrag. Darin wird vermerkt, ob der Knoten Start- bzw. Endpunkt eines Weges ist, ob er ein innerer
Knoten eines solchen Weges ist, oder ob er nicht am Wegesystem beteiligt ist, also einen Weg der
Länge 0 darstellt. Dabei bedeutet vi = c mit c ∈ {1, . . . , k + 1}, dass Knoten i Start-/Endpunkt
eines Weges ist, falls auch ein j 6= i mit v(j) = c existiert, und dass i ein offener, also nicht am
Wegesystem beteiligter Knoten ist, sonst. Beachte, dass ein c höchstens zweimal in v auftauchen
kann. Falls vi = 0 ist, ist i ein interner Knoten, also schon durch einen in v enthaltenen Weg W
abgedeckt. Abgedeckt bedeutet, dass W über i läuft, i aber nicht Start- oder Endpunkt von W ist.
Die weitere Beschreibung des Algorithmus besteht darin, die Funktionen Init, ADD, DEL und JOIN
zu definieren. Damit kann durch Bottom-Up-Vorgehen eine Lösung für G gefunden werden. ***
Aufgabe 9: Sei G ein k-außenplanarer Graph. Durch das Hinzufügen einer Kante zu G wird
die Einbettung in einen Dekompositionsbaum nicht leichter. O.B.d.A. sei G daher maximal, d.h.
trianguliert.
Wir zeigen durch Induktion, dass tw(G) = 3k − 1 für alle k ≥ 1 gilt. Für k = 1 konstruieren wir den Dekompositionsbaum wie folgt. Sei T der Graph, der für jedes Dreieck {a, b, c} mit
{a, b}, {b, c}, {c, a} ∈ E(G) einen Superknoten X ∈ V (T ) mit f (X) = {a, b, c} enthält. Zwei Superknoten werden in E(T ) über eine Kante miteinander verbunden, falls die zugehörigen Dreiecke
eine gemeinsame Kante haben. In T gibt es keinen Kreis, da ansonsten in G innerhalb dieses Kreises ein Knoten liegt, der überall von angrenzenden Dreieck-Fenstern umschlossen ist, und G damit
nicht außenplanar wäre. Also ist T ein Baum. Da G außenplanar, erfüllt die Einbettung f auch die
Pfadbedingung, und damit ist gezeigt, dass tw(G) = 2 gilt.
Sei jetzt k > 1, und sei G0 der Graph, der aus G entsteht, wenn alle Knoten auf dem äußeren Fenster
gelöscht werden. G0 ist (k − 1)-außenplanar, und damit gibt es einen Dekompositionsbaum T 0 zu G0 ,
0
und eine Einbettung f 0 : V (T 0 ) → 2V (G ) mit |f (x)| ≤ 3k − 3 für alle X ∈ V (T 0 ). G besteht damit
aus G0 und einer weiteren Schicht Knoten, die G0 umschließt. Sei zunächst T = T 0 und f = f 0 . Für
jedes nicht in G0 enthaltene Dreieck {a, b, c} fügen wir in V (T ) einen Knoten X hinzu und setzen
f (X) = {a, b, c}. Falls f (X) ein Dreieck aus G − G0 ist, aber mit G0 eine Kante gemeinsam hat,
fügen wir in E(T ) eine Kante {X, Z} hinzu, wobei Z der hinter der gemeinsamen Kante liegende
Superknoten ist. Falls f (X) ∈ G − G0 keine gemeinsame Kante mit G0 hat, verbinden wir X mit
einem beliebigen Nachbarn, bis alle Superknoten mit T 0 verbunden sind.
Damit ist die Einbettung fast fertig, eventuell ist allerdings noch die Pfadbedingung verletzt, wenn
X, Y ∈ G − G0 eine gemeinsame Kante haben, aber {X, Y } 6∈ E(T ) ist. In diesem Fall sind X
und Y über einen Pfad über ein Z ∈ V (T 0 ) miteinander verbunden, das den von Z entfernter
liegenden Knoten x ∈ f (X) ∩ f (Y ) nicht enthält. Um die Pfadbedingung wiederherzustellen, fügen
wir allen Superknoten auf dem Pfad zwischen X und Y eine Kopie von x hinzu. Da jedes Z ∈ V (T )
höchstens Grad 3 hat, kann Z auch höchstens 3 zusätzliche Kopien bekommen. Damit gilt |f (X)| ≤
(3k − 3) + 3 = 3k für alle X ∈ V (T ), womit tw(G) ≤ 3k − 1 gezeigt ist.
Aufgabe 12: Sei G = (V, E) ein Graph mit rekursiver Pfadweite (k, k 0 ). Also gibt es einen Dekompositionsgraphen G0 = (V 0 , E 0 ) mit pw(G0 ) = k 0 , in den G unter Einhaltung der drei Bedingungen
4
(1) Abdeckung aller e ∈ E, (2) der Pfadbedingung und (3) Bucket-Größe von höchstens k eingebettet werden kann. Daher gibt es eine Funktion f : V 0 → 2V mit |f (v)| ≤ k für alle v ∈ V 0 .
Da G0 wiederum unter den drei obigen Bedingungen in einen Pfad P = (VP , EP ) eingebettet werden
0
kann, gibt es eine Fuktion f 0 : VP → 2V mit |f 0 (v)| ≤ k 0 für alle v ∈ VP . Wenn wir f auf natürliche
0
Weise auf f : 2V → 2V erweitern, gilt also insgesamt für jedes v ∈ VP : |f (f 0 (v))| ≤ kk 0 . Damit gilt
pw(G) ≤ kk 0 .
Dass diese obere Schranke asymptotisch scharf ist, kann man wie folgt zeigen. Bei der Dekomposition müssen Cliquen des Ausgangsgraphen in den selben Superknoten eingebettet werden. Wir
konstruieren ein Beispiel, das viele (k + 1)- und (k 0 + 1)-Cliquen enthält. G0 besteht aus mehreren
miteinander verbundenen k 0 + 1-Cliquen. Sei V 0 = {w1 , . . . , wn0 }. Zu E 0 fügen wir Kanten hinzu, so
dass die ersten k 0 +1 Knoten w1 , . . . , wk0 +1 eine Clique bilden. Dann fügen wir Kanten hinzu, so dass
w2 , . . . , wk0 +2 eine Clique bilden, usw., bis auch wn0 −k0 , . . . , wn0 eine Clique bilden. Offensichtlich
gilt pw(G0 ) = k 0 , da jeder Knoten aus VP = {p1 , p2 , . . .} genau k 0 + 1 Knoten aus V 0 aufnehmen
muss.
G wird gebildet, indem mehrere knotendisjunkte k-Cliquen über einen gemeinsamen Knoten miteinander verbunden werden. Formaler, sei V = {v1 , . . . , vkk0 +1 }. Seien {v1 , . . . , vk } in einer Clique
miteinander verbunden, ebenso {vk+1 , . . . , v2k }, {v2k+1 , . . . , v3k }, . . . , {vk0 k−k+1 , . . . , vk0 k }. Weiterhin
wird vk0 k+1 mit allen übrigen Knoten verbunden, d.h. dass (k 0 + 1)-viele (k + 1)-Cliquen entstanden sind, von denen jede einzelne vk0 k+1 enthält. Jede dieser Cliquen wird in einen der Knoten
w1 , . . . , wk0 +1 eingebettet.
Insgesamt gilt: |f (f 0 (p1 ))| = |f (w1 , . . . , wk0 +1 | = (k 0 + 1)k + 1 = k 0 k + k + 1.
5
Aufgabe 13: Sei P 0 = (VP0 , EP0 ) der Dekompositionspfad, und f 0 : VP0 → 2V die Einbettungsfunktion für G. Sei o.B.d.A. VP0 = {1, . . . , |VP0 |}. Da pw(G) = k, gilt f 0 (v) ≤ k + 1 für alle v ∈ VP0 . Wir
0
konstruieren P = (VP , EP ) und f : VP → (2V ×V ) wie folgt. Seien VP = {(k, l) | 1 ≤ k ≤ |VP0 |, 1 ≤
l ≤ |V 0 |}, und EP = {{(k, l), (k + 1, l)} | 1 ≤ k ≤ |VP0 | − 1, 1 ≤ l ≤ |V 0 |} ∪ {{(|VP0 |, l), (1, l + 1)} |
1 ≤ l ≤ |V 0 | − 1}. Es gilt (i, j) ∈ f ((k, l)) g.d.w. i ∈ f 0 (k). Damit deckt f sowohl alle aus G als
auch alle aus G0 erzeugten Kanten ab. Ersteres wurde durch f 0 sichergestellt, letzteres dadurch,
dass alle bezüglich G gleichen Knoten jeweils in einem gemeinsamen Superknoten enthalten sind.
Offensichtlich gilt |f (v)| ≤ (k + 1) · |V 0 | für alle v ∈ VP . Da die obigen Überlegungen auch gelten,
wenn man G und G0 vertauscht und f entlang der Einbettungsfunktion für G0 entwickelt, folgt
pw(G × G0 ) ≤ min(k|V 0 | + |V 0 | − 1, k 0 |V | + |V | − 1).
Aufgabe 14: Das Quadrat eines Graphen unterliegt keiner Beschränkung der Baumweite. Betrachten wir G = Kn,1 , also den Stern mit insgesamt n + 1 Knoten. Es gilt tw(Kn,1 ) = 1, aber
G2 = (Kn,1 )2 = Kn+1 und damit tw(G2 ) = n.
Aufgabe 15: Seien x1 , . . . , xn die Variablen und C1 , . . . , Cm mit |Cj | ≤ 3 die Klauseln einer
Formel φ in konjunktiver Normalform. Wir konstruieren ein Netzwerk N mit zweifach beschränkten
Kapazitäten, so dass gilt: φ ist erfüllbar g.d.w. es einen Fluss der Größe m + n in N gibt. Für jede
Variable und jede Klausel gibt es einen Weg von der Quelle s zur Senke t mit Kapazität 1. Falls φ
erfüllbar ist, sind diese Wege knotendisjunkt.
Zunächst zur Darstellung der Variablen. Für jede Variable xi gibt es Knoten si , s1i und s0i und Kanten
(si , s1i ) und (si , s0i ) jeweils mit Kapazitäten cmin = cmax = 1. Darüberhinaus gibt es Knoten ti , t1i und
t0i und Kanten (t1i , ti ) und (t0i , ti ) mit Kapazitäten cmin = 0 und cmax > 1. Alle si werden mit s und
alle ti mit t verbunden. Zwischen s1i und t1i und zwischen s0i und t0i gibt es einen ausreichend langen
Weg mit uneingeschränkten Kantenkapazitäten. Durch die zweifache Kapazitätsbeschränkung kann
sichergestellt werden, dass über eine Kante entweder Fluss der Größe 1 oder kein Fluss geht. Dies
entspricht den Variablenbelegungen wahr und falsch.
Gleichfalls gibt es für jede Klausel Cj = (l1 , l2 , l3 ) Knoten uj und vj , und Kanten (s, uj ) mit Kapazität cmin = 0 und cmax = 1, sowie Kanten (vj , t) mit uneingeschränkter Kapazität. Sei l1 = xi ein
positives Literal, und seien qi0 und ri0 Knoten auf dem Weg von s0i nach t0i , zwischen denen keine
anderen ausgezeichneten Knoten liegen. Wir fügen Kanten (uj , qi0 ) und (ri0 , vj ) mit uneingeschränkter Kapazität hinzu. Falls l1 = x̄i ein negatives Literal ist, suchen wir Knoten qi1 und ri1 auf dem
Weg von s1i nach t1i , und verfahren analog. Für jedes l1 , l2 und l3 wird ein solcher Weg über die
entsprechende Variable geführt, und dies für alle Klauseln wiederholt, so dass es insgesamt für jede
Klausel drei mögliche Wege von uj nach vj gibt.
Sei φ erfüllbar ist, und v(xi ) = b der Wert von xi in der erfüllenden Belegung. Dann kann der
Variablenfluss der Größe 1 über sbi geschickt werden. Gleichzeitig kann der Klauselfluss von allen
Klauseln, an denen xi beteiligt ist, über qi1−b und ri1−b geschickt werden, da dieser Weg nicht vom
Variablenfluss gewählt worden ist. Also gibt es einen Fluss der Größe m + n in N .
Falls es einen Fluss f der Größe m + n in N gibt, folgt aus der maximalen Kapazitätsbeschränkung,
dass f (si ) = f (uj ) = 1 für alle i, j gelten muss. Aus der minimalen Kapazitätsbeschränkung folgt
dann, dass entweder f (s1i ) = 1 und f (s0i = 0) gelten muss, oder f (s0i ) = 1 und f (s0i = 1). Daraus
ergibt sich die Variablenbelegung, die φ erfüllt.
Also ist das Flussproblem mit zweifach beschränkten Kantenkapazitäten NP-vollständig.
Anmerkung: Es reicht nicht aus, bei der Reduktion einheitlich Kanten mit maximaler Kapazität 1
zu verwenden. In diesem Fall ist nicht sichergestellt, dass der Variablen-Fluss komplett über das
Variablen-Konstrukt fließt. Die Formel φ = (x1 ∨x2 )∧(x1 ∨ x̄2 )∧(x̄1 ∨x2 )∧(x̄1 ∨ x̄2 ) ist nicht erfüllbar,
das zugehörige Netzwerk, in dem alle beschränkten Kanten Kapazität 1 haben, erlaubt jedoch einen
Fluss der Größe m + n = 6. Dies ist möglich, indem der Variablenfluss von x1 über die oberste
Klausel abfließt, und der Fluss der untersten Klausel über x1 abfließt. Alle dazwischen liegenden
6
Klauseln können dann normal über x1 fließen, da sie nicht vom Variablenfluss x1 eingeschränkt
werden. Der Fluss der obersten Klausel fliesst in x2 entlang und über die unterste Klausel ab.
Aufgabe 16: a) Aus dem Graph wird ein Netzwerk N = (V, E 0 , s, t, c) konstruiert. Alle Kanten
aus E werden gerichtet, und zwar mit Hilfe einer von s ausgehenden Breitensuche, und bilden damit
die Menge E 0 . Es gilt c(e) = 1 für alle e ∈ E 0 . Da alle Kanten integrale Kapazitäten haben, ist auch
der maximale Fluss in diesem Netzwerk integral. Dessen Kapazität entspricht genau der Anzahl der
kantendisjunkten Wege von s nach t.
b) Wir verändern das obige Netzwerk, indem jedes v ∈ V durch zwei Knoten ve und va ersetzt wird.
Alle in v eingehenden Kanten werden auf ve umgeleitet, alle ausgehenden Kanten auf va . Zwischen
ve und va gibt es eine Kante mit Kapazität 1. Der integrale maximale Fluss in diesem N 0 entspricht
einem Wegesystem, in dem über jedes ve (und damit über jedes v in N ) höchstens ein Weg geht.
Aufgabe 17: Wir zeigen, dass man jedes lateinische Rechteck R vom Format r × n zu einem vom
Format (r+1)×n erweitern kann, und somit auch zu einem lateinischen Quadrat. Dazu konstruieren
wir einen bipartiten Graphen GR = (V1 ∪ V2 , E), in dem ein perfektes Matching einer Belegung der
zusätzlichen Zeile darstellt.
In R gilt, dass jeder Eintrag in jeder Zeile genau einmal und in jeder Spalte höchstens einmal
vorkommt. Für jede Spalte j ∈ {1, . . . , n} bezeichne Sj die Menge der Einträge, die in der Spalte
Rj fehlen. Also gilt |Sj | = n − r für alle Spalten. Wir setzen V1 = {a1 , . . . , an } mit ai ∈ {1, . . . , n}
und V2 = {b1 , . . . , bn }, und fügen in E eine Kante zwischen ai und bj genau dann ein, wenn ai ∈ Sj
gilt.
Der so konstruierte Graph GR ist regulär. Es gilt deg(bj ) = n − r, da |Sj | = n − r ist. Aber es
gilt auch deg(bi ) = n − r für alle i, da jede Zahl in genau n − r Spalten fehlt. Denn eine Zahl x
kommt in jeder Zeile genau einmal vor, also insgesamt r-mal in R. Diese r-vielen Vorkommen von
x müssen über r verschiedene Spalten verteilt sein. Also bleiben n − r Spalten übrig, in denen x
nicht vorhanden ist.
Ein regulärer bipartiter Graph hat ein perfektes Matching. Dies folgt unmittelbar aus dem Satz von
Hall. Sei der Graph r-regulär, und sei S eine Menge von Knoten aus einer Partition mit |S| = k. Also
gehen k · r Kanten aus S heraus. Damit werden mindestens k Knoten der Nachbarschaft erreicht,
da ansonsten ein Widerspruch zur Annahme, dass der Graph r-regulär ist, folgen würde. Also gilt
Γ(S) = k für alle S.
Damit hat GR ein perfektes Matching m : V2 → V1 , das zu jedem Knoten bj eine Kante {bj , m(bj )}
festlegt. Wir können das lateinische Rechteck R daher um eine Zeile r + 1 mit den Einträgen
(m(b1 ), . . . , m(bn )) erweitern.
Aufgabe 19: Für r = 2 nehme einen Kreis mit ungerader Länge, z.B. C3 . Für r gerade und r ≥ 4
nehmen wir den (r/2)-dimensionalen Torus mit Seitenlänge 3, also den (3 × · · · × 3)-Torus. Dieser
ist r-regulär, hat aber kein perfektes Matching, da die Knotenanzahl ungerade ist.
Für r = 3 verwenden wir eine Komponente H3 = (V, E) mit V = {A, . . . , E} und
E = {(A, B), (A, C), (B, D), (C, E), (D, E), (B, E), (C, D)}.
Drei dieser Komponenten werden über einen Stern miteinander verbunden (also ein zentraler Knoten
X und Kanten (A1 , X), (A2 , X), (A3 , X) hinzugefügt), so dass ein 3-regulärer Graph G3 entsteht.
H3 enthält selbst kein perfektes Matching, erst durch Hinzunahme von (Ai , X) ins Matching können
auch die Knoten aus einer H3 -Komponente abgedeckt werden. Knoten X kann aber offensichtlich
nur einmal für eine solche Matchingkante verwendet werden, so dass G3 kein perfektes Matching
hat.
Für r ungerade und r ≥ 5 konstruieren wir schrittweise eine Komponente Hr , so dass |V (Hr )|
ungerade ist und deg(A) = r − 1 und deg(v) = r für alle v ∈ V (Hr ) − A gilt. Sei Hr−1 schon
7
konstruiert, und sei V (Hr−1 ) = {v1 , . . . , vn } mit v1 = A. Für jedes vi ∈ V (Hr−1 ) fügen wir zwei
Knoten vi,1 und vi,2 hinzu, und verbinden vi mit beiden. Damit erhalten alle vi 6= A Grad r,
und v1 erhält Grad r − 1. Jetzt verbinden wir noch alle v1,1 , . . . , vn,1 mit einem Kreis, ebenso alle
v1,2 , . . . , vn,2 . Damit haben alle Knoten aus Hr die gewünschten Knotengrade, und die Anzahl der
Knoten ist ungerade, da eine gerade Anzahl von Knoten zu Hr−1 hinzugefügt worden ist.
Um Gr fertigzustellen, verbinden wir r-viele Hr über einen Stern mit zentralem Knoten X miteinander. Da |V (Hr )| ungerade, hat Hr allein kein perfektes Matching. Da X nur einer Komponente
ein perfektes Matching liefern kann, ist in den übrigen r − 1 Komponenten keines zu finden, und
damit hat auch Gr keinen 1-Faktor.
Aufgabe 20:
a) Betrachte den Graphen G = (V, E 0 ) mit V = {A, . . . , F } und
E 0 = {(A, B), (B, C), (D, E), (E, F ), (B, E)}.
Es gilt χ(G) = 2 und α(G) = 4. Die Knoten I = {A, C, D, F } bilden eine unabhängige Menge.
Es gibt aber keine zulässige 2-Färbung für G, in der eine Farbe genau 4-mal verwendet wird.
Insbesondere kann man nicht allen Knoten aus I die gleiche Farbe geben, da dann für B und E nur
noch eine Farbe übrigbleibt.
b) Die Knoten der größten unabhängigen Menge können alle die gleiche Farbe erhalten. Übrig
bleiben n(G) − α(G) viele Knoten, die schlimmstenfalls jeweils unterschiedliche Farben erhalten.
Also gilt die Behauptung.
c) Die Behauptung gilt nicht. Nehmen wir einen vollständigen Graphen K4 mit einem ausgezeichneten Knoten v, einen Pfad Pn mit einem Knoten w am Ende des Pfades, und verbinden v und w
miteinander, um G zu erhalten. Wenn wir n ausreichend groß wählen, beträgt der durchschnittliche
Grad a(G) = 2 + für beliebig kleines > 0. Trotzdem gibt es keine 3-Färbung, da für K4 immer
noch 4 Farben benötigt werden.
d) Für eine minimale zulässige Färbung gibt es Farbklassen S1 , . . . , Sk , die alle Knoten einer bestimmten Farbe enthalten. Zwischen jedem Paar Si und Sj von Farbklassen muss es mindestens
eine Kante geben, ansonsten könnten alle Knoten aus Si ∪ Sj mit derselben Farbe gefärbt werden,
und der Graph wäre (k − 1)-färbbar, im Widerspruch zur Annahme. Da es k2 solche Paare gibt,
gibt es auch mindestens ebensoviele Kanten im Graphen.
Aufgabe 21: Ein C5 hat die gesuchte Eigenschaft. Es gilt χ(C5 ) = 3, aber χ(C5 − v) = 2 für
jeden v ∈ V (C5 ). Beachte nun, dass C5 = C5 gilt. Also gilt das gleiche auch für das Komplement,
womit die Eigenschaft gezeigt ist.
Aufgabe 22: Da G bipartit ist, besteht G aus zwei Partitionen A und B, mit V (G) = A ∪ B,
die jeweils eine Clique bilden. Darüberhinaus gibt es zwischen den beiden Partitionen noch weitere
Kanten, wenn G nicht vollständig bipartit ist. Sei C eine größte in G vorhandene Clique. Beachte,
dass nicht notwendigerweise A ⊆ C oder B ⊆ C gilt.
Für eine Menge S ⊆ V (G) sei Γ(S) = ΓG (S) die Nachbarschaft in G, also die Menge der Knoten, die
mit mindestens einem Knoten aus S nicht verbunden sind. Für alle S ⊆ A − C gilt |Γ(S) ∩ C| ≥ |S|.
Angenommen, es gäbe eine Menge S mit D = Γ(S) und |D ∩ C| < |S|. Dann wäre (C ∪ S) − D eine
Clique mit Kardinalität größer ω(G), im Widerspruch zur Annahme, dass C eine größte Clique ist.
Damit können alle Knoten aus A − C gefärbt werden, nämlich mit den Farben, die in Γ(A − C)
verwendet sind. Mit den gleichen Überlegungen können auch alle Knoten aus B − C gefärbt werden,
so dass insgesamt |C| = ω(G) viele Farben verwendet werden. Da C eine Clique ist, reichen weniger
Farben nicht aus, und damit gilt χ(G) = ω(G).
8
Aufgabe 23: Sei m = max(g, h), und sei o.B.d.A. χ(G) = m. Offenbar ist χ(G × H) ≥ m
eine untere Schranke, da G Teilgraph von G × H ist. Gleichzeitig gilt auch χ(G × H) ≤ m. Seien
c : V (G) → [g] und d : V (H) → [h] minimale zulässige Färbungen für G und H. Dann ist e :
V (G × H) → [m] mit e(x, x0 ) = (c(x) + d(x0 )) mod m eine zulässige Färbung für G × H. Sei
{(x, x0 ), (y, y 0 )} ∈ E(G × H) eine Kante. Aufgrund der Definition des kartesischen Produktes zweier
Graphen gilt, dass entweder x = y und {x0 , y 0 } ∈ E(H) gilt, oder x0 = y 0 und {x, y} ∈ E(G). Daraus
folgt, dass e(x, x0 ) 6= e(y, y 0 ) gilt, und damit ist e zulässig. Insgesamt gilt also χ(G × H) = m.
Aufgabe 24: Wir teilen die Ebene in regelmäßige Sechsecke ein, und identifizieren diese mit Hilfe
eines Koordinatensystems, bei dem der Winkel zwischen X- und Y-Achse 30◦ beträgt. Der Abstand
zwischen zwei gegenüberliegenden Punkten im Sechseck beträgt 1. Den Rand des Sechsecks teilen
wir in zwei gleichgroße, jeweils zusammenhängende Teile ein. Alle Punkte innerhalb des Sechsecks
sowie auf der Hälfte des Randes können die gleiche Farbe bekommen.
Das Sechseck auf den Koordinaten (x, y) ∈ N2 bezeichnen wir mit s(x, y). Es gilt, dass c : N2 → [7]
mit c(x, y) = (x + 5y) mod 7 eine zulässige Färbung darstellt, da Sechsecke mit gleicher Farbe in
Entfernung größer 1 zueinander liegen. Also ist χ(G) ≤ 7.
Aufgabe 26: Die Behauptung gilt nicht. Betrachte C3 und C4 , also Kreise der Länge 3 und 4.
Diese sind perfekt, nicht aber deren Kreuzprodukt, der (3 × 4)-Torus, da dieser einen induzierten
C7 enthält.
Aufgabe 27: Seien C eine größte Clique in G|N [x] (G eingeschränkt auf die abgeschlossene Nachbarschaft von x), an der x beteiligt ist, mit |C| = c, und C 0 eine größte Clique in H, mit |C 0 | = c0 .
Dann enthält G(x → H) eine Clique der Größe c + c0 − 1. Falls ω(G) ≥ c + c0 − 1 ist, kann man
G(x → H) mit c + c0 − 1 Farben färben, da in der neuen
und es gilt ω(G(x → H)) = c + c0 − 1. (***)
Seien d : V (G) → [c] und e : V (H) → [c0 ] Färbungen für G und H. Dann ist das wie folgt definierte
f : V → [c + c0 − 1] eine zulässige Färbung für G(x → H). Für alle Knoten v ∈ V (H) setze
f (v) = d(v), und für Knoten v ∈ V (G) − N [x] setze f (v) = c(v). Alle v ∈ C − x bekommen eine
neue Farbe. Es fehlen noch die Knoten v ∈ N (x) − C. Für diese gilt, dass es zu jedem solchen v ein
w(v) ∈ C gibt, so dass v und w(v) nicht verbunden sind. Da C maximal gewählt wurde, sind alle
w(v) paarweise verschieden. Damit kann jedes v die gleiche Farbe wie w(v) bekommen. Also gilt
χ(G(x → H)) = ω(G(x → H)).
Aufgabe 28: Sei G = (V, E) der chordale Eingabegraph mit n Knoten, und σ : {1, . . . , n} → V
ein PES dazu. Der Algorithmus zur Bestimmung eines Independent Set arbeitet wie folgt. Zunächst
wird IS = σ(1) gesetzt, und dann alle Knoten markiert, die mit σ(1) verbunden sind. In jedem
weiteren Schritt wird der kleinste Knoten x bzgl. der σ-Ordnung in IS aufgenommen, der nicht
markiert ist. Die Nachbarn von x werden wiederum markiert. Dieser Greedy-Algorithmus benötigt
lineare Zeit.
Sei |IS| = k. Damit haben wir ein Independet Set der Größe k gefunden, jedoch noch nicht gezeigt,
dass dieses optimal ist. Gleichzeitig haben wir damit auch eine Überdeckung von G durch k Cliquen
gefunden, denn für jedes x ∈ IS bildet die rechte Nachbarschaft von x bzgl. σ eine Clique. Die
minimale Anzahl von Cliquen, die notwendig ist, um alle Knoten aus G zu überdecken, wird mit χ
bezeichnet. Es ist χ ≥ α.
Es gilt also χ ≤ k und α ≥ k, und daher insgesamt k ≥ χ ≥ α ≥ k. Daraus folgt α = k, und IS ist
ein minimales Independent Set.
9
Aufgabe 29: Sei G k-außenplanar, und o.B.d.A. trianguliert. Wir wissen, dass für die Baumweite
tw(G) ≤ 3k−1 gilt. Wir haben dies gezeigt, indem wir einen Stützbaum T konstruiert haben, in dem
jeder Knoten höchstens 3k viele Kopien enthält. Dieses T entstand iterativ, indem wir den Stützbaum T 0 für den (k − 1)-außenplanaren Graphen so um die in der Mitte der neu hinzugekommenen
Dreiecke liegenden Superknoten erweitert haben, dass die neuen Superknoten über kürzeste Wege
mit T 0 verbunden sind. Weiterhin sei T normiert, d.h. falls {t, t0 } ∈ E(T ), gilt: t und t0 unterscheiden
sich in genau einer Kopie.
Es gilt für jedes t ∈ V (T ), das kein Blatt ist, oder das im Abstand 1 zu einem Blatt liegt und Grad
2 hat: Wenn alle Graphknoten x ∈ t aus G gelöscht werden, ist G separiert. Durch das Löschen
der x ∈ t wird G in einzelne Bereiche B1 , . . . , B3 eingeteilt. Zwischen diesen Bereiche kann es keine
Kanten geben, da diese Kante auch in irgendeinem Superknoten abgedeckt sein müsste, und wegen
der Pfadbedingung einer der beiden Endpunkte der Kante in t enthalten wäre. Also ist jeder Bereich
eine Komponente. Es verbleibt zu zeigen, dass mindestens 2 Komponenten übrig bleiben. Dies gilt,
da in den wie oben geforderten t ∈ V (T ) jeder Bereich ein a ∈ V (G) enthält, der weder in den
anderen Bereichen noch in t selbst enthalten ist.
Wir wählen nun einen beliebigen Knoten t ∈ V (T ), und die in t enthaltenen Kopien als Separator für
G. Durch t zerfalle G in Komponenten K1 , . . . , K3 . Falls für alle Komponenten size(Ki ) < 2n/3 gilt,
ist t ein (3k, 2/3)-Separator. Ansonsten sei o.B.d.A. size(K1 ) > 2n/3. Wie wählen einen beliebigen
Graphknoten x ∈ K1 , und bewegen uns im Stützbaum auf dieses x zu. Da die Pfadbedingung gilt,
und T keine Kreise enthält, ist dieser Weg eindeutig. Sei t0 der neue Separator. Da sich t und t0
nur in einer Kopie unterscheiden, haben sich die Komponentengrößen damit jeweils um höchstens
1 verändert. D.h. wir können die Größe von K1 schrittweise verringern, bist diese unter 2n/3 fällt,
und haben damit den gesuchten Separator.
Aufgabe 30: Ein serien-paralleler Graph entsteht rekursiv durch parallele oder serielle Verknüpfung von serien-parallelen Graphen. Diese haben eine gekennzeichnete Quelle und eine Senke.
Parallelschaltung verbindet die beiden Quellen miteinander, ebenso die beiden Senken. Serienschaltung verbindet die Senke des einen mit der Quelle des anderen Graphen. Eine einzelne Kante ist
ein serien-paralleler Graph.
Betrachtet man den Rekursionbaum des Graphen, stellt man fest, dass jeder innere Knoten einen
Separator darstellt, nämlich wenn man Quelle und Senke des zugehörigen Teilgraphen entfernt. Falls
an der Wurzel eine Serienschaltung durchgeführt wird, reicht es aus, die gemeinsame Quelle/Senke
zu entfernen. Es verbleibt zu zeigen, dass man den Graphen so separieren kann, dass die größte
Komponente höchstens 2n/3 Knoten enthält.
Nehmen wir an, wir befinden uns im Rekursionsbaum an einem Knoten t. Die zugehörige Komponente habe Quelle A und Senke B, und werde nun mit (A, B) bezeichnet. Sei R = G − (A, B)
der äußere Teil des Graphen, also ohne die innere Komponente (A, B). Sei x > 0, und gelte
size(A, B) = 2n/3 + x, und daher size(R) = n/3 − x. Fall 1: An t wird die Serienschaltung
durchgeführt. Dann gibt es einen Knoten C, so dass (A, B) = (A, C) + (C, B), d.h. (A, B) ist
die Serienschaltung von (A, C) und (C, B). Falls einer der beiden Komponenten mehr als 2n/3
Knoten besitzt, wiederholen wir das Vorgehen rekursiv auf dieser größeren Komponente. Sei jetzt
size(A, C) < 2n/3 und size(C, B) < 2n/3. Dann gilt für eine Komponente, o.B.d.A. sei dies (A, C),
size(A, C) < n/3 + x/2. Dann ist size(R + (A, C)) = 2n/3 − x/2 und size(A, C) < 2n/3. Also ist
{C, B} ein (2, 2/3)-Separator.
Fall 2: An t wird Parallelschaltung durchgeführt. Wenn durch Entfernen von A und B für alle
parallelen Komponenten K size(K) < 2n/3 gilt, ist {A, B} der gesuchte Separator. Ansonsten gibt
es ein K mit size(K) > 2n/3, und wir wiederholen das Vorgehen rekursiv mit K.
Aufgabe 31: Sei G ein Halin-Graph. Also kann G als ein Baum T aufgefasst werden, bei dem
alle Blätter über einen Kreis C miteinander verbunden sind, und zwar in der durch eine planare
10
Einbettung des Baumes vorgegebenen Reihenfolge. Sei also G = (V (T ), E(T ) ∪ E(C)). Wir können
zunächst einen (1, 1/2)-Separator für T suchen. Dieser stellt dann aber keinen Separator für G dar,
da in G die beiden Komponenten von T auch über Kanten e1 , e2 ∈ E(C) verbunden sind. Durch
Entfernen von je einem Knoten aus e1 und e2 ist auch G separiert, und weiterhin keine Komponente
größer als n/2.
Aufgabe 32: Sei k die Anzahl der Atome in T . Wir fassen l = n2 − m als die Zahl der NichtKanten, also die Anzahl der in G im Vergleich zu Kn nicht vorhandenen Kanten auf, und zeigen
durch Induktion, dass l ≥ k − 1 gilt. Daraus folgt die Behauptung der Aufgabe.
Sei t die Tiefe von T . Falls t = 0, besteht der Baum nur aus einem Atom, also ist k = 1, und es ist
nichts zu zeigen. Sei jetzt t > 0, und bereits bewiesen, dass l ≥ k − 1 für Bäume der Tiefe t − 1 gilt.
Seien w die Wurzel von T , w1 , . . . , wb die Nachfolger von w, und ki die Anzahl der Blätter und li
die Anzahl der Nicht-Kanten im Teilbaum wi für alle i = 1, . . . , b. Das bedeutet, wir haben in den
einzelnen durch w erzeugten Komponenten l1 + · · · + lb ≥ (k1 − 1) + · · · + (kb − 1) = k1 + · · · + kb − b
viele Nicht-Kanten gefunden. Offensichtlich gilt l = l1 + · · · + lb und k = k1 + · · · + kb , und damit
l ≥ k − b. Da w einen Separator darstellt, gibt es mindestens eine Nicht-Kante zwischen den Knoten
aus wi und Knoten aus wb , für jedes i = 1, . . . , b − 1. Dies können nicht die Nicht-Kanten aus den
Nachfolgern sein, da diese jeweils nur eine Teilmenge der Knoten aus w enthalten. Also haben wir
b − 1 weitere Nicht-Kanten identifiziert, und es gilt l ≥ k − b + (b − 1) = k − 1.
Aufgabe 33: Jeder chordale Graph besitzt einen Cliquenseparator C. Also können wir dieses C als
Wurzel des Cliquenseparatorbaumes wählen. Chordalität ist eine vererbliche Eigenschaft, also sind
knoteninduzierte Teilgraphen eines chordalen Graphen wiederum chordal. Für die durch C erzeugten
Komponenten können wir daher wieder Cliquenseparatoren finden. Dies können wir fortsetzen, bis
irgendwann der Cliquenseparator einer Komponente die gesamte Komponente selbst ist. Damit
ergibt sich ein Blatt, das alle Knoten der Separatorclique enthält. Blätter, die eine Clique plus
weitere Knoten enthalten, kann es nicht geben, da eine solche Komponente keinen Cliquenseparator
enthält.
Aufabe 34: Sei G ein Kantengraph. Dann gibt es einen Graphen H, so dass L(H) = G ist. Es
sei V (H) = {1, . . . , n}. Wir konstruieren einen Stern Kn,1 und darauf ein Pfadsystem P , so dass
EP T (Kn,1 , P ) = G gilt. Sei V (Kn,1 ) = {1, . . . , n} ∪ {X}, wobei X das Zentrum des Sterns ist. Falls
es in H zwischen i, j ∈ V (H) eine Kante gibt, fügen wir zu P den Pfad (i, X, j) hinzu, für alle
Kanten {i, j} ∈ E(H). Der daraus resultierende EPT-Graph hat genau so viele Knoten wie G, und
genau dann eine Kante, wenn die zugehörigen Pfade einen gleichen Start- oder Endknoten auf dem
äußeren Kreis des Sterns gemeinsam haben. In dem Fall gab es aber in H zwei Kanten, die an einem
Knoten adjazent sind, und daher hat auch L(G) zwischen deren Knoten-Entsprechung eine Kante,
und damit gilt EP T (Kn,1 , P ) = G.
Sei jetzt G ein EPT-Graph, und zwar aus einem Stern Kn,1 und einem Pfadsystem P hervorgegangen. O.B.d.A. können wir annehmen, dass alle Pfade aus P Länge 2 haben. Für jeden Pfad (i, X)
der Länge 1 fügen wir einen Knoten i0 hinzu, und erweitern den Pfad zu (i, X, i0 ). Damit erhalten
wir das Pfadsystem P 0 . Da i0 jeweils neu hinzugefügt wurde, gilt EP T (K, P ) = EP T (K 0 , P 0 ), wobei
K und K 0 der Stern vor bzw. nach dem Hinzufügen der Dummy-Knoten ist.
Analog zum ersten Fall fügen wir in H genau dann eine Kante ein, wenn es in P einen Pfad
(i, X, j) gibt. Damit gilt wieder: Wenn zwei Pfade aus P zusammenstoßen, also eine gemeinsame
Kante haben, haben auch die konstruierten Kanten in E(H) einen gemeinsamen Endpunkt, was in
EP T (Kn,1 , P ) und L(H) jeweils die gleiche Kante bewirkt.
Aufgabe 35: Sei A die vom Christofides-Algorithmus approximierte Tour, OP T die optimale. Es gilt A ≤ 1.5 · OP T . Falls die Knoten A, B, C, D in dieser Reihenfolge besucht werden,
11
ist A auch eine Lösung für TSP mit Reihenfolge. Ansonsten sortieren wir die Tour etwas um,
ohne die Kosten zu stark anwachsen zu lassen. Die Knoten A, B und C halten immer die geforderte Reihenfolge ein, daher können wir annehmen, dass D in der Tour falsch einsortiert ist.
O.B.d.A. enthalte A die Teilfolge (A, B, D, C). Die umsortierte Tour sieht dann wie folgt aus:
B = (A, . . . , B, . . . , [D], . . . , C, D, [C], . . . , A). Die in eckigen Klammern stehenden Knoten deuten
an, dass die Tour darüber läuft, den Knoten selbst aber noch nicht besucht. Aufgrund der Dreiecksungleichung kann beim metrischen TSP angenommen werden, dass der Weg, der [D] zunächst
überspringt, nicht teurer ist, als der Weg direkt über D.
Da zwei neue Kanten zur Tour hinzugefügt worden sind, gilt damit B ≤ A + |CD| + |DC|. Für
die Distanz zwischen beliebigen Knoten X, Y gilt weiterhin |XY | ≤ OP T /2. Daher können wir die
Länge der neuen Tour mit
B ≤ A + OP T /2 + OP T /2 = A + OP T ≤ 1.5 · OP T + OP T = 2.5 · OP T
abschätzen.
Aufgabe 36:
• Sei G ein beliebiger Graph. Wir berechnen C 0 = {x | deg(x) = n(G) − 1}. C 0 enthält also
alle Knoten, die mit allen übrigen Knoten verbunden sind, und bildet damit eine Clique. Sei
B 0 = V (G) − C 0 . Wir testen, ob B 0 bipartit ist, indem ein beliebiger Knoten willkürlich der
Partition 1, und seine Nachbarn der Partition 2 zugeordnet werden. Dies lässt sich fortsetzen,
bis alle Knoten auf die Partitionen verteilt sind. Falls das Verfahren scheitert, wurde ein Kreis
ungerader Länge gefunden, und damit ist B 0 nicht bipartit.
Sei G ∈ T1 . Dann besteht G aus einer bipartiten Komponente B und einer Cliquen-Komponente
C, die beide vollständig miteinander verbunden sind. Es gilt offensichtlich C 0 = C, und es wird
eine bipartite Aufteilung von B 0 gefunden.
Sei jetzt G 6∈ T1 . Wiederum gibt es eine Clique C, in der jeder Knoten maximalen Grad hat,
eventuell ist |C| = 0. Aber B = V (G) − C ist nicht bipartit. Obiger Algorithmus wird also
B 0 = B nicht bipartionieren können.
Die Laufzeit des Verfahrens ist O(n2 ). Um C 0 zu bestimmen, muss jeder Knoten betrachtet
werden, und dieser mit allen anderen verglichen werden, um so dessen Knotengrad zu bestimmen. Gleiches gilt für die Partitionierung von B 0 , für die von jedem Knoten die Nachbarschaft
bestimmt werden muss.
• Wir berechnen eine vollständige Überdeckung des Graphen durch maximale unabhängige Mengen I1 , . . . , Ik . Dies kann durch paarweise Vergleiche in Zeit O(n2 ) geschehen. Die gleiche Zeit
ist erforderlich, um im zweiten Schritt zu prüfen, ob zwischen allen Paaren Ii und Ij alle
Kanten vorhanden sind.
Falls G ∈ T2 , besteht der Graph aus mehreren unabhängigen Mengen, die untereinander
paarweise vollständig miteinander verbunden sind. Dies sind gerade die gefundenen maximalen unabhängigen Mengen. Falls G 6∈ T2 , gibt es unabhängige Mengen I und J, die nicht
vollständig miteinander verbunden sind, und der Algorithmus wird dies bei der Überprüfung
feststellen.
12
Herunterladen