Rolf Wanka Erlangen, 2. Juni 2016 Übungen zur Vorlesung Approximationsalgorithmen SS 2016 Blatt 4 AUFGABE 13: In der Vorlesung wurde durch eine Reduktion des Hamiltonkreis-Problems gezeigt, daß das allgemeine TSP (vermutlich) mit keiner gutartigen Gütegarantie approximert werden kann. Ziel dieser Aufgabe ist es, durch eine derartige Reduktion einen Bereich für die relative Gütegarantie auszuschließen. Beim NP-vollständigen Entscheidungsproblem PARTITION ist eine Menge M = {a1 , . . . , an } von n Objekten gegeben. Die Objekte haben rationale Größen s(a1 ) ≥ · · · ≥ s(an ). Die zu beantwortende Frage ist Kann M disjunkt in zwei Teilmengen A und B zerlegt werden, so daß s(A) = s(B) ?“ Der ” Einfachheit halber nehmen wir auch an, daß 2s(a1 ) ≤ s(M) ist, da es sonst sowieso keine solche Zerlegung geben kann. Beim Optimierungsproblem B IN PACKING ist eine Menge M = {a1 , . . . , an } von n Objekten gegeben. Die Objekte haben rationale Größen 1 ≥ s0 (a1 ) ≥ · · · ≥ s0 (an ) ≥ 0. Die Aufgabe besteht darin, M disjunkt in möglichst wenig Teilmengen B1 , . . . , Bk zu zerlegen, so daß für alle Bi gilt: s0 (Bi ) ≤ 1. Hier haben wir ein Optimierungsproblem, in dem in der Beschreibung rationale Zahlen vorkommen, die Wertefunktion dagegen ganzzahlig ist. (a) Zeigen Sie unter der Annahme P 6= NP: Aus der NP-Vollständigkeit von PARTITION folgt, daß es keinen Approximationsalgorithmus (polynomieller Laufzeit) für B IN PACKING mit relativer Güte ρ gibt mit ρ < 23 . Hinweis: Ein Scaling-Argument führt auch hier zum Ziel: Modifizieren Sie die Größe der Objekte bei PARTITION geschickt“. ” (b) Es gibt einen polynomiellen Approximationsalgorithmus für B IN PACKING mit Namen First 11 3 Fit Decreasing (FFD). Seine Garantie ist FFD(I) ≤ 11 9 · OPT(I) + 4. Nun ist 9 < 2 . Widerspricht dies nicht dem Ergebnis von (a)? AUFGABE 14: Beim NP-vollständigen Entscheidungsproblem S UBSET S UM ist eine Folge ā = {a1 , . . . , an } von natürlichen Zahlen und eine einzelne natürliche Zahl S gegeben. Gesucht ist eine Indexmenge U, U ⊆ {1, . . . , n}, so daß ∑i∈U ai = S gilt. (a) Entwerfen Sie einen pseudopolynomiellen Algorithmus, der S UBSET S UM in Zeit O(n · S) löst. Verwandeln Sie Ihren Entscheidungsalgorithmus in einen Algorithmus, der U berechnet, falls es diese Menge gibt. Hinweis: Betrachten Sie einen Algorithmus, der dynamische Programmierung benutzt, um die folgende Funktion f (i, g) zu berechnen: f (i, g) = 1, wenn es eine Menge W ⊆ {a1 , . . . , ai } gibt mit s(W ) = g. Sonst ist f (i, g) = 0. (b) Was muß man ändern, um das Entscheidungsproblem PARTITION (vgl. Aufgabe 13 auf der Vorderseite) mit einem pseudopolynomiellen Algorithmus zu lösen? AUFGABE 15: Sei G = (V, E) ein Graph. Eine Knotenüberdeckung (engl.: vertex cover) ist eine Knotenmenge C ⊆ V , so daß für jede Kante / Das NP-vollständige Entscheidungsproblem VC ist die Frage, ob {u, v} ∈ E gilt: {u, v} ∩ C 6= 0. es zu gegebenem Graphen und einer Zahl K eine Knotenüberdeckung C gibt mit |C| ≤ K. Beim entsprechenden Optimierungsproblem soll eine kleinste Knotenüberdeckung bestimmt werden. Eine Knotenmenge U ⊆ V heißt unabhängige Menge (engl.: independent set), wenn für alle u, v ∈ U gilt: {u, v} 6∈ E. Das NP-vollständige Entscheidungsproblem IS ist die Frage, ob es zu gegebenem Graphen und einer Zahl K eine unabhängige Menge U gibt mit |U| ≥ K. Beim entsprechenden Optimierungsproblem soll eine größte unabhängige Menge bestimmt werden. (a) Zeigen Sie: C ist genau dann eine Knotenüberdeckung von G = (V, E), wenn U = V \C eine unabhängige Menge ist. Zeigen Sie außerdem: C ist genau dann eine optimale Lösung für VC, wenn U = V \C eine optimale Lösung für IS ist. Hinweis: Dies sind die sehr einfachen Reduktionen, die man anwendet, wenn man IS auf VC und umgekehrt für NP-Vollständigkeitsbeweise reduziert. (b) Zeigen Sie, daß der nachfolgende Algorithmus G REEDY VC das Problem VC mit relativer Güte 2 approximiert. A LGORITHMUS G REEDY VC / C := 0; while E 6= 0/ do wähle eine Kante {u, v} aus G; C := C ∪ {u, v}; lösche in G die Knoten u und v und die zu ihnen adjazenten Kanten done; gib C aus. (c) Kann man mit der Reduktion aus (a) und dem Algorithmus aus (b) einen guten Approximationsalgorithmus für IS angeben? Welche Güte erreichen Sie?