• Euklidsches Rundreiseproblem (Fortsetzung):

Werbung
Approximationsalgorithmen
TSP 57
• Euklidsches Rundreiseproblem (Fortsetzung):
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 58
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 59
Vertex Cover Problem
• Vertex Cover (VC):
gegeben:
Graph (V, E)
Problem:
Finde eine minimale Knotenmenge C ⊆ V , sodass
für jede Kante (i, j) entweder i ∈ C oder j ∈ C.
Algorithmus Greedy 1: (Kantenauswahl)
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 60
Verbesserung:
Algorithmus Greedy 2: (Knotenauswahl)
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 61
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
Vertex Cover 62
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 63
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
Weighted Vertex Cover 64
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 65
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 66
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 67
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 69
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, sodass jedes Element aus M in
mindestens einer der ausgewählten Teilmengen
enthalten ist.
Zusammenhang mit Vertex Cover:
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 dann
einem Set Cover.
Set Cover 70
Approximationsalgorithmen
Notation:
Es ist d die Anzahl der Elemente im größten Subset,
d.h. der maximale Grad eines Knoten im Hypergraphen H.
Es ist f die größte Zahl von Subsets in denen ein einzelnes
Element enthalten ist, d.h. die Anzahl der Knoten in der
größten Hyperkante.
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 71
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 72
Approximationsalgorithmen
Set Cover 73
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