Teil 2

Werbung
Approximationsalgorithmen
Vertex Cover 39
Vertex Cover Problem
Algorithmus Greedy 1:
Cover C := ∅
while E 6= ∅ do
wähle eine beliebige Kante e = (v, u) ∈ E
C := C ∪ {v}
E := E \ {e | e ist inzident zu v}
end while
Greedy 1 hat eine Gütegarantie von Ω(log n).
Verbesserung:
Algorithmus Greedy 2:
Cover C := ∅
while E 6= ∅ do
wähle den Knoten v ∈ V mit
maximalem Grad im aktuellen Graphen G
C := C ∪ {v}
E := E \ {e | e ist inzident zu v}
end while
Greedy 2 hat eine Gütegarantie von O(log n).
Approximationsalgorithmen
Vertex Cover 40
Verwendung eines Maximalen Matchings (MM):
Algorithmus MM-Heuristik:
Bestimme ein maximales Matching M ⊆ E
for all e = (v, u) ∈ M
C := C ∪ {v, u}
Satz:
MM-Heuristik liefert ein Vertex Cover des Graphen.
Satz:
MM-Heuristik hat eine scharfe Gütegarantie von 2.
Verwendung eines Depth First Search Trees (DFS):
(Savage, 1982)
Algorithmus DFS-Heuristik:
Bestimme depth-first-search Suchbaum T auf G
C := {v | dT (v) ≥ 2}
d.h. C = alle Nicht-Blätter von T
Satz:
DFS-Heuristik hat eine scharfe Gütegarantie von 2.
Approximationsalgorithmen
Vertex Cover 41
Verwendung von Randomisierung
(systematische Zufallsentscheidung):
Algorithmus Rand-Greedy 1:
Cover C := ∅
while E 6= ∅ do
wähle eine beliebige Kante e = (v, u) ∈ E
mit P = 0.5 (fairer Münzwurf) wähle
entweder C := C ∪ {v} oder C := C ∪ {u}
E := E \ {e | e ist inzident zu dem
gewähltem Knoten}
end while
Satz:
Rand-Greedy 1 hat eine erwartete Gütegarantie von 2.
Approximationsalgorithmen
Weighted Vertex Cover 42
Weighted Vertex Cover Problem
gegeben:
Graph (V, E) mit Knotengewichten w(v) ∀v ∈ V .
Problem:
Finde eine Knotenmenge C ⊆ V mit minimalem
Gewicht, sodaß für jede Kante (i, j)
entweder i ∈ C oder j ∈ C.
Algorithmus W-Greedy 2:
Cover C := ∅
while E 6= ∅ do
wähle den Knoten v ∈ V mit maximalem
Grad(v)
w(v) im aktuellen Graphen G
C := C ∪ {v}
E := E \ {e | e ist inzident zu v}
end while
W-Greedy 2 hat eine Gütegarantie von O(log n).
(Chvatal 1979)
Weighted Vertex Cover 43
Approximationsalgorithmen
Algorithmus W-Rand-Greedy:
Cover C := ∅
while E 6= ∅ do
wähle eine beliebige Kante e = (v, u) ∈ E
w(v)
w(u)+w(v)
w(u)
w(u)+w(v)
wähle mit P =
C := C ∪ {u}
bzw. mit P =
C := C ∪ {v}
E := E \ {e | e ist inzident zu dem
gewähltem Knoten}
end while
Satz: (Pitt 1985)
W-Rand-Greedy hat eine erwartete Gütegarantie von 2.
Weighted Vertex Cover 44
Approximationsalgorithmen
Formulierung als lineares ganzzahliges Programm (ILP):
(Nemhauser, Trotter 1975)
minimiere
n
X
wi xi
i=1
unter
xi + xj ≥ 1 ∀(i, j) ∈ E
xi ∈ {0, 1},
i = 1, . . . , n.
xi = 1 ⇐⇒ Knoten i ist in Cover enthalten.
Satz:
Das lineare Programm (LP) für Vertex Cover mit xi ∈ [0, 1]
hat die semi-integral Eigenschaft, d.h. in der Optimallösung
sind alle Variablen 0, 1/2 oder 1.
Die Lösung des linearen Programms (LP) kann effizient berechnet werden.
Das Aufrunden der Lösung des linearen Programms (LP)
liefert einen Approximationsalgorithmus mit Gütegarantie 2.
Approximationsalgorithmen
Weighted Vertex Cover 45
Modifizierte Version von W-Greedy 2:
Algorithmus Clarkson:
Cover C := ∅
while E 6= ∅ do
wähle den Knoten v ∈ V mit maximalem
Grad(v)
w(v) im aktuellen Graphen G
(d.h. mit minimalem
C := C ∪ {v}
for all edges e = (v, u)
w(v)
w(u) := w(u) − Grad
(v)
w(v)
)
Grad(v)
w(v)
cost(e) := Grad
(v) (nur für Analyse)
lösche e
end for
w(v) := 0 (nur für Analyse)
end while
Satz: (Clarkson 1983)
Der Algorithmus hat eine Gütegarantie von 2.
Approximationsalgorithmen
Set Cover 46
Set Covering Problem:
gegeben:
Grundmenge M ,
Familie von Teilmengen {S1, . . . , Sm}, Si ⊆ M ,
Bewertung wi für jede Menge Si.
Problem:
Finde eine Auswahl der Teilmengen mit minimalem
Gesamtgewicht, sodaß jedes Element aus M in
mindestens einer der ausgewählten Teilmengen
enthalten ist.
Darstellung als Hypergraph H = (V, E),
wobei e ∈ E eine Hyperkante mit e ⊆ V ist.
Jedes Subset Si entspricht einem Knoten vi ∈ V ,
jede Hyperkante einem Element der Grundmenge.
Die Hyperkante ist inzident zu allen Knoten/Subsets,
in denen das entsprechende Element enhalten ist.
Verallgemeinerung von Vertex Cover (für jede Hyperkante ist
mindestens ein Knoten in Cover enthalten) entspricht einem
Set Cover.
Set Cover 47
Approximationsalgorithmen
Notation:
Es ist d der maximale Grad eines Knoten in H,
d.h. die Anzahl der Elemente im größten Subset.
Es ist f die Anzahl der Knoten in der größten Hyperkante,
gegeben durch das Element, das in den meisten Subsets enthalten ist.
Formulierung als lineares ganzzahliges Programm (ILP):
minimiere
n
X
wi xi
i=1
unter
X
xi ≥ 1 ∀ej ∈ E
i∈ej
xi ∈ {0, 1},
i = 1, . . . , n.
xi = 1 ⇐⇒ Knoten i, also Subset Si, wird ausgewählt.
Überdeckungsproblem z.B. in der Personaleinsatzplanung
Set Cover 48
Approximationsalgorithmen
Varianten:
Set Partitioning:
Minimiere
Pn
i=1 wi
xi unter
P
i∈ej
xi = 1 ∀ej ∈ E
jedes Grundelement genau einmal auswählen
=⇒ Partition der Grundelemente
Set Packing:
Maximiere
Pn
i=1 wi
xi unter
P
i∈ej
xi ≤ 1 ∀ej ∈ E
jedes Grundelement höchstens einmal auswählen
=⇒ Maximale Auswahl disjunkter Teilmengen
Set Covering:
Algorithmus LP-Rundung:
Löse des (LP) zu (ILP) mit Lösung x∗
Set Cover S := ∅
for all Si
if x∗i ≥ 1/f then
S := S ∪ {i}
end for
LP-Rundung hat eine Gütegarantie von f .
Approximationsalgorithmen
Set Cover 49
Greedy (für den ungewichteten Fall)
Algorithmus Greedy:
Cover C := ∅
while E 6= ∅ do
wähle den Knoten v ∈ V mit maximalem
Grad im aktuellen Hypergraphen H
C := C ∪ {v}
E := E \ {e | v ∈ e}
end while
Satz: (Lovasz 1975)
Greedy hat eine Gütegarantie von O(log d).
Der analoge Algorithmus für den gewichteten Fall hat ebenfalls eine Gütegarantie von O(log d). (Chvatal 1979)
Satz: (Feige 1996)
Es gibt keinen polynomiale Approximationsalgorithmus mit
Gütegarantie (1 − ε) log(d) (unter P6= N P).
Herunterladen