Approximierbarkeit Definition Ein Optimierungsproblem P ist gegeben durch ein Quadrupel P = (I , Sol, m, goal), wobei: I ist die Menge der Instanzen von P. Sol ist eine Funktion, die ein x ∈ I abbildet auf die Menge der S 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}. Definition Sei P ein Optimierungsproblem. y ∗ ∈ SolP (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). Definition 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|). { hx, y i | y ∈ Sol(x) } ∈ P. Funktion m ist in Polynomialzeit berechenbar. Definition Ein Optimierungsproblem P gehört zur Klasse PO, falls P ∈ NPO und falls es einen deterministischen Polynomialzeit–Algorithmus gibt, der bei Eingabe von x ∈ IP eine (beliebige) Lösung y ∗ ∈ Sol∗P (x) ausgibt. Bemerkung PO ist also die Klasse der effizient lösbaren Optimierungsprobleme. Definition Sei P ein Optimierungsproblem. Das Entscheidungsproblem zu P ist PD = { hx, K i | x ∈ IP , K ∈ N und m∗ (x) ≤ K , falls goalP = min m∗ (x) ≥ K , falls goalP = max} Lemma Sei P ∈ NPO. Dann ist PD ∈ NP. Lemma Sei P ∈ PO. Dann ist PD ∈ P. (sog. “P-Optimierungsprobleme”) Satz 16 P = NP gdw. PO = NPO. Definition Sei P ein Optimierungsproblem. Ein Polynomialzeit- Algorithmus A heißt Approximationsalgorithmus für P, falls A bei Eingabe x ∈ IP eine mögliche Lösung y ∈ SolP (x) berechnet. In Zeichen: A(x) ∈ SolP (x). Schreibweise: mA (x) = mP (x, A(x)). Definition Sei P ein Optimierungsproblem, x ∈ IP und y ∈ SolP (x). Die Performanz (-rate) von y (bzgl. x) ist definiert als ( ) m(x,y ) n m(x, y ) m∗ (x) o , falls goal = min ∗ m (x) ∗ , RP (x, y ) = = max m (x) m∗ (x) m(x, y ) m(x,y ) , falls goal = max Definition Sei P ein Optimierungsproblem und A ein Approximationsalgorithmus für P. Die Performanz (-rate) von A (bzgl. P) ist RA (x) = RP (x, A(x)). Sei r : N → Q. A ist ein r -Approximationsalgorithmus für P, falls max RA (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 6= NP, so gibt es kein c ≥ 1, sodass MinTSP einen c-Approximationsalgorithmus besitzt. MinMTSP Problem: Instanz: MinMTSP (metric TSP) (di,j )1≤i,j≤n mit n, di,j ∈ N und für alle i, j, k ∈ {1, . . . , k} gilt: di,j = dj,i (Symmetrie) di,j + dj,k ≥ di,k (Dreiecksungleichung) Lösung: Maß: π ∈ Sn (= Rundreise) P 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 {v1 , v2 , . . . , vm } mit {vi , vi+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 Definition 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 = (du,v )(u,v )∈E , du,v ∈ N ist das Gewicht der Kante (u, v ) ∈ E . Ein Spannbaum in einem Graphen G = (V , E ) ist ein Teilgraph G 0 = (V , E 0 ), E 0 ⊆ E , der ein Baum ist. Ein minimaler Spannbaum in einem gewichteten Graphen G = (V , E , D) ist ein Spannbaum G 0 = (V , E 0 ) im Graphen (V , E ) 0 mit P minimalen Gewicht. Dabei ist das Gewicht von G definiert als (u,v )∈E 0 du,v . Amsterdam Hannover Berlin Warschau Luxemburg Prag München Wien Graz Satz 18 TreeTSP ist ein 2-Approximationsalgorithmus für MinMTSP. Definition 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 0 , v 0 ) ∈ M ⇒ {u, v } ∩ {u 0 , v 0 } = ∅. M heißt vollständig (oder perfekt), falls |M| = 12 |V | (jeder Knoten kommt als Endpunkt einer Kante in M vor). Algorithmus von Christofides Amsterdam Hannover Berlin Warschau Luxemburg Prag München Wien Graz Satz 19 Der Algorithmus von Christofides ist ein 3 2 -Approximationsalgorithmus für MinMTSP. MinPART Problem: Instanz: Lösung: Maß: Ziel: Minimum Partition (MinPART) ha1 , . . . , an i, ai ∈ N+ Mengen mit Y1 ∪ Y2 = {1, . . . , n}, Y1 ∩ Y2 = ∅ P Y 1 , Y2 P max{ i∈Y1 ai , i∈Y2 ai } min Satz 20 Bei Eingabe einer Instanz x ∈ IMinPART , x = ha1 , . . . , an i, und einer Zahl r > 1 liefert der Algorithmus PartAS eine Lösung mit Performanzrate ≤ r . Definition 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 6= NP ergibt sich folgende Situation NPO MinTSP MinMTSP APX MinBinPacking MaxSAT PTAS MinPart MaxKnapsack PO Minimaler Spannbaum MinPath MaxSAT Problem: Instanz: Lösung: Maß: Maximum Satisfiability (MaxSAT) aussagenlogische Formel F in KNF über Variablen V Belegung f : V → {0, 1} 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 : Σ∗ → IP , c : Σ∗ → N und g > 0 eine Konstante, sodass: ∗ (f (x)) ≤ c(x) mP , falls x ∈ L ∗ (f (.x)) ≥ (1 + g ) · c(x) , falls x ∈ mP /L Dann existiert kein r -Approximationsalgorithmus für P für alle r < 1 + g , es sei denn P = NP.