Knapsack & Bin Packing
Sebastian Stober
Arbeitsgruppe 5: Wie genau ist ungefähr?
Sommerakademie Görlitz 2007
10.9.2007
Sebastian Stober - Knapsack & Bin Packing
2
Knapsack a.k.a. Rucksack – Problem
(genauer: 0/1-Knapsack)

Gegeben:





Menge S={a1,…,an} von Objekten
Größen bzw. Gewichte size(ai)Z+
Nutzen profit(ai)Z+
Kapazität BZ+ des Knapsacks
Gesucht:

Teilmenge von S mit
Größe beschränkt durch B
 Maximalem Wert

10.9.2007
Sebastian Stober - Knapsack & Bin Packing
3
Knapsack – Komplexität / Greedy


Knapsack ist NP-vollständig
Greedy Heuristik:



10.9.2007
Sortiere Objekte nach fallendem
relativem Nutzen bzgl. Ihrer Größe.
(also Nutzen/Größe)
Wähle Objekte in dieser Reihenfolge,
bis keines mehr hinein passt.
Kann beliebig schlecht werden. (Bsp.)
Sebastian Stober - Knapsack & Bin Packing
4
Knapsack – Optimalitätsprinzip


Wenn Knapsack der Größe B optimal mit einer
Auswahl I  S gepackt ist, so gilt für jedes Objekt
oI, dass ein (B - size(o))-großer Knapsack optimal
mit I/{o} gepackt ist.
Rekursionsvorschrift für optimalen Wert v(i,b) beim
Packen eines Knapsacks der Kapazität b ≤ B mit
Objekten aus {a1,…,ai} mit i ≤ n:
i0
0,

v(i, b)  v(i  1, b),
i  0, h  size(ai )
max(v(i  1, b), v(i  1, b  size(a ))  value(a )),sonst
i
i

[ignorieren][----------- hineinlegen ----------]

10.9.2007
Optimale Auswahl ergibt sich daraus, welcher Fall
bei v(n,B) aufgetreten ist.
Sebastian Stober - Knapsack & Bin Packing
5
Knapsack – Dyn. Programmierung

Iterative Berechnung der v(i,b) und
Speicherung in einer Tabellenstruktur
(Dynamische Programmierung)
P  max profit( a )
aS

10.9.2007
Komplexität: pseudo-polynomiell
Sebastian Stober - Knapsack & Bin Packing
6
Knapsack – FPTAS
Idee: Verwende nur eine feste Anzahl von
Bits (abhängig von ) und ignoriere die
unwichtigsten, so dass der gerundete
Nutzen polynomiell in n und 1/ ist.
Algorithmus:
1. Für geg.  > 0 definiere K=P/n
2. Für jedes Objekt ai,
 profitai 
profit'ai   

definiere Nutzen
 K

3. Finde optimale Menge S‘ unter
Verwendung der gerundeten Werte
10.9.2007
Sebastian Stober - Knapsack & Bin Packing
7
Knapsack – FPTAS
Relative Approximationsgüte: (1+)
Beweis:








Sei S* die optimale Menge
Für alle aS unterscheiden sich profit(a) und
Kprofit‘(a) maximal um K, daher:
profit(S*) – Kprofit‘(S*) ≤ nK
S‘ muss mindestens so gut sein wie S* unter den
modifizierten Profits, da Alg. optimal. Daher
profit(S‘) ≥ Kprofit‘(S*) ≥ profit(S*)-nK = OPT-P
und da OPT ≥ P folgt: profit(S‘) ≥ (1- )OPT
Komplexität: O n2  P    O n 2  n  
  
  

10.9.2007
K 

Sebastian Stober - Knapsack & Bin Packing
  
8
Alg. nach Neuhausen & Ullmann

10.9.2007
Siehe Tafel…
Sebastian Stober - Knapsack & Bin Packing
9
Alg. nach Neuhausen & Ullmann
10.9.2007
Sebastian Stober - Knapsack & Bin Packing
10
2. Bin Packing
Bin Packing – Problem

Gegeben:



Gesucht:

10.9.2007
n Objekte
Größen a1,…,an (0,1]
Aufteilung der Objekte in Behälter
(Einheitsgröße 1) mit minimaler Anzahl
der Behälter
Sebastian Stober - Knapsack & Bin Packing
12
Bin Packing – Komplexität


Bin Packing ist NP-vollständig.
Es gibt kein PTAS mit relativer Güte
3/2- für  > 0 (vorausgesetzt P≠NP).
(Beweis durch Reduktion des Problems
Partition, siehe 3. Vortrag)
10.9.2007
Sebastian Stober - Knapsack & Bin Packing
13
Bin Packing – First Fit
Lege a1 in Behälter B1
Für jedes weitere Objekt ai, 1<i≤n:
Lege ai in Bi

Relative Güte: 1,7

Modifikation: Decreasing First Fit


10.9.2007
Sortiere die Objekte nach absteigender
Größe
Relative Güte: 11/9
Sebastian Stober - Knapsack & Bin Packing
14
Asymptotisches PTAS (1)

Vereinfachtes Problem:



Feste minimale Größe  > 0
Feste Anzahl verschiedener Größen KZ+
Kann in P gelöst werden


Maximal M=1/ Objekte pro Behälter, daher
M  K 
 Typen von Behälter (nach Füllstand)
R  
 M

n  R

R


 P  

10.9.2007
mögliche Verteilungen
Polynom in n
Sebastian Stober - Knapsack & Bin Packing
15
Asymptotisches PTAS (2.1)


Vereinfachung: Feste minimale Größe  > 0
PTAS mit relativer Güte (1+)
 Sortiere Objekte nach steigender Größe
 Bilde K=1/² Gruppen mit max. Q=n²
Objekten
 Konstruiere J durch Aufrunden:


10.9.2007
J hat maximal K verschiedene
Objektgrößen
Wende vorigen Alg. an
Sebastian Stober - Knapsack & Bin Packing
16
Asymptotisches PTAS (2.2)

Warum benötigt J max. (1+)OPT Behälter?
 Konstruiere J‘ durch Abrunden:





10.9.2007
J‘ braucht maximal OPT Behälter
Verteilung für J‘ funktioniert auf für alle
außer die Q größten Objekte aus J, daher
OPT(J) ≤ OPT(J‘)+Q ≤ OPT+Q
OPT ≥ n (da minimale Objektgröße  nach Vorraussetzung)
Daher Q = n² ≤ OPT
Und daher: OPT(J) ≤ (1+)OPT
Sebastian Stober - Knapsack & Bin Packing
17
Asymptotisches PTAS (3)
gegeben: Probleminstanz I
1.
2.
3.
4.
Entferne Objekte der Größe 
modifizierte Probleminstanz I‘
Aufrunden, um konstante Anzahl der
Objektgrößen zu erhalten
Optimale Verteilung berechnen
Verteilung für ursprüngliche Objekte
verwenden
maximal (1+ )OPT(I‘) Behälter
5.
10.9.2007
Objekte, die kleiner als  sind, mit First
Fit verteilen
Sebastian Stober - Knapsack & Bin Packing
18
Asymptotisches PTAS (4)
a)
b)
Es werden keine weiteren Behälter
benötigt. 
M sei tatsächliche Anzahle der
benötigten Behälter




10.9.2007
Alle außer der letzte Behälter sind
mindestens zu 1- gefüllt
(M-1)(1-) ≤ Masse aller Objekte ≤ OPT
daher: M  OPT  1
(1   )
und mit 0 <  ≤ 1/2 : M ≤ (1+2)OPT+1
Sebastian Stober - Knapsack & Bin Packing
19
Bin Packing - Zusammenfassung





10.9.2007
Bin Packing ist NP-vollständig.
Es gibt kein PTAS mit relativer Güte
3/2- für  > 0 (vorausgesetzt P≠NP).
First Fit: 1,7 OPT
Decreasing First Fit: 11/9 OPT
Asymptotisches PTAS für 0 <  ≤ 1/2
mit (1+2)OPT+1
Sebastian Stober - Knapsack & Bin Packing
20

ppt