• Euklidsches Rundreiseproblem:

Werbung
Approximationsalgorithmen
TSP 54
• Euklidsches Rundreiseproblem:
O.B.d.A. wird das Problem auf das Einheitsquadrat
beschränkt.
Streifenheuristik:
Satz: Die Streifenheuristik liefert eine Tour T , für deren
Länge gilt:
√ √
√
T ≤ 2 n+1+ 2
TSP 55
Approximationsalgorithmen
Partitionsalgorithmus von Karp (1977):
Wähle Parameter s :=
log n
log log n
=⇒
s! ≤ n
Satz: Der Partitionsalgorithmus liefert eine Tour T , für
deren Länge gilt:
T ≤ Opt + O
v
u
u
u
u
t
n
log n




Approximationsalgorithmen
Vertex Cover 56
Vertex Cover Problem
• Vertex Cover (VC):
gegeben:
Graph (V, E)
Problem:
Finde eine minimale Knotenmenge C ⊆ V , sodaß
für jede Kante (i, j) entweder i ∈ C oder j ∈ C.
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).
Approximationsalgorithmen
Vertex Cover 57
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 58
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.
Approximationsalgorithmen
Vertex Cover 59
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 60
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 61
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 62
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 63
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 64
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
w(v)
(d.h. mit minimalem Grad
(v) )
C := C ∪ {v}
for all edges e = (v, u)
w(v)
w(u) := w(u) − 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 66
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 67
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 68
Approximationsalgorithmen
Unterscheide die Varianten:
Set Covering:
Minimiere
Pn
i=1 wi
xi unter
P
i∈ej
xi ≥ 1 ∀ej ∈ E
jedes Grundelement mindestens einmal auswählen
=⇒ Überdeckung (Covering) der Grundelemente
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
Approximationsalgorithmen
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 .
Set Cover 69
Approximationsalgorithmen
Set Cover 70
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