VERTEX COVER - Chair 11: ALGORITHM ENGINEERING

Werbung
Ü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
Herunterladen