Fortsetzung: Komplexitätsklassen Überblick über die Zugehörigkeit der bisher kennen gelernten Optimierungsprobleme zu den oben denierten Komplexitätsklassen. Quelle: Jansen, Klaus / Margraf, Marian: Approximative Algorithmen und Nichtapproximierbarkeit Satz 1. Falls P 6= N P ist jede der folgenden Inklusionen echt: P O ⊆ F P T AS ⊆ P T AS ⊆ AP X ⊆ N P O Beweis 1. • P O ( F P T AS , da MaxKnapsack NP-schwer • F P T AS ( P T AS : Wird gezeigt mit euklidischem TSP 1 • P T AS ( AP X : Wird gezeigt mit MinBinPacking • AP X ( N P O, da MinTSP ∈ / AP X Weitere Techniken 1. LP-Relaxierung Das Problem wird zunächst auf ganzzahlige lineare Programmierung zurückgeführt (NP-schwer). Diese wird dann nicht-ganzzahlig gelöst (in Polynomialzeit, siehe Höhere Algorithmik I ). Anschlieÿend sucht man nach einer guten ganzzahligen Lösung in der Nähe der optimalen Lösung. Beispiel MinSetCover Gegeben seien S = {1, 2, . . . , n} Gesucht ist das minimale k, Approximierbar mit Faktor und S1 , S2 , . . . , Si ⊆ S sodass die Vereinigung von O(log n) k der Si ganz S ergibt. (damit nicht mehr in APX, die Approximation ist in der Praxis aber dennoch interessant) 2. Semidenite Programmierung Spezialfall von LP. Liefert Faktor O(log 1 /), z.B. für MaxCut, Max2Sat und MaxSat 3. PCP-Theorem zum Beweis der Nichtapproximierbarkeit Alternative Charakterisierung von NP mittels eines Ein f (n), g(n) probabilistischen Polynomzeit-Verizierers : beschränkter Polynomialzeit-Verizierer Quelle: Jansen, Klaus / Margraf, Marian: Approximative Algorithmen und Nichtapproximierbarkeit Einschränkungen Es dürfen nur g(n) Bits des Beweises gelesen werden und es dürfen nur f (n) Zufallsbits gelesen werden PCP (Probabilistic Checkable Proofs) Klasse der Sprachen, die damit erkannt werden können: P CP (f (n), g(n)) Damit lässt sich NP charakterisieren als NP = [ p P olynom 2 P CP (0, p(n)) PCP-Theorem Liefert eine neue Charakterisierung von NP N P = P CP (O(log n), O(1)) Dabei wird nur eine konstante Anzahl an Bits des Beweises gelesen! Anmerkung: Eine Eingabe wird mit Wahrscheinlichkeit in der Sprache liegt, und mit Wahrscheinlichkeit ≥ 1 akzeptiert, wenn das Wort tatsächlich 1 2 abgelehnt, wenn nicht. 4. FTP: xed parameter tractability Ansatz zum Lösen schwerer Probelme. Die Eingabe vieler Probleme besteht aus 2 Teilen, z.B. bei dem Problem Beispiel ÜberdeckendeKnotenmenge Gegeben sei ein Graph G = (V, E) (ÜK) und eine Zahl k∈N k , d.h. ∀(u, v) ∈ E : u ∈ V ∨ v ∈ V 0 ? Gibt es eine überdeckende Knotenmenge der Gröÿe Kanten abdeckt, also ÜberdeckendeKnotenmenge Algorithmus 1 (naiv) Betrachte alle Teilmengen ⇒ Polynomiell für festes V0 ⊆V k, eine Menge V0 ⊆V aber k ist if |V 0 | = k und teste jeweils n Θ n2 = O n2 nk k mit als Exponent von n unerwünscht. k = 0 then |E| = 0 then return true else return false end if else (u, v) = beliebige Kante aus E G1 = G \ {u} { Entfernen von u und allen inzidenten G2 = G \ {v} { analog } return SÜK(G1 , k − 1) ∨ SÜK(G2 , k − 1) Kanten } end if Laufzeit Sei Jede überdeckende Knotenmenge muss G die alle die Kantenmenge durch. Laufzeit: if Korrektheit |V 0 | = k , N P -vollständig. Algorithmus 2 SÜK(G, k), G = (V, E), k ∈ N 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: mit 0 u oder v enthalten! in Adjazenzmatrixdarstellung gegeben (Eingabegröÿe T (0, n) = cn2 3 n2 ): denn das Prüfen, ob mindestens eine Kante vorhanden ist, geht linear in n2 . T (k, n) = 2 · T (k − 1, n − 1) + dn = 2j · T (k − j, n − j) + d j−1 X 2i (n − i) i=0 j−1 X ≤ 2j · T (k − j, n − j) + dn 2i i=0 k ≤ 2 · T (0, n − k) + dn · 2 k = O(2k · n2 ) Die Laufzeit ist also linear in der Eingabegröÿe n2 für festes k. Σ ein endliches, nicht leeres Alphabet. Dann heiÿt L ⊂ Σ∗ × Σ∗ FTP genau dann wenn ein Agorithmus für das Entscheidungsproblem (x, y) ∈ L existiert mit Laufzeit O (f (k) · p(n)), wobei |y| = k, |x| = n und p ist ein Polynom, f ist eine beliebige Funktion. Denition 1 (FTP) . Sei 4