Graphen und Algorithmen

Graphen und Algorithmen Vorlesung #8: Färbungsprobleme Dr. Armin Fügenschuh Technische Universität Darmstadt WS 2007/2008 Übersicht Knotenfärbung (...
Author: Miriam Maus
27 downloads 4 Views 7MB Size
Graphen und Algorithmen Vorlesung #8: Färbungsprobleme

Dr. Armin Fügenschuh Technische Universität Darmstadt WS 2007/2008

Übersicht Knotenfärbung (vs. Kanten- & Kartenfärbung) Satz von Brooks Algorithmen zur Knotenfärbung Sequentielle Färbung Welsh-Powell-Algorithmus Algorithmus von Matula, Marble & Isaacson Kritische Graphen Satz von Dirac und Folgerungen Cliquen Satz von Mycielski

2

Fluglinienplanung Eine Fluggesellschaft möchte die folgenden sieben Flüge wöchentlich durchführen: (A) Budapest -> Turin -> Bordeaux -> London (B) Barcelona -> Genua -> München -> London (C) Wien -> Bordeaux -> London -> Porto (D) Wien -> Warschau -> Genau (E) Wien -> Athen -> Bordeaux (F) Hamburg -> München -> London (G) Hamburg -> Zürich -> Genua Alle Flügen starten und enden in Frankfurt. Jedes Zwischenziel soll nicht öfter als ein Mal am Tag angeflogen werden. Alle Flüge sollen nur montags, mittwochs oder freitags stattfinden. Ist es möglich, unter diesen Randbedingungen einen Flugplan aufzustellen? Modellierung: Graph mit sieben Knoten (A bis G) für die Flüge. G Kante zwischen zwei Knoten, wenn die selbe Stadt als Zwischenziel angeflogen wird. Die Tage Mo., Mi. und Fr. sollen den Knoten so zugeordnet werden, dass adjazente Knoten F unterschiedliche Tage bekommen. Ersetze die drei Tage durch drei Farben, so entsteht ein Färbungsproblem. E Kann der Graph mit drei Farben gefärbt werden? 3

A B

C

D

Knotenfärbung und chromatische Zahl Definition 1: Sei G = (V, E) ein Graph. Eine Knotenfärbung von G ist eine Abbildung f : V → Z mit f (u) != f (v) für alle {u, v} ∈ E . Eine k-Färbung von G ist eine Knotenfärbung f mit |f (V )| = k . In diesem Fall wird G auch als k-färbbar bezeichnet. Definition 2: Die kleinste Zahl n , für die es eine n-Färbung des Graphen G gibt, heißt chromatische Zahl von G und wird mit χ(G) bezeichnet. Ist χ(G) = k, so wird G als k-chromatisch bezeichnet. Bemerkung: Hat ein Graph eine Schlinge an einem Knoten v, dann ist v adjazent mit sich selber. Somit ist keine Färbung möglich. Auch Mehrfachkanten können bei Färbungsfragestellungen ignoriert werden. O.B.d.A. betrachten wir nachfolgend nur schlichte Graphen. Satz 3: Sei G = (V, E) ein Graph. (a) Hat der Graph n Knoten, so ist χ(G) ≤ n. (b) Ist H ein Untergraph von G, so ist χ(H) ≤ χ(G). (c) Ist v ein Knoten von G, so ist χ(G) ≤ χ(G − v) + 1. (d) χ(Kn ) = n für alle n ≥ 1. (e) Ist Kn ein Untergraph von G , so ist χ(G) ≥ n. (f) Sind G1 , . . . , Gn die Zusammenhangskomponenten von G, so ist χ(G) = max{χ(Gi ) : 1 ≤ i ≤ n}. Beispiel: Da der K4 ein Untergraph des Flugliniengraph ist, gibt es also keine 3-Färbung. 4

Chromatische Zahl und maximaler Knotengrad Definition 4: Sei G ein Graph. Mit ∆(G) := max{deg(v) : v ∈ V (G)} bezeichnen wir den maximalen Knotengrad. Satz 5: Sei G ein Graph. Dann gilt χ(G) ≤ ∆(G) + 1. Beweis (durch Induktion über die Anzahl der Knoten n von G ): Induktionsanfang, n = 1. Dann ist G = K1 , χ(G) = 1 und ∆(G) = 0 . Sei die Aussage wahr für alle Graphen mit n − 1 Knoten und G ein Graph mit n Knoten. Sei v ein Knoten von G . Der Untergraph G − v hat dann n − 1 Knoten. Somit gilt nach Induktionsvoraussetzung χ(G − v) ≤ ∆(G − v) + 1 . Wähle eine Knotenfärbung von G − v mit ∆(G − v) + 1 Farben. Knoten v hat höchstens ∆(G) Nachbarn in G . Diese Nachbarn benutzen höchstens ∆(G) Farben der Färbung von G − v. 1. Fall, ∆(G) = ∆(G − v). Dann gibt es (mind.) eine Farbe, die für die Nachbarn von v nicht verwendet wurde. Verwende diese Farbe, so erhalten wir eine Färbung mit ∆(G) + 1 Farben für G. Also ist χ(G) ≤ ∆(G) + 1. 2. Fall, ∆(G) != ∆(G − v), d.h. ∆(G) > ∆(G − v). Färbe v mit einer neuen Farbe. Dann erhalten wir eine (∆(G − v) + 2)-Färbung von G. Aus ∆(G − v) < ∆(G) folgt ∆(G − v) + 2 ≤ ∆(G) + 1. Also ist auch in diesem Fall χ(G) ≤ ∆(G) + 1. 5

Kempe-Ketten Definition 6: Sei G ein Graph mit einer Färbung, die aus mind. zwei Farben i, j besteht. Sei H(i, j) der Untergraph von G, die aus allen Knoten von G besteht, die entweder mit i oder mit j gefärbt sind. Eine Kempe-Kette K ist eine Zusammenhangskomponente von H(i, j) . Beobachtung: Wenn man in einer Kempe-Kette K die Farben i und j vertauscht, so entsteht wiederum eine zulässige Färbung von G. Definition 7: Das Verfahren der Neufärbung einer Kempe-Kette K wird als Kempesche Kettenumfärbung bezeichnet. Beispiel: K2

G

K1

H(rot, blau)

6

Der Satz von Brooks Satz 8 (Brooks, 1941): Sei G zusammenhängend und nicht vollständig mit ∆(G) ≥ 3 . Dann gilt χ(G) ≤ ∆(G). Beweis (durch Induktion über die Anzahl der Knoten n von G ): Induktionsanfang, n = 4 (da ∆(G) ≥ 3 ). Da G nicht vollständig ist (aber schlicht und zusammenhängend), können es nur die folgenden Graphen sein:

In jedem der drei Fälle ist die chromatische Zahl ≤ 3. Sei nun n ≥ 5 und die Aussage wahr für n − 1 . Wir wissen (siehe Beweis von Satz 5), dass G mit ∆(G) Farben färbbar ist, wenn es in G einen Knoten v gibt mit deg(v) < ∆(G), da dessen Nachbarn zusammen höchstens ∆(G) − 1 Farben haben. Also ist der Satz in diesem Fall bewiesen. Es bleibt nur der Fall, dass G ein Graph ist, in dem kein solcher Knoten v existiert. Dann ist deg(v) = ∆(G) =: d für jeden Knoten v. Also ist G dann ein d -regulärer Graph. Bleibt zu zeigen, dass G eine d -Färbung hat. Sei v ein beliebiger Knoten von G. Nach Induktionsannahme hat G − v eine d-Färbung. Wenn die Nachbarn von v weniger als d Farben verbrauchen, dann kann v mit einer nicht verbrauchten Farbe gefärbt werden. Dadurch erhalten wir eine d-Färbung von G. 7

Satz von Brooks (Forts.) Beweis (Forts.): Andernfalls verbrauchen die d Nachbarn v1 , . . . , vd von v die Farben 1, . . . , d. Seien i, j zwei Farben und vi , vj die Nachbarn von v in der jeweiligen Farbe. Seien Ki , Kj die Zusammenhangskomponenten von H(i, j), die vi bzw. vj enthalten. 1. Fall, Ki != Kj für ein Paar von Farben i, j. Wir führen in der Kempe-Kette Ki eine Umfärbung durch. Damit hat auch vi die Farbe j. Die Nachbarn von v benutzen jetzt nur noch die Farben 1, . . . , i − 1, i + 1, . . . , d . Knoten v kann mit Farbe i gefärbt werden, und die Aussage ist gezeigt. 2. Fall, Ki = Kj für alle Farben i, j. Für festes i, j setze (zur Abkürzung) H := Ki. Angenommen, degH (vi ) > 1. Dann hat vi (mind.) zwei Nachbarn mit Farbe j. Wenn wir jetzt alle Nachbarn von vi betrachten (im gesamten Graphen G ), so gibt es eine Farbe k, die dort nicht vorkommt. Färbe jetzt vi mit k. Dann kann v mit i gefärbt werden. Fertig. Analog argumentiert man für degH (vj ) > 1. Also kann im Folgenden degH (vi ) = degH (vj ) = 1 angenommen werden. Sei P = (vi , . . . , vj ) ein Weg in H. Angenommen, es gibt einen Knoten u in P mit degH (u) ≥ 3. Sei u ferner der erste derartige Knoten in P, und o.B.d.A habe u die Farbe i. 8

Satz von Brooks (Forts.) Beweis (Forts.): In G sind (mind.) drei Nachbarn von u mit Farbe j gefärbt. Also gibt es eine Farbe k, die für die Nachbarn von u nicht verwendet wurde. Färbe nun u mit Farbe k. Dann können die Knoten von vi (einschl.) bis u (ausschl.) in P umgefärbt werden. Danach hat vi die Farbe j. vj hatte ohnehin die Farbe j. Also kann v mit i gefärbt werden. Fertig. Also bleibt der Fall, dass degH (u) = 2 für alle Knoten u in P, u != vi , vj . Das bedeutet H = P . H besteht aus einem Weg von vi nach vj. Da dieses für beliebige Knoten vi , vj in der Nachbarschaft von v gilt, sind also alle Kempe-Ketten Wege. Sei H wie bisher die zu vi , vj gehörige Kette, und K die zu vi , vk gehörige Kette, j != k. Angenommen, es gibt einen Knoten w ∈ H ∩ K, w #= vi . Dann ist w mit Farbe i gefärbt und hat je zwei Nachbarn mit Farbe j und k. Unter den Nachbarn von w in G gibt es dann eine Farbe l, die nicht verwendet wurde. Färbe nun w mit Farbe l. Dann können die Knoten von K zwischen w (ausschl.) und vk (einschl.) umgefärbt werden. Danach hat vk die Farbe i. vi hatte ohnehin die Farbe i. Also kann v mit k gefärbt werden. Fertig. 9

Satz von Brooks (Ende) Beweis (Ende): Es bleibt nur noch der Fall, dass vi der einzige Knoten in H ∩ K ist. Wir fassen zusammen: vi und vj sind Nachbarn von v. Die Kempe-Ketten H und K sind Wege von vi nach vj bzw. vi nach vk. Ihr gemeinsamer Schnitt ist nur der Endknoten vi . Angenommen, vi und vj sind nicht adjazent. Sei w ein Knoten mit Farbe j in H, adjazent zu vi . In K führen wir eine Kempesche Kettenumfärbung durch. Dadurch ergibt sich eine neue zulässige Färbung von G. Danach hat vi die Farbe k und vk die Farbe i. w hat dann die Farbe i und ist weiterhin in H. Da w adjazent zu vi ist, liegt w auch in K (die Zusammenhangskomponente der Farben i und k ). Also haben wir jetzt einen weiteren Knoten gefunden, verschieden von vi , der in H und K liegt. Fertig (siehe vorheriger Fall). Angenommen, vi und vj sind adjazent. Da vi und vj wie auch v beliebig gewählt waren, sind dann alle Knoten untereinander benachbart. Dann wäre G der vollständige Graph Kd , im Widerspruch zur Annahme.

10

Zwei Beispiele In Kombination mit Satz 3(d) erhalten wir Abschätzungen für die chromatische Zahl. Beispiele: K4 ist Untergraph von G1. ∆(G1 ) = 8. Also ist 4 ≤ χ(G1 ) ≤ 8.

G1

„Birkhoffscher Diamant“ G2 . K3 ist Untergraph von G2 . ∆(G2 ) = 5. Also ist 3 ≤ χ(G2 ) ≤ 5.

G2

11

Ein einfacher sequentieller Färbungsalgorithmus Eingabe: Graph G = (V, E), V = {x1 , . . . , xn } Ausgabe: Färbung f : V → {1, . . . , n} =: C (1) algorithm sequentialColoring C(xi ) := C für alle xi ∈ V (2) (3) for i from 1 to n do c := min C(xi ) (4) f (xi ) := c (5) (6) for alle Knoten y mit {xi , y} ∈ E do C(y) := C(y)\{c} (7) (8) end for (9) end for (10) end algorithm Beispiele: x1 x7

x2

x1

x3

x5

x2

x4

x6

=1 =2 x6

x3

x5

=3

x4

12

Der Algorithmus von Welsh und Powell (1967) (1) (2) (3) (4)

Eingabe: Graph G = (V, E), V = {x1 , . . . , xn } Ausgabe: Färbung f : V → {1, . . . , n} =: C algorithm welshPowell sortiere V so, dass deg(x1 ) ≥ . . . ≥ deg(xn ) sequentialColoring(G ) end algorithm Bemerkung: Der Algorithmus von Welsh-Powell liefert eine Färbung mit höchstens ∆(G) + 1 Farben (siehe Beweis von Satz 5). Beispiel: x31

x13

x5 =1 =2 =3

x24

x42

x6

13

Der Algorithmus von Matula, Marble und Isaacson (1972) (1) (2) (3) (4) (5) (6) (7) (8) (9)

Eingabe: Graph G = (V, E), V = {x1 , . . . , xn } Ausgabe: Färbung f : V → {1, . . . , n} =: C algorithm matulaMarbleIsaacson vn := arg min{deg(xi ) : 1 ≤ i ≤ n} for i from n − 1 downto 1 step -1 do H := G − {vn , vn−1 , . . . , vi+1 } vi := arg min{degH (v) : v ∈ V (H)} end for sortiere V entsprechend v1 , . . . , vn sequentialColoring(G ) end algorithm Beispiel: x1

x2

x6

x3

=1 =2

x5

x4

=3

x7

14

Kritische Graphen Definition 9: Ein Graph G heißt k-kritisch (genau: k-knotenkritisch), wenn χ(G) = k und χ(G − v) < k für alle Knoten v von G. Beispiele: K1 ist der einzige 1-kritische Graph. Ein 2-kritischer Graph G ist bipartit (Übung), und für jeden Knoten v ist G − v 1-färbbar. Also ist K2 der einzige 2-kritische Graph. Ein Zyklus ungerader Länge ist 3-kritisch.

Der folgende Graph ist 4-kritisch:

15

Der Satz von Dirac, Teil 1 Satz 10 (Dirac, 1952): Sei G ein k-kritischer Graph. Dann gilt: (a) G ist zusammenhängend, (b) deg(v) ≥ k − 1 für alle Knoten v von G. Beweis: (a) Angenommen, G ist nicht zusammenhängend. Nach Satz 3(f) gibt es eine Zusammenhangskomponente C von G mit χ(C) = k. Sei nun v ein Knoten von G, der nicht Knoten in C ist. Dann ist C auch Komponente des Untergraphen G − v. Wiederum nach Satz 3(f) ist dann χ(G − v) = χ(C) = k . Widerspruch, da G k-kritisch. Also ist G zusammenhängend. (b) Angenommen, es gibt einen Knoten v von G mit deg(v) < k − 1. Da G k-kritisch ist, hat der Untergraph G − v eine Färbung mit k − 1 Farben. Knoten v hat höchstens k − 2 Nachbarn in G − v. Für diese Nachbarn werden daher nicht alle k − 1 Farben verbraucht. Färbe nun v mit einer Farbe, die unter den Nachbarn nicht vorkommt. Damit erhalten wir eine Färbung von ganz G, die mit k − 1 Farben auskommt. Widerspruch, da χ(G) = k. Also ist deg(v) ≥ k − 1 für alle Knoten v von G. 16

Der Satz von Dirac, Teil 2 Satz 10 (Dirac, 1952): Sei G ein k-kritischer Graph. Dann gilt ferner: (c) es gibt keine Knotenteilmengen V1 , V2 mit ∅ "= V1 , V2 "= V, V = V1 ∪ V2 und der von V1 ∩ V2 induzierte Untergraph ist vollständig, (d) G − v ist für alle Knoten v von G zusammenhängend (falls k > 1 ). Beweis: (c) Angenommen, es gibt zwei Knotenteilmengen V1 , V2 wie angegeben. Seien G1 , G2 , G1∩2 die von V1 , V2 , V1 ∩ V2 induzierten Untergraphen von G. Da G k-kritisch ist, ist die chromatische Zahl von G1 und G2 höchstens k − 1. Wähle eine Färbung von G1 und eine von G2 mit jeweils (höchstens) k − 1 Farben. In G1∩2 hat jeder Knoten eine andere Farbe, da dieser Graph vollständig ist. Wir können daher die Farben in G2 so umordnen, dass die Knoten in G1∩2 die gleichen Farben haben wie in G1. Damit haben die Knoten in V1 ∪ V2 = V (G) zusammen nur k − 1 Farben. Also ist G mit k − 1 Farben färbbar, im Widerspruch dazu, dass G k-kritisch ist. (d) Angenommen, es gibt einen Knoten v in G, so dass G − v nicht zusammenhängend ist. Dann zerfällt G − v in die disjunkten Untergraphen H1 und H2 . Setze V1 := V (H1 ) ∪ {v} und V2 := V (H2 ) ∪ {v}. Dann ist ∅ "= V1 , V2 "= V, V = V1 ∪ V2 und V1 ∩ V2 = {v} = V (K1 ) ist ein vollständiger Untergraph von G. Dieses ist ein Widerspruch zu (c). Also muss G − v für alle Knoten v zusammenhängend sein. 17

Folgerungen aus dem Satz von Dirac Satz 11: Sei G ein Graph mit χ(G) = k. Dann enthält G mindestens k Knoten v mit deg(v) ≥ k − 1 . Beweis: Sei H ein k-kritischer Untergraph von G . Nach dem Satz von Dirac ist degH (v) ≥ k − 1 für alle Knoten v von H. Somit ist auch degG (v) ≥ k − 1. Da H k-chromatisch ist, enthält H mindestens k Knoten. Satz 12 (Welsh, Powell, 1967): Sei G = (V, E) ein Graph mit V = {x1 , . . . , xn } und deg(x1 ) ≥ . . . ≥ deg(xn ). Dann gilt χ(G) ≤ max1≤i≤n {min{i, deg(xi ) + 1}}. Beweis: 1. Fall, G hat keine Kanten. Dann ist χ(G) = 1 und deg(xi ) = 0 für alle Knoten xi . Also ist max1≤i≤n {min{i, deg(xi ) + 1}} = max1≤i≤n {min{i, 1}} = 1. 2. Fall, G hat Kanten. Sei χ(G) = k . Nach Satz 11 enthält G mindestens k Knoten v mit degG (v) ≥ k − 1. Da wir die Knoten nach Graden sortiert haben, ist degG (xi ) ≥ k − 1 für i = 1, . . . , k. Dann ist min{k, deg(xk ) + 1} = k. Also ist max1≤i≤n {min{i, deg(xi ) + 1}} ≥ k = χ(G).

18

Cliquen Definition 13: Sei G ein Graph. Ein vollständiger Untergraph von G wird als Clique von G bezeichnet. Die Anzahl der Knoten in einer größten Clique von G heißt Cliquenzahl von G und wird mit cl(G) oder auch ω(G) bezeichnet. Beispiele:

G1 cl(G1 ) = 3 cl(G2 ) = 2

G2

G3 cl(G3 ) = 4

19

Der Satz von Mycielski Satz 14 (Mycielski, 1955): Für alle k ≥ 1 gibt es einen k-chromatischen Graphen Mk, der keinen Dreikreis K3 als Untergraphen enthält. Beweis (durch Induktion über k ): Induktionsanfang: Die Aussage stimmt für die Graphen K1 und K2 . Sei die Aussage wahr für k ≥ 2 , d.h. Mk ist ein k -chromatischer Graph ohne Dreikreis. Sei V (Mk ) = {v1 , . . . , vn } die Knotenmenge von Mk. Definiere Mk+1 durch V (Mk+1 ) := V (Mk ) ∪ {u1 , . . . , un , v} und E(Mk+1 ) := E(Mk ) ∪ {{v, ui } : i = 1, . . . , n} ∪ {{ui , w} : i = 1, . . . , n, {vi , w} ∈ E(Mk )}. v1

v

v1

u1

v5 v1

v2



v1

v2

v5

u2

u5

v2 ⇒

M2 u1

M3

u2

v4

M3

v3

v2

v u4

u3

M4

v4 v3 Angenommen, Mk+1 enthält einen Dreikreis. Da Mk nach Induktionsvoraussetzung keinen Dreikreis enthält, muss dieser mind. einen Knoten aus {u1 , . . . , un , v} enthalten. Keine zwei Knoten ui , uj sind adjazent. Also hat der Dreikreis die Form vj , vl , ui , vj. Nach Definition von E(Mk+1 ) gibt es dann Kanten {vl , vi } und {vi , vj } in E(Mk ). Dann ist vj , vl , vi , vj ein Dreikreis in Mk, was ein Widerspruch ist.

20

Satz von Mycielski (Forts.) Beweis (Forts.): Gegeben sei eine k-Färbung von Mk mit den Farben 1, . . . , k. Färbe jeden Knoten ui mit der Farbe von vi und v mit einer neuen Farbe k + 1. Dieses ergibt eine zulässige Färbung. Also ist χ(Mk+1 ) ≤ k + 1. Angenommen, es gibt eine k-Färbung von Mk+1 mit den Farben 1, . . . , k. Angenommen sei weiter (o.B.d.A.), dass v mit k gefärbt ist. Da ui und v adjazent, kann kein Knoten ui mit k gefärbt sein. Also wurden dann zur Färbung von u1 , . . . , un nur k − 1 Farben genutzt. Da χ(Mk ) = k, wurde Farbe k auch für einige Knoten aus v1 , . . . , vn verwendet. Es haben vi und ui die gleichen Nachbarn in Mk. Also können diejenigen Knoten v1 , . . . , vn in Mk, die mit k gefärbt sind, die Farbe vom jeweiligen Knoten u1 , . . . , un erhalten, unter denen Farbe k nicht vorkommt. Dadurch entsteht eine zulässige Färbung von Mk mit k − 1 Farben. Widerspruch, da χ(Mk ) = k. Also ist χ(Mk+1 ) = k + 1.

21

Literaturquellen J. Clark, D.A. Holton: Graphentheorie, Spektrum Akademischer Verlag, Heidelberg, 1994. (Kapitel 6, Seite 209-250) D. Jungnickel: Graphen, Netzwerke und Algorithmen, BI Wissenschaftsverlag, Mannheim, 1994. (Kapitel 8, Seite 299-314) B. Korte, J. Vygen: Combinatorial Optimization - Theory and Algorithms, 2nd Edition, Springer Verlag, Berlin, 2001. (Kapitel 16.2, Seite 367-373) S. Krumke, H. Noltemeier: Graphentheoretische Konzepte und Algorithmen, Teubner Verlag, Wiesbaden, 2005. (Kapitel 4, Seite 55-78) J.A. Bondy, U.S.R. Murty: Graph Theory, Springer Verlag, 2007. (Kapitel 14, Seite 357-390)

22