28.12.2013 Aufrufe

Teil 4: Algorithmen-Entwurfstechniken Idee der Greedy-Algorithmen ...

Teil 4: Algorithmen-Entwurfstechniken Idee der Greedy-Algorithmen ...

Teil 4: Algorithmen-Entwurfstechniken Idee der Greedy-Algorithmen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!