11. Vorlesung (30.06.2015)

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