Teil 4: Algorithmen-Entwurfstechniken Idee der Greedy-Algorithmen ...
Teil 4: Algorithmen-Entwurfstechniken Idee der Greedy-Algorithmen ...
Teil 4: Algorithmen-Entwurfstechniken Idee der Greedy-Algorithmen ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Bin Packing - Problemstellung<br />
<strong>Teil</strong> 4:<br />
<strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong><br />
• <strong>Greedy</strong>-<strong>Algorithmen</strong><br />
– <strong>Idee</strong><br />
– Job Scheduling<br />
– Datenkompression mit dem Huffman-Verfahren<br />
– Bin Packing<br />
• <strong>Teil</strong>e-und-Herrsche-Verfahren<br />
• Dynamisches Programmieren<br />
Problem:<br />
Gegeben seien n Gegenstände mit den Größen<br />
s 1 , s 2 , …, s n ,<br />
wobei 0 < s i ≤ 1.<br />
Gesucht ist eine möglichste geringe Zahl von Behältern (bins) mit Größe 1,<br />
so dass alle Gegenstände untergebracht werden können.<br />
Aproximative <strong>Algorithmen</strong><br />
Da Bin Packing NP-vollständig ist, kann nicht erwartet werden, dass es ein effizientes<br />
Verfahren zum Finden einer optimalen Lösung gibt.<br />
Wir werden effiziente <strong>Greedy</strong>-<strong>Algorithmen</strong> behandeln, die nur suboptimale Lösung liefern,<br />
d.h. die die optimale Lösung wird approximiert.<br />
Online- und Offline-<strong>Algorithmen</strong><br />
Bei Online-<strong>Algorithmen</strong> muss <strong>der</strong> Algorithmus einen Gegenstand sofort einem Behälter<br />
zuordnen, ohne die nächsten Gegenstände zu kennen.<br />
Bei den Offline-<strong>Algorithmen</strong> kennt <strong>der</strong> Algorithmus alle Gegenstände im voraus.<br />
O. Bittel; Juli 2007 <strong>Algorithmen</strong> und Datenstrukturen - <strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong> 4-17<br />
O. Bittel; Juli 2007 <strong>Algorithmen</strong> und Datenstrukturen - <strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong> 4-18<br />
Online Bin Packing (1)<br />
Next Fit:<br />
Verwalte die Behälter in einer festen Reihenfolge.<br />
Gehe vom zuletzt verwendeten Behälter (einschl.) aus und<br />
ordne den Gegenstand i dem nächst besten Behälter zu, in dem i noch Platz hat.<br />
Beispiel<br />
Gegenstände: 0.2, 0.5, 0.4, 0.7, 0.1, 0.3, 0.8<br />
leer<br />
0.5<br />
0.2<br />
B 1<br />
leer<br />
0.1<br />
0.7<br />
B 3<br />
leer<br />
0.8<br />
leer<br />
leer<br />
0.4<br />
0.3<br />
Eigenschaft<br />
Sei m die optimale Anzahl Behälter, um n Gegenstände einzupacken.<br />
Dann benötigt Next Fit maximal 2m Behälter.<br />
Es gibt eine Folge von Gegenstände, so dass Next Fit 2m-2 Behälter benötigt.<br />
(Beweis siehe [Weiss 1999])<br />
O. Bittel; Juli 2007 <strong>Algorithmen</strong> und Datenstrukturen - <strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong> 4-19<br />
B 5<br />
Online Bin Packing (2)<br />
First Fit:<br />
Verwalte die Behälter in einer festen Reihenfolge.<br />
Gehe immer vom ersten Behälter aus und<br />
ordne den Gegenstand i dem erst besten Behälter zu, in dem i noch Platz hat.<br />
Beispiel<br />
Gegenstände: 0.2, 0.5, 0.4, 0.7, 0.1, 0.3, 0.8<br />
leer<br />
0.1<br />
0.5<br />
leer<br />
0.3<br />
0.4<br />
0.2<br />
B 1<br />
B 2<br />
leer<br />
0.7<br />
B 3<br />
leer<br />
0.8<br />
B 4<br />
Eigenschaft<br />
Sei m die optimale Anzahl Behälter, um n Gegenstände einzupacken.<br />
Dann benötigt First Fit maximal ⎡(17/10)m⎤ Behälter.<br />
Es gibt eine Folge von Gegenstände, so dass First Fit (17/10)(m-1) Behälter benötigt.<br />
(Beweis siehe [Weiss 1999])<br />
O. Bittel; Juli 2007 <strong>Algorithmen</strong> und Datenstrukturen - <strong>Algorithmen</strong>-<strong>Entwurfstechniken</strong> 4-20