Algorithmische Graphentheorie Sommersemester 2015 11. Vorlesung Festparameterberechenbarkeit 1 Dr. Joachim Spoerhase und Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Herangehensweisen an NP-schwere Probleme Exponentialalgorithmen, z.B. Backtracking Approximationsalgorithmen: Tausche Qualität gegen Laufzeit Heuristiken: empirische Untersuchung auf Benchmarks Randomisierung: Suche nach der Nadel im Heuhaufen Entwurf von parametrisierten Algorithmen 2 NEU Ein Beispiel: Vertex Cover Def. (Zur Erinnerung) Sei G = (V , E ) ein ungerichteter Graph. C ⊆ V heißt Knotenüberdeckung (engl. vertex cover ) von G , falls für alle uv ∈ E gilt {u , v } ∩ C 6= ∅. Prob. Kleinste Knotenüberdeckung – Optimierungsproblem Gegeben: Graph G Gesucht: eine kleinste Knotenüberdeckung von G Prob. k -Knotenüberdeckung (k -VC) – Entscheidungsproblem Gegeben: Graph G , natürliche Zahl k Gesucht: Knotenüberdeckung der Größe ≤ k von G – falls eine solche existiert (sonst gib nein“ zurück) ” 3 Previous Work eines der ersten Probleme, dessen NP-Schwere gezeigt wurde (SAT p CLIQUE p VC p . . . ) [Karp, 1972] eines der sechs grundlegenden NP-vollständigen Probleme in dem Klassiker: [Garey & Johnson, 1979] approximierbar: Nicht-erweiterbares Matching liefert“ ” Faktor-2-Approximation. . . . , aber nicht beliebig gut: 4 Es gibt keine Faktor-1.36066 N P. Approximation für VC, falls P = [Dinur & Safra, 2004] Ein exakter Algorithmus für k-VC BruteForceVC(Graph G , Integer k ) V |V | n V foreach C ∈ k do k = k = k = O (nk ) // teste, ob C VC vc = true foreach uv ∈ E do if {u , v } ∩ C = ∅ then O (E ) = O (m) vc = false if vc then return (“yes”, C ) return (“no”, ∅) Laufzeit. O (nk m) – Dies ist nicht polynomiell in der Größe der Eingabe (= n + m), da k keine Konstante, sondern Teil der Eingabe. 5 Ein neues Ziel Bemerkung. Die Klasse F PT ändert sich nicht, wenn statt + hier · steht. Finde einen Algorithmus für k -VC mit Laufzeit c O(f (k) + |I | ), wobei f : N → N berechenbare Funktion (unabh. von I ), I gegebene Instanz, c Konstante (unabh. von I ) D.h. die Laufzeit soll abhängen – beliebig vom Parameter k , Schwierigkeit des Problems – polynomiell von der Größe |I | der Instanz I . Ein Problem, das in dieser Zeit gelöst werden kann, heißt festparameterberechenbar (fixed-parameter tractable) bzgl. k . FPT = Klasse der festparameterberechenbaren Probleme. 6 Ein paar einfache Beobachtungen. . . Sei G Graph, C VC für G , v Knoten, der nicht in C liegt. Welche Knoten liegen dann sicher in C ? Beob. 1. Sei G ein Graph, C ein VC für G , v ein Knoten. Dann gilt: v ∈ C oder N (v ) ⊆ C . Betrachte Entscheidungsproblem k -VC. Was gilt für Knoten mit Grad > k ? Beob. 2. Jeder Knoten mit Grad > k ist in jedem k -VC enthalten. Was gilt, falls |E | > k 2 und alle Knoten Grad ≤ k haben? Beob. 3. 7 Falls |E | > k 2 und ∆(G ) := maxv ∈V deg v ≤ k , so hat G kein k -VC. Algorithmus von Buss BussVC(Graph G , Integer k ) I) Reduktion auf den Kern des Problems C = {v ∈ V | deg v > k } if |C | > k then return “no” O (n + m ) G = (V , E ) := G [V \ C ] (ohne isolierte Knoten) Zeit 0 k = k − |C | 0 02 if |E | > k then return “no” 0 0 0 II) Lösung des Restproblems mit roher Gewalt ) 0 0 0 k O (m · (n ) ) Zeit (vc, C 0 ) = BruteForceVC(G 0 , k 0 ) 0 0 2 wobei m := | E | ≤ k return (vc, C ∪ C 0 ) ⇒ n0 := |V 0 | ≤ 2k 2 2 2 k 2 k 2k Laufzeit. O n + m + k · (2k ) = O n + m + k 2 k | {z } | {z } |I |1 f (k ) k -VC ∈ FPT ! Also: 8 Suchbaum-Algorithmus Idee. Verbessere Phase II durch Aufbau eines Suchbaums. Baumhöhe k (G , k , ∅) N (v ) v (G − v , k − 1, {v }) (G − N (v ), k − deg v , N (v )) N (w ) N (w ) w w .. Blatt ` Blätter sind alle Knoten mit k = 0; sie befinden sich auf verschiedenen Ebenen. (G` , 0, C` ) #Knoten: T (k ) ≤ 2 T (k − 1) + 1, T (0) = 1 ⇒ T (k ) ≤ 2k +1 − 1 ∈ O (2k ) ⇒ Laufzeit: O ? (2k ) Gibt es ein Blatt ` mit E` = ∅, so ist C` ein k -VC von G . Gibt es kein solches Blatt, so hat G kein k -VC. 9 Der Grad-4-Algorithmus Idee. Verbessere Abschätzung von |N (v )|. Baumhöhe k (G , k , ∅) ≥4 N (v ) Annahme:z }| v { (G − v , k − 1, {v }) (G − N (v ), k − deg v , N (v )) N (w ) N (w ) w w .. Blatt ` (G` , 0, C` ) ⇒ T (k ) = T (k − 4) + T (k − 1) + 1, T (≤ 4) = const . Verzweigungsvektor (4, 1) Teste T (k ) = z k − 1 ⇒ z k = z k −4 + z k −1 1 · z k−4 4 3 ⇒ Charakteristisches Polynom: z = 1 + z ⇒ Größte positive Lösung: z ≈ 1,38 (Verzweigungszahl) 10 ⇒ T (k ) ∈ O (1,38k ). Aber wie stellen wir deg v ≥ 4 sicher? Kernbildung II Bisherige Kernbildung: Regel K: Eliminiere Knoten mit Grad > k Regel 0: Eliminiere Knoten mit Grad 0 Verbesserte Kernbildung: Regel 1: Eliminiere Knoten mit Grad 1 v C = C 0 ∪ {w } k0 = k − 1 w Regel 2: Eliminiere Knoten mit Grad 2 u uw v 11 w Falls uw ∈ C 0 , nimm u und w in C , sonst v . k0 = k − 1 Regel 3: Eliminiere Knoten mit Grad 3 Regel 3.1: G [N (v )] enthält keine Kanten. v G Beh. a a b b c c Es gibt ein k -VC in G ⇔ Es gibt ein k -VC in G 0 . [Beweis Tafel] Regel 3.2: Es gibt Kanten in G [N (v )]. ... 12 G0 Der Grad-4-Algorithmus Idee: Wende die verbesserte Kernbildung in jedem Knoten des Suchbaums erschöpfend an! ⇒ Laufzeit: O (nk + k 2 · 1, 38k ) ⊆ O ? (1, 38k ) 13 Fazit k -VC kann in O (nk + 1.38k k 2 ) Zeit gelöst werden. Parametrisierte Komplexität = neuer Werkzeugkasten für schwere Probleme: Kernbildung, Tabellen, Suchbäume, . . . Es ist immer sinnvoll, beschränkte Parameter zu identifizieren – FPT nutzt sie! Hoffnung: natürliches“ Problem P ∈ FPT ⇒ f (k ) erträglich. ” 14 Bücher zum Thema 1999 15 2006 2006