Das Rucksackproblem: schwache NP-Härte und Approximation Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1. Februar 2010 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 1 / 24 Der Stoff dieser Folien ist nicht relevant für die Übungsklausur am 2.2.2010. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 2 / 24 Wiederholung Problem (SUBSET-SUM) Eingabe: a1 , . . . , aN ∈ N, b ∈ N Frage: Gibt es K ⊆ {1, . . . , N} mit P i ∈K ai = b? Satz SUBSET-SUM ist NP-vollständig. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 3 / 24 Wiederholung Problem (PARTITION) Eingabe: a1 , . . . , aN ∈ N Frage: Gibt es K ⊆ {1, . . . , N} mit P i ∈K ai = P i ∈{1,...,N}\K ai ? Satz Partition ist NP-vollständig. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 4 / 24 Härte des Bin Packing Problems Problem (Bin Packing Problem – BPP) Eingabe: b ∈ N, w1 , . . . , wN ∈ {1, . . . , b} zulässige Lösungen: k ∈ N und Fkt f : {1, . . . , N} → {1, . . . , k}, so dass ∀i ∈ {1, . . . , k} : X wj ≤ b j∈f −1 (i ) Zielfunktion: Minimiere k (= Anzahl Behälter) Entscheidungsvariante (BPP-E): k ∈ N ist gegeben. Passen die Objekte in k Behälter? Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 5 / 24 Härte des Bin Packing Problems Satz BPP-E ist NP-vollständig. Beweis: BPP-E ∈ NP haben wir bereits gezeigt. Die NP-Härte ergibt sich durch eine triviale Reduktion von PARTITION: P Setze k = 2, wi = ai für 1 ≤ i ≤ N und b = 12 N i =1 wi . PARTITION ist also nur ein Spezialfall von BPP-E. Somit ist BPP-E NP-hart. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 6 / 24 Härte des Bin Packing Problems Wir sagen ein Optimierungsproblem Π ist NP-hart, wenn ein effizienter Algorithmus für Π einen effizienten Algorithmus für ein NP-hartes Entscheidungsproblem liefert. Aus einem effizienten Algorithmus für BPP ergibt sich ein effizienter Algorithmus für BPP-E. Wir haben gezeigt, dass BPP-E NP-hart ist. Es folgt Korollar BPP ist NP-hart. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 7 / 24 Härte des Rucksackproblems Problem (Rucksackproblem, Knapsack Problem – KP) Eingabe: B ∈ N, w1 , . . . , wN ∈ {1, . . . , b}, p1 , . . . , pN ∈ N P zulässige Lösungen: K ⊆ {1, . . . , N}, so dass i ∈K wi ≤ b P Zielfunktion: Maximiere den Nutzen i ∈K pi Entscheidungsvariante (KP-E): T ∈ N sei gegeben. Gibt es eine zulässige Lösung mit Nutzen mindestens T ? Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 8 / 24 Härte des Rucksackproblems Satz KP-E ist NP-vollständig (und somit ist KP NP-hart). Beweis: KP-E ∈ NP haben wir bereits gezeigt. Die NP-Härte ergibt sich durch eine triviale Reduktion von SUBSET SUM: Setze pi = wi = ai für 1 ≤ i ≤ N und B = T = b. SUBSET SUM ist also nur ein Spezialfall von KP-E. Somit ist KP-E NP-hart. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 9 / 24 Pseudopolynomieller Algorithmus Satz Für das Rucksackproblem gibt es einen Algorithmus, der eine optimale Lösung in O(N 2 P) uniformen Rechenschritten berechnet, wobei P = max1≤i ≤N pi . Zur Analyse des Algorithmus verwenden wir der Einfachheit halber das uniforme Kostenmaß der RAM. Im logarithmischen Kostenmaß ist die Laufzeit O(N 2 P · (log P + log N)), denn in jedem uniforme Rechenschritt spricht der Algorithmus höchstens O(log P + log N) viele Bits an. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 10 / 24 Pseudopolynomieller Algorithmus Beweis: Der optimale Nutzen liegt zwischen 0 und N · P. Für i ∈ {1, . . . , N} und p ∈ {1, . . . , N · P}, definiere kleinstmögliches Gewicht, mit dem man Ai ,p := den Nutzen p exakt erreichen kann, wenn man nur Objekte aus der Menge {1, . . . , i } verwendet Falls der Nutzen p nicht durch eine Teilmenge von {1, . . . , i } erreicht werden kann, so setzen wir Ai ,p := ∞. Die Kostenwerte Ai ,p berechnen wir in einer Tabelle mit N Zeilen und N · P Spalten. In Zeile i und Spalte p steht der Wert Ai ,p . Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 11 / 24 Pseudopolynomieller Algorithmus Die Tabelle Ai ,p berechnen wir mittels dynamischer Programmierung. Dynamisches Programm Die erste Zeile füllen wir wie folgt wi falls p = pi A1,p = ∞ sonst Für i = 2 . . . N füllen wir nun Zeile i durch Anwendung der folgenden Rekursionsgleichung: min{Ai −1,p , Ai −1,p−pi + wi } falls p − pi > 0 Ai ,p = Ai −1,p sonst . Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 12 / 24 Pseudopolynomieller Algorithmus Aus der Tabelle können wir den optimalen Nutzen entnehmen. Der optimale Nutzen ist max{p | AN,p ≤ b} . Die optimale Rucksackbepackung lässt sich ausgehend von diesem Eintrag aus der Tabelle rekonstruieren. Laufzeitanalyse im uniformen Kostenmodell: Jeder Eintrag der Tabelle kann in Zeit O(1) berechnet werden. Die Laufzeit entspricht deshalb der Größe der Tabelle und ist somit O(N 2 P). Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 13 / 24 Diskussion Die Laufzeit des Algorithmus ist polynomiell in den Parametern N und P beschränkt. Dies ist keine polynomielle Laufzeitschranke im Sinne der Komplexitätstheorie, denn P ist möglicherweise exponentiell in der Eingabelänge, weil Zahlen binär kodiert werden. Die Laufzeitschranke O(N 2 P) ist somit nicht polynomiell in der Eingabelänge beschränkt. Eine derartige Laufzeitschranke, die polynomiell in der Größe der Eingabezahlen (statt in der binären Kodierungslänge dieser Zahlen ist) heißt pseudopolynomiell. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 14 / 24 Binäre versus unäre Kodierung der Eingabe Bisher sind wir durchgängig davon ausgegangen, dass Zahlen in der Eingabe eines Problems binär kodiert werden. Wenn wir das Eingabeformat ändern, so erhalten wir ein neues Problem. Das Rucksackproblem mit binärer Kodierung haben wir mit KP bezeichnet. Sei u-KP die Variante des Rucksackproblems, bei der wir annehmen, dass die Eingabezahlen unär kodiert vorliegen. Aus unseren Analysen folgt: KP ist NP-hart. Aber u-KP ∈ P. (Warum?) Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 15 / 24 Starke und schwache NP-Härte Definition Ein NP-hartes Problem, das bei unärer Kodierung der Eingabezahlen einen polynomiellen Algorithmus hat, wird als schwach NP-hart bezeichnet. Ein Problem, das selbst bei unärer Kodierung der Eingabezahlen NP-hart bleibt, wird als stark NP-hart bezeichnet. schwach NP-hart sind z.B. KP, SUBSET-SUM, PARTITION stark NP-hart ist z.B. CLIQUE (Warum?) Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 16 / 24 Def: Approximationsalgorithmus Sei Π ein Optimierungsproblem. Für eine Instanz I von Π bezeichnen wir den optimalen Zielfunktionswert mit opt(I ). Ein α-Approximationsalgorithmus, α > 1, für ein Minimierungsproblem Π berechnet für jede Instanz I von Π eine zulässige Lösung mit Zielfunktionswert höchstens α · opt(I ). Ein α-Approximationsalgorithmus, α < 1, für ein Maximierungsproblem Π berechnet für jede Instanz I von Π eine zulässige Lösung mit Zielfunktionswert mindestens α · opt(I ). α wird auch als Approximationsfaktor oder Approximationsgüte bezeichnet. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 17 / 24 Def: Approximationsschema Ein Approximationsschema A für ein Optimierungsproblem ist ein Algorithmus, der es ermöglicht, für jedes vorgegebene > 0 eine zulässige Lösung mit Approximationsgüte 1 + bzw. 1 − zu berechnen. FPTAS (fully polynomial time approximation scheme) A wird als FPTAS bezeichnet, falls die Laufzeit polynomiell sowohl in der Eingabelänge n als auch in 1 beschränkt ist. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 18 / 24 Ein Approximationsschema für das Rucksackproblem FPTAS für das Rucksackproblem N P und runde 1 Skaliere die Nutzenwerte mit dem Faktor α = ab, d.h. für i ∈ {1, . . . , N} setze pi0 = bαpi c. 2 Berechne eine optimale Rucksackbepackung K ⊆ {1, . . . , N} 0 mit dem pseudopolynomiellen für die Nutzenwerte p10 , . . . , pN Algorithmus. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 19 / 24 Laufzeitanalyse Durch die Skalierung sind die Nutzenwerte nach oben beschränkt durch P 0 = bαPc = b N c. Aus der Laufzeit des pseudopolynomiellen Algorithmus ergibt sich somit unmittelbar eine Laufzeitschranke von O(N 2 P 0 ) = O(N 3 /) uniformen Rechenschritten. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 20 / 24 Analyse des Approximationsfaktors Sei K ∗ ⊆ {1, . . . , N} eine optimale Rucksackbepackung. Die durch den Algorithmus berechnete Rucksackbepackung bezeichnen wir mit K . Es gilt zu zeigen p(K ) ≥ (1 − ) p(K ∗ ) . Dazu skalieren wir die gerundeten Nutzenwerte virtuell wieder herauf, allerdings ohne dabei den Rundungsfehler rückgängig zu machen, d.h. wir setzen pi00 = pi0 /α. Die Rucksackbepackung K ist optimal für die Nutzenwerte pi0 und somit auch optimal für die Nutzenwerte pi00 . Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 21 / 24 Analyse des Approximationsfaktors Bezogen auf die ursprünglichen Nutzenwerte pi macht der Algorithmus allerdings möglicherweise für jedes Objekt einen Rundungsfehler: Objekte sehen weniger profitabel aus als sie eigentlich sind. Der Rundungsfehler für Objekt i lässt sich abschätzen durch pi − pi00 = pi − αpi − 1 1 bαpi c ≤ pi − = . α α α Für eine Teilmenge S ⊆ {1, . . . , N} sei p(S) = P p 00 (S) = i ∈S pi00 . Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität P i ∈S pi und 1. Februar 2010 22 / 24 Analyse des Approximationsfaktors Der Rundungsfehler für eine optimale Lösung K ∗ lässt sich entsprechend abschätzen durch p(K ∗ ) − p 00 (K ∗ ) ≤ X 1 N ≤ = P ≤ p(K ∗ ) , α α ∗ i ∈K wobei die Ungleichung p(K ∗ ) ≥ P daraus folgt, dass der optimale Nutzen p(K ∗ ) mindestens so groß ist wie der Nutzen des Objektes mit dem maximalen Nutzenwert P. Aus der obigen Ungleichung folgt p 00 (K ∗ ) ≥ (1 − ) p(K ∗ ). Nun ergibt sich p(K ) ≥ p 00 (K ) ≥ p 00 (K ∗ ) ≥ (1 − ) p(K ∗ ) . Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 23 / 24 Zusammenfassung und Diskussion Das Rucksackproblem ist schwach NP-hart, d.h. es ist NP-hart, hat aber einen pseudopolynomiellen Algorithmus. Aus diesem pseudopolynomiellen Algorithmus lässt sich ein FPTAS ableiten, d.h. für jedes vorgegebene > 0 kann in Zeit poly(n, 1 ) eine Lösung berechnet werden, die den optimalen Nutzenwert bis auf den Faktor 1 − erreicht. Dieser Ansatz funktioniert nicht nur für das Rucksackproblem: Viele, aber nicht alle schwach NP-harten Optimierungsprobleme haben ein FPTAS. Stark NP-harte Optimierungsprobleme haben jedoch kein FPTAS, es sein denn P = NP. Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und Komplexität 1. Februar 2010 24 / 24