Dynamisches Programmieren
"kürzer geht's nicht: optimierte Wege im Lager"
Autor(en): Andreas Frommer, Katrin Schäfer - Juni 2000
Kapitelübersicht
Einführung in die Thematik, Erläuterung einiger Begriffe
Hier kann man selbst versuchen, kürzeste Wege zu finden.
Das algorithmische Prinzip der dynamischen Programmierung wird vorgestellt.
Wie kann man das Prinzip der dynamischen Programmierung auf das Lager-Problem anwenden?
Die Arbeitsweise des Algorithmus kann Schritt für Schritt verfolgt werden.
Arbeitsblatt
Aufgabe 1
(Zeit statt Strecke)
Statt die Länge des zurückgelegten Weges möchte man gewöhnlich lieber die benötigte Zeit minimieren.
a) Unter welchen (idealisierten) Voraussetzungen ist die Minimierung des Weges gleichbedeutend mit der Minimierung der Zeit?
b) Das Wenden eines Staplers innerhalb einer Gasse wird in der Regel einige Zeit kosten, ohne dass dabei Weg zurückgelegt wird. Geben Sie eine Möglichkeit an, wie man dies im Rahmen der vorgestellten Wegminimierungsaufgabe trotzdem berücksichtigen könnte.
Aufgabe 2
(Vergleich der Wege)
Im Applet der letzten Seite werden für jede zu befahrene Gasse stets ein roter (minimale Länge bei Ausfahrt am Nord-Ende) und ein blauer (minimale Länge bei Ausfahrt am Süd-Ende) Weg betrachtet.
Um wieviel unterscheiden sich die Längen der beiden Wege höchstens? Begründen Sie Ihre Antwort.
Aufgabe 3
(0/1-Rucksack)
Gegeben sind ein Rucksack mit einem Fassungsvermögen V und n Gegenstände G,..,G. Gegenstand G besitzt das Volumen V und erbringt einen Ertrag E.
Gesucht ist eine Füllung des Rucksacks mit Gegenständen, so dass der Gesamtertrag maximal ist ("optimale Füllung"). Das Gesamtvolumen der Gegenstände darf dabei natürlich V nicht überschreiten.
a) Bestimmen Sie eine solche optimale Füllung für das folgende Beispiel:
V = 100, n=10
G: V = 10, E = 5
G: V = 20, E = 8
G: V = 5, E = 20
G: V = 30, E = 30
G: V = 25, E = 20
G: V = 15, E = 10
G: V = 5, E = 4
G: V = 10, E = 12
G: V = 10, E= 5
G: V = 25, E = 25
b) Diese Aufgabe kann mit Dynamischem Programmieren gelöst werden. Bearbeiten Sie dazu folgende Fragen und Aufgaben:
- Durch welche Optimalitätsbedingung ist die gesuchte Lösung charakterisiert?
- Geben Sie verwandte Probleme kleinerer Größe an, die eine entsprechende Optimalitätsbedingung erfüllen. Mögliche Lösungen größerer Probleme sollen sich durch Erweiterung der Lösungen kleinerer Probleme gewinnen lassen. Was ist die Problemgröße?
- Formulieren Sie ein Kriterium, wonach die Erweiterung der Lösung eines kleineren Problems nicht auf eine Lösung eines größeren Problems führen kann.
- Formulieren Sie einen Algorithmus, der auf dem Prinzip des dynamischen Programmierens beruht.
- Illustrieren Sie die Arbeitsweise des Algorithmus an dem Beispiel aus a).
Drucken
Inhalt
Dynamisches Programmieren ist ein algorithmisches Prinzip, das zur Lösung bestimmter Optimierungsaufgaben herangezogen werden kann.
Ausgehend von dem Aufhänger "Optimiere die Weglänge bei der Durchfahrt durch ein Warenlager" wird das Prinzip allgemein beschrieben und auf die konkrete Aufgabenstellung mittels interaktiver Applets angewendet.
Glossar