Überblick Kap. 3: Parametrisierte Komplexität: Vertex Cover • 3.1 Einführung – Parametrisierte Komplexität – Vertex Cover Professor Dr. Petra Mutzel • 3.2 FPT-Algorithmen für Vertex Cover Lehrstuhl für Algorithm Engineering, LS11 6. VO – Algorithmus von Buss & Goldsmith – Algorithmus von Papadimitriou & Yannakakis – Algorithmus von Balasubramanian, Fellows & Raman 20. November 2006 2 3.1 Einführung Literatur • • Ulrike Stege und Michael Fellows: An Improved FixedParameter-Tractable Algorithm for Vertex Cover, Tech. Report 318, Department of Computer Science, ETH Zürich, April 1999 • • Rod G. Downey und Michael Fellows: Parameterized Complexity. Springer-Verlag 1999 [Buch zum Thema FPT] • Seminarausarbeitung von Karsten Tiemann, Betreuer: Prof. Rolf Wanka, Universität Paderborn , 2004 • 3 • Def.: Es sei U ein Entscheidungsproblem und L die Menge aller Instanzen dieses Problems. Eine beliebige in Polynomialzeit berechenbare Funktion Par: L→N nennt man Parametrisierung von U. Ein Algorithmus A ist ein Par-parametrisierter Polynomialzeit-Algorithmus für U, falls (1) A das Entscheidungsproblem U löst und (2) es eine beliebige Funktion f:N→N und ein Polynom p:N→N gibt, so dass die Laufzeit von A für jede Eingabe I∈L in O( f(Par(I)) p(|I|) ) liegt. Wenn es für U einen solchen Par-parametrisierten Polynomialzeit-Algorithmus gibt, nennt man U fixedparameter-tractable in Bezug auf Par. Das parametrisierte Problem liegt dann in der Klasse FPT. 4 Beobachtungen zu FPT • • • Def.: VERTEX COVER (VC) Bsp.: Par(I)=|I|. Dann ist die Laufzeit O( f(Par(I)) p(|I|) ) leicht zu erreichen, aber nicht sinnvoll → bringt nichts. Bsp.: Pseudopolynomielle Algorithmen, z.B. Rucksackproblem: Dyn. Programmierung hat Laufzeit O(Wn)), wobei W die Rucksackgröße ist und n die Anzahl der Objekte. Pseudopolynomielle Algorithmen sind für Par(I)=Max-Int(I) fixed-parameter tractable (FPT). Gegeben: Graph G=(V,E) und k>0. Gesucht: Besitzt G ein vertex cover der Größe ≤ k? I.e., existiert eine Knotenmenge V´⊆V, |V´|≤k, so dass für jede Kante uv∈E entweder u oder v in V´ ist. Das Entscheidungsproblem vertex cover ist NP-vollständig 2 Bsp.: Sei A ein Algorithmus mit Laufzeit O(2k n2), wobei n die Größe der Eingabe und k der Wert des Parameters 2 der Eingabe ist. Also ist hier f(Par(x)) =2k und p(|x|)= n2 → ist also FPT. Für kleine k ist A effizient, aber bereits für k=√n ist dies auch ein Exponentialzeitalgorithmus. Achtung: Wahl der Funktion par ist entscheidend!!! 1 3 2 1 5 4 6 vertex cover der Größe k=5 5 3 2 5 4 6 vertex cover der Größe k=3 Alle Kanten müssen durch Knoten überdeckt werden 6 1 Parametrisiertes VERTEX COVER Gegeben: Graph G=(V,E) und k>0. Parameter: k. Gesucht: Besitzt G ein vertex cover der Größe ≤ k? 3.2.1 Algorithmus von Buss & Goldsmith Idee: Problemkern Methode („Kernelization“): „k-VERTEX COVER“ 1 3 2 1 5 4 3.2 FPT-Algorithmen für Vertex Cover 2 6 vertex cover der Größe k=5 3 5 4 • Reduzierung der Probleminstanz I auf eine „gleichwertige“ Probleminstanz I´, wobei die Größe von I´ nur noch vom Parameter k abhängt. • Lösung von I´ ist dann auf I übertragbar 6 vertex cover der Größe k=3 7 Algorithmus von Buss & Goldsmith 1993 Lemma: Wenn G=(V,E) ein vertex cover S⊆V mit |S|=k hat, muss S alle Knoten aus V enthalten, die einen Grad größer als k haben. 8 Algorithmus von Buss & Goldsmith 1993 1. Bw: Sei v ein Knoten mit Grad >k, der nicht in S enthalten ist. Dann müssen aber alle seine Nachbarn in S sein. Lemma: In einem Graphen ohne isolierte Knoten gilt: Wenn alle Knoten in G Grad ≤k haben und dieser Graph ein vertex cover der Größe ≤m besitzt, hat G maximal mk viele Kanten. Bw: Jede Kante hat mindestens einen Endknoten in S. Da jeder Knoten maximal Grad k hat, kann ein Knoten aus S maximal k Kanten überdecken. Mit den Knoten aus S 9 können höchstens mk viele Kanten überdeckt werden. Kernelization: i. Bestimme die Menge H aller Knoten mit Grad >k. ii. Falls |H|>k, dann → Antwort ist NEIN! STOP! iii. VC := H, iv. G´:= G minus H (mit inzidenten Kanten) v. Sei m:=k-|H| vi. Entferne alle isolierten Knoten aus G´ 2. Falls G´ mehr als km Kanten besitzt, 3. dann → Antwort ist NEIN! STOP! 4. Löse m-vertex cover in G´ durch Enumeration. 10 Analyse des Algorithmus Lemma: Der Algorithmus von Buss & Goldsmith berechnet das k-VERTEX COVER Problem auf einem Graphen G mit n Knoten in Laufzeit O(kn + 2k k2k+2) Bw.: Korrektheit: Laufzeit: Schritt 1.i: Zeit O(kn) (Adjazenzlistendarstellung) • Schritt 1.iv: Da |H|≤k, geht dies auch in O(kn) • Schritt 4: G´ besitzt nun ≤km Kanten und ≤2km Knoten (wg. 1.vi); Enumeration aller m-elementigen Teilmengen aus G´ kostet (2mk)m; Test für eine solche Teilmenge geht in Zeit O(mk); Laufzeit: O((2mk)mmk)=O((2k2)k k2) = O(2k k2k k2) • Gesamtlaufzeit: O(kn + 2k k2k+2) ENDE 11 2