Komplexitätstheorie Teil E: Parametrisierte Komplexität 18: Weitere algorithmische Techniken Version von: 11. Juni 2015 (17:58) Sommersemester 2015 - Thomas Schwentick Inhalt 18.1 Weitere Techniken für FPT-Algorithmen ✄ 18.1.1 Kleine Suchbäume 18.1.2 Baumzerlegungen 18.1.3 Andere Techniken 18.1.4 FPT und Approximation Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 1 Kleine Suchbäume: Einleitung • Der Suchbaum-basierte O(2k n2 )- Algorithmus für P-V ERTEX C OVER lässt sich auf einfache Weise verbessern • N (v) bezeichne die Menge der Nachbarn eines Knoten v • Grundidee: – Ein Vertex-Cover muss jeweils v oder (alle Knoten aus) N (v) enthalten • Der Algorithmus verwaltet immer ein aktuell zu lösendes Problem (G,k,U ) (mit G=(V,E)) und einer Menge U von • Knoten, die schon in das zu berechnende Vertex-Cover aufgenommen sind (U ∩ V = Algorithmus 18.1 (0) Falls |V | ≤ blem direkt 3 oder k ≤ 1, löse das Pro- (1) Falls möglich, wähle v vom Grad 1 und mache weiter mit G − N (v) (2) Falls möglich, wähle v vom Grad 2 mit verbundenen Nachbarn und mache weiter mit G − N (v) (3) Falls möglich, wähle v vom Grad 2 mit unverbundenen Nachbarn und verzweige zu (a) G − N (N (v)) und (b) G − N (v) (4) Andernfalls wähle v vom Grad ≥ 3 und ∅) verzweige zu Notation: Für eine Menge N von Knoten (a) G − {v} und (b) G − N (v) bezeichnen wir mit G − N das Teilpro• Wenn als Parameter ein negativer Wert blem (G − N,k − |N |,U ∪ N ) übergeben wird, liefert der Aufruf des Algorithmus die Antwort „nein“ Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 2 Analyse von Algorithmus 18.1 (1/2) Satz 18.2 Beweisskizze für (b) 1. Algorithmus 18.1 ist korrekt 2. Die Anzahl der Blätter im Suchbaum von Algorithmus 18.1 bei Eingaben mit Parameter k ist beschränkt durch 1,47k Beweisskizze • Die Korrektheit des Algorithmus kann durch eine Fallunterscheidung gezeigt werden – Begründung dafür, dass in (3a) die Menge N (N (v)) gewählt wird: ∗ Alternativ müsste v und ein Nachbar x von v aufgenommen werden ∗ Das ist aber nicht besser als N (v) aufzunehmen, was durch (3b) schon erfasst ist Kompl.-Theorie / Schwentick / SoSe 15 • Algorithmus 18.1 verzweigt (1) zu einem Teilproblem mit Parameter k − 1, (2) zu einem Teilproblem mit Parameter k − 2, (3) zu einem Teilproblem mit Parameter k − 2 und einem mit Parameter ≤ k − 2, oder (4) zu einem Teilproblem mit Parameter k − 1 und einem mit Parameter ≤ k − 3 • Mit T (k) bezeichnen wir die maximale Anzahl der Blätter eines Verzweigungsbaumes für Eingaben der Art (G,k) • Dann lässt sich in den vier Fällen die Anzahl der Blätter also abschätzen durch (1) T (k − 1) (2) T (k − 2) (3) T (k − 2) + T (k − 2) (4) T (k − 1) + T (k − 3) • Außerdem ist T (1) = 1 • Behauptung: T (k) ≤ 1,47k E: 18. Weitere algorithmische Techniken . ✁✄ Folie 3 Analyse von Algorithmus 18.1 (2/2) Beweisskizze (Forts.) • Klar: wenn in einer Berechnung des Algorithmus nur die Fälle (1) und (2) vorkommen, verzweigt er gar nicht • Kommen nur die Fälle (1)-(3) vor, so ist die Anzahl der Blätter höchstens √ k k/2 2 = ( 2) • Wie gehen wir mit Fall (4) um? • Das charakteristische Polynom x3 − x2 − 1 zur Rekurrenz T (k) ≤ T (k − 1)√+ T (k − 3) hat eine Nullstelle α mit 2 ≤ α ≤ 1,47 • Es gilt also α3 = α2 + 1 • Wir zeigen jetzt durch Induktion nach k: T (k) ≤ αk • Induktionsanfang: T (1) = 1 ≤ α Kompl.-Theorie / Schwentick / SoSe 15 Beweisskizze (Forts.) • Sei k > 1 – Wenn der Algorithmus gemäß (1) oder (2) verzweigt, ist die Anzahl der Blätter ≤ T (k − 1) ≤ αk−1 ≤ αk – Wenn der Algorithmus gemäß (3) verzweigt, ist die Anzahl der Blätter ≤ 2T (k − 2) ≤ 2αk−2 ≤ αk (wegen 2 ≤ α2 ) – Wenn der Algorithmus gemäß (4) verzweigt, ist die Anzahl der Blätter ≤ T (k − 1) + T (k − 3) ≤ αk−1 + αk−3 = αk E: 18. Weitere algorithmische Techniken . ✁✄ Folie 4 Analyse von rekursiven Algorithmen: allgemein • Das allgemeine Vorgehen bei rekursiv verzweigenden Algorithmen ist wie folgt – Wir nehmen zunächst an: T (1) = 1 – Wir betrachten jede Möglichkeit der Verzweigung des Algorithmus unabhängig von den anderen: ∗ Angenommen, für den i-ten Fall lässt sich die Anzahl der Blätter im Baum abschätzen durch T (k − d1 ) + . . . + T (k − dl ) · (Verzweigungsvektor (d1 , . . . ,dl )) ∗ Wir definieren dazu das charakteristisches Polynom: p(x) = xd − xd−d1 − . . . − xd−dl (d: maximales di ) ∗ Es ist immer p(1) ≤ 0 und limx→∞ p(x) = ∞ ➨ p hat eine reelle Nullstelle αi mit 1 ≤ αi ∗ Sei α das Minimum aller αi > 1 ∗ Dann lässt sich durch Induktion nach k zeigen, dass T (k) ≤ αk ist • Ist T (1) = c, so ergibt sich T (k) ≤ cαk Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 5 P-V ERTEX C OVER: Verfeinerter Algorithmus (1/2) • Durch eine verfeinerte Fallunterscheidung lässt sich Algorithmus 18.1 weiter verbessern • u1 ,u2 , . . . bezeichnen im Folgenden die Nachbarn von v Nr. (1) (2) (3) d(v) 1 ≥5 4, 3, 2 Verzweige zu ... Vorbedingung G − {u1 } G−{v}, G−N (v) G−{v}, G−N (v) G regulär (alle Knoten haben denselben Grad) (4b) 2 2 G−{u1 ,u2 } G−{v,w} (4c) 2 (5a) 3 3 3 G−N (v), G−(N (u1 ) ∪ N (u2 )) G−N (v), G−N (u3 ) G−N (v), G−{v,w} G−N (v), G−N (u1 ), G−({u1 } ∪ N ({u2 ,u3 })) (4a) (5b) (5c) (u1 ,u2 ) ∈ E u1 ,u2 haben Grad 2 und es gibt w 6= v , (w,u1 ),(w,u2 ) ∈ E sonst v,u1 ,u2 bilden Dreieck v,u1 ,w,u2 ,v ist Kreis keine Kanten zwischen u1 ,u2 ,u3 , |N (u1 )| • Falls G unzusammenhängend wird: weiter mit Komponenten Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken =4 . ✁✄ Folie 6 P-V ERTEX C OVER: Verfeinerter Algorithmus (2/2) Satz 18.3 • Der beschriebene Algorithmus führt zu einem Suchbaum der Größe O(1,33k ) Beweisidee • Korrektheit: durch Fallunterscheidung • Die Verzweigungsvektoren und α-Werte sind wie folgt: Nr. Verzweigungsvektor αi (1) (1) 1 (2) (1,5) ≤ 1,33 (3) (1,4), (1,3) oder (1,2) < 1,39, 1,47, 1,62 (4a) (2) 1 (4b) (2) 1 (4c) (2,3) < 1,33 (5a) (3,3) < 1,27 (5b) (3,2) < 1,33 (5c) (3,4,6) < 1,31 – Fall (3) kann insgesamt nur dreimal auf jedem vertikalen Pfad des Suchbaumes, deshalb beeinflusst er α nicht Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 7 Inhalt 18.1 Weitere Techniken für FPT-Algorithmen 18.1.1 Kleine Suchbäume ✄ 18.1.2 Baumzerlegungen 18.1.3 Andere Techniken 18.1.4 FPT und Approximation Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 8 Baumzerlegungen (1/5) • Allgemeine Erfahrung: Viele Probleme, die auf allgemeinen Graphen schwierig sind, lassen sich auf Bäumen effizient lösen • Beispiele: – Graph-Färbung, C LIQUE – V ERTEX C OVER, D OMINATING S ET Beispiel • Beispiel: Baumzerlegung für Kreis v1 , . . . ,vn ,v1 : {v1 ,v2 ,v3 }, {v1 ,v3 ,v4 }, . . . ,{v1 ,vn−1 ,vn } • Lässt es sich auch ausnutzen, wenn ein Graph nur „baum-ähnlich“ ist? • Das führt uns zum Konzept von Baumzerlegungen • Grundidee: wir gruppieren die Knoten eines Graphen G in Clustern – Dabei kann derselbe Knoten in mehreren Clustern vorkommen • Genauer: Wir konstruieren einen Baum T , dessen Knoten jeweils mit einem Teilgraphen von G markiert sind, so dass – jede Kante von G in einem T -Knoten vorkommt und – jeder Knoten von G einen zusammenhängenden Teilbaum von T induziert Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 9 Baumzerlegungen (2/5) Beispiel 3 Beispiel 3 8 2 2 4 1 5 4 9 7 2 4 2 1 4 5 6 8 5 4 8 5 7 5 7 8 9 6 Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 10 Baumzerlegungen (3/5) Definition • Sei G = (V,E) ein Graph • Eine Baumzerlegung (T,X) besteht aus einem Baum T mit Knotenmenge I und einer Funktion X : I → 2V , so dass gelten: [ X(i) (i) V = i∈I (ii) E= [ E(i) i∈I – wobei E(i) def = {(u,v) ∈ E | u,v ∈ X(i)} (iii) Für jedes v ∈ V ist die Menge {i | v ∈ X(i)} zusammenhängend in T • Die Weite w(T,X) ist max |X(i)| − 1 • G Baum ⇒ tw(G) = 1 • G Kreis ⇒ tw(G) = 2 • G (m×m)-Grid ⇒ tw(G) = m • Notation: – G[X] bezeichnet den durch die Knotenmenge X ⊆ V induzierten Teilgraphen von G – Z.B.: G[X(i)] ist der Graph (X(i),E(i)) i∈I • Die Baumweite tw(G) von G ist die minimale Weite einer Baumzerlegung für G • Mit BTWk bezeichnen wir die Klasse aller Graphen mit Baumweite ≤ k Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 11 Baumzerlegungen: (4/5) • Die Baumweite eines Graphen G lässt sich durch folgendes Räuber-und-Gendarm-Spiel charakterisieren: – Zwei Spieler (für Gendarmen und Räuber) – Der Räuber steht immer auf einem Knoten – k Gendarmen stehen jeweils auf k Knoten – Eine Spielrunde: ∗ Spieler 1 kündigt an, welche Gendarmen er auf welche Knoten bewegen will (unabhängig von Kanten) ∗ Spieler 2 darf den Räuber entlang Kanten, die nicht von bewegungslosen Gendarmen besetzt sind, beliebig weit bewegen – Spieler 1 gewinnt, wenn ein Gendarm auf einem Feld landet, auf dem der Räuber sich befindet • Ein Zusammenhang zwischen Baum- zerlegungen und parametrisierten Algorithmen wird durch die folgenden Resultate hergestellt Satz 18.4 [Arnborg et al. 87, Bodlaender 96] (a) Die Menge {(G,k) ist NP-vollständig | tw(G) ≤ k} (b) Für jedes feste k, ist die Menge aller G mit tw(G) ≤ k in linearer Zeit erkennbar (c) Es gibt einen Algorithmus, der zu jedem gegebenen Graphen G ∈ BTWk eine Baumzerlegung der Weite k konstruiert, und der für jedes feste k lineare Laufzeit hat • Fakt: Die Minimalzahl von Gendarmen, die Spieler 1 auf G zum Sieg benötigt, ist genau tw(G) + 1 Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 12 Baumzerlegungen: (5/5) Beispiel: Graphklassen beschränkter Baumweite • Für praktische Zwecke sind die Al- • Bäume: Baumweite 1 • „Series-parallel graphs:“ – Graphen, die durch serielle und parallele Komposition konstruiert werden können – Baumweite 2 • Außerplanare Graphen: – Planare Graphen, bei denen alle Knoten auf einem Kreis liegen und Kanten nur nach „außen“ führen – Baumweite 2 • k-außerplanare Graphen: Baumweite ≤ 3k + 1 • Halin-Graphen: gorithmen aus Satz 18.4 nur bedingt geeignet, da die Konstanten riesig werden • Im FPT-Zusammenhang sind Baumzerlegungen trotzdem interessant: – Wähle die Baumweite eines Graphen als Parameter – Für Eingabe (G,k) konstruiere eine Baumzerlegung (T,X) der Weite k mit Algorithmus A – Teste (G,k) ∈ L durch dynamische Programmierung in Zeit – Bäume, deren Blätter durch Kreis verbunden sind – Baumweite 3 f (k)p(|G|) • Die Klasse der planaren Graphen hat unbeschränkte Baumweite: Grids Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 13 P-V ERTEX C OVER durch dynamische Programmierung (1/2) Satz 18.5 Beweisskizze • Für Graphen G mit gegebener Baumzerlegung (T,X) der Weite k lässt sich in Zeit O(2k k|I|) ein minimales Vertex-Cover • Sei in T eine Wurzel r gewählt • Bezeichnungen: def – Ti = Teilbaum von T , der Knoten i als Wurzel hat [ def – Vi = X(j) berechnen Beweisidee • Idee: 1. Berechne, für jeden ClusterKnoten i ∈ I , eine Tabelle Ai aller möglichen Vertex-Cover von def Gi = (X(i),E(i)) 2. Wähle eine Wurzel von T 3. Kombiniere die Tabellen in einer Bottom-up-Berechnung bezüglich T zu einem minimalen Vertex-Cover für G Kompl.-Theorie / Schwentick / SoSe 15 j∈Ti (Menge aller Knoten in Ti ) 1. Phase: Berechne, für jeden Knoten i von T und jede Menge X ⊆ X(i): • Ai (X) := |X|, falls X VertexCover von Gi ist • Ai (X) := ⊥, andernfalls E: 18. Weitere algorithmische Techniken . ✁✄ Folie 14 P-V ERTEX C OVER durch dynamische Programmierung (2/2) Beweisskizze (Forts.) 2. Phase: • Wähle jeweils ein Blatt j und den Eltern-Knoten i von j def • Sei D = X(i) ∩ X(j) ✎ Menge der Knoten, die in i und j • vorkommen Für X ⊆ X(i) sei Kj (X) die Menge aller „mit X kompatiblen“ Teilmengen von X(j): def – Kj (X) = {Y ⊆ X(j) | X ∩ D = Y ∩ D} • Für jedes X ⊆ X(i) berechne def δj (X) = min Aj (Y ) Y ∈Kj (X) und setze Ai (X) := Ai (X) + δj (X) − |D ∩ X| • Entferne j von T • Am Ende der Berechnung ist dann nur noch die Wurzel r von T übrig Kompl.-Theorie / Schwentick / SoSe 15 Beweisskizze (Forts.) • Die Korrektheit des Algorithmus lässt sich durch Induktion mit der folgenden Schleifeninvariante zeigen: – Ai (X) ist immer der optimale Wert eines VC U mit X(i) ∩ U = X für S G[X(i) ∪ ℓ∈Ti ,ℓ gelöscht X(ℓ)] • Dann: OPT- V V ERTEXC OVER (G) = min{Ar (X) | X ⊆ Xi } • Wie bei dynamischer Programmierung üblich, lässt sich aus den gespeicherten Zwischenergebnissen auch eine optimale Lösung konstruieren • Die behauptete Laufzeit gilt bei geschickter Implementierung ✎ im Prinzip muss für Knoten j und i nur jeder Eintrag von Ai und Aj einmal besucht werden • Beispielberechnung: E: 18. Weitere algorithmische Techniken ⊞ . ✁✄ Folie 15 Inhalt 18.1 Weitere Techniken für FPT-Algorithmen 18.1.1 Kleine Suchbäume 18.1.2 Baumzerlegungen ✄ 18.1.3 Andere Techniken 18.1.4 FPT und Approximation Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 16 Weitere Techniken für FPT-Algorithmen • Dynamische Programmierung: Wir wissen, dass RUCKSACK einen pseudo-polynomiellen Algorithmus hat ➞ Wenn wir W als Parameter wählen, wird aus diesem Algorithmus ein FPT-Algorithmus • Die Monadische Logik zweiter Stufe (MSO) erlaubt die Quantifizierung von Mengen – Damit lässt sich z.B. 3C OL ausdrücken • Fakt: für jedes k kann jede Eigenschaft, die sich in MSO beschreiben lässt, auf Graphen mit Baumweite k in linearer Zeit entschieden werden [Courcelle 90] – Deshalb gilt z.B.: 3C OL ∈ FPT (mit Baumweite als Parameter) • Es gibt eine Vielzahl weiterer Techniken • Das Gebiet ist ein hochaktuelles Forschungsgebiet! • Siehe [Niedermeier 06; Flum, Grohe 06] Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 17 Inhalt 18.1 Weitere Techniken für FPT-Algorithmen 18.1.1 Kleine Suchbäume 18.1.2 Baumzerlegungen 18.1.3 Andere Techniken ✄ 18.1.4 FPT und Approximation Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 18 FPT und PTAS Beweisskizze • Für ein NPO-Problem O = (I,S,v,t) sei die Standard-Parametrisierung PO von O das parametrisierte Problem – {(x,k) | OPT- VO (x) ≥ k}, falls t = max und – {(x,k) | OPT- VO (x) ≤ k}, falls t = min • EPTAS: Klasse aller PTAS-Probleme mit ei- nem Approximationsalgorithmus mit Laufzeit f ( 1ǫ )p(|x|) für ein berechenbares f Satz 18.6 • Für NPO-Probleme mit ganzzahligen Lösungswerten gilt: O ∈ EPTAS ⇒ PO ∈ FPT Beweisidee • Es genügt, eine Genauigkeit < chen Kompl.-Theorie / Schwentick / SoSe 15 1 zu erreik • OBdA: t = min • Sei A der EPTAS-Algorithmus für O • Sei f ( 1ǫ )p(|x|) eine Laufzeitschranke für A bei Approximationsgüte 1 + ǫ • Seien x ∈ I und k gegeben 1 • Setze ǫ = 2k • Berechne Näherungslösung y mit v(x,y) ≤ (1 + ǫ)OPT- V(x) • Antwort „ja“, genau wenn v(x,y) ≤ k • Denn: – Angenommen: OPT- V(x) ≤ k ➨ v(x,y) − OPT- V(x) ≤ ǫk ≤ 12 ➨ v(x,y) = OPT- V(x) def • Laufzeit: f (2k)p(|x|) ➨ FPT E: 18. Weitere algorithmische Techniken . ✁✄ Folie 19 ! Quellen • Lehrbücher – R.G. Downey and M.R. Fellows. Parameterized Complexity. Springer, 1997 – J. Flum and M. Grohe. Parameterized Complexity Theory. Springer-Verlag, 2006 – Rolf Niedermeier. Invitation to fixedparameter algorithms. Oxford University Press, 2006 Kompl.-Theorie / Schwentick / SoSe 15 • Originalarbeiten: – Baumzerlegungen: ∗ S. Arnborg, D. G. Corneil, and A. Proskurowski. Complexity of finding embedding in a k-tree. SIAM Journal on Algebraic and Discrete Methods, 8:277–284, 1987 ∗ Hans L. Bodlaender. A linear time algorithm for finding tree-decompositions of small treewidth. In STOC, pages 226–234, 1993 ∗ Hans L. Bodlaender. A linear-time algorithm for finding tree-decompositions of small treewidth. SIAM J. Comput., 25(6):1305–1317, 1996. Conference Version in STOC 93 ∗ Bruno Courcelle. Graph rewriting: An algebraic and logic approach. In Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics (B), pages 193–242. 1990 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 20 Änderungslog 23.6.14 Folie 6: (5c), letzter Fall: G−({u1 } ∪ N ({u2 ,u3 })) • Danke an Herrn Christian Cöster für den Hinweis Kompl.-Theorie / Schwentick / SoSe 15 E: 18. Weitere algorithmische Techniken . ✁✄ Folie 21