9. LP-basierte Approximationsalgorithmen 52 ...................................................................................................... 53 9.1 Einfaches Runden und Verwendung von dualen Lösungen ............................................................................................................................................................ 54 9.2 Randomisiertes Runden ............................................................................................... 55 9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design 9. LP-basierte Approximationsalgorithmen 9.1 Einfaches Runden und Verwendung von dualen Lösungen 53-1 Ziele dieses Kapitel An 3 ausgewählten Techniken zeigen, dass LP-Theorie fortgeschrittene Methoden zur Konstruktion von Approximationsalgorithmen bereitstellt. Bitte Approximationsalgorithmen aus ADM I unbedingt wiederholen! Ziele dieses Abschnittes Approximationsalgorithmen basierend auf dem Lösen eines LPs mit anschließendem Runden Beweis von Approximationsgüten durch Verwendung von LP-Dualität und dualen Lösungen Als Beispielproblem betrachten wir WEIGHTED VERTEX COVER (WVC) Instanz ein ungerichteter Graph G mit Knotengewichten w v ! 0 Aufgabe Bestimme ein vertex cover C von G mit minimalem Gewicht " v ! C w v Beispiel
23
Embed
52 9. LP-basierte Approximationsalgorithmenpage.math.tu-berlin.de/~moehring/adm2/Chapter/kap9.pdf · 9. LP-basierte Approximationsalgorithmen 9.1 Einfaches Runden und Verwendung von
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
9. LP-basierte Approximationsalgorithmen
52
...................................................................................................... 539.1 Einfaches Runden und Verwendung von dualen Lösungen............................................................................................................................................................ 549.2 Randomisiertes Runden
............................................................................................... 559.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
9. LP-basierte Approximationsalgorithmen
9.1 Einfaches Runden und Verwendung von dualen Lösungen
53-1
Ziele dieses Kapitel
An 3 ausgewählten Techniken zeigen, dass LP-Theorie fortgeschrittene Methoden zur Konstruktion von
Approximationsalgorithmen bereitstellt.
Bitte Approximationsalgorithmen aus ADM I unbedingt wiederholen!
Ziele dieses Abschnittes
Approximationsalgorithmen basierend auf dem Lösen eines LPs mit anschließendem Runden
Beweis von Approximationsgüten durch Verwendung von LP-Dualität und dualen Lösungen
Als Beispielproblem betrachten wir WEIGHTED VERTEX COVER (WVC)
Instanz
ein ungerichteter Graph G mit Knotengewichten wv ! 0
Aufgabe
Bestimme ein vertex cover C von G mit minimalem Gewicht "v ! C wv
Beispiel
2
1
3
1 = wv
22 C = grüne Knoten
9. LP-basierte Approximationsalgorithmen
9.1 Einfaches Runden und Verwendung von dualen Lösungen
53-2
2
1
3
1 = wv
22 C = grüne Knoten
Einfaches Runden (bei Minimierungsproblemen)
Algorithmus einfaches Runden
erstelle eine (geeignete) IP-Formulierung (IP) der Probleminstanz I
löse die LP-Relaxation (LP) von (IP) in polynomialer Zeit
Dies ist erforderlich, da Approximationsalgorithmen in polynomialer Zeit (in der Kodierungslänge <I> von I)
laufen müssen
Wenn (LP) nur polynomial viele Variable und Ungleichungen in der Kodierungslänge von I hat, so kann es in
polynomialer Zeit mit einem polynomialen LP-Algorithmus (vgl. Kapitel 10) gelöst werden.
Oft hat (LP) jedoch exponentiell viele Ungleichungen. Dann muss gezeigt werden, dass das
Separierungsproblem für diese Ungleichungen polynomial lösbar ist. Hieraus folgt wegen Satz 7.26, dass (LP)
in polynomialer Zeit gelöst werden kann.
runde die fraktionale Optimallösung von (LP) auf eine zulässige Lösung von (IP)
Dieses Runden ist problemabhängig. I.A. ist nicht klar ob es überhaupt geht
9. LP-basierte Approximationsalgorithmen
9.1 Einfaches Runden und Verwendung von dualen Lösungen
53-3
Dieses Runden ist problemabhängig. I.A. ist nicht klar ob es überhaupt geht
9.1 Lemma (Approximationsgüte beim einfachen Runden)
Sei A(I) die durch Runden erhaltene zulässige Lösung von (IP).
Sei OPT(I) eine optimale Lösung des Ausgangsproblem und LP(I) eine optimale Lösung der LP-Relaxation.
Gilt
A(I) # !"LP(I) für jede Instanz I,
so ist der Algorithmus "Einfaches Runden" ein !-Approximationsalgorithmus
Bemerkung: wie bei Approximationsalgorithmen üblich, verwenden wir A(I), OPT(I) usw. sowohl für die Lösung
wie auch für den Wert der Lösung.
Beweis
Da (LP) eine Relaxierung von (IP) ist, gilt LP(I) # IP(I) = OPT(I)
=> A(I) # !"LP(I) # !"OPT(I) !
Anwendung auf WVC
IP-Formulierung (IP)
Führe 0/1-Variable xv ein mit xv = 1 :<=> v ∈ C
9. LP-basierte Approximationsalgorithmen
9.1 Einfaches Runden und Verwendung von dualen Lösungen
53-4
Führe 0/1-Variable xv ein mit xv = 1 :<=> v ∈ C
Dann ist WVC äquivalent zu folgendem IP
min "v wvxv
unter xu + xv ! 1 für jede Kante e = (u,v) von G
xv ∈ { 0, 1 } für jeden Knoten v von G
Die LP-Relaxation (LP) von (IP)
min "v wvxv
unter xu + xv ! 1 für jede Kante e = (u,v) von G
xv ! 0 für jeden Knoten v von G
xv ! 0 reicht, da sich in der optimalen LP Lösung xv # 1 automatisch wegen wv ! 0 ergibt.
(LP) hat nur polynomial viele Ungleichungen und Variable und kann in polynomialer Zeit mit einem polynomialen
LP-Algorithmus (vgl. Kapitel 10) gelöst werden
Das Runden
sei x' eine Optimallösung von (LP)
runde x' zu x* wie folgt:
9. LP-basierte Approximationsalgorithmen
9.1 Einfaches Runden und Verwendung von dualen Lösungen
Konstruiere über die Schleife eine zulässige Lösung x für das IP und eine dual zulässige Lösung y
Zeige dass x und y die Ungleichung "j cjxj # $""i biyi erfüllen
=> $-Approximation wegen Lemma 9.2
Das primal-duale Paar für das Netzwerk Design Problem mit f(S) ∈ { 0, 1 }
IP:
min "e cexe
"e ! #(S) xe ! f(S) für alle Ø $ S # V (Schnittbedingung)
xe ∈ { 0, 1 } für alle Kanten e
LP Relaxation = primales LP
min "e cexe
"e ! #(S) xe ! f(S) für alle S # V mit f(S) = 1
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-9
"e ! #(S) xe ! f(S) für alle S # V mit f(S) = 1
xe ! 0 für alle Kanten e
Die Bedingung xe # 1 kann fallen gelassen werden, da sie sich wegen ce ! 0 im Optimum von selbst ergibt
Duales LP
max "S:f(S)=1 yS
"S:e!#(S) yS # ce für alle Kanten e
yS ! 0 für alle Variablen yS
Nenne eine Kante e gesättigt, wenn "S:e!#(S) yS = ce
Die primale Schlupfbedingung sagt dann: xe > 0 => e gesättigt
Der primal duale Algorithmus für f(S) ∈ { 0, 1 }
Input
Instanz des Netzwerk Design Problem mit f(S) ∈ { 0, 1 }
Output
zulässige Lösung (V, A) des Netzwerk Design Problem mit Gütegarantie 2
Methode
Initialisiere alle Dualvariablen yS := 0
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-10
Initialisiere alle Dualvariablen yS := 0
Initialisiere die primale Lösung (als Kantenmenge A) A := Ø
while A ist keine zulässige Lösung do
sei C die Menge aller Zusammenhangskomponenten S im Graph (V, A) der bereits gewählten Kanten A
mit f(S) = 1
erhöhe yS für alle S ∈ C um denselben Betrag bis eine Kante e ∉ A gesättigt ist
füge alle gesättigten Kanten zu A hinzu
entferne unnötige Kanten aus A (mache A dadurch "-minimal zulässig) // cleanup step
return A
Beispiel für Euklidische Abstände
Dualvariable werde als Gräben um die Zusammenhangskomponenten S ∈ C dargestellt
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-11
Dualvariable werde als Gräben um die Zusammenhangskomponenten S ∈ C dargestellt
Initialisierung: A := Ø, yS := 0 für alle S
a
a b
b
b
cc
rij = 1 für i,j = a, i,j = b und i,j = c
=> anfangs sind alle Zusammenhangskomponenten S ∈ C einelementig
Iteration 1
a
a b
b
b
cc
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-12
a
a b
b
b
cc
Iteration 2
a
a b
b
b
cc
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-13
a
a b
b
b
cc
Die jetzt entstandene Zusammenhangskomponente S (die beiden c-Knoten) hat f(S) = 0,
die zugehörige Dualvariable yS wird also in der nächsten Iteration nicht wachsen.
Iteration 3
a
a b
b
b
cc
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-14
a
a b
b
b
cc
Die jetzt entstandene Zusammenhangskomponente S (die beiden c-Knoten und der b-Knoten) hat f(S) = 1,
die zugehörige Dualvariable yS wird also in der nächsten Iteration wachsen.
Iteration 4
a
a b
b
b
cc
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-15
a
a b
b
b
cc
Iteration 5
a
a b
b
b
cc
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-16
a
a b
b
b
cc
In dieser letzten Iteration wurden gleichzeitig 2 Kanten gesättigt und zu A hinzugefügt.
Cleanup step
Die Kante zwischen a und b ist überflüssig und wird entfernt.
a
a b
b
b
cc
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-17
a
a b
b
b
cc
Gütegarantien im primal dualen Schema für f(S) ∈ { 0, 1 }9.3 Satz (Güte und Laufzeit des primal dualen Algorithmus, Agarwal, Klein & Ravi 1991, Goemans & Williamson
1992)
Der primal duale Algorithmus für f(S) ∈ { 0, 1 } kann mit einer Laufzeit von O(n2 log n) implementiert
9. LP-basierte Approximationsalgorithmen
9.3 Primal-duale Approximationsalgorithmen und Netzwerk Design
55-18
Der primal duale Algorithmus für f(S) ∈ { 0, 1 } kann mit einer Laufzeit von O(n2 log n) implementiert
werden.
Für die berechnete primale Lösung A gilt "e ! A ce # 2·OPT(I), d.h. der Algorithmus hat eine Gütegarantie
von 2.
Beweis
durch Lemma 9.4 und 9.5 (nur die Gütegarantie, nicht die Laufzeit) !
Die wesentliche kombinatorische Ungleichung
Der Algorithmus durchläuft die Iterationen k = 1, 2, ..., K
In Iteration k sei
Ak die Kantenmenge bei Eintritt in die Iteration
Ck die Menge der Zusammenhangskomponenten
!k der Wert um den alle yS mit S ∈ Ck vergrößert werden