Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
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