27.11.2012 Aufrufe

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

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.

Das Rucksack-Problem (6/8)<br />

� Lösung durch dynamische Programmierung<br />

� Beispiel: O = { o 1 , o 2 , o 3 , o 4 , o 5 }, c = 10<br />

� Gewichte: g(o 1 ) = 2, g(o 2 ) = 2, g(o 3 ) = 6, g(o 4 ) = 5, g(o 5 ) = 4<br />

� Werte: w(o 1 ) = 6, w(o 2 ) = 3, w(o 3 ) = 5, w(o 4 ) = 4 , w(o 5 ) = 6<br />

� Idee: In Iteration rückwärts die Resultate der Aufrufe btKnapsack(i,r)<br />

berechnen > Verwendung eines zweidimensionalen Feldes f:<br />

i<br />

r<br />

0 1 2 3 4 5 6 7 8 9 10<br />

5 0 0 0 0 6 6 6 6 6 6<br />

4 0 0 0 0 6 6 6 6 6 10 10<br />

3 0 0 0 0 6 6 6 6 6 10 11<br />

2 0 0 3 3 6 6 9 9 9 10 11<br />

Beispiel*: f[4,9]=btKnapsack(4,9)=10 (d.h. o 4 <strong>und</strong> o 5 haben bei<br />

Restkapazität 9 noch Platz: Wert der Füllung = 10)<br />

*Anstelle der Java-üblichen Schreibweise f[4][9] wird im Foglenden f[4,9] verwendet.<br />

6<br />

12/47

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!