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