Algorithmische Graphentheorie Walter Unger Lehrstuhl für Informatik I 20. April 2006 Teil I Einleitung und Motivation 1 Knotenfärbung Definitionen Schranken Greedyfärbungen Satz von Brooks Taillenweite Komplexität Knotenfärbung Definitionen 204/351 Definitionen Definition Sei G = (V , E ) Graph. max{ |V ′ | ; V ′ ⊂ V ∧ ∀a, b ∈ V ′ : (a, b) 6∈ E } max{ |V ′ | ; V ′ ⊂ V ∧ ∀a, b ∈ V ′ : (a, b) ∈ E } min{ k ; ∃V1 , V2 , . . . , Vk : ∪ki=1 Vi = V ∧ ∀i : 1 6 i 6 k : ∀a, b ∈ Vi : (a, b) 6∈ E } χ(G ) = min{ k ; ∃V1 , V2 , . . . , Vk : ∪ki=1 Vi = V ∧ ∀i : 1 6 i 6 k : ∀a, b ∈ Vi : (a, b) ∈ E } α(G ) = ω(G ) = χ(G ) = Weitere Schreibweisen: ω(G ) = α(G ), α(G ) = ω(G ) = β0 (G ), κ(G ) = χ(G ) Knotenfärbung Schranken 205/351 Schranken Lemma χ(G ) > ω(G ) χ(G ) > n/α(G ) χ(G ) = max{χ(B) | B ist ein Block in G } Theorem Sei G = (V , E ) Graph mit maximalem Knotengrad d (d = ∆(G )), dann gilt χ(G ) 6 d + 1. Theorem Sei G = (V , E ) Graph, dann gilt: χ(G ) = 2 genau dann, wenn G keine ungeraden Kreise enthält. Knotenfärbung Greedyfärbungen 206/351 Greedyfärbungen Sei G = (V , E ) Graph. Wähle Sortierung der Knoten: σ = (v1 , v2 , . . . , vn ). Algorithmus: GreedyColour (G , σ). Setze Vi = {v1 , v2 , . . . , vi } und Gi = G [Vi ]. Färbe: c(v1 ) := 1. Färbe: c(vi ) := min{k ∈ IN | k 6= c(u) ∀u ∈ Γ(vi ) ∩ Vi−1 } Anzahl Farben: GreedyColour (G , σ) := |{c(v ) | v ∈ V }|. Es gilt: χ(G ) 6 GreedyColour (G , σ) 6 ∆(G ) + 1. Für ungerade Kreise und Cliquen gilt: χ(G ) = GreedyColour (G , σ) = ∆(G ) + 1. Laufzeit: O(|V | + |E |) Knotenfärbung Greedyfärbungen 207/351 Fehleranalyse 1. Extremfall: K1,∆ 2. Extremfall: Bn : Bn = (Vn , Wn , En ) Vn = {v1 , v2 , v3 , . . . , vn } Wn = {w1 , w2 , w3 , . . . , wn } En = {{vi , wj } | vi ∈ Vn , wj ∈ Wn , i 6= j} Betrachte: GreedyColour (Bn , (v1 , w1 , v2 , w2 , v3 , w3 , . . . , vn , wn ). GreedyColour (Bn , (v1 , w1 , v2 , w2 , v3 , w3 , . . . , vn , wn ) = n. Aber χ(Bn ) = 2. Knotenfärbung Greedyfärbungen Fehleranalyse Theorem Seien ǫ, δ > 0 und c < 1 Dann gibt es für n groß genug Graphen Gn mit: χ(Gn ) 6 nǫ und auf o(n−δ ) Anordungen liefert Greedy: c · n/ log n Farben. Lemma Es gibt Anordnung σ ∗ mit: GreedyColour (G , σ ∗ ) = χ(G ). Lemma Es gilt minσ∈Sn GreedyColour (G , σ) = χ(G ) 208/351 Knotenfärbung Greedyfärbungen 209/351 Verbesserungen Beachte: Für vi sind höchstens dGi (vi ) Farben verboten. Setze b(σ) = max16i6n dGi (vi ) mit σ = (v1 , v2 , . . . , vn ). χ(G ) 6 minσ∈Sn b(σ) Die Anordnung σ, für die das Minimum angenommen wird, ist konstruierbar: Wähle vn als Knoten mit minimalem Grad Rekursiver Aufruf auf G − vn . So eine Anordnung heißt: “smallest-last” Knotenfärbung Greedyfärbungen 210/351 Anwendung Lemma Sei σsl eine smallest-last Anordnung, dann gilt: b(σsl ) = max δ(H) = min b(σ) H⊂G σ∈Sn Beweis b(σsl ) 6 maxi δ(Gi ) 6 maxH⊂G δ(H) Sei nun H ∗ Teilgraph von G mit: δ(H ∗ ) = maxH⊂G δ(H). Sei weiter j kleinster Index mit: H ∗ ist Teilgraph in Gj für beliebige Permutation σ. Dann gilt: maxH⊂G δ(H) = δ(H ∗ ) 6 dH ∗ (vj ) maxH⊂G δ(H) = δ(H ∗ ) 6 dH ∗ (vj ) 6 dGj (vj ) maxH⊂G δ(H) = δ(H ∗ ) 6 dH ∗ (vj ) 6 dGj (vj ) 6 b(σ) maxH⊂G δ(H) = δ(H ∗ ) 6 dH ∗ (vj ) 6 dGj (vj ) 6 b(σ) 6 b(σsl ) Knotenfärbung Greedyfärbungen 211/351 Folgerungen I Lemma Sei G = (V , E ) und σsl smallest-last Anordnung, dann gilt: χ(G ) 6 GreedyColour (G , σsl ) 6 1 + max δ(H) H⊂G Laufzeit: O(|V | + |E |). Knotenfärbung Greedyfärbungen 212/351 Folgerungen II Lemma Sei G = (V , E ) zusammenhängend und nicht ∆(G )-regulär, dann gilt: χ(G ) 6 ∆(G ). Sei v1 Knoten mit d(v1 ) < ∆(G ). Wähle Sortierung σ = (v1 , v2 , v3 , . . . , vn ) durch Breitensuche von v1 . Starte GreedyColour (G , σ), dann gilt: d(v1 ) < ∆(G ), d.h. c(v1 ) 6 ∆(G ) vi hat einen ungefärbten Nachbarn, d.h. c(vi ) 6 ∆(G ) Knotenfärbung Satz von Brooks 213/351 Folgerungen III Theorem (Brooks 1941) Sei G = (V , E ) zusammenhängend mit mindestens drei Knoten. Sei G weiter keine Clique und kein ungerader Kreis, dann gilt: χ(G ) 6 ∆(G ) Falls G nicht zweifachzusammenhängend, betrachte Blöcke B: Falls B regulär, dann ist B nicht ∆(G )-regulär. Falls B nicht regulär, färbe wie oben. In beiden Fällen höchstens ∆(G ) Farben. Falls G zweifachzusammenhängend und nicht regulär, so färbe wie oben. Falls G zweifachzusammenhängend und regulär, so mache: Knotenfärbung Satz von Brooks 214/351 Folgerungen III a Theorem (Brooks 1941) Sei G = (V , E ) zusammenhängend mit mindestens drei Knoten. Sei G weiter keine Clique und kein ungerader Kreis, dann gilt: χ(G ) 6 ∆(G ) Falls G nicht zweifachzusammenhängend: (done) Falls G zweifachzusammenhängend und nicht regulär: (done) Falls G zweifachzusammenhängend und regulär, so mache: Wähle v1 mit Nachbarn vn−1 und vn , die nicht benachbart sind. So daß G − {vn−1 , vn } noch zusammenhängend. Bestimme v2 , v3 , . . . , vn−2 durch Breitensuche von v1 auf G − {vn−1 , vn }. Färbe mit GreedyColour (G , σ). vn−1 und vn bekommen eine Farbe. Damit sind höchstens ∆(G ) − 1 Farben für v1 verboten. Knotenfärbung Satz von Brooks Folgerungen III b Lemma Sei G = (V , E ) 2-fach zusammenhängend, regulär mit mindestens drei Knoten. Sei G weiter keine Clique und kein Kreis, dann gibt es x, y ∈ V mit dist(x, y ) = 2 und G − x − y ist zusammenhängend. Sei v ∈ V mit d(v ) = ∆(G ). Dann ist H := G [{v } ∪ Γ(v )] nicht vollständig. Damit gibt es x ′ , y ′ in Γ(v ) mit dist(x ′ , y ′ ) = 2. Falls G − {x ′ , y ′ } zusammenhängend, fertig! Ansonsten ist x ′ , y ′ minimaler Separator. Damit ∆(G ) > 3 und d(v ) > 3. Sei C Komponente in G − {x ′ , y ′ }, die v enthält. 215/351 Knotenfärbung Satz von Brooks 216/351 Folgerungen III c Also gibt es x in C mit x ist zu x ′ oder y ′ benachbart. Dies gilt für jede Komponente G − {x ′ , y ′ }. Also gibt es y aus anderen Komponente mit dist(x, y ) = 2. Nun gilt: G − {x, y } ist noch zusammenhängend. x ′ und y ′ sind in G − {x, y } verbunden. Zeige: in G − {x, y } ist jeder Knoten mit x ′ oder y ′ verbunden. G − x ist noch zusammenhängend. Jeder Knoten aus C − x ist über einen Weg P mit x ′ oder y ′ verbunden, der nicht y benutzt. G − y ist noch zusammenhängend. Jeder Knoten aus (V \ C ) − y ist über einen Weg P mit x ′ oder y ′ verbunden, der nicht x benutzt. Laufzeit: O(|V | + |E |). Knotenfärbung Taillenweite 217/351 Aussagen Theorem Für jedes Zahlenpaar n, l gibt es einen Graph G mit: 1 χ(G ) = n und 2 Der kürzeste Kreis hat Länge l. Wir konstruieren hier Mi mit: Mi hat keine Dreiecke. χ(Mi ) = i. Knotenfärbung Taillenweite 218/351 Beweis (Konstruktion) M3 = C5 Seien v1 , v2 , . . . , vn Knoten von Mk . Mk+1 hat zusätzlich Knoten u1 , u2 , . . . , un und w . Füge Kanten hinzu: {w , ui } für 1 6 i 6 n und {ui , x} falls {vi , x} ∈ E (Mk ). Beachte: {u1 , u2 , . . . , un } ist eine unabhängige Menge Γ(vi ) ist eine unabhängige Menge Also keine Dreiecke in Mk+1 . χ(Mk+1 ) 6 k + 1 klar: c(w ) = k + 1 und c(ui ) = c(vi ). Falls χ(Mk+1 ) = k folgt χ(Mk ) = k, also χ(Mk+1 ) = k + 1. Knotenfärbung Komplexität Aussagen Theorem Das 3-Färbungsproblem ist für Graphen vom Knotengrad 6 4 NP-vollständig. Theorem Das k-Färbungsproblem ist NP-vollständig. Theorem Das Färbungsproblem kann nicht mit einen konstanten Faktor approximiert werden. (Falls P = 6 N P) 219/351 Knotenfärbung Komplexität 220/351 Fragen Wie schwer ist das Knotenfärbungsproblem? Welche Schranken sind bekannt? Welcher Fehler ist bei Greedy-Färbung möglich?