Approximationsalgorithmen

Werbung
Universität Paderborn
Fakultät für Elektrotechnik, Informatik und Mathematik
Mitschrift
Approximationsalgorithmen
Sebastian Aland
[email protected]
Dominic Dumrauf
[email protected]
Florian Schoppmann
[email protected]
29. Dezember 2005
Gelesen von: Dr. Ulf-Peter Schröder
Fachgruppe Algorithmen und Komplexität
Inhaltsverzeichnis
Inhaltsverzeichnis
1 Einleitung
1.1 Organisatorisches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Einleitende Bemerkung - Abgrenzung der Begriffe . . . . . . . . . . . . .
2 Approximation mit absoluter Gütegarantie
2.1 Graphfärbbarkeit . . . . . . . . . . . . . .
2.1.1 Knotenfärbung . . . . . . . . . . .
2.1.2 Kantenfärbung beliebiger Graphen
2.2 Ein Nicht-Approximierbarkeitsergebnis . .
4
4
4
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
5
6
8
11
3 Approximation mit relativer Gütegarantie
3.1 Das metrische TSP . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Einfüge-Heuristik . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Christofides Algorithmus . . . . . . . . . . . . . . . . . . .
3.2 Einige weitere Approximationsalgorithmen . . . . . . . . . . . . .
3.2.1 Das Vertex Cover-Problem . . . . . . . . . . . . . . . . . .
3.2.2 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3 Das Set-Cover-Problem . . . . . . . . . . . . . . . . . . .
3.2.4 Das Maximum-Set-Cover-Problem . . . . . . . . . . . . .
3.2.5 Unabhängige Mengen („Independent Set“) . . . . . . . . .
3.2.6 Ein verbesserter Greedy-Knotenfärbungsalgorithmus . . .
3.2.7 Ergänzungen zu Knotenfärbungsalgorithmen . . . . . . .
3.3 Ein Nicht-Approximierbarkeitsergebnis für relative Gütegarantie .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
13
13
16
17
17
18
20
22
24
28
29
30
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Approximationsschemata
4.1 Ein pseudopolynomieller exakter Algorithmus für das 0−1 Rucksackproblem
4.2 Ein streng polynomielles Approximationsschema für das 0 − 1 Rucksackproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 „Negativergebnisse“ für Approximationsschemata . . . . . . . . . . . . .
31
32
5 Klassen und Hierarchien
36
6 Techniken für randomisierte Approximationsalgorithmen
6.1 “Randomized Rounding“ . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Hybrider Ansatz: Eine Kombination mehrerer Verfahren . . . . . . . . .
6.3 Semidefinite Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Das MaxCut-Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 MaxCut als quadratisches Optimierungsproblem . . . . . . . . .
6.4.2 Relaxierung des quadratischen Programms für MaxCut in ein
semidefinites Programm . . . . . . . . . . . . . . . . . . . . . . .
6.4.3 Umformulierung des relaxierten quadratischen Programms zu einem semidefiniten Optimierungsproblem . . . . . . . . . . . . . .
37
40
45
46
47
48
2
34
35
48
48
Inhaltsverzeichnis
Abbildungsverzeichnis
52
Algorithmenverzeichnis
52
3
14.04.2005
←−−−−−−−
2 Approximation mit absoluter Gütegarantie
1 Einleitung
1.1 Organisatorisches
1.2 Literatur
1.3 Einleitende Bemerkung - Abgrenzung der Begriffe
“intuitive Beschreibung“ der Komplexitätsklassen P und N P.
Definition 1.1:
(1) Clique = {(G, k)|G = (V, E), der einen vollständigen Teilgraph
aus mindestens k Knoten besitzt} ∈ N P.
(2) Hamilton = {(G)|G = (V, E) ein Graph, der einen Hamilton-Kreis enthält} ∈
NP
Definition 1.2: Ein kombinatorisches Optimierungsproblem Π ist charakterisiert durch:
• D : Menge von Probleminstanzen
• S(I) : für I ∈ D, Menge der zur Eingabe I zulässigen Lösung
• Die Bewertung- oder Maßfunktion f : S(I) −→ N+
• Ziel ∈ {min, max}
Gesucht ist zu I ∈ D eine zulässige Lösung σopt ∈ S(I), so daß opt := f (σopt ) =
Ziel{f (σ)|σ ∈ S(I)}
Beispiel 1.3:
(a) tsp
(1) D = {(Kn , c)|Kn vollständiger Graph mit n Knoten c : E −→ N}
(2) S((Kn , c)) = {C|(vi1 , vi2 , . . . , vin , vi1 ) ist Hamilton-Kreis}
n−1
P
(3) f (C) = c(vin + vi1 ) +
c(vij , vij+1 )
♦
i=1
21.04.2005
←−−−−−−−
Definition 1.4: Sei Π ein kombinatorisches Optimierungsproblem. Ein t(n)-Approximationsalgorithmus A berechnet zu Eingabeinstanz I ∈ D in Zeit t(|I|) eine Ausgabe
σIA ∈ S(I). Wir schreiben A(I) = f (σIA ).
2 Approximation mit absoluter Gütegarantie
Definition 2.1: Sei Π ein Optimierungsproblem und A ein Approximationsalgorithmus für Π.
(a) A hat bei Eingabe I eine absolute Güte von κA (I) := |A(I) − opt(I)|
(b) Die absolute worst-case Güte von A ist die Funktion κwc
A (n) := max{κA (I)|I ∈
D, |(|I) = n}
4
2.1 Graphfärbbarkeit
(c) Sei κA := N −→ N eine Funktion. A garantiert eine absolute Güte von κA (n), falls
für alle n gilt: κwc
A (n) ≤ κA (n).
0
0
(d) Sei κA : N −→ N eine Funktion. A hat eine Abweichung von κA (n), falls für
0
0
0
unendlich viele n gilt κA (n) ≤ κwc
Menge D , D ⊆ D,
A (n). Eine unendlich große
0
0
0
heißt κA (n)-Zeugenmenge gegen A, wenn für alle I ∈ D gilt: κA (I) ≥ κA (|I|).
0
Eine einzelne solche Eingabe nennen wir dann einen κA (n)-Zeugen.
2.1 Graphfärbbarkeit
Definition 2.2: Sei G = (V, E) ein ungerichteter Graph. Für u ∈ V : ΓG (u) =
{v|{u, v} ∈ E} Menge der Nachbarn von u. deg u = |ΓG (u)| Grad von u. Der Grad
von G ist
∆(G) := max{degG (u)|u ∈ V }.
G heißt r-regulär, wenn degG (u) = r für alle u ∈ V .
Definition 2.3: Gegeben sei ein Graph G = (V, E).
(a) Eine Abbildung cv V −→ N heißt Knotenfärbung von G, falls für alle {u, v} ∈ E
gilt: cv (u) 6= cv (v) mit |cv (V )| Anzahl benutzter Farben.
(b) Eine Abbildung cE : E −→ N heißt Kantenfärbung von G, falls alle an einem Knoten u aufeinandertreffenden Kanten {u, v}, {u, w} ∈ E gilt: cE ({u, v}) 6= cE (u, w).
Definition 2.4: Das Knoten- bzw. Kantenfärbeproblem ist charakterisiert durch
• D = {G|G = (V, E) ein ungerichteter Graph mit mind. einer Kante}
• S(G) = {cv ist Knotenfärbung von G}
• S(G) = {cE ist Kantenfärbung von G}
• f (cv ) = |cv (V )|
• f (cE ) = |cE (E)|
• min
Bemerkung 2.5:
(a) Die kleinstmögliche Farbanzahl heißt im Falle der Knotenfärbung chromatische Zahl von G und wird mit χ(G) bezeichnet. Im Falle der Kantenfärbung heißt die entsprechende Anzahl chromatischer Index von G und wird
0
mit χ (G) abgekürzt.
(b) Es gibt Graphen, die mindestens ∆(G) + 1 Farben zur Knotenfärbung benötigen.
5
2 Approximation mit absoluter Gütegarantie
Abbildung 1: Beispiel für einen Graph, der zur Knotenfärbung ∆(G) + 1 = 5 Farben
benötigt
(c) Es gibt Graphen, die mindestens ∆(G) + 1 Farben zur Kantenfärbung benötigen.
Abbildung 2: Beispiel für einen Graph, der zur Kantenfärbung ∆(G) + 1 = 3 Farben
benötigt
2.1.1 Knotenfärbung
beliebige Graphen Gegeben ein bleibiger Graph G = (V, E) mit V = {u1 , . . . , un }
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure GreedyCol(G)
for i = 1 . . . n do
cv (ui ) := ∞
end for
for i = 1 . . . n do
cv (ui ) := min(N\cv (Γ(ui )))
end for
gib cv aus
end procedure
Algorithm 1: GreedyCol
Satz 2.6: Sei G = (V, E) ein Graph. Der Algorithmus GreedyCol berechnet in Zeit
O(|V | + |E|) eine Knotenfärbung aus höchstens ∆(G) + 1 Farben, d.h.
GreedyCol(G) ≤ ∆(G) + 1.
6
2.1 Graphfärbbarkeit
Beweis: Laufzeit X
Betrache den Greedy Schritt zur Färbung des Knotens ui . Auf {1, . . . , deg(ui ) + 1} ist
mindestens eine Farbe nicht an die Nachbarn von ui vergeben. Also gibt es eine kleinste
freie Farbe in dieser Menge, die ui zugewiesen werden kann.
Satz 2.7: Der Algorithmus GreedyCol garantiert eine absolute Güte von Delta(G)−
1. Diese Schranke ist scharf, somit die Abweichung absolut.
Beweis: κGreedyCol (G) = GreedyCol(G) − opt(G) ≤ ∆(G) + 1 − 2 = ∆(G) − 1. Absolute Abweichung?
Wir geben eine Graphenmenge G = (G1 , G2 , . . . ), so daß es für jeden Graphen Gi eine
Berechnung durch GreedyCol gibt, die eine Färbung mit ∆(G) + 1 Farben ausgibt.
Gleichzeitig zeigen wir für diesen Graphen, daß stets 2 Farben ausreichend sind. G ist
also eine (∆(G) − 1)-Zeugenmenge gegen den Algorithmus GreedyCol. Mit anderen
Worten: GreedyCol hat eine absolute Abweichung von ∆(G) − 1.
Abbildung 3: Ein 2-Zeuge gegen GreedyCol.
Planare Graphen Ein Graph G = (V, E) heißt planar, wenn man ihn kreuzungsfrei in
die Ebene einbetten kann. Beispiele sind in Abbildung 4 angegeben.
Bemerkung 2.8:
(a) Jeder planare Graph kann in Polynomzeit mit 6 Farben knotengefärbt werden. (Eulersche Summenformel für planare Graphen: Wenn G planarer
Graph mit |V | ≥ 3, dann gilt: |E| ≤ 3 · |V | − 6)
(b) Jeder planare Graph kann mit 4 Farben knotengefärbt werden. (Appel und Haken
1977)
(c) Das Entscheidungsproblem “Ist der planare Graph G mit 3 Farben knotenfärbbar?“
ist N P-vollständig.
(d) Es kann in Polynomzeit entschieden werden, ob ein Graph G mit 2 Farben knotenfärbbar ist.
7
2 Approximation mit absoluter Gütegarantie
Abbildung 4: Beispiele nicht planerer Graphen. Treten diese als Untergraph auf, so ist
der gesamte Graph nicht mehr planar.
procedure AlgoColPlan(G)
Teste gemäß Bemerkung (d), ob G 2-färbbar ist
3:
Falls nicht: Färbe die Knoten gemäß Bemerkung (a) mit 6 Farben
4: end procedure
1:
2:
Algorithm 2: ColPlan
Satz 2.9: ColPlan garantiert eine absolute Güte von κColPlan (G) ≤ 3, d.h.
28.04.2005
←−−−−−−−
ColPlan − opt(G) ≤ 3.
2.1.2 Kantenfärbung beliebiger Graphen
0
Satz 2.10: Für jeden Graphen G gilt: ∆(G) ≤ χ ≤ ∆(G) + 1
Beweis:
0
(1) ∆(G) ≤ χ (G) X
0
(2) χ ≤ ∆(G) + 1 zeigen wir konstruktiv.
Konvention: Wenn die Kanten von G gefärbt sind, dann sagen wir, daß die Farbe
c an dem Knoten u fehlt, wenn keine zu u inzidente Kante mit e gefärbt ist.
Lemma 2.11: Sei G kantengefärbt mit den Farben 1, . . . , ∆(G) + 1 und seien u und
v Knoten mit {u, v} ∈ E und deg(u), deg(v) < deg(G). Dann kann G so umgefärbt
werden, daß an u und v dieselbe Farbe fehlt.
Beweis: An u möge die Farbe s fehlen, an v die Farbe c1 . Wir sorgen dafür, daß c1 auch
an u fehlt. Dazu konstruieren wir eine Knotenreihenfolge (v1 , . . . , vk ) von Nachbarn von
u und eine Farbenfolge (c1 , . . . , ck+1 ) für die gilt: Kante {ui , vi } ist mit der Farbe ci
gefärbt und an Knoten vi fehlte die Farbe ci+1
Sei h die Anzahl der Schleifendurchläufe.
8
2.1 Graphfärbbarkeit
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure Kantenfärbung((G = (V, E)))
if |E| = ∅ then
return
elseWähle eine beliebige Kante {u, v} ∈ E
0
G := G\{u, v}
0
Kantenfärbung(G )
0
if ∆(G ) < ∆(G)) then
Färbe die Kante {u, v} mit der kleinstmöglichen an u und v fehlenden
Farbe aus {1, . . . , ∆(G) + 1}
else
0
Färbe G um, so daß an u und v dieselbe Farbe c fehlt und färbe anschließend {u, v} mit c
end if
end if
end procedure
Algorithm 3: Kantenfärbung
1:
2:
3:
4:
5:
6:
7:
procedure Umfärbung((G = (V, E)))
i := 1
while ∃ eine mit c1 gefärbte Kante {ui , vi } ∈ E und v1 6∈ {v1 , . . . , vi−3 } do
ci+1 := “die an vi fehlende Farbe“
i++
end while
end procedure
Algorithm 4: Umfärbung
9
2 Approximation mit absoluter Gütegarantie
c2
c3
s
c4
cl+1
Abbildung 5: Grafische Verdeutlichung des Beweises
Beobachtung:
(1) Die Schleife wird höchstens ∆(G) − 1 mal durchlaufen
(2) Es gibt 2 Möglichkeiten, die Schleife abzubrechen
(a) Es gibt keine zu u inzidente Kante, die mit cl+1 gefärbt ist
(b) Es gibt eine Kante {ui , vj }, so daß ci = cl+1 ist und j ∈ {1, . . . , l}
Fall (2)(a) Wir können die Farben ganz einfach verschieben. Färbe alle Kanten (u, vi ) mit der
Farbe ci+1 . c1 wird danach zu einer an u und v fehlenden Farbe.
Fall (2)(b) Zuerst erfolgt die Farbverschiebung wie im Fall (2)(a) mit der Kante {u, vj−1 }, . . . , {u, v1 }.
Dadurch wird c1 wieder zu einer an u fehlenden Farbe und die Kante {u, vj } muss
noch gefärbt werden. Wir betrachten den Teilgraphen H(s, cl+1 ) von G, der nur
aus den Knoten besteht, die mit der Farbe s oder cl+1 gefärbt sind und den entsprechenden Knoten. Wir unterscheiden folgende Teilfälle:Bild hinzufügen
(b1) u und vj liegen in verschiedenen Zusammenhangskomponenten
(b1) u und vk liegen in verschiedenen Zusammenhangskomponenten
Im Fall (b1) können wir in der Komponente von vj die Farbe s und vk+1 vertauschen, so daß nun sowohl an u, wie auch an vj die Farbe s fehlt. Ergo färben wir
die noch zu färbende Kante {u, vj } mit s.
Im Fall (b2) können wir das Verschieben der Farben wir im Fall (2)(a) mit den Kanten {u, vk−1 }, . . . , {u, vj } durchführen und “entfärben“ dadurch die Kante {u, vk }.
Damit ist dieser Fall auf den Fall (b1) zurückgeführt und wird entsprechend behandelt.
10
2.2 Ein Nicht-Approximierbarkeitsergebnis
2.2 Ein Nicht-Approximierbarkeitsergebnis
Definition 2.12: Rucksackproblem
• D = {W, vol, p, B|w = {1, . . . , n}, vol : W −→ N, p : W −→ N, B ∈ N, ∀w ∈ W :
vol(w) ≤ B}
P
• S = {hW, vol, p, Bi} = {A ⊆ W |
vol(w) ≤ B}
w∈A
• f (A) =
P
p(w)
w∈A
• Zielfunktion max.
Satz 2.13: Falls P =
6 N P ist, gibt es keine Konstante k ∈ N, so daß es einen polynomiellen Approximationsalgorithmus A für das Rucksackproblem gibt mit
|A(I) − opt(I)| ≤ k.
Beweis: “Selbstbeweis“
Wir nehmen an, daß k und A doch existieren. Wir zeigen, daß man dann sogar einen
0
exakten Algorithmus A mit polynomieller Laufzeit für das Rucksackproblem angeben
kann. Die würde in der Konsequenz bedeuten, dass P = N P ist.
Sei I = hw, vol, p, Di eine Instanz des Rucksackproblems. Wir konstruieren eine Pro0
0
0
0
0
0
0
0
0
bleminstanz I = hw , vol , p , B i mit w = w, vol = vol, B = B, p (w) = (k + 1) · p(w).
0
Offensichtlich ist eine zulässige Lösung σ für I auch eine zulässige Lösung für I und
0
0
umgekehrt. D.h. S(I) = S(I ). Die Werte von σ ∈ S(I) = S(I ) :
X
fI (σ) =
p(w)
w∈σ
fI 0 =
X
(k + 1)p(w) = (k + 1)fI (σ)
w∈σ
0
D.h.: Eine optimale Lösung σopt für I ist auch eine optimale Lösung für I . Wenn wir
nun alle zulässigen Lösungen aufsteigend nach ihren Werten ordnen, d.h.
S(I) = {σ1 , . . . , σ|S(I)| } mit fI (σ) ≤ fI (σi+1 ) [fI 0 (σ) ≤ fI 0 (σi+1 )]
Sei j der Index mit fI (σj−1 ) < opt(I) und fI (σj ) = opt(I). Damit ist
fI (σj ) − fI (σj−1 ) ≥ 1
und
fI 0 (σj ) − fI (σj−1 ) = (k + 1) · (fI (σj ) − fI (σj−1 )) > k
0
Wir definieren den Algorithmus A :
Was gilt nun?
11
3 Approximation mit relativer Gütegarantie
0
procedure A (I = hw, vol, p, Di)
0
Berechne die Probleminstanz I
0
Bestimme mittles A eine Lösung σ für I
Gibt σA0 = σ aus
end procedure
1:
2:
3:
4:
5:
Algorithm 5: A
0
0
(1) A ist polynomiell
0
12.05.2005
←−−−−−−−
(2) |opt(I ) − fI 0 (σA0 )| ≤ k
0
Da es für I keine zulässige Lösung gibt mit dieser Eigenschaft außer der optimalen
0
Lösung, ist σA0 eine optimale Lösung für I und damit auch für I
3 Approximation mit relativer Gütegarantie
Definition 3.1: Sei Π ein Optimierungsproblem und A ein Approximationsalgorithmus für Π.
i) A hat bei Eingabe I eine relative Güte von
A(I) opt(I)
ρA (I) = max
,
opt(I) A(I)
ii) Die relative worst-case Güte von A ist die Funktion
ρwc
A (n) = max{ρA (I) | I ∈ D, |I| ≤ n}
iii) Sei ρA : N → N. A garantiert eine relative Güte von ρA (n), falls für alle n gilt:
ρwc
A (n) ≤ ρA (n).
iv) A macht bei der Eingabe I einen relativen Fehler von
A (I) =
|A(I) − opt(I)|
opt(I)
A garantiert dann einen relativen Fehler von höchstens A (n), falls für alle I ∈ D
mit |I| ≤ n:
A (I) ≤ A (n)
v) Sei ρ0A : N → N. A hat eine relative Abweichung von ρ0A (n), falls für unendlich
0
0
0
viele n gilt: ρwc
A (n) ≥ ρA (n). Eine unendlich große Menge D , D ⊆ D, heißt
ρ0A (n)-Zeugenmenge gegen A, wenn für alle I ∈ D0 : ρ : A(I) ≥ ρ0A (|I|).
Bemerkung 3.2: Sei Π ein Optimierungsproblem und A ein Approximationsalgorithmus für Π. n sollte wohl durch I ersetzt werden!?
12
3.1 Das metrische TSP
i) Bei einem Minimierungsproblem ist 1 + A (n) = ρA (n)
ii) Bei einem Maximierungsproblem ist 1 − A (n) =
1
ρA (n) .
iii) Für beide Problemtypen ist A (n) ≤ ρA (n) − 1.
iv) Ist Π ein Minimierungsproblem, so gilt:
a) opt(I) ≤ A(I) ≤ ρA (|I|) · opt(I)
b)
1
ρA (|I|)
· A(I) ≤ opt(I) ≤ A(I)
v) Ist Π ein Maximierungsproblem, so gilt:
a)
1
ρA (|I|)
· opt(I) ≤ A(I) ≤ opt(I)
b) A(I) ≤ opt(I) ≤ %A (|I|) · A(I)
vi) Es gilt (für beide Problemtypen):
(1 − A (|I|)) · opt(I) ≤ A(I) ≤ (1 + A (|I|)) · opt(I)
3.1 Das metrische TSP
Definition 3.3: Das metrische TSP ist definiert durch
• D = {hKn , ci | Kn ist vollständiger Graph auf n Knoten, c : E → N, ∀u, v, w ∈
V : c(u, v) ≤ c(u, w) + c(w, v)}
• S(hKn , ci) = {C | C = (vi1 , vi2 , . . . , vin , vi1 ) ist Hamiltonkreis }
P
n−1
• f (C) =
c(v
,
v
)
+ c(vin , vi1 )
i
i
j
j+1
j=1
• min
3.1.1 Einfüge-Heuristik
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Einfüge((C, v))
Bestimme i, so dass c(u − I, v) + c(v, ui+1 ) − c(ui , ii+1 ) minimal ist
Gib (u1 , . . . , ui , v, ui+1 , . . . , uk , u1 ) zurück
end procedure
procedure EH
C1 := (v1 , v1 ) für einen beliebigen Knoten v1
for j = 2, . . . , n do
wähle einen Knoten vj , der nicht in Cj−1 ist
Cj := Einfüge(Cj−1 , vj )
end for
end procedure
Algorithm 6: Einfüge
Die Folge (v1 , v2 , . . . , vn ) nennen wir Einfüge-Abfolge.
13
3 Approximation mit relativer Gütegarantie
Satz 3.4: Jede Einfüge-Heuristik eh garantiert
eh(hKn , ci) ≤ (dlog ne + 1) · opt(hKn , ci)
Beweis: Sei zu eh mit Eingabe I = hK − N, ci die Einfüge-Abfolge (v1 , v2 , . . . , vn )
gegeben. Sei cost(vj ) die Verlängerung der Tour, die durch das Einfügen von vj in Cj−1
bewirkt wird.
Für j > 1 : cost(vj ) = c(Cj ) − c(Cj−1 ). cost(v1 ) = 0.
Fakt 1 cost({v1 , . . . , vn }) =
Pn
j=1 cost(vj )
=
Pn
j=2 c(cj )
− c(Cj−1 ) = c(Cn ).
Lemma 3.5 (Hilfslemma 1): Für vi , vj : min(cost(vi ), cost(vj )) ≤ 2 · c(vi , vj )
Beweis: Sei i < j, die Tour Cj−1 gegeben. Ferner sei x in dieser Tour der Nachfolger von
vi . Wir fügen nun den Knoten vj in Cj−1 ein. Diese Verlängerung der Tour ist höchstens
so groß, als würde ich vj zwischen vi und x einfügen, d. h.:
cost(vj ) ≤ c(vi , vj ) + c(vj , x) − c(vi , x)
Ferner gilt die Dreiecksungleichung: c(vj , x) ≤ c(vi , vj )+c(vi , x). Also c(vj , x)−c(vi , x) ≤
c(vi , vj ).
Insgesamt: cost(vj ) ≤ 2 · c(vi , vj ).
Beweis (Beweisidee zu 3.4): Wir werden aus einer optimalen Tour wiederholt disjunkte
Gruppen Zl von Knoten herausnehmen, dem Knoten bezüglich eh je Gruppe sich zu
nicht mehr als opt(I) aufsummieren. Dies machen wir solange, bis alle Knoten und
damit ihre Kosten erfasst sind.
Sei R∗ = (w1 , w2 , . . . , wn , w1 ) eine optimale Tour und R = (wi1 , wi2 , . . . , wik , wi1 ) ein
Kreis aus k Knoten auf I mit ij < ij+1 . Wir bezeichnen R als „angelehnt“ an R∗ . Es gilt:
c(R) ≤ c(R∗ ) = opt(I).
Wir zeigen, dass man aus jedem an einer optimalen Tour angelehnten Kreis ungefähr
die Hälfte der Knoten so auswählen kann, dass deren Kosten höchstens opt(I) sind.
Lemma 3.6 (Hilfslemma 2): Seien R∗ und R definiert als optimale Tour beziehungsweise angelehnter Kreis. Es gibt eine Menge Z ⊆ {wi1 , . . . , wik } mit |Z| = b k2 c und
cost(Z) ≤ opt(I).
Beweis: Wir teilen R in zwei Mengen auf: M1 = {{wi1 , wi2 }, {wi3 , wi4 }, . . . } und M2 =
{{wi2 , wi3 }, {wi4 , wi5 }, . . . }.
|M1 | = b k2 c
Sei M diejenige Menge der beiden, für die c(M ) ≤ 12 c(R) ≤ 12 c(R∗ ) gilt, und sei Z die
Menge der Knoten, die je Kante von M den kleinsten cost-Wert haben.
(
u falls cost(u) ≤ cost(v)
billigst(u, v) =
v sonst
14
3.1 Das metrische TSP
D. h. Z = {billigst(wij , wij+1 ) | {wij , wij+1 } ∈ M }.
Es ist |Z| = b k2 c und
cost(Z) =
X
min(cost(wij ), cost(wij+1 ))
(wij ,wij+1 )∈M
≤
X
2 · c(wij , wij+1 )
nach Hilfslemma 1
(wij ,wij+1 )∈M
= 2 · c(M )
1
≤ 2 · · c(R) ≤ c(R∗ ) = opt(I)
2
Wir setzen R1 = R∗ . Bestimme nach Hilfelemma 2 die zugehörige Menge Z1 . Wiederhole mit Rl+1 = R1 − Zl für L ≥ 1.
n
, d. h. l ≤ dlog ne + 1.
Es gilt: |Rl | ≤ 2l−1
˙
PFerner gilt: ∪ Zl = {v1 , . . . , vn } und eh
cost(Zl ) ≤ (dlog ne + 1) · opt(I).
Fakt 1
=
cost({v1 , . . . , vn }) = cost(∪˙ Zl ) =
procedure Approx-TSP((Kn , c))
Wähle einen Knoten v ∈ V aus
Konstruiere einen minimalen Spannbaum T für hKn , ci
Konstruiere eine Tour W um T herum als Preorder-Baumdurchlauf
Wandle “W“ zu einer hamiltonischen Tour ab
end procedure
Algorithm 7: Approx-TSP
Satz 3.7: Approx-TSP hat die relative Güte 2 (2 − n2 ).
Beweis: Sei H ∗ eine minimale Tour. Sei H die durch Approx-TSP konstruierte Tour.
Wir wollen zeigen: c(H) ≤ 2 · c(H ∗ ).
Sei T der MST, den wir mit Prim konstruiert haben. Dann gilt: c(T ) ≤ c(H ∗ ).
c(T ) ≤ c(H ∗ ) − c(e) ≤ c(H ∗ ) −
c(H ∗ )
1
= (1 − ) · c(H ∗ )
n
n
Da in W jede Kante aus T genau 2-mal durchlaufen wird, gilt:
c(W ) = 2 · c(T )
d. h. c(W ) ≤ 2 · c(H ∗ )
2
c(W ) ≤ (2 − ) · c(H ∗ )
n
Wegen der Dreiecksungleich und da wir in H die Knoten aus W herausgenommen
haben, die wir bereits besucht haben, gilt c(H) ≤ c(W ) ≤ 2 · C(H ∗ ), c(H) ≤ c(W ) ≤
(2 − n2 ) · C(H ∗ ).
15
3 Approximation mit relativer Gütegarantie
a
d
e
b
f
g
c
W=abcbhbadefegeda
h
H=abcbhbadefegeda
Abbildung 6: ApproxTSP angewandet auf einen Graph mit den Knoten (a, . . . , g)
3.1.2 Christofides Algorithmus
Definition 3.8: Ein Matching M eines kantengewichteten Graphen G ist ein Teilgraph
von G, in dem jeder Knoten maximalen Grad 1 hat. Das Gewicht von M ist die Summe
der Gewichte der in M vorkommenden Kanten. Ist G ein vollständiger Graph mit gerader
Anzahl n von Knoten, so existiert ein perfektes Matching, d. h. ein Matching, in dem
alle n Knoten den Grad 1 haben. In diesem Fall besteht das Matching aus n2 Kanten.
Ein perfektes Matching mit kleinstmöglichem Gewicht nennen wir ein leichtestes Matching.
Definition 3.9: Ein Multigraph ist ein Graph, in dem zwei Knoten durch mehrere
Kanten miteinander verbunden sein können.
Definition 3.10: Eine Euler-Tour eines zusammenhängenden Multi-Graphen G =
(V, E) ist ein Kreis (u1 , u2 , . . . , u|E| ) mit ui ∈ V und u1 = u|E|+1 in G, in dem jede
Kante von G genau einmal vorkommt.
Satz 3.11: Auf n Knoten garantiert Christofides eine realtive Güte von ρCh (n) ≤ 32 − n1 .
Beweis: z. z.: c(E 0 ) ≤ 32 − n1 · c(R∗ )
R∗ besteht ∗aus n Kanten, d. h. es gibt mindestens eine Kante e in R∗ , die mindestens
die Länge c(Rn ) hat. Also gilt:
c(e) ≥
c(R∗ )
n
Entfernt man e aus dem Hamiltonkreis R∗ , erhält man einen Spannbaum.
16
3.2 Einige weitere Approximationsalgorithmen
1:
2:
3:
4:
5:
6:
7:
procedure ch(G = (V, E))
Berechne einen minimalen Spannbaum TCh von I = hKn , ci
S := {v ∈ TCh | degTCh (v) ist ungerade }
. |S| ist gerade
Berechne auf dem durch S induzierten Teilgraph des Kn ein leichtestes matching
MCh
Berechne eine Euler-Tour E = (u1 , u2 , . . . ) auf TCh ∪· MCh
Entferne in E Wiederholungen von Knoten, dass man E 0 erhält und gib E 0 aus.
end procedure
Algorithm 8: ch
Da TCh aber ein minimaler Spannbaum ist, gilt:
c(TCh ) ≤ c(R∗ ) − c(e) ≤ c(R∗ ) −
1
= 1−
· c(R∗ )
n
c(R∗ )
n
Wir benennen die Knoten so um, dass R∗ = (u1 , u2 , . . . , un , u1 ) ist. Ferner schreiben
wir S = {ui1 , . . . , ui|S| } mit i1 < · · · < i|S| . Für den Kreis H = (ui1 , . . . , ui|S| , ui1 ), der
an R∗ angelehnt ist, gilt wegen der Dreiecksungleichung: c(H) ≤ c(R∗ ).
Da |S| gerade ist, kann H in zwei perfekte Matchings M1 und M2 auf den Knoten von
S zerlegt werden. O. E. d. A. sei c(M1 ) ≤ c(M2 ). Dann gilt:
1
1
1
c(MCh ) ≤ c(M1 ) ≤ (c(M1 ) + c(M2 )) = · c(H) ≤ · c(R∗ )
2
2
2
Die Euler-Tour E benutzt nur Kanten aus TCh ∪· MCh .
1
1
c(E) = c(TCh ∪· MCh ) ≤ 1 −
· c(R∗ ) + · c(R∗ )
|
{z
}
n
2
=c(TCh )+c(MCh )
∗
= c(R ) ·
3 1
−
2 n
Ferner gilt: c(E 0 ) ≤ c(E)
der Dreiecksungleichung.
wegen
1
3
∗
0
Ergo: c(E ) ≤ 2 − n · c(R ).
3.2 Einige weitere Approximationsalgorithmen
3.2.1 Das Vertex Cover-Problem
Eingabe ungerichteter Graph, G = (V, E)
Optimierungsproblem Finde minimales V 0 ⊆ V mit der Eigenschaft, dass für alle
(u, v) ∈ E gilt: u ∈ V 0 oder v ∈ V 0 .
Satz 3.12: Approx-Vertex-Cover hat die relative Güte 2.
17
3 Approximation mit relativer Gütegarantie
Minimaler Spannbaum T_Ch
Ungerader Grad: Gestrichelt
1
2
7
3
4
6
5
8
Dicke Linien: Leichtestes Matching M_Ch
Dick grau: Euler-Tour
Gestrichelt: Endgültige Tour
Abbildung 7: ch angewandet auf einen Graph mit den Knoten (1, . . . , 8)
Beweis: Sei C ∗ ein minimales Vertex Cover. Sei A die Menge der Kanten, die der
Algorithmus nach Beendigung in der Schleife ausgewählt hat.
Dann gilt: |C| = 2 · |A|. Da die Kanten in A unabhängig voneinander sind, gilt:
|A| ≤ |C ∗ |. Somit |C| ≤ 2 · |C ∗ |
3.2.2 Scheduling
Szenario Seien J1 , . . . , Jn Jobs und M1 , . . . , Mm identische Prozessoren.
Annahme
• Jeder Job Jj benötigt die Zeit pj > 0 und soll nicht unterbrochen
werden.
• Jeder Prozessor Mi kann gleichzeitig nur einen Prozess bearbeiten
Problemstellung Konstruiere einen Schedule
f : {Jj }nj=1 → {Mi }m
i=1 ,
das die schnellste Abarbeitung aller Jobs garantiert. (Makespan-Minimierung)
Graham-Heuristik: Seien die Jobs in beliebiger Ordnung gespeichert. Wir nehmen
den nächsten Job aus der Liste, sobald irgendein Prozessor frei ist.
18
3.2 Einige weitere Approximationsalgorithmen
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure Approx-Vertex-Cover(G = (V, E))
C := ∅
E 0 := E
while E 0 6= ∅ do
C := C ∪ {u, v} mit (u, v) ∈ E 0 ist beliebige Kante
E 0 := E 0 \ {von E 0 adjazent zu u oder v}
end while
Gebe C zurück
end procedure
Algorithm 9: Approx-Vertex-Cover
Satz 3.13: Die Graham-Heuristik hat eine relative Güte von 2 −
1
m.
Beweis: Wir bezeichnen durch sj und ej die Start- und die Endzeit eines Jobs Jj bei
der Graham-Heuristik.
Sei Jk der Job, der als letzter „fertig“ wird. Dann ist vor dem Zeitpunkt sk kein
∗
Prozessor frei. Für die Laufzeit Cmax
des optimalen Schedules gilt:
∗
Cmax
≥ ps
∗
Cmax
≥
n
1 X
·
pi
m
i=1
σ
Sei Cmax
die Laufzeit, die die Heuristik liefert.


X
1
σ
p j  + pk
Cmax
= ek = sk + pk ≤  ·
m
j6=k


n
1 X 
pk
= ·
p j + pk −
m
m
j=1


n
X
1
1
= ·
pj  + pk (1 − )
m
m
j=1
1
∗
≤ Cmax
2−
m
Lpt_Heuristik: Sortiere die Jobs bezüglich pi in nichtsteigender Ordnung. Verfahre
danach wie bei der Graham-Heuristik.
Satz 3.14: Für die Lpt_Heuristik gilt
4
1
LP T
∗
Cmax
≤( −
) · Cmax
.
3 3m
Beweis (Skizze): Sei Jk der „letzte“ Job im Lpt-Schedule. Wir nehmen zunächst an,
∗
dass pk ≤ Cmax
3 .
19
3 Approximation mit relativer Gütegarantie
LP T
Cmax
n
1 X
1
≤
· pk
·
pj + 1 −
m
m
j=1
C∗
1
∗
· max
≤ Cmax + 1 −
m
3
4
1
∗
=
−
· Cmax
3 3m
∗
02.06.2005
←−−−−−−−
∗
Sei pk > Cmax
3 . Dann gilt 3pk > Cmax . Folglich enthält jeder Prozessor höchstens 2
Jobs. D. h. n = 2m − k mit k > 0.
In diesem Fall ist der Algorithmus also optimal!
3.2.3 Das Set-Cover-Problem
Eingabe: Endliche Menge X und eine Menge F von Teilmengen von X mit
X.
S
S∈F
S=
Opt.-Problem: Finde die minimale Menge C ⊆ F , die X überdeckt.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure Greedy-Set-Cover(X,F)
U := X
C := ∅
while U 6= ∅ do
wähle S ∈ F mit |S ∩ U | ist maximal
U := U \ S
C := C ∪ {S}
end while
return C
end procedure
Algorithm 10: Greedy-Set-Cover
Greedy-Lösung: C = {S1 , S4 , S5 , S3 }
optimale Lösung: C ∗ = {S3 , S4 , S5 }
Satz 3.15: Der Greedy-Set-Cover-Algorithmus hat die relative Güte (ln |X| + 1)
oder genauer H(max {|S| : S ∈ F }) mit H(d) ist die d-te harmonische Zahl.
Beweis: Sei C das Set-Cover des Greedy-Algorithmus und C ∗ ein minimales Set-Cover.
Sei Si die Menge, die der Algorithmus im i-ten Schleifendurchlauf auswählt. Weiterhin
sei x ∈ X zum ersten Mal durch Si überdeckt.
Wir setzen das Gewicht cx von x wie folgt:
cx =
20
1
.
|Si \ (S1 ∪ · · · ∪ Si−1 )|
3.2 Einige weitere Approximationsalgorithmen
S1
S4
1
6
1
6
1
3
S3
1
6
1
6
1
6
1
3
1
2
1
3
S6
1
S5
1
6
S2
1
2
Abbildung 8: Greedy-Set-Cover angewandet auf einen Graph mit Punktmengen S1 –
S6
Dann ergibt sich:
|C| =
X
cx ≤
X X
S∈C ∗
x∈X
!
cx ≤
X
H(|S|) ≤ |C ∗ | · H(max {|S| : S ∈ F })
S∈C ∗
x∈S
|X|
X
X 1
1
∗
≤ |C | ·
≤ |C ∗ | · (ln |X| + 1)
= |C | ·
i
i
max{S}
∗
i=1
i=1
Noch zu zeigen:
X
cx ≤ H(|S|) ∀S ∈ C ∗ .
x∈S
Dazu definieren wir für ein S ⊆ F und i ≤ |C|:
ui := |S \ (S1 ∪ · · · ∪ Si )| .
Sei S fest, u0 = |S| und k der minimale Index, so dass uk = 0 gilt. Es gilt: ui−1 ≥ ui
und genau ui−1 − ui Elemente von S werden zum ersten Mal durch Si überdeckt für
i = 1, . . . , k.
X
x∈S
cx =
k
X
i=1
(ui−1 − ui ) ·
1
.
|Si \ (S1 ∪ · · · ∪ Si−1 )|
Wegen der Greedy-Auswahlstrategie gilt:
|Si \ (S1 ∪ · · · ∪ Si−1 )| ≥ |S \ (S1 ∪ · · · ∪ Si−1 )|
21
3 Approximation mit relativer Gütegarantie
Also:
X
cx ≤
k
X
(ui−1 − ui ) ·
i=1
x∈ S
1
.
ui−1
Satz aus der Algebra: Für ganze Zahlen a, b mit a < b gilt:
H(b) − H(a) =
b
X
1
1
≥ (b − a) · .
i
b
i=a+1
Also folgt:
X
x∈S
cx ≤
k
X
i=1
(ui−1 −ui )·
1
ui−1
≤
k
X
H(ui−1 )−H(ui ) = H(u0 )−H(uk ) = H(u0 ) = H(|S|).
i=1
3.2.4 Das Maximum-Set-Cover-Problem
Eingabe: Endliche Menge X, eine Gewichtsfunktion w, w : X → R, eine Menge F von
Teilmengen von X und k ∈ N.
Opt.-Problem: Finde eine Teilmenge C ⊆ F mit |C| = k, so dass
maximiert wird.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
P
x∈
S
s∈S
s w(x)
procedure (Greedy-)Maximum-Set-Cover(X, F, w, k)
U := X
C := ∅
for i = 1, . . . , k do
wähle S ∈ F mit w(S ∩ U ) ist maximal
U := U \ S
C := C ∪ {S}
end for
return C
end procedure
Algorithm 11: (Greedy-)Maximum-Set-Cover
Satz 3.16: Der (Greedy-)Maximum-Set-Cover-Algorithmus hat die relative Güte
(1 − 1e )−1 ≈ 1,59.
22
3.2 Einige weitere Approximationsalgorithmen
Beweis: Sei C wiederum die Menge, die der Algorithmus liefert und C ∗ eine optimale
Lösung. Weiterhin sei Si die Menge, die in Schritt i vom Algorithmus ausgewählt wird.
Es gilt für alle l = 1, . . . , k:
w
l
[
!
−w
Si
i=1
l−1
[
!
Si
i=1
S
w(C ∗ ) − w( l−1
i=1 Si )
≥
.
k
(3.17)
Wir zeigen per Induktion über l:
w(C) ≥
1
1 − (1 − )l
k
· w(C ∗ ).
∗
)
(IA) l = 1: w(S1 ) ≥ w(C
= (1 − (1 − k1 )1 ) · w(C ∗ ) X
k
Sl
(IV) w( i=1 Si ) ≥ (1 − (1 − k1 )l ) · w(C ∗ )
(IS) l → l + 1:
w
l+1
[
!
Si
=w
i=1
l
[
l+1
[
!
+w
Si
i=1
3.17
≥ w
Si
Si
+
i=1
l
[
!
Si
w
S
−
!
l
i=1 Si
k
!
Si
i=1
w (C ∗ ) − w
!
i=1
=w
−w
i=1
l
[
l
[
l
[
!
S
k
+
l
i=1 Si
w (C ∗ )
k
w (C ∗ )
1
+
k
k
i=1
!
(IV)
w(C ∗ )
1 l
1
∗
+
≥ 1− 1−
· w(C ) · 1 −
k
k
k
!
l !
1
1
1
=
1−
1− 1−
+
· w(C ∗ )
k
k
k
!
1 l+1
= 1− 1−
· w(C ∗ )
k
=w
Si
1−
k Für l = k erhalten wir: w(C) ≥ 1 − 1 − k1
· w(C ∗ ).
Beachte: limk→∞ (1 − k1 )k = e−1 .
⇒ w(C) ≥ (1 − e−1 ) · w(C ∗ )
w(C ∗ )
1
⇒
≤ (1 − )−1
w(C)
e
23
3 Approximation mit relativer Gütegarantie
3.2.5 Unabhängige Mengen („Independent Set“)
Definition 3.18: Sei G = (V, E) ein Graph und U ⊆ V eine Knotenmenge. U wird
unabhängig genannt, wenn für alle Knotenpaare (u, v) ∈ U gilt: (u, v) 6∈ E.
Das Independent-Set-Problem ist das Optimierungsproblem, zum Eingabegraphen eine
größtmögliche unabhängige Menge zu bestimmen.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure GreedyIS(G = (V, E))
U := ∅
t := 0
V (0) := V
while V (t) 6= ∅ do
G(t) := der durch V (t) induzierte Graph
ut := ein Knoten mit minimalem Grad in G(t)
V (t+1) := V (t) \ ({ut } ∪ ΓG(t) (ut ))
U := U ∪ {ut }
t := t + 1
end while
return U
end procedure
Algorithm 12: GreedyIS
Satz 3.19: Sei G = (V, E) eine Eingabe für GreedyIS. Dann erhält man als relative
|E|
Güte |V
| + 1.
Beweis: Sei γt = |{ut } ∪ ΓG(t) (ut )| die Anzahl der in Runde t aus G(t) entfernten Knoten.
Sei U ∗ eine maximale unabhängige Menge, d.h. opt(G) = |U ∗ |.
Sei κt = |U ∗ ∩ {{ut } ∪ ΓG(t) (ut )}| die Anzahl der in Runde t „getroffenen“ (=entfernten)
Knoten aus U . Es gilt:
|U |−1
X
t=0
|U |−1
γt = |V | und
X
κt = opt(G).
t=0
Da ut den kleinsten Grad in G(t) hat (und dieser ist γt − 1), haben alle seine Nachbarn
mindestens denselben Grad.
Der „kompakteste“ Graph ist der vollständige Graph, der alle γt Knoten, die in der tten Runde gelöscht werden, miteinander verbindet. Dieser Graph hat 21 γt (γt −1) Kanten.
Allerdings sind die κt Knoten in {{ut } ∪ ΓG(t) (ut )} ∩ U ∗ unabhängig, d.h. sie dürfen
nicht durch Kanten miteinander verbunden sein. D.h. wir ziehen 12 κt (κt − 1) Kanten
wieder ab.
Die Knoten in {{ut }∪ΓG(t) (ut )}∩U ∗ haben noch nicht den erforderlichen Knotengrad.
Genauer gesagt fehlen mindestens κt − 1 Kanten. Diese müssen in der Knotenmenge die
nicht durch {{ut } ∪ ΓG(t) (ut )} erfasst sind, enden. Also müssen wir κt (κt − 1) Kanten
wieder addieren.
24
3.2 Einige weitere Approximationsalgorithmen
Die Mindestzahl der in der t-ten Runde gelöschten Kanten ist:
1
1
1
γt (γt − 1) − κt (κt − 1) + κt (κt − 1) = (γt (γt − 1) + κt (κt − 1)).
2
2
2
Also gilt:
|U |−1
1 X
(γt (γt − 1) + κt (κt − 1)) ≤ |E|
2
t=0
|U |−1
⇔
X
(γt (γt − 1) + κt (κt − 1)) ≤ 2 · |E|
t=0
|U |−1
⇔
X
|U |−1
(γt2
+
κ2t )
X
−
t=0
|U |−1
γt −
t=0
X
κt ≤ 2 · |E|
t=0
|U |−1
⇔
X
(γt2 + κ2t ) ≤ 2 · |E| + |V | + opt(G)
t=0
Exkurs:
P
P
Frage: Für welches x
e = (x1 , . . . , xk ) mit ki=0 xi = n wird ki=0 x2i minimal?
P
2
Antwort: xi = nk und damit: ki=0 x2i = nk .
Anwendung des obigen Exkurses auf unsere Ungleichung:
P|U |−1 2 |V |2
P|U |−1 2
|V |
t=0 γt = |U | .
t=0 γt wird minimal, wenn für alle t gilt: γt = |U | und damit
P|U |−1 2
P|U |−1 2 opt(G)2
opt(G)
und damit t=0 κt = |U | .
t=0 κt wird minimal, wenn für alle t gilt: κt =
|U |
Also:
|V |2 + opt(G)2
≤ 2 · |E| + |V | + opt(G).
|U |
Mit |U | = GreedyIS(G):
|V |2 + opt(G)2
≤ 2 · |E| + |V | + opt(G).
GreedyIS(G)
Es folgt:
opt(G)
·
GreedyIS(G)
⇔
!
|V |2
+ opt(G) ≤ 2 · |E| + |V | + opt(G)
opt(G)
|E|
opt(G)
|V | + 1 + |V |
|V |
opt(G)
opt(G) + |V |
2·
opt(G)
2 · |E| + |V | + opt(G)
≤
=
2
|V |
GreedyIS(G)
+ opt(G)
opt(G)
opt(G)
⇔
≤
GreedyIS(G)
2·
|E|
|V |
|V |
opt(G)
+
opt(G)
|V |
|
{z
}
≥2
1+
+
opt(G)
|V |
|V |
opt(G)
+
opt(G)
|V |
|
{z
}
≥1+
opt(G)≤|V |
≤
|E|
+1
|V |
opt(G)
|V |
25
3 Approximation mit relativer Gütegarantie
Damit ist der Beweis geführt.
Satz 3.20: GreedyIS hat eine relative Abweichung von mindestens
1
4
· (|V | − 1).
e gegeben durch:
Beweis: Sei G
1
n−1
2
n−1
2
Abbildung 9: Zeugen-Graph gegen GreedyIS; Greedy-Lösung in rot, optimale in blau
eingekreist
Als GreedyIS-Lösung und optimale Lösung ergeben sich:
16.06.2005
←−−−−−−−
e = 2,
GreedyIS(G)
e = n − 1.
opt(G)
2
n−1
e
opt(G)
1
= 2 = · (n − 1).
⇒
e
2
4
GreedyIS(G)
Lemma 3.21: Sie G = (V, E) ein knoten-k-färbbarer Graph. Dann gibt es ein u ∈ V
mit degG (u) ≤ b(1 − k1 ) · |V |c.
Beweis: Sei G mit k Farben gefärbt. Mit Ui bezeichnen wir die Menge der Knoten,
welche die Farbe i bekommen haben. Die Knoten in Ui sind nicht miteinander verbunden.
Es muß unter den Mengen U1 , . . . , Uk eine Menge U geben, die mindestens k1 · |V |
Knoten enthält. Jeder Knoten in U kann nur mit höchstens |V | − |U | Knoten außerhalb
von U verbunden sein. Insgesamt haben wir also
1
1
|V | − |U | ≤ |V | −
· |V | = |V | · (1 − ) .
k
k
Satz
3.22:
l
m Sei G = (V, E) ein knoten-k-färbbarer Graph. Dann ist GreedyIS ≥
|V |
.
logk 3
26
3.2 Einige weitere Approximationsalgorithmen
Beweis: Betrachten wir die i-te Runde im Algorithmus GreedyIS. Sei |V | = n und
|V (t) | = nt .
O.B.d.A sei k ≥ 2. Wegen des Hilfslemma hat nt höchstens (1 − k1 )nt Nachbarn. Betrachten wir die Rekurrenzgleichung, die sich im Verlauf des Algorithmus ergibt erhalten
wir
n0 = n,
nt+1 = nt − |ΓGt (nt )| − 1
1
≥ nt − (1 − )nt − 1
k
nt
≥
− 1.
k
Nebenrechnung
nt−1
−1
k
1 nt−2
−1
≥ ·
k
k
nt−2
1
= 2 − −1
k
k
≥ ...
t−1 n X 1 i
≥ t−
k
k
nt ≥
i=0
t
1 − ( k1 )
n
= t−
k
1 − k1
n
k
= t−
·
k
k−1
t !
1
1−
.
k
Auflösen der Rekurrenz ergibt:
n
k
1
nt ≥ t −
· 1− t
k
k−1
k
n
≥ t −2
k
Für jede Runde ti für die nt ≥ 1 garantiert werden kann, wird ein Knoten zu U , d.h.
dem Independent Set hinzugenommen.
Frage: Nach wievielen Runden t ist 1 > nt ?
Wir schätzen ab:
n
1≥ t −2
k
n
⇐⇒ k t ≥
3 n
⇐⇒ t ≥ logn
3
27
3 Approximation mit relativer Gütegarantie
D.h.: Nach log( n3 ) Runden bricht die Schleife in GreedyIS ab und es gilt sonst für U
l
n m
|U | ≥ logk
3
3.2.6 Ein verbesserter Greedy-Knotenfärbungsalgorithmus
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure GreedyCol2(G = (V, E))
t := 1
V (1) := V
while V (t) 6= ∅ do
G(t) := der durch V (t) induzierte Graph
U (t) := GreedyIS(G(t) )
Färbe alle Knoten in U (t) mit der Farbe t
V (t+1) := V (t) − U (t)
t := t + 1
end while
Gib Färbung aus
end procedure
Algorithm 13: GreedyCol2
Satz 3.23: Sei G = (V, E) ein knoten-k-färbbarer Graph und sei |V | = n. GreedyCol2 gibt eine Färbung mit höchstens log 3n n Farben aus und hat eine relative Güte
k ( 16 )
n
von O log(n) .
Beweis: Wir bezeichnen mit nt = |V (t) |. Wir wissen aus dem Satz 3.22 zum GreedyISAlgorithmus, dass |U (t) | ≥ logk ( n3t ). Bestimmen wir wieder die Rekurrenzgleichung, so
erhalten wir
n1 = n
nt+1 = nt − |U (t) | ≤ nt − logk
n t
3
Der Algorithmus bricht ab, wenn nt < 1. Die Anzahl der vergebenen Farben ist dann
genau t.
Frage also: Für welche t bricht der Algorithmus ab?
28
3.2 Einige weitere Approximationsalgorithmen
Nehmen wir zunächst an, dass nt ≥
|U (t) | ≥ logk
n
n
)
logk ( 16
ist. Dann erhalten wir
n t
3
n
n
logk ( 16
)
≥ logk
!
3
n
= logk
n
3 · logk ( 16
)
n
≥ logk
3 · logk n
n
logk n
3
4 ·
n
logk ( 16
)
Aus der Algebra ist bekannt
1
2
≥
√
n
n
Also: |U (t) | ≥ logk (( 16
) ) = 21 ·
n
D.h.: Solange noch log ( n ) Knoten ungefärbt sind, werden je Runde mindestens
k 16
n
) Knoten gefärbt. Bleibt die Frage, wann ist nt < log n( n ) ?
logk ( 16
1
2
·
k 16
$
t=
1
2
n
n
· logk ( 16
)
%
=b
2n
n c
logk ( 16
)
D.h.: Für die Anzahl der Farben bedeutet dies:
#Farben ≤ d
2n
n
3n
n e+d
n e=d
n e
)
logk ( 16 )
logk ( 16 )
(logk 16
Für die relative Güte von GreedyCol2 gilt dann:
GreedyCol2(G)
≤
opt(G)
(Nebenrechnung: logk n =
3n
n
)
logk ( 16
k
=
3n
n
)
k · logk ( 16
log n
log k )
3n
=
k·
n
log( 16
)
log k
=
3n
log k
n
∈ O(
).
n ·
log( 16 )
k
log n
3.2.7 Ergänzungen zu Knotenfärbungsalgorithmen
Satz 3.24: Sei G ein Graph mit χ(G) ≤ 3. Es existiert ein polynomieller Algorithmus,
√
der G mit O( n) Farben färbt.
Beweis:
(1) Falls χ(G) = 2 ist, so ist G bipartit und kann “sehr einfach“ gefärbt
werden.
(2) GreedyCol färbt einen Graphen mit maximalem Knotengrad ∆ in Polynomzeit
mit ∆(G) + 1 Farben.
√
Annahme: χ(G) = 3 und ∆(G) ≥ n
29
3 Approximation mit relativer Gütegarantie
√
Sei v ein Knoten in G mit degG (v) ≥ n. Der durch ΓG (v) induzierte Graph ist
bipartit und kann somit 2-gefärbt werden. =⇒ Der durch (ΓG (v) ∪ {v}) induzierte
Graph ist 3-färbbar.
Aus Satz 3.24 erhalten wir folgenden Algorithmus:
1:
2:
3:
4:
5:
6:
7:
8:
procedure Spezialfärbung(G = (V, E))
√
while ∆(G) ≥ n do
√
Finde v ∈ V (G) mit degG (v) ≥ n
Färbe G((v) ∪ ΓG (v)) mit 3 Farben
G := G\{{v} ∪ ΓG (v)}
end while
Färbe G mit GreedyCol-Algorithmus mit ∆(G) + 1 Farben
end procedure
Algorithm 14: Spezialfärbung
Anzahl vergebener Farben: In Zeile 2 haben wir insgesamt
√
|(v) ∪ ΓG (v)| ≥ n + 1
√
n
⇒ √
≤ n
n+1
√
Schleifendurchläufe. In den Zeilen 2 bis 6 vergeben wir insgesamt 3 · n Farben. In Zeile
√
7 vergeben
wir nochmals ∆(G) < n Farben. Insgesamt verwenden wir also höchstens
√
4 · N Farben.
3.3 Ein Nicht-Approximierbarkeitsergebnis für relative Gütegarantie
Als Beispielproblem schauen wir uns nochmals das tsp an. Wir wissen:
(1) ∆tsp kann mit relativer Güte von ( 32 − n1 ) approximiert werden.
(2) tsp ist nicht mit konstanter absoluter Güte approximierbar.
Frage: Ist tsp mit konstanter relativer Güte approximierbar?
Satz 3.25: Wenn es einen polynomiellen Approximationsalgorithmus A mit konstanter
relativer Güte r für das tsp gibt, dann ist P = N P.
Beweis: tsp(r) sei das Entscheidungsproblem, ob das tsp mit relativer Güte r gelöst
werden kann.
Wir zeigen: Hamilton ≤p tsp(r) ∀r ≥ 1 Konstruktion: Sei G = (V, E) eine Eingabe
für das Hamilton-Kreis-Problem. Wir konstruieren zu G eine Instanz IG für tsp indem
wir
IG = hK|V | , vi mit
(
1
falls (u, v) ∈ E
c(u, v) =
d(r − 1) · |V |e + 2 falls (u, v) 6∈ E
setzen. Es gilt:
30
(1) G hat einen Hamilton-Kreis, so hat die kürzeste Rundreise für IG eine Länge |V |.
(2) G hat keinen Hamilton-Kreis, so hat die kürzeste Rundreise für IG mindestens die
Länge
d(r − 1) · |V |e + 2 + |V | − 1 ≥ |V | · r + 1 > r · |V | ≥ br · |V |c
Daraus folgt, dass in IG niemals eine zulässige Lösung existieren kann mit Kosten
∈ {|V | + 1, . . . , br · |V |c}. Betrachte den Entscheidungsalgorithmus für das HamiltonKreis Problem.
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure HCEnt (I)
Berechne IG
Approxmiere mit Algorithmus A eine kürzeste Rundreise in IG
if A(IG ) > br · |V |c then
Gib aus “G hat keinen Hamilton-Kreis“
else
Gib aus “G hat einen Hamilton-Kreis“
end if
end procedure
Algorithm 15: HCEnt
Satz 3.26: Sei L ⊆ Σ∗ ein N P-vollständiges Entscheidungsproblem und sei Π ein
Minimierungsproblem. Gibt es zwei in Polynomzeit berechenbare Funktionen f : Σ∗ −→
D und c : Σ∗ −→ N und eine Konstante γ > 0, so dass für alle Eingaben x ∈ Σ∗ gilt
(
≤ c(x)
x∈L
opt(f (x)) =
≥ c(x) · (1 + γ) x 6∈ L
dann gibt es keinen polynomiellen Approximationsalgorithmus der relativen Güte r mit
r < 1 + γ, es sei denn P = N P.
(a) A ist ein polynomielles Approximationsschema für Π (PTAS), wenn A zu jeder
Probleminstanz I und für jedes ∈ (0, 1) in der Zeit O(poly(|I|)) eine zulässige
Lösung zu I mit relativem Fehler A (I, ) ≤ berechnet.
(b) A ist ein streng polynomielles Approximationsschema für Π (FPTAS), wenn A ein
PTAS mit der Laufzeit O(poly(|I|, 1 )) ist.
31
23.06.2005
Definition 4.1: Sei Π ein Optimierungsproblem. Sei A ein Approximationsalgorithmus
für Π, der als Eingabe eine Probleminstanz I von Π und zusätzlich ein mit 0 < < 1
bekommt.
−−−−−−−→
4 Approximationsschemata
4 Approximationsschemata
Satz 4.2: Sei Π ein Optimierungsproblem, A ein (F)PTAS und zu Eingabe I sei z(I) ei1
ne obere Schranke für opt(I), d.h. opt(I) ≤ z(I). Sei ∗ := z(I)+1
. Dann ist A(I, ∗ ) =
opt(I). Ist A ein FPTAS, so ist die Laufzeit O(poly(|I|, z(I))).
Beweis: Wir starten A mit Eingabe I und ∗ . Nach Definition 4.1 wird eine zulässige
Lösung zu I gefunden und für den relativen Fehler gilt
A (I, ∗ ) =
|opt(I) − A(I, ∗ )|
≤ ∗ .
opt(I)
D.h.:
|opt(I) − A(I, ∗ )| ≤ ∗ · opt(I) =
1
· opt(I) < 1.
z(I) + 1
Da der Wert aller zulässigen Lösungen ganzzahlig ist, folgt damit, dass
|opt(I) − A(I, ∗ )| = 0
und damit A(I, ∗ ) = opt(I).
4.1 Ein pseudopolynomieller exakter Algorithmus für das 0 − 1
Rucksackproblem
I = hW, vol, p, Bi ist eine Instanz des Rucksackproblems (siehe Defintion 2.12). Wir
definieren Pmax := max{pj |j ∈ {1, . . . , n}}, wobei |W | = n ist. Damit gilt trivialerweise:
Pmax ≤ opt(I) ≤ n · Pmax .
Wir definieren ein Prädikat Fj (α) als das kleinste benötigte Rucksackvolumen, mit dem
man einen Wert von mindestens α erreichen kann, wenn man nur die ersten j Waren einpacken darf. Mit Fj (α) = ∞ bezeichnen wir dabei die Unmöglichkeit, den gewünschten
Wert α in den Rucksack zu packen.
Fj (α) = min{vol(R)|R ⊆ {1, . . . , j}, p(R) ≥ α}
Für Fj (α) gilt die folgende Rekursion:
(1)
(2)
(3)
α ≤ 0, j ∈ {0, . . . , n}
α ≥ 1, j = 0
α ≥ 1, j ∈ {1, . . . , n}
:
:
:
Fj (α) = 0
Fj (α) = ∞
Fj (α) = min{Fj−1 (α), Fj−1 (α − pj ) + vol(j)}
Gesucht ist das größte α, so daß Fn (α) noch in den Rucksack der Kapzaität B paßt,
d.h.
max{α|Fn (α) ≤ B} = opt(I)
Während der Ausführung des Algorithmus wird eine Matrix aufgebaut, welche folgende
Struktur aufweist
Letztendlich erhalten wir mittels dynamischer Programmierung folgenden Algorithmus:
Aus unseren vorherigen Überlegungen und gemeinsam mit dem Algorithmus erhalten
wir nun folgenden Satz:
32
4.1 Ein pseudopolynomieller exakter Algorithmus für das 0 − 1 Rucksackproblem
Waren
erzielterWert
0
0
...
j
...
n
0
...
0
...
0
(α − pj )
..
.
opt(I)
Fn (α)
opt(I)
+1
Abbildung 10: Matrix, welche bei der Ausführung von DynRucksack aufgebaut wird
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure DynRucksack(I = hW, vol, p, Bi)
α := 0
repeat
α := α + 1
for j:=1,n do
Fj (α) := min{Fj−1 (α), Fj−1 (α − pj ) + vol(pj )}
end for
until B < Fn (α)
Gib α − 1 aus
end procedure
Algorithm 16: DynRucksack
Satz 4.3: DynRucksack berechnet zu Eingabe I den Wert opt(I) in Zeit
O(n · opt(I)) ∈ O(n2 · Pmax ).
Bemerkung 4.4: Man beachte dabei, dass Pmax ∈ O(2|I| ) und damit opt(I) ∈ Θ(2|I| )
und damit die worst-case Laufzeit von DynRucksack bei O(n · 2|I| ) liegt, damit also
nicht mehr polynomiell ist.
Definition 4.5: Sei Π ein Optimierungsproblem, so daß für alle Instanzen I gilt, daß
alle in I vorkommenden Zahlen natürliche Zahlen sind. Sei maxnr(I) die größte in I
vorkommende Zahl. Ein Algorithmus für Π heißt pseudopolynomiell , falls es ein Polynom
gibt, so daß für alle Instanzen I seine Laufzeit polynomiell ist, genauer poly(|I|, maxnr(I)).
33
4 Approximationsschemata
4.2 Ein streng polynomielles Approximationsschema für das 0 − 1
Rucksackproblem
Idee 4.6: Wenn in unserem oben angegebenen pseudopolynomiellen Verfahren der größte Preis die Laufzeit von DynRucksack bestimmt, sollte man
alle Preise um
p “einfach“
einen festen Faktor k1 verkleinern, d.h. alle Preise pj durch kj ersetzen, dieses neue
Problem Ired lösen und diese Lösung auch als Lösung des ursprünglichen Problems annehmen.
procedure ark (I = hW, vol, p, Bi)
p
Ersetze pj durch kj
3:
Berechne mittels DynRucksack eine optimale Rucksackfüllung Rk auf der Eingabe Ired
4:
Gib Rk aus
5: end procedure
1:
2:
Algorithm 17: ark
Satz 4.7: Der Algorithmus ark macht bei Eingabe I einen relativen Fehler
ark (I) ≤
und hat eine Laufzeit von O n2 ·
Pmax
k
k·n
Pmax
.
Beweis: Sei R∗ die Indexmenge einer optimalen Rucksackfüllung zu I und Rk die benuzte Indexmenge in der Lösung des um k reduzierten Problems Ired . Rk ist für Ired
eine optimale Lösung, d.h.
X j pj k
opt(Ired ) ≥
.
k
∗
j∈R
Zudem ist Rk eine zulässige Lösung für I.
ark (I) = p(Rk )
X
=
pj
j∈Rk
≥
X
j∈Rk
k·
jp k
j
k
= k · opt(Ired )
X j pj k
≥k·
k
j∈R∗
X pj
≥k·
−1
k
j∈R∗
X
≥
(pj − k)
j∈R∗
34
4.3 „Negativergebnisse“ für Approximationsschemata
= p(R∗ ) − k · |R∗ |
= opt(I) − k · |R∗ |
≥ opt(I) − k · n
Daraus erhalten wir
|ark (I) − opt(I)| ≤ k · n
und schließlich
ark (I) =
|ark − opt(I)|
k·n
≤
opt(I)
Pmax
Aus unserer Idee 4.6 erhalten wir folgenden Algorithmus.
procedure fptas Rucksack(I, )
Bestimme aus I die Parameter n und Pmax
3:
k := · Pmax
n
4:
Starte ark mit I und gib dessen Lösung aus
5: end procedure
1:
2:
Algorithm 18: fptas Rucksack
Zusammen mit Satz 4.7 über den relativen Fehler erhalten wir das folgenden Theorem.
Satz 4.8: fptas Rucksack(I, ) ist ein FPTAS für das Rucksackproblem mit der
Laufzeit O n3 · 1 .
Beweis: Übungsaufgabe. (Tip: setze z(I) := k im Beweis zu Satz 4.2)
30.06.2005
Satz 4.9: Sei Π ein Optimierungsproblem und sei für ein festes k ∈ N, falls Π ein
Minimierungsproblem ist, die Frage “Ist zur Eingabe I von Π der Wert opt(I) ≤ k?“
bzw. falls Π ein Maximierungsproblem ist, die Frage “Ist zur Eingabe I von Π der Wert
opt(I) ≥ k?“ N P-vollständig. Gibt es ein FPTAS(PTAS) für I, dann ist P = N P.
−−−−−−−→
4.3 „Negativergebnisse“ für Approximationsschemata
Definition 4.10: Ein N P-vollständiges Entscheidungsproblem L heißt stark N P-vollständig,
wenn es ein Polynom q gibt, so daß
Lq = {x|x ∈ L und maxnr(x) ≤ q(|x|)}
N P-vollständig ist. Gibt es kein solches Polynom, so heißt L schwach N P-vollständig.
Bemerkung 4.11: Äquivalent zu dieser Definition ist die folgenden Aussage: Das N Pvollständige Entscheidungsproblem L ist stark N P-vollständig, falls es keinen pseudopolynomiellen Algorithmus für L gibt, es sein denn P = N P.
Beispiel 4.12:
(1) Hamilton-Entscheidungsproblem ist stark N P-vollständig
(2) tsp-Entscheidungsproblem ist stark N P-vollständig
35
5 Klassen und Hierarchien
(3) ∆tsp-Entscheidungsproblem ist stark N P-vollständig
(4) Rucksack-Entscheidungsproblem ist schwach N P-vollständig
♦
Satz 4.13: Sei Π ein Optimierungsproblem. Wenn es ein Polynom q(x1 , x2 ) gibt, so
daß für alle Probleminstanzen I gilt, daß opt(I) ≤ q(|I|, maxnr(I)) ist, dann folgt aus
der Existenz eines FPTAS für Π, daß es einen pseudopolynomiellen exakten Algorithmus
gibt.
Korollar 4.14: Wenn es für eine Optimierungsvariante eines stark N P-vollständigen
Problems ein FPTAS gibt, dann ist P = N P.
Bemerkung 4.15:
(1) Falls P 6= N P ist, gibt es kein streng polynomielles Approximationsschema für Clique, Hamilton, Graphenfärbeprobleme, etc.
(2) Da das volle tsp kein Approximationsalgorithmus mit konstanter relativer Güte
“erlaubt“, gibt es natürlich dafür kein FPTAS oder PTAS.
(3) Für ∆tsp ist ebenfalls ein FPTAS ausgeschlossen.
(4) Für
das euklidische
tsp gibt es ein Approximationsschema mit einer Laufzeit von
O( 1 )
3
O n (log n)
[gezeigt in ?, verbessert in ?]
5 Klassen und Hierarchien
Definition 5.1: Ein Optimierungsproblem Π liegt in der Sprachklasse N PO, wenn
gilt:
(a) (1) Instanzen I können in Polynomzeit in |I| als solche erkannt werden.
(2) Es gibt ein Polynom p, so daß bei Instanz I gilt:
(i) Für jede zulässige Lösung σ ∈ S(I) ist |σ| ∈ p(|I|)
(ii) Für jede Zeichenfolge y mit |y| ≤ p(|I|) kann in Polynomzeit in |I| entschieden werden, ob y ∈ S(I) ist.
(3) Bei Instanz I kann es zu jeder zulässigen Lösung σ ∈ S(I) der Wert f (σ) in
Polynomzeit in |I| berechnet werden.
oder
0
0
(b) Es gibt ein Optimierungsproblem Π ∈ N PO mit Π ≤p Π .
Definition 5.2: Sei Π = (D, S, f, Ziel) ein Optimierungsproblem. Dann ist das zugehörige Entscheidungsproblem die Menge
(
{hI, ki |I ∈ D, k ∈ N, ∃σ ∈ S(I) : f (σ) ≤ k} für Ziel = min
Πent =
{hI, ki |I ∈ D, k ∈ N, ∃σ ∈ S(I) : f (σ) ≥ k} für Ziel = max
Satz 5.3: Ist Π ∈ N PO, dann ist Πent ∈ N P.
36
Definition 5.4: Das Optimierungsproblem Π liegt in der Sprachklasse PO, wenn Π ∈
N PO ist und zu jeder Instanz I in Polynomzeit in |I| eine optimale Lösung berechnet
werden kann.
Bemerkung 5.5:
(i) PO ⊆ N PO
(ii) PO ( N PO ist offen (wird bis nächste Woche gelöst!)
(iii) Aus PO = N PO =⇒ P = N P
Definition 5.6: Sei F eine Menge von Funktionen. Ein Optimierungsproblem Π ∈
N PO liegt in der Sprachklasse F − APX , wenn es einen polynomiellen Approximationsalgorithmus A gibt mit relativer Güte ρA (n) ∈ F gibt. Wenn F die Menge der
konstanten Funktionen ist, nennen wir die entsprechende Klasse einfach APX .
Bemerkung 5.7:
(i) ∆tsp ∈ APX
(ii) tsp 6∈ APX
Definition 5.8: Ein Optimierungsproblem Π ∈ N PO liegt in der Sprachklasse PAS
bzw. FPAS, wenn es für Π ein PTAS bzw. ein FPTAS gibt.
Bemerkung 5.9:
(i) ∆tsp 6∈ FPAS
(ii) Rucksack ∈ FPAS
Satz 5.10: PO ⊆ FPAS ⊆ PAS ⊆ APX ⊆ N PO
Definition 5.11: ABS ist die Klasse der Optimierungsprobleme, die mit konstanter
absoluter Güte approximiert werden können.
Bemerkung 5.12:
(i) ABS ⊆ APX
(ii) Kantenfärbungsproblem ∈ ABS, aber Kantenfärbungsproblem 6∈ PAS
(ii) Rucksack ∈ FPAS und damit auch ∈ PAS, aber Rucksack 6∈ ABS.
Insgesamt erhalten wir damit folgende Hierarchie auf den vorangegangenen Klassen,
die wir in Abbildung 11 einmal graphisch dargestellt haben.
37
7.07.2005
Definition 6.1: Sei V = {x1 , . . . , xn } eine Menge von Variablen. Ein Literal l ist eine
Variable xi ∈ V oder ihre Negation x̄i . Eine Klausel C = li ∨ · · · ∨ lk ist eine OderVerknüpfung von Literalen. Eine Boolesche (n, m)-Formel φ = C1 ∧ · · · ∧ Cm in knf ist
eine Und-Verbindung von Oder-Klauseln mit Variablen aus V .
−−−−−−→
6 Techniken für randomisierte Approximationsalgorithmen
6 Techniken für randomisierte Approximationsalgorithmen
N PO
APX
PAS
ABS
FPAS
PO
Abbildung 11: Hierarchiegraph für die Klassen N PO, PO, APX , PAS, FPAS, ABS
Definition 6.2: Eine Probleminstanz φ von MaxSat ist eine Boolesche (n, m)-Formel
in knf. Eine zulässige Lösung zu φ ist eine Belegung b : V −→ {true,false} der Variablen
mit booleschen Wahrheitswerten. Die Bewertungsfunktion ist
wahr(b, φ) = |{j|Cj ∈ φ, b(Cj ) = true}|.
Finde b∗ mit wahr(b∗ , φ) ist maximal, d.h. opt(φ) = wahr(b∗ , φ).
Bemerkung 6.3: opt(φ) ≥
m
2
Beweis: Definiere zwei Belegungen b1 (V ) = {false, . . . , false} und b2 (V ) = {true, . . . , true}.
m
Liefert wahr(b1 , φ) < m
2 , so gilt auf Grund der Symmetrie wahr(b2 , φ) ≥ 2 .
Ziel mit Hilfe eines randomisierten Approximationsalgorithmus erhalten wir
opt(φ) ≥ (1 −
1
) · m,
2k
wenn jede Klausel die Länge k hat.
1:
2:
3:
4:
5:
6:
7:
procedure a(φ)
for i = 1 . . . n do
mit Wahrscheinlichkeit
mit Wahrscheinlichkeit
end for
Gib ba = (x1 , . . . , xn ) aus
end procedure
1
2
1
2
setze xi = true
setze xi = false
Algorithm 19: a
Lemma 6.4: Sei kj die Anzahl der Literale in Cj . Es gilt
1
Pr Cj wird durch den Algorithmus a erfüllt = 1 − k
2 j
38
Beweis: “Betrachte die Gegenwahrscheinlichkeit“
Die Wahrscheinlichkeit, daß ein einzelnes Literal auf “false“ gesetzt wird ist 12 . Die Wahrk
scheinlichkeit, daß alle kj Literale in Cj auf “false“ gesetzt werden, ist 21 j . Damit ist
die Wahrscheinlichkeit, daß mindestens eines der Literale in Cj auf “true“ gesetzt wird
k j
1
1
1−
=1− k .
2
2 j
“Alternativ: Benutze eine Zählargument“
Es gibt 2kj verschiedene Belegungen für die kj Literale von Cj . Alle bis auf eine enthalten
dabei mindestens ein Literal mit dem Wahrheitswert “true“. Also ist
2k j − 1
1
Pr Cj wird durch den Algorithmus a erfüllt =
=1− k .
k
j
2
2 j
Satz 6.5: Für jede Boolesche (n, m)-Formel φ in knf, in der jede Klausel mindestens
k Literale enthält, gilt
1
E a(φ) ≥ 1 − k · m.
2
Beweis: Für j ∈ {1, . . . , m} sei Zj die Zufallsvariable mit
(
1 falls ba (Cj ) = true
Zj =
0 sonst
Es gilt
E Zj = 0 · Pr ba (Cj ) = false + 1 · Pr ba (Cj ) = true
= Pr Cj wird durch Algorithmus a erfüllt
Weiter gilt
E a(φ) = E wahr(ba , φ)
m
X
=E
Zj
=
j=1
m
X
E Zj
j=1
m X
1
=
1− k
2 j
j=1
m X
1
≥
1− k
2
j=1
1
=m· 1− k
2
39
6 Techniken für randomisierte Approximationsalgorithmen
Definition 6.6: Die “erwartete relative“ Güte erhalten wir, indem wir in unserer Definition der relativen Güte in 3.1 den Wert A(I),
also die Ausgabe des Algorithmus A bei
Eingabe I durch den Erwartungswert E A(I) ersetzen. D.h.
(
)
opt(I) E A(I)
,
E ρA (I) = max
.
E A(I) opt(I)
Satz 6.7: Der Algorithmus a hat für jede (n, m)-Formel φ in knf, in der jede Klausel
mindestens k Literale hat, eine erwartete relative Güte von
E ρa (φ) ≤
2k
.
2k − 1
Beweis: Unter Verwendung von Lemma 6.5 erhalten wir
opt(φ)
E ρa (φ) = E a(φ)
m
≤ E a(φ)
m
=
1 − 21k · m
1
=
1 − 21k
=
2k
.
2k − 1
6.1 “Randomized Rounding“
Grundidee Beschreibe das Problem durch ein ganzzahliges lineares Optimierungsproblem. Löse dieses Problem dann aber über den rationalen Zahlen. “Runde“ das erhaltene
Ergebnis in einer randomisierten Weise um eine zulässige Lösung für unser Ausgangsproblem zu erhalten.
Modellierung oder Arithmetisierung des MaxSat Problems Sei φ = C1 ∧ · · · ∧ Cm
eine Boolesche (n, m)-Formel in knf. Sei Sj⊕ die Menge der Variablen, die in Cj nicht
negiert vorkommen. Sei Sj die Menge der Variablen, die in Cj negiert vorkommen. Für
die Boolesche Variable xi führen wir eine 0 − 1 Variable xbi ein und für jede Klausel Ci
haben wir eine 0 − 1 Variable zbj , wobei 0 dem Wahrheitswert “false“Pund die 1 dem
Wahrheitswert “true“ entspricht. Die Anzahl der erfüllten Klauseln ist m
i=1 zbj .
(1) Ganzzahliges lineares Programm b für MaxSat
maximiere
m
X
j=1
40
zbj
6.1 “Randomized Rounding“
gemäß
X
xi ∈Sj⊕
xbi +
X
(1 − xbi ) ≥ zbj ∀j ∈ {1, . . . , m}
xi ∈Sj
unter den Nebenbedingungen
xbi ∈ 0, 1 ∀i ∈ {1, . . . , n}
zbi ∈ 0, 1 ∀i ∈ {1, . . . , m}
(2) Wir ersetzen die Ganzzahligkeitsforderung an xbi und zbj durch die Forderung
0 ≤ xbi , zbj ≤ 1 ∀i ∈ {1, . . . , n}, ∀j ∈ {1, . . . , m}
Wir bezeichnen das erhaltene lp durch brel
Beachte:
m
X
zbj = opt(brel ) ≥ opt(b) = opt(φ)
(6.8)
j=1
(3) Sei Π : [0, 1] −→ [0, 1]
1:
2:
3:
4:
5:
6:
procedure RandomizedRounding(Π)
for i = 1 . . . n do
mit Wahrscheinlichkeit Π(xbi ) setze xi = true
mit Wahrscheinlichkeit 1 − Π(xbi ) setze xi = false
end for
end procedure
Algorithm 20: RandomizedRounding
Wir erhalten mittels des Algorithmus RandomizedRounding folgenden erweiterten Algorithmus b:
procedure b(φ)
2:
Löse das relaxierte lineare Optimierungsproblem brel zu φ
3:
Ermittle eine Belegung bb mittels RandomizedRounding für eine Funktion Π
(z.B.: Π(x) = x)
4: end procedure
1:
Algorithm 21: b
14.07.2005
41
−−−−−−−→
Zur Wiederholung Das generelle Vorgehen bisher können wir wie folgt zusammenfassen
6 Techniken für randomisierte Approximationsalgorithmen
(1) [ILP B]
maximiere
m
X
zbj
i=1
gemäß
X
xi ∈Sj⊕
xbi +
X
(1 − xbi ) ≥ zbj ∀j ∈ {1, . . . , m}
xi ∈Sj
unter den Nebenbedingungen
xbi ∈ 0, 1 ∀i ∈ {1, . . . , n}
zbi ∈ 0, 1 ∀i ∈ {1, . . . , m}
(2) [LP Brel ]
xbi ∈ [0, 1] ∀i ∈ {1, . . . , n}
zbi ∈ [0, 1] ∀i ∈ {1, . . . , m}
(3)
1:
2:
3:
4:
5:
6:
procedure RandomizedRounding(Π)
for i = 1 . . . n do
mit Wahrscheinlichkeit Π(xbi ) setze xi = true
mit Wahrscheinlichkeit 1 − Π(xbi ) setze xi = false
end for
end procedure
Algorithm 22: RandomizedRounding
Lemma 6.9: Sei kj die Anzahl der Literale in Cj . Es gilt
Pr Cj wird durch den Algorithmus b erfüllt ≥
1
1− 1−
kj
k j !
· zbj .
Beweis:
Sei Π, also die Aufrundewahrscheinlichkeit,
gegeben durch Π(x) = x. Pr xi =
True = Π(xbi ) und Pr xi = False = 1 − Π(xbi ). Cj bleibt unerfüllt, wenn alle xi ∈ Sj⊕
auf False gesetzt werden und alle xi ∈ Sj auf True.
Y
Y
Pr Cj wird durch den Algorithmus b nicht erfüllt =
(1 − xbi ) ·
xbi
xi ∈Sj⊕
42
xi ∈Sj
6.1 “Randomized Rounding“
Damit haben wir, daß gilt
Pr Cj wird durch den Algorithmus b erfüllt
Y
=1−
Y
(1 − xbi ) ·
 P
 xi ∈Sj⊕
= 1−

(1 − xbi ) +
(∗)
Aus der Analysis ist für (∗) bekannt: Für ai ≥ 0 gilt
k
Q
ai ≤
i=1
xbi
xi ∈Sj
xi ∈Sj⊕
P
xi ∈Sj
kj
1
k
·
k
P
xbi
k j



k
ai
i=1
Fortsetzung von oben:
 P
 xi ∈Sj⊕
=1−

 P
xi ∈Sj⊕
xbi +
P
xi ∈Sj
kj
P
1−
 xi ∈Sj⊕
=1−


P
1−
xi ∈Sj⊕
P
k j



P
1−
xi ∈Sj
xi ∈Sj
(1 − xbi )
P
xi ∈Sj⊕
xbi + |Sj | −
P
xi ∈Sj
(1 − xbi )
kj



kj
 kj


kj



kj
|Sj⊕ | −

=1−

xbi +
xbi
P
P
 |Sj | − 
xbi +
(1 − xbi ) 


⊕


xi ∈Sj
xi ∈Sj

=1−


kj




zbj kj
≥1− 1−
kj
!
(∗∗)
1 kj
≥ 1− 1−
· zbj
kj
zu (∗∗):
zbj
1− 1−
kj
kj
≥
1
1− 1−
kj
kj !
· zbj
43
6 Techniken für randomisierte Approximationsalgorithmen
für zbj = 1 X
für zbj = 0 X
für zbj ∈ (0, 1) X
Folgender Satz aus der Analysis Wenn die Funktion f (x) auf einem Intervall [a, b]
konkav ist und es gilt f (a) ≥ m · a + n und f (b) ≥ m · b + n, dann gilt für alle x ∈ [a, b]
f (x) ≥ m · x + n
Zur Erinnerung: Eine Funktion f ist konkav (konvex), wenn für alle x, y ∈ I und alle
t ∈ [0, 1] gilt
f (t · x + (1 − t) · y) ≥ t · f (x) + (1 − t)f (y)
(f (t · x + (1 − t) · y) ≤ t · f (x) + (1 − t)f (y))
Satz 6.10: Fur jede Boolesche Formel φ in knf, in der jede Klausel höchstens k Literale hat, ist
!
1 k
E b(φ) ≥ 1 − 1 −
· opt(φ)
k
Beweis: Sei φ = C1 ∧ · · · ∧ Cm und k die Länge der längsten Klausel. Dann gilt
m
X
E b(φ) =
Pr Cj wird durch den Algorithmus b erfüllt
i=1
m
X
!
1 kj
1− 1−
· zbj (φ)
≥
kj
j=1
!
m
X
1 k
· zbj (φ)
≥
1− 1−
k
j=1
! X
m
1 k
= 1− 1−
·
zbj (φ)
k
j=1
!
6.8
1 k
· opt(φ)
≥ 1− 1−
k
Satz 6.11: Algorithmus b hat eine erwartete relative Güte von
1
E ρB (φ) ≤
≈ 1, 582
1 − 1e
Beweis:
1 k
1
1− 1−
≥ 1 − ∀k ∈ N
k
e
1
E b(φ) ≥ (1 − ) · opt(φ)
e
1
opt(φ)
=: E ρb (φ)
⇐⇒
1 =
E b(φ)
1− e
44
6.2 Hybrider Ansatz: Eine Kombination mehrerer Verfahren
6.2 Hybrider Ansatz: Eine Kombination mehrerer Verfahren
k
1 = 1 −
E ρa
1
2
3
4
5
..
.
1
2k
1 ≥ 1 − 1 −
E ρb
0, 5
0, 75
0, 875
0, 938
0, 969
..
.
1 k
k
1
0, 75
0, 704
0, 684
0, 672
..
.
procedure CpA
mit Wahrscheinlichkeit pA starte Algorithmus a
3:
mit Wahrscheinlichkeit 1 − pA starte Algorithmus b
4: end procedure
1:
2:
Algorithm 23: CpA
procedure Calle
starte “hintereinander“ alle Algorithmen
3:
gib das beste erhaltene Ergebnis aus
4: end procedure
1:
2:
Algorithm 24: Calle
Es gilt
E Calle (φ) ≥ E CPA (φ)
= pA · E a(φ) + (1 − pA ) · E b(φ)
für beliebiges pA ∈ [0, 1]
Satz 6.12: Algorithmus C 1 hat eine erwartete relative Güte von 34 .
2
Beweis:
1
1
E C 1 (φ) = · E a(φ) + · E b(φ)
2
2
2
m
X
X
1
E a(φ) =
1− k
2
k=1 Cj hat k Literale
m
X
X
1
≥
1 − k · zbj
2
k=1 Cj hat k Literale
m
X
E b(φ) =
X
k=1 Cj hat k Literale
1
1− 1−
k
k !
· zbj
45
6 Techniken für randomisierte Approximationsalgorithmen

m
X
E C 1 (φ) ≥
X
2
k=1 Cj hat k Literale
1
2




1 k
1

 · zbj
· 1 − k + 1 − 1 −

k
2
|
{z
}
≥ 23 für k∈N
≥
m
X
X
k=1 Cj hat k Literale
3
zbj
4
m
=
3X
zbj
4
j=1
3
≥ opt(φ)
4
Bemerkung 6.13:
(1) Allgemein gilt für den hybriden Ansatz bei einem Maximiek
P
rungsproblem: E Aalle (I) ≥
pi · E Ai (I) und beim Minimierungsproblem:
i=1
k
P
E Aalle (I) ≤
pi · E Ai (I)
i=1
(2) Der beste zur Zeit bekannte Approximationsalgorithmus für MaxSat hat eine relative Güte von 1, 2004 und stammt aus den Jahr 2002
6.3 Semidefinite Optimierung
(a) Eine n × n Matrix A über R heißt positiv semidefinit, wenn
Definition 6.14:
gilt
∀x ∈ Rn xT · A · x ≥ 0
(b) Ein semidefinites Programm ist ein lineares Programm, bei dem wir zusätzlich
fordern, daß die Lösung für die Variablen als symmetrische und positiv semidefinite
Matrix geschrieben werden kann.
Semidefinites Programm sdp
P
cij · xij
(1) optimiere
i,j
P
gemäß
aijk · xij ≤ bk ∀k
ij
(2) X = (xij ) ist symmetrisch und positiv semidefinit
Bemerkung 6.15:
(1) A ist genau dann symmetrisch und positiv semidefinit, wenn
es eine n × n Matrix B gibt mit B T · B = A.
(2) Ist eine Matrix A symmetrisch und positiv semidefinit, so kann die Matrix B, wie
in (a) definiert, in Polynomzeit mittels Cholesky-Zerlegung bestimmt werden.
(3) Sind alle Diagonaleinträge einer symmetrischen positiv semidefiniten Matrix A
gleich 1, so sind die Spalten der zugehörigen Matrix B Einheitsvektoren im Rn .
46
6.4 Das MaxCut-Problem
(4) Ein semidefinites Programm kann in Zeit O poly n, lg 1
mit absoluter Güte
für beliebiges > 0 gelöst werden. D.h. es wird eine symmetrische und positiv
()
semidefinite Matrix X () = (xij ) berechnet, deren Einträge die linearen Nebenbedingungen erfüllen und für die gilt
X
()
|opt(sdp) −
cij · xij | ≤ i,j
i) Beschreibe das Eingabeproblem als quadratisches Optimierungsproblem
ii) Relaxiere das quadratische Programm in ein semidefinites Programm
iii) Formuliere das relaxierte quadratische Programm zu einem semidefiniten Optimierungsproblem um
iv) Transformiere die so gewonnene Approximation für das semidefinite Programm in
eine Approximation des Ursprungsproblems zurück
Gegeben: ungerichteter, zusammenhängender Graph G = (V, E)
zulässige Lösung: S = [V , V⊕ ], so daß V ∪ V⊕ = V und V ∩ V⊕ = ∅
Zielfunktion: max C(S) = max |{{u, v} ∈ E|u ∈ V , v ∈ V⊕ }|
Bemerkung 6.16: Sei G = (V, E) ein zusammenhängender Graph. Durch G gibt es
immer einen Schnitt der Größe mindestens 12 |E|.
Beweis ( Greedy-Konstruktion): Definiere Gt = (V t , E t ) von G = (V, E) mit V =
{1, . . . , n} für t = 1, . . . , n durch V t = {1, . . . , t} und E t = {{i, j}|1 ≤ i < j ≤ t, (i, j) ∈
E}. Mit diesen Definitionen können wir nun folgenden Greedy-Algorithmus für MaxCut angeben.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure Greedy-MaxCut(G = (V, E))
Setze S 1 = {1}
for t := 2, . . . , n do
if C(S t−1 ∪ {t}) > C(S t−1 ) then
S t := S t−1 ∪ {t}
else
S t := S t−1
end if
end for
end procedure
Algorithm 25: Greedy-MaxCut
47
21.07.2005
Ziel dieses Abschnitts ist es, mittles der semidefiniten Programmierung die Approximationsgüte im Vergleich zu allen anderen klassischen Approximationsverfahren am Beispiel
des MaxCut-Problems zu verbessern. Die Idee dazu haben wir aus ? entnommen. Unser
strukturelles Vorgehen ist dabei wie folgt:
−−−−−−−→
6.4 Das MaxCut-Problem
6 Techniken für randomisierte Approximationsalgorithmen
Aus der Approximationsgüte des Algorithmus würde man das gewünschte Ergebnis
erhalten.
Ein alternativer probabilistischer Beweis kann hier nachgelesen werden.
6.4.1 MaxCut als quadratisches Optimierungsproblem
|V | = n, AG = (aij ) sei die n × n Adjazenzmatrix des Graphen G = (V, E). Im folgenden
wollen wir eine Arithmetisierung des Problems vornehmen.
Für jeden Knoten ui führe eine Variable xi , welche die Werte −1 oder 1 annehmen kann
ein. xi = 1 bedeutet ui ∈ V⊕ , analog dazu xi = −1 bedeutet, daß ui ∈ V . Zur Kante
{ui , uj } ∈ E betrachte den Wert 21 (1 − xi xj ).
C(S) =
X
(ui ,uj )∈E
n
1
· (1 − xi xj )
2
n
1X X
aij (1 − xi xj )
2
i=1 j=i+1
1X
=:
aij (1 − xi xj )
2
=
i<j
Quadratisches Programm für MaxCut maximiere
1
2
P
aij (1 − xi xj )
i<j
gemäß xi ∈ {−1, 1} ∀i ∈ {1, . . . , n}
6.4.2 Relaxierung des quadratischen Programms für MaxCut in ein semidefinites
Programm
→
Wir ersetzen die Variablen xi durch einen n-dimensionalen Vektor −
xi = (xi , 0, 0, . . . , 0)T
der Länge 1.
Die Relaxierung besteht darin, daß wir erlauben, daß in den Vektoren alle Komponenten
von Null verschieden sein können, solange die Länge des Vektors nach wie vor 1 bleibt.
→
→
→
Diese relaxierten Vektoren nennen wir −
ui . Es gilt h−
ui , −
ui i = 1.
Relaxiertes Quadratisches Programm für MaxCut maximiere
−
gemäß →
ui ist Vektor der Länge 1 ∀i ∈ {1, . . . , n}
1
2
P
→
→
aij (1 − h−
ui , −
uj i)
i<j
6.4.3 Umformulierung des relaxierten quadratischen Programms zu einem
semidefiniten Optimierungsproblem
→
→
Wir führen n2 neue Variablen yij ein mit yij = h−
ui , −
uj i. Diese Variablen lassen sich als
→
−
n × n Matrix Y = (yij ) schreiben. Da die ui die Länge 1 haben, gilt yii = 1.
→, −
→
−
→
T
Mit B = (−
u
1 u2 , . . . , un ) gilt Y = B · B, d.h. Y ist positiv symmetrisch semidefinit.
48
6.4 Das MaxCut-Problem
Semidefinites Programm SD-Cut für MaxCut maximiere
1
2
P
aij (1 − yij )
i<j
gemäß Y = (yij ) ist positiv symmetrisch semidefinit mit yii = 1 ∀i ∈ {1, . . . , n}
Dieses semidefinite Optimierungsproblem läßt sich in Polynomialzeit mit absolutem
()
Fehler lösen. D.h. es werden yij berechnet, mit
0 ≤ opt(Sd-Cut) −
1X
()
aij (1 − yij ) ≤ .
2
i<j
Da opt(G) ≤ opt(Sd-Cut):
1X
()
aij (1 − yij ) ≥ opt(G) − .
2
i<j
−
→1
u
−
→2
u
−
→1 = (−1, 0, 0)T
u
−
→2 = u
−
→3 = (1, 0, 0)T
u
−
→3
u
Ebene E
Abbildung 12: Zurückgewinnung der Vektoren (1, 0, 0) bzw. (−1, 0, 0) aus beliebigen
Vektoren der Länge 1 mittels einer zufällig bestimmten Ebene E.
Zur so gewonnenen symmetrisch und positiv semidefiniten Matrix Y () können wir
→
nun mittels Cholesky-Zerlegung die Matrix B und damit die Vektoren −
ui bestimmen.
→
−
Jetzt müssen wir die ui in die xi zurückverwandeln. Dies geschieht randomisiert, indem
49
6 Techniken für randomisierte Approximationsalgorithmen
wir eine zufällige Trennebene durch den Koordinatenursprung legen wie in Abbildung 12
veranschaulicht. Diese Ebene ist vollständig bestimmt, wenn wir einen Normalenvektor
→
−
r für diese Trennebene “auswürfeln“. Es gilt aus der analytischen Geometrie der Satz:
→
→
→
→
→
→
“Ist sign(h−
r ,−
ui i) 6= sign(h−
r ,−
uj i), dann liegen −
ui und −
uj auf verschiedenen Seiten der
Ebene.“
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure MaxCut(G = (V, E))
:= 0, 0005
Löse das semidefinite Programm für MaxCut mit absoluter Güte und erhalte
Y ()
→
Führe Cholesky-Zerlegung Y () = B T · B und damit die Berechnung der −
ui durch
→
−
Würfle gleichverteilt einen zufälligen n-dimensionalen Vektor r aus
for i = 1, . . . , n do
→
→
if h−
ui , −
r i ≥ 0 then
xi := 1
else
xi := −1
end if
end for
end procedure
Algorithm 26: MaxCut
Satz 6.17: Sie G = (V, E) ein Graph. Es gilt E MaxCut(G) ≥ 0, 878 · opt(G), d.h.
1
der Algorithmus MaxCut hat eine erwartete relative Güte von höchstens 0,878
≈ 1, 139.
Beweis: Führe die Indikatorvariable
(
1 falls (ui , uj ) ∈ E über den Schnitt geht
Xij =
0 sonst
Der Erwartungswert ist E Xij = aij · Pr xi 6= xj .
Somit haben wir:
X
E MaxCut(G) = E
Xij
{ui ,uj }∈E
X
=
E Xij
{ui ,uj }∈E
=
X
=
X
aij · Pr xi 6= xj
i<j
i<j
→
→
→
→
aij · Pr sign(h−
ui , −
r i) 6= sign(h−
uj , −
r i)
|
{z
}
=
6.18
=
X
i<j
50
→,−
→
arccos(h−
u
i uj i)
π
→
→
arccos(h−
ui , −
uj i)
aij ·
π
6.4 Das MaxCut-Problem
→
→
0, 8785 · (1 − h−
ui , −
uj i)
2
i<j
1 X
→
→
= 0, 8785 · ·
aij · (1 − h−
ui , −
uj i)
2
i<j
1 X
()
aij · (1 − yij )
= 0, 8785 · ·
2
6.19
≥
X
aij ·
i<j
≥ 0, 8785 · (opt(G) − )
≥ 0, 878 · opt(G)
hierbei benuzten wir, daß
∀ z ∈ [−1, +1] :
arccos(z)
(1 − z) · 0, 8785
≥
,
π
z
(6.18)
sowie
→
→
α
arccos(h−
ui , −
uj i)
→
→
→
→
Pr sign(h−
ui , −
r i) 6= sign(h−
uj , −
r i) = =
π
π
(6.19)
mit
→
→
h−
ui , −
uj i
→
→
= h−
ui , −
uj i
cos(α) = →
−
→
−
| ui | · | uj |
→
→
⇒ α = arccos(h−
u ,−
u i)
i
j
−
→
uj
α
−
→
ui
Abbildung 13: Grafische Veranschaulichung des Sachverhalts aus Gleichung 6.19
51
Algorithmenverzeichnis
Abbildungsverzeichnis
1
2
3
4
5
6
7
8
9
10
11
12
13
Beispiel für einen Graph, der zur Knotenfärbung ∆(G) + 1 = 5 Farben
benötigt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Beispiel für einen Graph, der zur Kantenfärbung ∆(G) + 1 = 3 Farben
benötigt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ein 2-Zeuge gegen GreedyCol. . . . . . . . . . . . . . . . . . . . . . .
Beispiele nicht planerer Graphen. Treten diese als Untergraph auf, so ist
der gesamte Graph nicht mehr planar. . . . . . . . . . . . . . . . . . . .
Grafische Verdeutlichung des Beweises . . . . . . . . . . . . . . . . . . .
ApproxTSP angewandet auf einen Graph mit den Knoten (a, . . . , g) . .
ch angewandet auf einen Graph mit den Knoten (1, . . . , 8) . . . . . . . .
Greedy-Set-Cover angewandet auf einen Graph mit Punktmengen S1 –
S6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zeugen-Graph gegen GreedyIS; Greedy-Lösung in rot, optimale in blau
eingekreist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Matrix, welche bei der Ausführung von DynRucksack aufgebaut wird
Hierarchiegraph für die Klassen N PO, PO, APX , PAS, FPAS, ABS .
Zurückgewinnung der Vektoren (1, 0, 0) bzw. (−1, 0, 0) aus beliebigen Vektoren der Länge 1 mittels einer zufällig bestimmten Ebene E. . . . . . .
Grafische Veranschaulichung des Sachverhalts aus Gleichung 6.19 . . . .
6
6
7
8
10
16
18
21
26
33
38
49
51
Algorithmenverzeichnis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
52
GreedyCol . . . . . . . . . . . .
ColPlan . . . . . . . . . . . . . .
Kantenfärbung . . . . . . . . .
Umfärbung . . . . . . . . . . . .
0
A . . . . . . . . . . . . . . . . . .
Einfüge . . . . . . . . . . . . . .
Approx-TSP . . . . . . . . . . . .
ch . . . . . . . . . . . . . . . . . .
Approx-Vertex-Cover . . . . .
Greedy-Set-Cover . . . . . . .
(Greedy-)Maximum-Set-Cover
GreedyIS . . . . . . . . . . . . .
GreedyCol2 . . . . . . . . . . . .
Spezialfärbung . . . . . . . . . .
HCEnt . . . . . . . . . . . . . . . .
DynRucksack . . . . . . . . . . .
ark . . . . . . . . . . . . . . . . .
fptas Rucksack . . . . . . . . .
a . . . . . . . . . . . . . . . . . . .
RandomizedRounding . . . . . .
b . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
8
9
9
12
13
15
17
19
20
22
24
28
30
31
33
34
35
38
41
41
22
23
24
25
26
RandomizedRounding
CpA . . . . . . . . . . .
Calle . . . . . . . . . . .
Greedy-MaxCut . . .
MaxCut . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
42
45
45
47
50
Literatur
Die Angabe verwendeter Literatur erfolgt in alphabetisch sortierter Reihenfolge. Hinter
jedem Eintrag ist eine Liste der Seiten angegeben, von denen ein Verweis erfolgte.
Arora 1998
Arora, Sanjeev: Polynomial time approximation schemes for Euclidean traveling
salesman and other geometric problems. In: J. ACM 45 (1998), Nr. 5, 753–782.
http://www.cs.princeton.edu/~arora/pubs/tsp1.ps. – ISSN 0004–5411
Goemans u. Williamson 1995
Goemans, Michel X. ; Williamson, David P.: Improved Approximation Algorithms for Maximum Cut and Satisfiability Problems Using Semidefinite Programming. In: J. Assoc. Comput. Mach. 42 (1995), 1115–1145. citeseer.ist.psu.edu/
article/goemans95improved.html
Rao u. Smith 1998
Rao, Satish B. ; Smith, Warren D.: Approximating geometrical graphs via
“spanners“ and “banyans“. (1998), 540–550. http://www.math.temple.edu/~wds/
homepage/rao-smith-tsp.ps. ISBN 0–89791–962–9
53
Zugehörige Unterlagen
Herunterladen