Betrachte die relative Abweichung ε als Input

Werbung
Approximationsalgorithmen
Approximationsschemata 27
Betrachte die relative Abweichung ε als Input-Wert.
Definition: Maximierung
Ein Algorithmus A ist ein ε–Approximationsschema,
wenn A für jedes ε ∈ (0, 1) ein (1 − ε)–Approximationsalgorithmus ist.
Minimierung analog.
Natürlich wächst die Laufzeit i.A. mit sinkendem ε.
Definition:
Ein Approximationsschema A ist ein Polynomiales
Approximationsschema (PTAS), wenn die Laufzeit
von A polynomial in der Länge der Instanz ist.
Definition:
Ein Approximationsschema A ist ein Voll-Polynomiales
Approximationsschema (FPTAS), wenn die Laufzeit
von A polynomial in der Länge der Instanz und in 1/ε ist.
analog:
asymptotisches PTAS und asymptotisches FPTAS.
Approximationsalgorithmen
Approximationsschemata 28
(PTAS):
Konstruktionsprinzip beschränkte Enumeration.
Grundidee:
Wähle ein geeignetes Unterproblem der Größe k
Löse das Unterproblem optimal durch vollständige
Enumeration
Erweitere die Lösung zu einer Gesamtlösung
Multi-Prozessor Scheduling:
Approximationsschema (Graham)
Algorithmus Scheduling-PTAS:
Sortiere die jobs in absteigender Reihenfolge
p1 ≥ p2 ≥ . . . ≥ pn
(∗) wähle Parameter k
bestimme die optimale Anordnung der jobs 1, . . . , k
führe (LPT) für die restlichen jobs aus.
Approximationsalgorithmen
Approximationsschemata 29
Scheduling-PTAS hat eine Gütegarantie von 1 + m−1
k .
Für gegebenes ε wähle k := (m − 1)/ε
=⇒ ε–Approximationsschema
Laufzeit:
Optimallösung für k jobs durch Enumeration in O(mk ) Zeit.
Gesamtzeit: O(mm/ε + n log n) =⇒ PTAS
m wird als konstant betrachtet.
Approximationsalgorithmen
Approximationsschemata 30
(PTAS) für das Rucksackproblem (KP):
Idee: (Sahni ’75)
wähle einen Parameter `
“rate” die ` items mit größtem Profit in Optimallösung
fülle die Restkapazität mit Greedy.
“raten” =⇒ alle Teilmengen mit ` items durchprobieren
Gütegarantie:
`+1
A≥
Opt
`+2
wähle ` := d 1ε e−2 =⇒ (1−ε)–Approximationsalgorithmus.
Approximationsalgorithmen
Approximationsschemata 31
Laufzeit:
n
` Teilmengen mit ` Elementen
=⇒ O(n`) viele Greedy Iterationen =⇒ O(n`+1)
Verbesserung: (Caprara et al.’00)
Systematisches Enumerieren der Teilmengen:
n`−1 Iterationen mit jeweils n Teilmengen
mit sinkenden Kapazitäten
=⇒ Greedy kann in O(n) für jede Iteration
alle n Lösungen bestimmen.
=⇒ Gesamtzeit O(n`)
Zeit
O(n) O(n log n) O(n2) O(n3) O(n4) . . . O(n`)
Sahni ’75 1/2
1/2
1/2
2/3
3/4 . . . `−1
`
`+1
∗
verbess. 1/2
2/3
3/4
4/5
5/6 . . . `+2
Approximationsalgorithmen
Approximationsschemata 32
(FPTAS):
Konstruktionsprinzip Skalierung.
Grundidee:
1. Dynamisches Programmieren liefert die Optimallösung in pseudopolynomialer Zeit.
2. Skalieren der Eingabewerte eliminiert die
Eingabedaten aus der Laufzeit-Komplexität
Beachte:
Skalieren entspricht einer Klasseneinteilung in Intervalle
Alle Werte eines Intervalls werden gleichgesetzt
(FPTAS) für das Rucksackproblem (KP):
1. Dynamisches Programmieren nach Profiten
Definiere array y:
y(p) enthält das minimale Gewicht einer Teilmenge
von items mit Gesamtprofit p.
Optimallösung: z ∗ := max {p | y(p) ≤ c}
yj (p): Einschränkung auf item Menge {1, . . . , j}
Approximationsalgorithmen
Approximationsschemata 33
Rekursive Berechnung durch Einfügen von item j + 1:
yj+1(p) := min{yj (p), yj (p − pj+1) + wj+1} .
Dynamisches Programmieren nach Profiten:
Bestimme obere Schranke P ≥ z ∗
for p := 0 to P do
y(p) := c + 1
dummy Initialisierung
for j := 0 to n − 1 do
for p := P down to pj+1 do
versuche item j + 1 zu packen
if y(p − pj+1) + wj+1 < y(p) then
y(p) := y(p − pj+1) + wj+1
z ∗ := max {p | y(p) ≤ c}
Approximationsalgorithmen
Approximationsschemata 34
Pseudopolynomialer Algorithmus
Laufzeit: O(nP )
Speicher: O(nP )
Beachte die notwendige Manipulation der item-Mengen!
Adaptieren des Dynamischen Programmieren:
Ziel: Ersetzen von P durch n, 1/ε.
Wähle eine Konstante K und skaliere den Profit-Bereich:


p 
 i
p̃i :=  
K
Dynamisches Programmieren mit den skalierten ProfitWerten für K = ε pmax/n liefert ein FPTAS.
Laufzeit:
P̃ ≤ n p̃max
pmax
n pmax n2
≤n
=n
=
K
ε pmax
ε
Zeit und Speicher: O(n3/ε) (Ibarra, Kim’75)
Approximationsalgorithmen
Komplexitätstheorie 35
Vereinfachte Komplexitätstheorie:
Definition:
Für eine Instanz I eines Problems P ist
L(I): Anzahl der Eingabewerte
M ax(I): Betrag des größten Eingabewertes
Länge der Instanz: O(L(I) · log(M ax(I)))
Definition:
Ein Algorithmus A für das Problem P ist polynomial,
wenn seine Laufzeit für jede Instanz I ein Polynom
in L(I) und log(M ax(I)) ist.
Ein Algorithmus A für P ist pseudopolynomial,
wenn seine Laufzeit für jede Instanz I ein Polynom
in L(I) und M ax(I) ist.
Korollar:
Wenn M ax(I) ein Polynom in L(I) ist, dann ist jeder
pseudopolynomiale Algorithmus bereits ein polynomialer
Algorithmus.
Korollar:
Wenn M ax(I) ein Polynom in L(I) ist und P ein
N P-schweres Problem ist, dann gibt es keinen pseudopolynomialen Algorithmus für P (unter P6=N P).
Approximationsalgorithmen
Komplexitätstheorie 36
Betrachte das Unterproblem Ppoly von P , welches nur jene
Instanzen I enthält, für die M ax(I) ein Polynom in L(I)
ist.
Definition:
Wenn Ppoly N P-vollständig ist, so nennt man P streng
N P-vollständig.
Satz:
Wenn P streng N P-vollständig ist, dann gibt es keinen
pseudopolynomialen Algorithmus für P (unter P6=N P).
Satz:
Wenn Opt(I) ein Polynom in L(I) und M ax(I) ist, dann
gilt:
Wenn es ein FPTAS für P gibt, dann gibt es auch einen
pseudopolynomialen Algorithmus für P .
Korollar:
Wenn Opt(I) ein Polynom in L(I) und M ax(I) ist, dann
gilt:
Wenn P streng N P-vollständig ist, dann gibt es kein FPTAS
für P (unter P6=N P).
Approximationsalgorithmen
Komplexitätstheorie 37
Satz: (für Minimierung)
Ist für ein Problem P bereits das Entscheidungsproblem:
“Gibt es einen zulässige Lösung mit Wert ≤ k ? ”
N P-schwer, dann folgt:
Es gibt keinen polynomialen Approximationsalgorithmus mit
Gütegarantie < 1 + 1/k.
(=⇒ es gibt kein PTAS.)
Beachte:
Multi-Prozessor Scheduling ist streng N P-vollständig =⇒
kein FPTAS
Es gibt ein PTAS, aber kein asymptotisches FPTAS.
Bin-Packing ist streng N P-vollständig =⇒ kein FPTAS
Es gibt keine Approximation besser als 3/2, also kein PTAS.
Trotzdem gibt es ein asymptotisches PTAS !!
Fernandez de la Vega, Luecker (1981),
und sogar ein asymptotisches FPTAS
Karmakar, Karp (1982)
Approximationsalgorithmen
Komplexitätstheorie 38
Komplexitätshierarchie:
in absteigender Reihenfolge der Schwierigkeit:
Optimierungsprobleme in N P:
Die Zulässigkeit einer möglichen Lösung kann in
polynomialer Zeit überprüft werden.
APX: Es gibt einen polynomialen Approximationsalgorithmus mit konstanter Gütegarantie k.
MAX-SNP: konstante Gütegarantie existiert, aber
das Erreichen einer gewissen Güte 1+δ ist N P-schwer.
PTAS: Beliebige Gütegarantie 1 + ε ist erreichbar in einer
Zeit polynomial in der Länge der Instanz.
FPTAS: Beliebige Gütegarantie 1+ε ist erreichbar in einer
Zeit polynomial in der Länge der Instanz und in 1/ε.
Optimierungsprobleme in P:
Optimallösung kann in polynomialer Zeit berechnet werden.
Neueres Konzept:
Probabilistically Checkable Proofs:
PCP-Theorem
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 Cover Problem
Darstellung mit 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.
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.
Set Cover 47
Approximationsalgorithmen
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.
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 48
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