Das Rucksack-Problem¶
🎯 Optimiere die Beute eines Raubzugs.

Ein Einbrecher ist in eine Villa eingebrochen. Dort findet er so viele Wertgegenstände vor, dass er nicht alle in seinen Rucksack packen kann. Schreibe ein Programm, das eine optimale Auswahl trifft.
Der Einbrecher ist ein erfahrener Profi, der den Marktwert und die Größe jedes Gegenstandes in Null Komma Nichts genau einschätzen kann:
Gegenstand |
Größe |
Wert |
|---|---|---|
Laptop |
2 |
600,- |
Silberbesteck |
2 |
400,- |
Stereoanlage |
3 |
300,- |
Juwelen |
2 |
1100,- |
Vase |
5 |
700,- |
Kamera |
2 |
500,- |
Gemälde |
4 |
900,- |
Bargeld |
1 |
800,- |
Der Rucksack hat ein Fassungsvermögen von 8.
When Dein Programm es schafft, Gegenstände im Wert 3000 einzupacken, taugt es als App für Amateur-Einbrecher.
Hinweise¶
die optimale Lösung verwendet dynamische Programmierung
verwende den unten angegebenen Pseudocode
Pseudocode des Rucksack-Algorithmus¶
Erstelle eine Liste, die für eine jede Rucksackgröße die beste(n) Kombination(en) von Gegenständen aufnehmen wird
Füge für einen Rucksack der Größe 0 eine leere Kombination ein
Beginne mit einem Rucksack der Größe 1
Kopiere die beste Kombination für die aktuelle Größe aus der vorangegangenen Größe
Gehe alle Gegenstände durch
Erstelle eine neue Kombination für einen Gegenständ plus die beste Kombination für den noch verbliebenen Platz
Ist die Kombination wertvoller als der bisherige Kandidat, ersetze die bisherige Kombination
Ist die Kombination gleich viel wert, speichere beide
Erhöhe die Größe des Rucksacks um 1
Wiederhole Schritt 4, bis Du die gewünschte Größe erreichst
Gib die beste Kombination für die gewünschte Größe aus