Das Rucksackproblem: schwache NP

Werbung
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
Herunterladen