200 likes | 417 Views
Knapsack & Bin Packing. Sebastian Stober Arbeitsgruppe 5: Wie genau ist ungefähr? Sommerakademie Görlitz 2007. Knapsack a.k.a. Rucksack – Problem. (genauer: 0/1-Knapsack) Gegeben: Menge S ={ a 1 ,…, a n } von Objekten Größen bzw. Gewichte size( a i ) Z + Nutzen profit( a i )Z +
E N D
Knapsack & Bin Packing Sebastian Stober Arbeitsgruppe 5: Wie genau ist ungefähr? Sommerakademie Görlitz 2007
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 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.) 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 ----------] 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 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 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: Sebastian Stober - Knapsack & Bin Packing
Alg. nach Neuhausen & Ullmann • Siehe Tafel… Sebastian Stober - Knapsack & Bin Packing
Alg. nach Neuhausen & Ullmann 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 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) 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 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 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 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 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 verwendenmaximal (1+ )OPT(I‘) Behälter • Objekte, die kleiner als sind, mit First Fit verteilen 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 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 Sebastian Stober - Knapsack & Bin Packing