Algorithmische Graphentheorie Walter Unger Lehrstuhl für Informatik I 20. April 2006 Teil I Einleitung und Motivation 1 2 3 4 5 6 Einleitung Motivation Cliquenproblem Vertex Cover Greedy Steiner-Bäume TSP Einleitung Approximation Nichtapproximierbarkeit Zentrumsproblem Einleitung Komplexität Approximation Färbung Greedy Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Motivation APX... 314/351 Einleitung NP-schwere Probleme doch lösen Exakt: “=⇒” exponentiale Laufzeit Nicht Exakt: “=⇒” polynomiale Laufzeit Nicht Exakt: “=⇒” hoffentlich polynomiale Laufzeit Hier: Approximationsalgorithmen in polynomialer Laufzeit. D.h.: welche Approximationsfaktoren sind möglich? Kommt man beliebig nah an das Optimum? Einleitung Vertex Cover Steiner-Bäume Motivation TSP Zentrumsproblem Färbung APX... 315/351 Rückblick Kantenfärbung: Additiver Fehler: 1 Multiplikativer Fehler: 4/3 Färbung von planaren Graphen: 2-Färbung in P. 3-Färbung in N PC. 4-Färbung immer. 5-Färbung immer. Additiver Fehler: 2 Multiplikativer Fehler: 5/3 Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Motivation APX... 316/351 Definition Definition Ein Algorithmus A hat einen additiven Approximationfehler, falls für alle Eingabeinstanzen I gilt: opt(I ) 6 A(I ) + k (Maximierungsproblem) oder opt(I ) > A(I ) − k (Minimierungsproblem) Definition Ein Algorithmus A hat einen multiplikativen Approximationfehler, falls für A(I ) opt(I ) alle Eingabeinstanzen I gilt: max{ opt(I ) , A(I ) } 6 k Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Cliquenproblem Färbung APX... 317/351 Cliquenproblem Theorem Falls P = 6 N P gibt es für beliebiges k ∈ IN keinen Polynomzeitalgorithmus mit Approximationsfehler k für das Cliquenproblem. Sei G ein Graph. Sei G k = G × Ck . Damit: ω(G ) · k = ω(G k ). Angenommen es gibt einen Algorithmus A mit additiven Approximationsfehler k für das Cliquenproblem. Eingabe für A wird G k+1 . Damit gilt: opt(I ) 6 A(I ) + k und weiter: ω(G k+1 ) − A(G k+1 ) 6 k. (k + 1) · ω(G ) − A(G k+1 ) 6 k. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Cliquenproblem Färbung APX... 318/351 Cliquenproblem Theorem Falls P = 6 N P gibt es für beliebiges k ∈ IN keinen Polynomzeitalgorithmus mit Approximationsfehler k. (k + 1) · ω(G ) − A(G k+1 ) 6 k. Sei Gi (1 6 i 6 k + 1) die Kopien von G in G k+1 . Seien Ci die Lösungsanteile in Gi . ∀i : 1 6 i 6 k + 1 : Ci 6 ω(G ) Pk+1 (k + 1) · ω(G ) − i=1 |Ci | 6 k. Pk+1 i=1 ω(G ) − |Ci | 6 k. ∃i : Ci = ω(G ). Damit ist das Cliquenproblem in P. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Greedy Färbung APX... 319/351 Vertex Cover (Greedy) a1 a2 a3 a4 a5 a6 b1 b2 b3 b4 b5 b6 c1 c2 c3 c4 c5 c6 c7 c8 Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Greedy Färbung APX... 320/351 Vertex Cover (Greedy) Gk = (Ak ∪ Bk ∪ Ck , ∪ki=1 Ei ) Ak = {a1 , a2 , . . . , ak } Bk = {b1 , b2 , . . . , bk } ′ Ck = {c1 , c2 , . . . , ck ′ } mit k = Pk j=2 ⌊k/j⌋ E1 = {{ai , bi } | 1 6 i 6 k} Pi ki = j=2 ⌊k/j⌋ für i = 2, 3, . . . , k k1 = 0 Ei = {{cki−1 +j , bi∗(j−1)+x } | 1 6 j 6 ⌊k/i⌋ ∧ 1 6 x 6 i} für i = 2, 3, . . . , k In Ei sind ⌊k/i⌋ Knoten aus Ck beteiligt. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Greedy Färbung APX... 321/351 Vertex Cover (Greedy) Wir bestimmen nun den Approximationsfaktor F (n). F (n) > = > |Cgreedy (Gk )| |Copt (Gk )| Pk k 1 k · i=1 ⌊ i ⌋ Pk k 1 i=1 i − k · Pk 1 i=1 i − 1 R k+1 dx −1 i=1 x > > > ln k − 1 > ln ∆(Gk ) − 1 (k − 2) Damit kann der Greedyalgorithmus keinen konstanten Approximationsfaktor haben. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Greedy APX... 322/351 Vertex Cover Theorem Das Vertex Cover Problem kann mit einem Faktor von 2 approximiert werden. Sei G = (V , E ) Graph Bestimme maximum Matching M Wähle Vertex Cover C = {v ∈ V | ∃w ∈ V : {v , w } ∈ M} Setze τ (G ) = |V | − α(G ) und M(G ) Maximales Matching von G . Schätze Approximationsfaktor ab: |CMaxMatch (G )| τ (G ) 6 6 = 2·|M(G )| τ (G ) 2·|M(G )| |M(G )| 2 beachte: |M(G )| > |CMaxMatch (G )| beachte: |M(G )| 6 τ (G ) Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Greedy APX... 323/351 Vertex Cover Theorem Das Vertex Cover Problem kann mit einem Faktor von 2 − approximiert werden. log log n 2·log n Zusammenfassung: Vertex Cover ist mit Faktor 2 approximierbar. Clique ist mit keinem konstanten Faktor approximierbar. Independent Set ist mit keinem konstanten Faktor approximierbar. N P-vollständige Problem unterscheiden sich in ihrer Approximierbarkeit. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 324/351 Steiner-Baum Definition (Steiner-Baum Problem) Gegeben G = (V , E ), S ⊂ V und c : E 7→ Q I. Bestimme Spannbaum T = (S P ∪ P, F ), der die Knoten von S minimal e∈F c(e) verbindet. Die Blätter von T sind alle aus S. Die Menge P heißt Steinerpunkte. Falls S = V ist ein minimaler Spannbaum zu finden. Falls |S| = 2 ist ein mimimaler Weg zu finden. Anwendung: VLSI-Chip-Design Entscheidungsvariante: Gibt es Menge P ⊂ V \ S der Größe k, so daß G [S ∪ P] zusammenhängend ist. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 325/351 Steiner-Baum Theorem Das Steiner Baum Problem ist N P-vollständig. Sei G = (V , E ) Eingabe des Vertex Cover Problems Konstruiere Graphen G ′ aus G wie folgt: ˙ e ∪{z}, ˙ G ′ = (V ∪V F ∪ Ez ) Ve = {ve | e ∈ E } F = {{ve , a}, {ve , b} | e = {a, b} ∈ E } Ez = {{v , z} | v ∈ V } Setze S = Ve ∪ {z}. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 326/351 Steiner-Baum (Beispiel) a b c d e Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 327/351 Steiner-Baum (Beispiel) a b ab ac ad ae c bd z ce d de e Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 328/351 Steiner-Baum Theorem Das Steiner Baum Problem ist N P-vollständig. Erinnerung: G hat Vertex Cover der Größe τ (G ) G ′ hat n + m + 1 Knoten. G ′ ist bipatit. Beachte: S = Ve ∪ {z}. G ′ wird τ (G ) Steinerpunkte haben. Der Steiner-Baum wird γ(G ′ ) = τ (G ) + m Kanten haben. Zeige im Weiteren: γ(G ′ ) 6 τ (G ) + m γ(G ′ ) > τ (G ) + m Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 329/351 Steiner-Baum (Beweis) Zeige: γ(G ′ ) 6 τ (G ) + m Sei C Vertex Cover der Größe τ (G ). Wähle C als Steinerpunkte von G ′ . Mit τ (G ) Kanten werden die Knoten aus C mit z verbunden. Da C ein Vertex Cover ist, ist jeder Knoten aus Ve mit einen Knoten aus C verbunden. Damit sind alle Knoten aus Ve mit jeweils einem Knoten aus C verbunden. Das sind dann nochmals m Kanten Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 330/351 Steiner-Baum (Beweis) Zeige: γ(G ′ ) > τ (G ) + m Sei T Steiner-Baum mit γ(G ′ ) Kanten. Die Knoten C = V (T ) \ S sind dann die Steinerknoten. Jeder Knoten aus Ve ist mit einem Knoten aus C über T verbunden. Damit ist C ein Vertex Cover für G . Weiter hat T γ(G ′ ) + 1 Knoten. τ (G ) 6 |C | = γ(G ′ ) + 1 − (m + 1) = γ(G ′ ) − m. τ (G ) + m 6 γ(G ′ ). Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 331/351 Steiner-Baum (Approximation) Aufbau der Idee Alle Knoten aus S sind zu verbinden. Bestimme paarweise kürzeste Wege. Bestimme minimale Menge kürzester Wege die S verbinden. Bestimme daraus den Steiner-Baum. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 332/351 Steiner-Baum (Approximation) Verfahren von Kou, Markowsky und Berman Gegeben G = (V , E ), S ⊂ V und c : E 7→ Q I. Bestimme Clique GD = (V , F ) c :: F 7→ Q I mit: c({a, b}) = distG (a, b). Bestimme minimalen Spannbaum TD = (S, F ′ ) auf GD [S]. Bestimme H als Teilgraph von G über die minimale Wege für alle Kanten aus F ′ . Bestimme mimimalen Spannbaum TS auf H. Lösche sukzesive Blätter aus TS , die nicht in S sind. Ergebnis ist dern Baum TKMB . Damit gilt: c(TKMB ) 6 c(H) 6 c(TD ). Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 333/351 Steiner-Baum (Approximation) Beachte: c(TKMB ) 6 c(H) 6 c(TD ). Sei T ∗ ein minimaler Steiner-Baum. Schätzen nun C (T ∗ ) und c(TD ) zueinander ab. Ziel: C (TD ) 6 2 · c(T ∗ ). Verdopple die Kanten von T ∗ . Damit ergibt sich Zyklus Z , der alle Knoten aus S trifft. Z definiert spannenden Baum auf GD [S]: Start bei s1 in Z . Sei s2 , s3 , . . . , s|S| die Reihenfolge der Erstbesuche der Knoten aus S. Kanten {si , si+1 } bilden einen Spannbaum für S auf GD . Also: c(TZ ) 6 c(Z ). Und damit c(TZ ) 6 c(Z ) = 2 · c(T ∗ ). Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 334/351 Steiner-Baum (Approximation) Theorem Das Steiner Baum Problem kann mit einem Faktor von 2 approximiert werden. Theorem Das Steiner Baum Problem kann mit einem Faktor von werden. 11 6 approximiert Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Einleitung TSP Definition (TSP) Gegeben G = (V , E ), L ∈ Q I und c : E 7→ Q I. Bestimme spannenden Kreis C mit c(C ) 6 L. Definition (∆-TSP) Gegeben G = (V , E ), L ∈ Q I und c : E 7→ Q I mit: foralla, b, c ∈ V : |{a, b, c}| = 3 : c(a, c) 6 c(a, b) + c(b, c). Bestimme spannenden Kreis C mit c(C ) 6 L. Theorem ∆-TSP mit Gewichtsfunktion c 7→ {1, 2} ist in N PC. Färbung APX... 335/351 Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Approximation Färbung APX... 336/351 Approximation Theorem ∆-TSP ist mit einem Faktor von 2 approximierbar. Bestimme minimalen Spannbaum T von G . Verdoppele die Kanten von T und erzeuge Graphen T ′ . Bestimme in T ′ einen Eulerkreis C ′ . Verkürze C ′ durch Überspringen doppelter Knoten Dadurch entstehe Kreis C . Sei C ∗ eine minimale TSP Tour. c(T ) 6 c(C ∗ ). c(C ) 6 2 · c(T ). c(C ) c(C ∗ ) 6 2·c(T ) c(C ∗ ) 6 Laufzeit O(n2 ). 2·c(C ∗ ) c(C ∗ ) =2 Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Approximation APX... 337/351 Approximation Theorem ∆-TSP ist mit einem Faktor von 1.5 approximierbar. Bestimme minimalen Spannbaum T von G . Bestimme minimales Matching M zwischen den Knoten ungeraden Grades von T . Bestimme in T ∪ M einen Eulerkreis C ′ . Verkürze C ′ durch Überspringen doppelter Knoten Dadurch entstehe Kreis C . Sei C ∗ eine minimale TSP Tour. c(T ) 6 c(C ∗ ). c(M) 6 c(C ∗ )/2. c(C ) c(C ∗ ) 6 c(T )+c(M) c(C ∗ ) 6 c(C ∗ )+c(C ∗ )/2 c(C ∗ ) 6 1.5·c(C ∗ ) c(C ∗ ) = 1.5 Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Nichtapproximierbarkeit Nichtapproximierbarkeit Theorem Falls P = 6 N P gibt es für beliebiges k ∈ IN keinen Polynomzeitalgorithmus mit Approximationsfaktor k für TSP. Sei G = (V , E ) Eingabe für das Hamiltonkreisproblem Die Gewichtsfunktion für TSP wird wie folgt bestimmt: 1 falls e ∈ E c(e) := k · n sonst Falls G Hamiltonkreis hat, so sind die Kosten des TSP: n. Falls G keinen Hamiltonkreis hat, so sind die Kosten des TSP mindestens: n − 1 + k · n > k · n. Damit könnte Hamiltonkreis entschieden werden. APX... 338/351 Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Einleitung Färbung APX... 339/351 Zentrumsproblem Gegeben G = (V , E ) und c : E 7→ Q I. Sei Z ⊂ V dist(v , Z ) := minz∈Z dist(z, v ) Rad(Z ) := maxv ∈V dist(v , Z ) Definition (Zentrumsproblem (Entscheidungsvariante)) Gegeben G = (V , E ), k ∈ IN, L ∈ Q I und c : E 7→ Q I. Bestimme Z mit |Z | = k und Rad(Z ) 6 L. Definition (Zentrumsproblem) Gegeben G = (V , E ), k ∈ IN und c : E 7→ Q I. Bestimme Z mit |Z | = k und Rad(Z ) minimal. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Komplexität APX... 340/351 Komplexität Theorem Falls P = 6 N P gibt es für beliebiges r < 2 keinen Polynomzeitalgorithmus mit Approximationsfaktor r für das Zentrumsproblem. Reduktion auf das Dominating Set Problem. Sei (G , k) Eingabe für das Dominating Set Problem. Setze c(e) = 1 für e ∈ E (G ). Dann hat G Dominating Set der Größe k falls G Zentrum mit k Knoten und Radius 1 hat. Falls es einen Algorithmus A mit Approximationsfaktor r < 2 gibt, so liefert A bei Eingabe (G , 1, k, c) ein Dominating Set Problem der Größe k. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Approximation Färbung APX... 341/351 Zentrumsproblem (mit Knotenkosten) Gegeben G = (V , E ), w : V 7→ Q I und c : E 7→ Q I. Sei Z ⊂ V dist(v , Z ) := minz∈Z dist(z, v ) Rad(Z ) := maxv ∈V w (v ) · dist(v , Z ) Definition (Zentrumsproblem) Gegeben G = (V , E ), k ∈ IN, w : V 7→ Q I und c : E 7→ Q I. Bestimme Z mit |Z | = k und Rad(Z ) minimal. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Approximation Färbung APX... 342/351 Approximation Algorithmus GreedyZentrum(G , c, w , R) Z := ∅ U := V Solange U 6= ∅ mache z := argmax{w (u) | u ∈ U} Z := Z ∪ {z} U := U \ {u ∈ U | w (v ) · dist(v , z) 6 2 · R} Ausgabe: Z Definiere: f (R) := |GreedyZentrum(G , c, w , R)| P ′ Definiere: R = maxv ∈V w (v ) · e∈E c(e) f (0) = n f (R ′ ) = 1 f (R) ist aber nicht monoton. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Approximation APX... 343/351 Approximation Lemma Sei G = (V , E ) Z ∗ ein Zentrum aus k Knoten mit minimalen Radius und R ∗ = Rad(Z ∗ ). Dann gilt: f (R) 6 k für alle R > R ∗ . Sei Z ∗ = {z1 , z2 , . . . , zk }. Sei Vi := {v ∈ V | w (v ) · dist(v , zi ) 6 R ∗ }}. Damit ∪ki=1 Vi = V . Sei z der in der Schleife gewählte Knoten. Und z ∈ Vi für ein i. Damit gilt: w (v ) · dist(v , z) 6 6 6 6 w (v ) · (dist(v , vi ) + dist(vi , z)) w (v ) · dist(v , vi ) + w (z) · dist(vi , z) 2 · R∗ 2·R Alle Knoten aus Vi sind am Ende des Schleifendurchlaufes aus U gelöscht. Schleife terminiert nach höchstens k = |Z ∗ | Runden. Und es gilt: |Z | 6 k. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Approximation APX... 344/351 Approximation Es werden nun die folgenden Werte untersucht: {w (u) · dist(u, v ) | u, v ∈ V ∧ u 6= v } anz := |{w (u) · dist(u, v ) | u, v ∈ V ∧ u 6= v }| 6 n · (n − 1) Algorithmus ApproxZentrum(G , c, w , k) Bestimmte Distanzmatrix (dist(u, v ))u,v ∈V für (G , c). Sortiere Werte {w (u) · dist(u, v ) | u, v ∈ V ∧ u 6= v }. Seien R1 < R2 < . . . < Ranz diese Werte. i := 0 Wiederhole i =i +1 Z := GreedyZentrum(G , c, w , Ri ) bis |Z | 6 k. Ausgabe: Z . Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Approximation APX... 345/351 Approximation Theorem Das Zentrumsproblem ist mit einem Faktor von 2 approximierbar. Wegen dem obigen Lemma terminiert die Schleife. Sie i0 die Anzahl der Schleifendurchläufe. D.h. der Durchlauf mit Ausgabe Z mit Rad(Z ) 6 2 · Ri0 Durch Konstrukton von GreedyZentrum gilt: Rad(Z ) 6 2 · Ri0 Damit ist auch Z eine 2 Approximation. Laufzeit: Distanzmatrix: O(n3 ). Sortierung: O(n2 log n). GreedyZentrum: O(n2 ). Gesamtlaufzeit O(n4 ). Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Greedy APX... 346/351 Approximationsfehler von Greedy Greedyverfahren liefert Färbung mit AGreedy = ∆(G ) + 1 Farben. Zweifärbung ist in P. Approximationsfehler: χ(G ) 6 6 ∆(G )+1 . 3 Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Greedy APX... 347/351 Aussagen Lemma Sei 0 < 0 6 1 Konstante. Es gibt linearen Algorithmus, der das Färbungsproblem mit Faktor max(1, c · n) approximiert. Falls |V | 6 2/c dann färbe G : Färbe per Greedy durch alle Permutationen der Knoten den Graphen optimal. (2/c)! Laufzeit: O((2/c)! · 2 ). Laufzeit: O(1) und Fehlerfaktor 1. Falls |V | < 2/c dann färbe G : Partitioniere V (G ) in ⌊c · n⌋ Teile der Größe ⌊n/⌊c · n⌋⌋ oder ⌈n/⌊c · n⌋⌉. n + 1 6 c2 = 1. Jeder Teil hat Größe 6 cn−1 Jeder Teil kann in konstanter Zeit optimal gefärbt werden. ) 6 cn. Gesamtfarbenanzahl: ⌊cn⌋·χ(G χ(G ) Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung Greedy APX... 348/351 Aussagen Lemma Falls P = 6 N P gibt keinen Polynomzeitalgorithmus mit Approximationsfehler 4/3 für das Färbungsproblem. Theorem (Garry, Johnson 1976) Falls P = 6 N P gibt keinen Polynomzeitalgorithmus mit Approximationsfehler 2 für das Färbungsproblem. Theorem (Johnson 1974) Das Färbungsproblem kann mit einem Faktor von O(n/ log n) in Zeit O(nm) approximiert werden. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Greedy Färbung APX... 349/351 Aussagen Theorem (Lund, Jannakakis 1993) Falls P = 6 N P gibt es für beliebiges ǫ > 0 keinen Polynomzeitalgorithmus mit Approximationsfehler nǫ für das Färbungsproblem. Theorem (Feige, Kilian 1996) Falls P = 6 ZPP gibt es für beliebiges ǫ > 0 keinen Polynomzeitalgorithmus mit Approximationsfehler n1−ǫ für das Färbungsproblem. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 350/351 Nichtapproximierbarkeit Die folgenden Probleme sind MAX-SNP schwer: Vertex Cover ∆-TSP Steiner-Baum D.h. für diese gibt es kein PTAS. Einleitung Vertex Cover Steiner-Bäume TSP Zentrumsproblem Färbung APX... 351/351 Fragen Wie kann das Problem Cliquenproblem aproximiert werden? Welche untere Schranken sind dazu bekannt? Wie kann das Problem Färbungsproblem aproximiert werden? Welche untere Schranken sind dazu bekannt? Wie kann das Problem Vertex Cover Problem aproximiert werden? Welche untere Schranken sind dazu bekannt? Wie kann das Problem Independent Set Problem aproximiert werden? Welche untere Schranken sind dazu bekannt? Wie kann das Problem Steiner Baum Problem aproximiert werden? Welche untere Schranken sind dazu bekannt? Wie kann das Problem TSP aproximiert werden? Welche untere Schranken sind dazu bekannt? Wie kann das Problem ∆-TSP aproximiert werden? Welche untere Schranken sind dazu bekannt? Wie kann das Problem Zentrumsproblem aproximiert werden? Welche untere Schranken sind dazu bekannt?