Jetzt wenden wir das Prinzip des dynamischen Programmierens auf unsere Kommissionierungsaufgabe an.
Aufgabe: kürzester Weg beim Kommissionieren
Gegeben |     |
ist eine Menge von Gassen , ..., (das Lager) und ein Auftrag mit Picks in bestimmten dieser Gassen, bezeichnet mit , ..., . |
Gesucht |
ist der kürzeste Weg
|
|
Dabei soll der Weg die Gassen nach aufsteigenden Nummern durchlaufen, d.h. i(1) < i(2) < .... < i(m). |
Voraussetzungen für dynamisches Programmieren
Die Problemgröße ist m, die Anzahl der Gassen, in denen gepickt wird.
Als verwandte Teilprobleme kleinerer Größe j betrachten wir alle Aufgaben, den kürzesten Weg zu finden
Für jede Problemgröße j sind dies zwei Aufgaben (Nord-Ende und Süd-Ende).
Warum ist dies sinnvoll?
Die Lösung zu einem der beiden Probleme der Größe j lässt sich durch Erweiterung der Lösungen zu den beiden Problemen der Größe j-1 gewinnen:
erstes Problem der Größe j
Der kürzeste Weg mit Ausfahrt am Nord-Ende von Gasse ist einer der folgenden vier:
der kürzeste Weg mit Ausfahrt am Nord-Ende von Gasse , ergänzt um
der kürzeste Weg mit Ausfahrt am Süd-Ende von , ergänzt um
nicht optimale Erweiterungen ausschließen
Von allen Wegen können wir jeweils die Länge berechnen. Der kürzeste davon ist der gesuchte kürzeste Weg mit Ausfahrt am Nord-Ende von Gasse .
zweites Problem der Größe j
Analoges gilt für den kürzesten Weg mit Ausfahrt am Süd-Ende von Gasse mit den vier Typen SSS, SNS, NNS, NSS.
Und die Rückfahrt zur Verpackungsstation?
Beim Ausgangsproblem war der Weg durch das Lager an der Verpackungsstation zu beenden. Diese Aufgabenstellung passt in unser soeben entwickeltes Schema, wenn wir die Verpackungsstation einfach als letzte anzufahrende Gasse betrachten, mit der Besonderheit, dass die Gassenlänge Null ist und Nord- und Süd-Ende identisch sind.