Zusammenfassung pprox algorithmen. Einleitung Notation: N := {, 2,... }, N 0 := {0,, 2,... } [n] := {, 2,..., n} [n] 0 := {0,, 2,..., n}.3. Grundbegriffe Kanten}, S(G) = {c V c V Knotenfärbung}, f(c V ) = c V (V ), ziel = Definition: χ(g) ist chromatische Zahl von G, χ (G) ist chromatischer Index lgorithmus GreedyCol: : for i =... n do c v (u i ) := 2: for i =... n do 3: c v (u i ) := min N\c v (Γ(u i )) 4: gib c v aus Satz: GreedyCol(G) (G) +. Ferner κ GreedyCol (G) = GreedyCol(G) OPT(G) (G). Definition: kombinatorisches Optimierunsproblem Π charakterisiert durch Menge von Probleminstanzen D, für alle I D: Menge der zu zulässigen Lösungen S(I), Bewertungsfunktion f : S(I) N, ziel {min, max}. Zu I D gesucht: σ opt I S(I) : f(σ opt I ) = ziel{f(σ) σ S(I)}. Definition: t(n)-pprox alg. : Zu Eingabe I D Berechnung in Zeit t( I ) eine usgabe σi S(I). Schreibeweisen: OPT(I) := f(σ opt I ), (I) := f(σi ). 2. pproximation mit absoluter Güte Definition: absolute Güte: κ (I) := (I) OPT(I) absolute worst-case Güte: κ wc (n) := max{κ (I) I D, I n} Garantie einer absoluten Güte: Funktion in N, die obere Schranke für κ wc ist bsolute bweichung: Funktion in N, die für unendlich viele n N untere Schranke für κ wc ist. Weitere Begriffe: Zeugenmenge gegen, Zeuge. 2.. Graphfärbbarkeit Sei G = (V, E) ungerichteter Graph. Menge der Nachbarn von u ist Γ G (u) = {v {u, v} E}. Smbol für Grad von G: (G) := max u V {deg G (u)} Definition: Knotenfärbung, Kantenfärbung: Nachbarn haben jeweils unterschiedliche Farben Beispiel: Knotenfärbung als Opt problem: D = {G G = (V, E) ungerichteter Graph mit Bemerkungen: Knotenfärbung planarer Graphen: i) Mit 6 Farben immer in Polynomzeit mäglich. ii) 4 Farben wären jedoch immer ausreichend. iii) Entscheidungsproblem Mit 3 Farben möglich? NP-vollständig. iv) Entscheidungsproblem Mit 2 Farben möglich? liegt in P. lgorithmus ColPlan: für planaren Graphen G: Teste ob G 2-färbar, wenn nicht: Färbe mit 6 Farben Satz: ColPlan garantiert eine absolute Güte von 3. n einem Knoten eines kantengefärbten Graphen fehlt eine Farbe, wenn alle inzidenten Kanten dort anders gefärbt sind. Lemma: G kantengefärbt mit [ (G) + ], u, v V mit {u, v} E und deg(u), deg(v) < (G). Dann kann G umgefärbt werden, so dass an u und v dieselbe Farbe fehlt. lgorithmus Kantenfärbung: Eingabe: Graph G = (V, E) : E :=, G := (V, E ) 2: while E E do 3: Wähle eine beliebige Kante {u, v} E \ E 4: altergrad := (G ) 5: E := E {{u, v}} 6: if (G ) > altergrad then 7: Färbe die Kante {u, v} mit der kleinstmöglichen an u und v fehlenden Farbe aus {,..., (G) + } 8: else 9: Färbe G um, so daß an u und v dieselbe Farbe c fehlt 0: färbe {u, v} mit c
Satz: Für jeden Graph G: (G) χ (G) (G)+. Folgerung: Kantenfärbung garantiert absolute Güte, hat aber auch absolute bweichung von. 2.2. Ein Nicht-pproximationsergebnis Definition: Rucksackproblem Π: D = { n, vol, p, B n, B N und vol, p : [n] N und w [n] : vol(w) B} S( n, vol, p, B ) = { [n] w vol(w) B} f() = w p(w) ziel = Wir schreiben p j := p(j). Satz: Falls P NP, gibt es kein k N, so dass I D : (I) OPT(I) k. 3. pproximation mit relativer Gütegarantie Π Optimierungsproblem, pprox algorithmus. Definition: relative Güte: ρ (I) := max{ (I) OPT(I), OPT(I) (I) } relative worst-case Güte: ρ wc (n) := max{ρ (I) I D, I n} Garantie einer relativen Güte: Funktion in N, die obere Schranke für ρ wc ist relativer Fehler: ɛ (I) := (I) OPT(I) OPT(I) Relative bweichung: Funktion in N, die für unendlich viele n N untere Schranke für ρ wc ist. Weitere Begriffe: Zeugenmenge gegen, Zeuge. Bemerkungen: Bei Max problem: ɛ (I) = ρ (I). Bei Min problemen: ɛ (I) = ρ (I) ρ (I). 3. Das metrische TSP Definition: ls Optimierungsproblem Π: D = { K n, c K n vollständiger Graph auf n > Knoten, c : E N, u, v, w V : c(u, v) c(u, w) + c(w, v)} S( K n, c ) = {C C = (u,..., u n, u ) ist Hamiltonkreis} f(c) = n i= c(u i, u i+ ), wobei u n+ := u. ziel = min. 2 lgorithmus Einfügen: Eingabe: C = (u,..., u n, u ) wie oben, v E : Bestimme i, so dass c(u i, v) + c(v, u i+ ) c(u i, u i+ ) minimal ist 2: Gib (u,..., u i, v, u i+,..., u n, u ) zurück lgorithmus EinfügeHeuristik: (Für TSP) : C := (v, v) für einen beliebigen Knoten v E 2: for j := 2,..., n do 3: v := Knoten, der nicht in C j ist (*) 4: C j := Einfügen(C j, v) Satz: Für jede Einfüge-Heuristik (beachte Wahlmöglichkeit bei (*)) gilt ρ ( K n, c ) log n +. Satz: Wird bei (*) stets der Knoten gewählt, der am nächsten zu einem Knoten in C j liegt, NearIns (nearest insertion) genannt, so gilt ρ NearIns ( K n, c ) 2 2 n. ( Spannbaum- rgument) Definition: Matching M ist Teilgraph mit Grad. Gewicht eines Matching ist Summe der vorkommenden Kanten. Ein perfektes Matching enthält alle Knoten. Ein leichtestes Matching ist ein perfektes Matching mit minimalem Gewicht. Definition: Ein Multigraph erlaubt mehrere Kanten pro Knotenpaar. Eine Euler-Tour ist ein Kreis (u,... u E, u ), in dem jede Kante genau einmal vorkommt. lgorithmus Ch: (Christofides) Eingabe: I = K n, c : T Ch := minimaler Spannbaum 2: S := {v T Ch deg TCh (v) ist ungerade } S ist gerade 3: M Ch := leichtestes Matching auf dem durch S induzierten Teilgraphen von K n 4: E := (u, u 2,... ) Euler-Tour auf T Ch M Ch 5: E := E ohne Wiederholungen von Knoten Satz: ρ Ch ( K n, c ) 3 2 n. Definition: Vertex-Cover: Finde zu einem ungerichteten Graphen G = (V, E) eine minimale Knotenüberdeckung: C V, so dass {u, v} E : {u, v} C. lgorithmus GreedyVC: : C :=, E := E 2: while E = do 3: C := C {u, v}, wobei {u, v} E beliebig 4: E := E \ {e E u e oder v e} 5: Gebe C aus Satz: ρ GreedyVC (G) 2.
Definition: Scheduling: n Jobs mit Lasten w,..., w n, m Maschinen. Gesucht: Zuordnung (s,..., s n ) [m] n, so dass max k [m] i [n] s i =k w i minimal wird. Satz: Die Graham-Heuristik, die Jobs greedy sequentiell auf die jeweils am wenigsten ausgelastete Maschine zu verteilen, hat für jede Eingabe relative Güte 2 m. Satz: LPT (least processing time first), der vor der Graham-Heuristik die Jobs nach aufsteigendem Gewicht sortiert, hat relative Güte 4 3 3m. Definition: Set-Cover-Problem: Gegeben endliche Menge X und F P(X) mit S F S = X. Finde kleinstes C F, das X überdeckt. lgorithmus GreedySetCover: : U := X, C := 2: while U do 3: wähle S F, so dass S U maximal 4: U := U \ S 5: C := C {S} Satz: ρ GreedySetCover ( X, F ) H(max S F S ) Definition: Maximum Set-Cover-Problem: Gegeben endliche Menge X, Gewichtsfunktion w : X R, F P(X), k N. Gesucht: C F mit C = k, so dass w(c) := w( S C S) maximiert wird. (w sei dazu kanonisch auf P(X) fortgesetzt.) lgorithmus MSC: : U := X, C := 2: for i :=,..., k do 3: wähle S F, so dass w(s U) maximal 4: U := U \ S 5: C := C {S} Satz: ρ MSC ( X, w, F, k ) ( e ),59. Definition: G = (V, E) Graph, Knotenmenge U V heißt unabhängig, wenn u, v U : {u, v} E. Beim Independent-Set-Problem ist größtmögliche unabhängige Menge zu finden. lgorithmus GreedyIS: : U :=, t := 0, V (0) := V 2: while V (t) do 3: G (t) := der durch V (t) induzierte Graph 4: u t := Knoten mit minimalem Grad in G (t) 5: V (t+) := V (t) \ ({u t } Γ G (t)(u t )) 6: U := U {u t } 7: t := t + 8: return U Satz: ρ GreedyIS (G) E V +. Die relative bweichung ist mindestens 4 ( V ). Satz: Sei G = (V, E) mit k Farben knotenfärbbar. Dann: GreedyIS(G) log k ( V 3 ). Ein verbesserter Greedy-Knotenfärbungsalgorithmus: lgorithmus GreedyCol2: : t :=, V () := V 2: while V (t) do 3: G (t) := der durch V (t) induzierte Graph 4: U (t) := GreedyIS(G (t) ) 5: Färbe alle Knoten in U (t) mit der Farbe t 6: V (t+) := V (t) U (t) 7: t := t + 8: Gib Färbung aus Satz: Sei G = (V, E) mit k Farben knotenfärbbar, n := V. Dann GreedyCol2(G) 3n. Ferner ρ GreedyCol2 (G) = O(n/ log n). log k Satz: Graphen G mit χ(g) 3 können in polynomieller Zeit mit O( V ) Farben gefärbt werden: lgorithmus Spezialfärbung: : while (G) n do 2: Finde v G mit deg G (v) n 3: Färbe durch {v} Γ G (v) induzierten Teilgraph mit 3 Farben 4: G := G ohne {v} Γ G (v) 5: Färbe G mit GreedyCol-lgorithmus mit (G) + Farben 3.3. Ein Nicht-pproximierbarkeitsergebnis für relative Gütegarantie Satz: Wenn TSP mit konstanter relativer Güte approximiert werden kann, gilt P = NP. Satz: Sei L Σ sei NP-vollständig, Π ein Minimierungsproblem. Gibt es zwei in Polynomzeit berechenbare Funktionen f : Σ D und c : Σ N und eine Konstante γ > { 0, so dass x Σ c(x) x L : OPT(f(x)) = c(x) ( + γ) x L, dann gibt es keinen polynomiellen pproximationsalgorithmus der relativen Güte r < +γ, es sei denn P = NP. n 6 3
4. pproximationsschemata Definition: Π Opt problem,, pprox algorithmus für Π mit Eingabe bestehend aus Instanz I und ɛ (0, ). PTS: ist polynomielles pprox schema, wenn für alle I D, ɛ (0, ) in Zeit O(poly( I )) eine zulässige Lösung zu I berechnet wird mit ɛ (I, ɛ) ɛ. FPTS: ist streng polynomielles pprox - schema, wenn ein PTS mit Laufzeit O(poly( I, ɛ )) ist. Satz: (F)PTS. Bei Eingabe I sei z(i) obere Schranke für OPT(I). ɛ := z(i)+. Dann ist (I, ɛ ) = OPT(I). Ist ein FPTS, so ist die Laufzeit O(poly( I, z(i))). 4.. Ein pseudopolynomieller exakter lgorithmus für das 0- Rucksackverfahren Sei I = n, vol, p, B Instanz des Rucksackproblems. p max := max i [n] p j. Prädikat F j (α) := inf{vol(r) R [j] and p(r) α}. lgorithmus DynRucksack: : α := 0 2: repeat 3: α := α + 4: for j:=,..., n do 5: F j (α) := min{f j (α), F j (α p j ) + vol(p j )} 6: until B < F n (α) 7: Gib α aus Satz: DynRucksack berechnet zu Eingabe I den Wert OPT(I) in Zeit O(n OPT(I)) = O(n 2 p max ). Definition: Π Optimierungsproblem mit Instanzen aus ausschließlich natürlichen Zahlen. maxnr(i) sei größte in I vorkommende Zahl. lgorithmus heißt pseudopolynomiell, wenn für alle I D seine Laufzeit poly( I, maxnr(i)) ist. 4.2. Ein streng polynomielles pproximationsschema für das 0- Rucksackproblem lgorithmus R k : Eingabe: Instanz I = n, vol, p, B : Ersetze p j durch p j k 4 2: Berechne mittels DynRucksack eine optimale Rucksackfüllung R k auf der Eingabe I red 3: Gib R k aus Satz: ɛ Rk ( n, vol, p, B ) O(n 2 pmax k ). k n p max. Die Laufzeit ist lgorithmus FPTSRucksack: Eingabe: Instanz I = n, vol, p, B, Fehler ɛ : k := ɛ pmax n 2: Rufe R k (I) auf Satz: FPTSRucksack ist ein FPTS für das Rucksackproblem mit Laufzeit O(n 3 ɛ ). 4.3. Negativergebnisse für pproximationsschemata Satz: Π Optimierungsproblem, k N fest. Falls Π Minimierungsproblem, sei die Frage Ist zur Eingabe I von Π der Wert OPT(I) k? bzw., falls Π Maximierungsproblem ist, die Frage Ist zur Eingabe I von Π der Wert OPT(I) k? NP-vollständig. Gibt es ein FPTS(PTS) für I, dann ist P = NP. Definition: L NP-vollständig. Dann heißt L stark NP-vollständig, wenn es ein Polynom q gibt, so dass L q := {x Σ x L und maxnr(x) q( x )} NPvollständig ist. Gibt es kein solches q, so heißt L schwach NP-vollständig. D. h., für eine NP-vollständige Sprache L gilt, falls P NP: L stark NP-vollständig es gibt keinen pseudopolynomiellen lgorithmus für L Satz: Π Optimierungsproblem. Gibt es ein Polynom q(x, x 2 ) mit OPT(I) q( I, maxnr(i)) für alle I D, dann folgt aus der Existenz eines FPTS für Π die Existenz eines pseudopolynomiellen exakten lgorithmus. Folgerung: Gibt es für eine Optimierungsvariante eines stark NP-vollständigen Problems ein FPTS, so folgt P = NP. 5. Klassen und Hierarchien Definition: Optimierungsproblem Π liegt in NPO, wenn: i) Gültige Instanzen I werden in poly( I ) Zeit erkannt. ii) Es gibt ein Polynom p, so dass σ S(I) : σ p( I ). Ferner y Σ, y p( I ) : y kann in Polynomialzeit in I als Lösung verifiziert werden.
iii) Für alle σ S(I), I D kann f(σ) in Polynomialzeit in I berechnet werden. lternativ: Π NPO : Π p Π. Definition: Zugehöriges Entscheidungsproblem Π ent. Satz: Π NPO Π NP Definition: Sprachklasse PO NPO, wobei zu jeder Instanz I in Polynomialzeit in I eine optimale Lösung berechnet werden kann. Definition: Sei F Menge von Funktionen N R 0. Dann liegt Π NPO in der Sprachklasse F -PX, wenn es einen polynomiellen pprox algorithmus gibt mit ρ F. Ist F die Menge der konstanten Funktionen, so heißt diese Klasse nur PX. Definition: Π NPO liegt in der Sprachklasse PS bzw. FPS, wenn es für Π ein (F)PTS gibt. Satz: PO FPS PS PX NPO Definition: BS ist Klasse der mit konstant absoluter Güte approximierbaren Optimierungsprobleme. Bemerkungen: PO BS PX 6. Techniken für randomisierte pproximationsalgorithmen 6.. Die probabilistische Methode Definition: V := {x,..., x n } Menge von Variablen. Literal ist Variable x i V oder Negation x i. Klausel C = l l k ist oder-verknüpfung von Literalen. Boole sche (n, m)-formel in konjunktiver Normalform ist Φ = C C m. Definition: Probleminstanz von MaxST ist solches Φ. Bewertungsfunktion: wahr(b, Φ) = {C j Φ b(c j ) = wahr}, wobei b : V {true,false} Belegung ist. lgorithmus : : for i :=, {..., n do true mit Wkt. 2: x i := 2 false mit Wkt. 2 3: Gib b = (x,..., x n ) aus Satz: Für jede Boole sche (n, m) Formel Φ in KNF mit mindestens k Literalen pro Klausel gilt: E[(Φ)] ( 2 k ) m. Definition: Erwartete relative Güte Satz: E[ρ (Φ)] 2k 2 k. 6.2. Randomized Rounding Ganzzahliges lineares Programm B für MaxST: gem. m i= x k S i Ĉ j x i {0, } Ĉ i {0, } x k + x k S j ( x k ) Ĉi i [m] i [n] i [m] Relaxierung B rel durch Ersetzung der Nebenbedingungen. lgorithmus B: : Löse relaxiertes Problem B rel zu Φ 2: Ermittle Belegung b B mittels randomized rounding für eine Funktion π : [0, ] [0, ] (z. B.: π(x) = x) Satz: Für alle Φ gilt E[B(Φ)] ( ( /k) k ) OPT(Φ). Satz: E[ρ B (Φ)] /e,582. 6.3. Hybrider nsatz: Eine Kombination mehrerer Verfahren Satz: Für einen lgorithmus C, der jeweils mit W keit 2 oder B startet, gilt E[ρ C] 4 3. 6.4 Semidefinite Optimierung Definition: Eine Matrix R n n heißt positiv semidefinit, wenn gilt: x R n : x T x 0. Ein semidefinites Programm ist ein lineares Programm, bei dem die Lösungen für die Variablen jeweils als symmetrisch und positiv semidefinite Matrix geschrieben werden können. Definition: Max-Cut-Problem: Gegeben ungerichteter Graph G = (V, E). Gesucht: U V, so dass die Schnittgröße {{u, v} E u U und v V \ U} maximal. Satz: Durch einen zusammenhängenden Graphen gibt es immer einen Schnitt der Größe 2 E. 5
Sei n := V und G = (a ij ) djazenzmatrix von G. Für jeden Knoten v i V Variable x i {, }. Quadratisches Programm für Max-Cut: 2 a ij ( x i x j ) i<j gem. x i {, } i [n] Relaxiertes quadratisches Programm: 2 a ij ( u i, u j ) i<j gem. u i R n, u i 2 = i [n] Umformulierung in semidefinites Optimierungsproblem: Sei Y R n n, Y = (y ij ) mit y ij := u i, u j. Dann ist Y symmetrisch und positiv semidefinit. (Mit B := (u,..., u n ) gilt Y = B T B.) gem. 2 a ij ( y ij ) i<j Y = (y ij ) symm., pos. semidef. y ii = i [n] lgorithmus MaxCut: : ɛ := 0, 0005 2: Löse das semidefinite Programm für Max-Cut mit absoluter Güte ɛ und erhalte Y (ɛ) 3: Führe Cholesky-Zerlegung Y (ɛ) = B T B und damit die Berechnung der u i durch 4: Würfle gleichverteilt einen zufälligen n- dimensionalen Vektor r aus 5: for i :=,..., n do 6: if u i, r 0 then 7: x i := 8: else 9: x i := Satz: E[MaxCut(G)] 0,878 OPT(G) bzw. E[ρ MaxCut (G)] 0,878,39 für alle Graphen G 6