Knapsack & Bin Packing Sebastian Stober Arbeitsgruppe 5: Wie genau ist ungefähr? Sommerakademie Görlitz 2007
Sebastian Stober - Knapsack & Bin Packing 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
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
Knapsack – Komplexität / Greedy Knapsack ist NP-vollständig Greedy Heuristik: 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.) 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
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: Optimale Auswahl ergibt sich daraus, welcher Fall bei v(n,B) aufgetreten ist. [ignorieren] [----------- hineinlegen ----------] 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
Knapsack – Dyn. Programmierung Iterative Berechnung der v(i,b) und Speicherung in einer Tabellenstruktur (Dynamische Programmierung) Komplexität: pseudo-polynomiell 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
Sebastian Stober - Knapsack & Bin Packing 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: Für geg. > 0 definiere K=P/n Für jedes Objekt ai, definiere Nutzen Finde optimale Menge S‘ unter Verwendung der gerundeten Werte 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
Sebastian Stober - Knapsack & Bin Packing Knapsack – FPTAS Relative Approximationsgüte: (1+) Beweis: 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: 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
Alg. nach Neuhausen & Ullmann Siehe Tafel… 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
Alg. nach Neuhausen & Ullmann 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
2. Bin Packing
Sebastian Stober - Knapsack & Bin Packing Bin Packing – Problem Gegeben: n Objekte Größen a1,…,an (0,1] Gesucht: Aufteilung der Objekte in Behälter (Einheitsgröße 1) mit minimaler Anzahl der Behälter 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
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
Sebastian Stober - Knapsack & Bin Packing 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 Sortiere die Objekte nach absteigender Größe Relative Güte: 11/9 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
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 Typen von Behälter (nach Füllstand) mögliche Verteilungen Polynom in n 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
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: J hat maximal K verschiedene Objektgrößen Wende vorigen Alg. an 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
Asymptotisches PTAS (2.2) Warum benötigt J max. (1+)OPT Behälter? Konstruiere J‘ durch Abrunden: 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 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
Asymptotisches PTAS (3) gegeben: Probleminstanz I 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 Objekte, die kleiner als sind, mit First Fit verteilen 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
Asymptotisches PTAS (4) Es werden keine weiteren Behälter benötigt. M sei tatsächliche Anzahle der benötigten Behälter Alle außer der letzte Behälter sind mindestens zu 1- gefüllt (M-1)(1-) ≤ Masse aller Objekte ≤ OPT daher: und mit 0 < ≤ 1/2 : M ≤ (1+2)OPT+1 10.9.2007 Sebastian Stober - Knapsack & Bin Packing
Bin Packing - Zusammenfassung 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 10.9.2007 Sebastian Stober - Knapsack & Bin Packing