Approximierbarkeit Ein Optimierungsproblem P ist gegeben durch ein Quadrupel wobei: P = (I, Sol, m, goal), I ist die Menge der Instanzen von P. Sol ist eine Funktion, die ein x I abbildet auf die Menge der möglichen Lösungen von x. Sei S = x I Sol(x) die Menge aller möglichen Lösungen. m: I S N ist die Maßfunktion. Dabei ist m(x, y) der Wert (das Maß, die Kosten) der Lösung y zur Instanz x I, wobei y Sol(x). Es soll m(x, y) immer definiert sein, falls y Sol(x). goal {min, max}.
Sei P ein Optimierungsproblem. y Sol P (x) heißt optimale Lösung zu x, falls m(x, y ) = goal { m(x, y) y Sol(x) }. Weiterhin definieren wir Sol (x) = { y Sol(x) y ist die optimale Lösung zu x } und m (x) = m(x, y ) für ein y Sol (x). Ein Optimierungsproblem P gehört zur Klasse NPO, falls gilt: I P, d. h. es ist in Polynomialzeit entscheidbar, ob eine Eingabe eine gültige Instanz des Problems darstellt. Es gibt ein Polynom p, sodass für alle x I und für alle y Sol(x) gilt: y p( x ). { x, y y Sol(x) } P. Funktion m ist in Polynomialzeit berechenbar.
Ein Optimierungsproblem P gehört zur Klasse PO, falls P NPO und falls es einen deterministischen Polynomialzeit Algorithmus gibt, der bei Eingabe von x I P eine (beliebige) Lösung y Sol P(x) ausgibt. Bemerkung PO ist also die Klasse der effizient lösbaren Optimierungsprobleme. Sei P ein Optimierungsproblem. Das Entscheidungsproblem zu P ist P D = { x,k x I P,K N und m (x) K, falls goal P = min m (x) K, falls goal P = max}
Lemma Sei P NPO. Dann ist P D NP. Lemma Sei P PO. Dann ist P D P. (sog. P-Optimierungsprobleme )
Satz 16 P = NP gdw. PO = NPO. Sei P ein Optimierungsproblem. Ein Polynomialzeit- Algorithmus A heißt Approximationsalgorithmus für P, falls A bei Eingabe x I P eine mögliche Lösung y Sol P (x) berechnet. In Zeichen: A(x) Sol P (x). Schreibweise: m A (x) = m P (x, A(x)).
Sei P ein Optimierungsproblem, x I P und y Sol P (x). Die Performanz (-rate) von y (bzgl. x) ist definiert als { } m(x,y) m R P (x, y) = (x),falls goal = min,falls goal = max m (x) m(x,y) { m(x, y) = max m (x), m (x) } m(x, y) Sei P ein Optimierungsproblem und A ein Approximationsalgorithmus für P. Die Performanz (-rate) von A (bzgl. P) ist R A (x) = R P (x, A(x)). Sei r : N Q. A ist ein r-approximationsalgorithmus für P, falls max R A(x) r(n). x =n
Spezialfall Falls r konstant ist, also r(n) = c, c Q, so sprechen wir auch von einem c-approximationsalgorithmus. Satz 17 Falls P NP, so gibt es kein c 1, sodass MinTSP einen c-approximationsalgorithmus besitzt.
MinMTSP Problem: MinMTSP (metric TSP) Instanz: (d i,j ) 1 i,j n mit n, d i,j N und für alle i, j, k {1,...,k} gilt: d i,j = d j,i (Symmetrie) d i,j + d j,k d i,k (Dreiecksungleichung) Lösung: Maß: π S n (= Rundreise) Länge von π, also n 1 i=1 d π(i),π(i+1) + d π(n),π(1) Begriffe und Notationen Ein Multigraph ist ein Paar G = (V,F), wobei V eine Knotenmenge und F eine Kanten-Multimenge ist, d. h. es gibt eventuell mehrere Kanten zwischen Knotenpaaren. Ein Eulerpfad in G ist ein Pfad {v 1, v 2,...,v m } mit {v i, v i+1 } F für 1 i < m, der jede Kante genau einmal besucht. (Knoten dürfen beliebig oft besucht werden.) Ein Eulerkreis ist ein Eulerpfad, der ein Kreis ist.
Beispiel: Königsberger Brückenproblem Pregel Ein gewichteter Graph ist ein Graph mit Gewichten auf den Kanten, also ein Tripel G = (V,E, D) wobei (V,E) ein Graph ist und D = (d u,v ) (u,v) E, d u,v N ist das Gewicht der Kante (u, v) E. Ein Spannbaum in einem Graphen G = (V,E) ist ein Teilgraph G = (V,E ), E E, der ein Baum ist. Ein minimaler Spannbaum in einem gewichteten Graphen G = (V,E, D) ist ein Spannbaum G = (V,E ) im Graphen (V,E) mit minimalen Gewicht. Dabei ist das Gewicht von G definiert als (u,v) E d u,v.
Amsterdam Hannover Berlin Warschau Luxemburg Prag München Wien Graz Satz 18 TreeTSP ist ein 2-Approximationsalgorithmus für MinMTSP.
Sei G = (V,E) ein Graph. Ein Matching von G ist eine Kantenmenge M E, so dass keine zwei Kanten in M einen gemeinsamen Endpunkt haben, d. h. (u, v), (u, v ) M {u, v} {u, v } =. M heißt vollständig (oder perfekt), falls M = 1 2 V (jeder Knoten kommt als Endpunkt einer Kante in M vor). Algorithmus von Christofides Amsterdam Hannover Berlin Luxemburg Prag Warschau München Wien Graz
Satz 19 Der Algorithmus von Christofides ist ein -Approximationsalgorithmus für MinMTSP. 3 2 MinPART Problem: Minimum Partition (MinPART) Instanz: a 1,...,a n, a i N + Lösung: Mengen Y 1, Y 2 mit Y 1 Y 2 = {1,...,n}, Y 1 Y 2 = Maß: max{ i Y 1 a i, i Y 2 a i } Ziel: min
Satz 20 Bei Eingabe einer Instanz x I MinPART, x = a 1,...,a n, und einer Zahl r > 1 liefert der Algorithmus PartAS eine Lösung mit Performanzrate r. PTAS ist die Klasse der Problemen P mit folgender Eigenschaft: (r > 1) : (Polynomialzeit-) Approximationsalgorithmus für P mit Performanzrate r. APX bezeichnet die Klasse der Probleme mit einem c-approximationsalgorithmus für ein c 1, c Q.
Unter der Annahme P NP ergibt sich folgende Situation NPO MinTSP APX MinMTSP MinBinPacking MaxSAT PTAS MinPart MaxKnapsack PO Minimaler Spannbaum MinPath MaxSAT Problem: Maximum Satisfiability (MaxSAT) Instanz: aussagenlogische Formel F in KNF über Variablen V Lösung: Belegung f : V {0, 1} Maß: Anzahl der Klauseln von F, die von f erfüllt werden
Satz 21 GSAT ist ein 2-Approximationsalgorithmus für MaxSAT. Korollar MaxSAT APX. Satz 22 : Methode zum Nachweis P / APX Sei P ein Minimierungsproblem aus NPO. Sei L eine NP-harte Sprache, L Σ. Seien f, c in Polynomialzeit berechenbare Funktionen, wobei f : Σ I P, c : Σ N und g > 0 eine Konstante, sodass: mp mp (f (x)) c(x), falls x L (f (.x)) (1 + g) c(x), falls x / L Dann existiert kein r-approximationsalgorithmus für P für alle r < 1 + g, es sei denn P = NP.