Transcript ppt
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 BZ+ 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
oI, 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:
i0
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)
aS
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
profit ai
2. Für jedes Objekt 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:
10.9.2007
Sei S* die optimale Menge
Für alle aS unterscheiden sich profit(a) und
Kprofit‘(a) maximal um K, daher:
profit(S*) – Kprofit‘(S*) ≤ nK
S‘ muss mindestens so gut sein wie S* unter den
modifizierten Profits, da Alg. optimal. Daher
profit(S‘) ≥ Kprofit‘(S*) ≥ profit(S*)-nK = OPT-P
und da OPT ≥ P folgt: profit(S‘) ≥ (1- )OPT
Komplexität:
P
n
O n 2 O n 2
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 KZ+
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