Rolf Wanka Erlangen, 12. Juni 2017 Übungen zur Vorlesung Approximationsalgorithmen SS 2017 Blatt 6 AUFGABE 15: Beim Optimierungsproblem B IN PACKING (vgl. Aufgabe 14 auf Blatt 5) ist eine Menge M = {a1 , . . . , an } von n Objekten gegeben. Die Objekte haben rationale Größen s(ai ) mit 1 ≥ s(a1 ) ≥ · · · ≥ s(an ) ≥ 0. Die Aufgabe besteht darin, M disjunkt in möglichst wenig Teilmengen B1 , . . . , Bk zu zerlegen, so daß für alle Bi gilt: s(Bi ) ≤ 1. Zeigen Sie, daß der folgende Algorithmus N EXT F IT das Optimierungsproblem B IN PACKING mit relativer Güte 2 approximiert. Dabei schreiben wir abkürzend s(B) = ∑ s(ai ). ai ∈B A LGORITHMUS N EXT F IT / k := 1; B1 := 0; for i := 1 to n do if s(ai ) + s(Bk ) > 1 then k := k + 1; Bk := 0/ fi; Bk := Bk ∪ {ai } done; gib (B1 , . . . , Bk ) aus. Hinweis: Begründen Sie, warum folgende Beziehungen gelten: (a) ds(M)e ≤ OPT(M) (b) N EXT F IT(M) ≤ 2ds(M)e Überlegen Sie hierfür, was für s(B1 ) bis s(Bk−1 ) gelten muß. AUFGABE 16: Ein ganz streng polynomielles Approximationsschema ist ein streng polynomielles Approximationsschema (FPAS), dessen Laufzeit nur O(poly(|I|, log( 1ε ))) ist. Zeigen Sie: Gibt es für ein kombinatorisches Optimierungsproblem, dessen Entscheidungsvariante NP-vollständig ist und bei dem die Werte mit O(poly(|I|)) Bits dargestellt werden können, ein ganz streng polynomielles Approximationsschema, dann ist P = NP. Lassen Sie sich dabei von Satz 4.2 inspirieren. AUFGABE 17: 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 14 auf Blatt 5) mit einem pseudopolynomiellen Algorithmus zu lösen? AUFGABE 18: Betrachten Sie den folgenden Algorithmus, der das Independent Set Problem IS approximiert. OBdA sei die Anzahl der Knoten des Eingabegraphen G = (V, E) eine Quadratzahl. A LGORITHMUS A PPROX IS AUFZ ÄHL n := |V |; √ zähle alle Teilmengen der Größe n auf; if eine dieser Teilmengen U ist unabhängig then gib U aus else sei v ein beliebiger Knoten; gib {v} aus. Zeigen Sie: √ A PPROX IS AUFZ ÄHL approximiert IS mit relativer Gütegarantie ∗ von O (2 n log n ). √ n bei einer Laufzeit Hinweise: (a) mn = O(nm ). (b) Die O∗ -Notation: Für zwei Funktionen f (n) und g(n) schreibt man: f (n) = O∗ (g(n)), falls f (n) = O(g(n) · poly(n)) ist. Also z. B. für f (n) = 2n · n2 gilt: f (n) = O∗ (2n ).