| ID | Filiale | Luftlinie ab Raunheim (km) |
|---|---|---|
| C1 | Wiesbaden | 18,3 |
| C2 | Mainz | 13,9 |
| C3 | Frankfurt | 19,8 |
| C4 | Rüsselsheim | 4,0 |
| C5 | Darmstadt | 19,4 |
| C6 | Offenbach | 24,6 |
Kapitel 13 · Supply Chain Management & Distribution
Nach dieser Einheit können Sie …
Literatur zur Vertiefung
Woher kommen eigentlich die Transportkosten?
Rückblick
In der Standort- und der Transportplanung waren die Transportkosten \(c_{ij}\) vorgegeben. Aus der Einheit Verkehrsmittel und Antriebe kennen wir Kostensätze je km. Es fehlen die Entfernungen: \(c_{ij}\) = Kostensatz × Entfernung. Im Januar endet das Weihnachtsgeschäft: Die Zentralküche Raunheim beliefert wieder alle sechs Filialen allein.
Auftrag der Disposition
Die neue Disponentin möchte die Kostensätze selbst nachvollziehen. Dafür braucht sie die Straßenentfernungen
Erste Idee: Luftlinie (Haversine, Einheit Standortplanung I)
| ID | Filiale | Luftlinie ab Raunheim (km) |
|---|---|---|
| C1 | Wiesbaden | 18,3 |
| C2 | Mainz | 13,9 |
| C3 | Frankfurt | 19,8 |
| C4 | Rüsselsheim | 4,0 |
| C5 | Darmstadt | 19,4 |
| C6 | Offenbach | 24,6 |
Lkw fahren nicht Luftlinie: Rhein- und Mainbrücken, Autobahnkreuze und Ortsdurchfahrten bestimmen die tatsächliche Strecke.
Modellierung
Graph \(G = (V, E)\)
Weg von \(s\) nach \(t\): Folge benachbarter Knoten; Länge = Summe der Kantengewichte
Das SushiFresh-Netz hat 10 Knoten und 16 Kanten (vereinfacht).
Problemvarianten
| Variante | Frage | Verfahren | Beispiel |
|---|---|---|---|
| 1 → 1 | Kürzester Weg von s nach t | Dijkstra (mit Abbruch), A* | Navigationssystem |
| 1 → alle | Kürzeste Wege von s zu allen Knoten | Dijkstra, Bellman-Ford | Kostensätze ab Zentralküche |
| alle → alle | Kürzeste Wege zwischen allen Knotenpaaren | Floyd-Warshall oder n × Dijkstra | Distanzmatrix für die Tourenplanung |
Als Netzwerkflussproblem
Ein Kürzeste-Wege-Problem ist ein Transportproblem auf einem Netz: Eine Einheit fließt von \(s\) nach \(t\).
\[\min \sum_{(v,w) \in E} c_{vw} \, x_{vw}\] \[\sum_{w} x_{vw} - \sum_{w} x_{wv} = \begin{cases} 1 & v = s \\ -1 & v = t \\ 0 & \text{sonst} \end{cases}\] \[x_{vw} \geq 0\]
Mit spezialisierten Algorithmen geht es aber deutlich schneller als mit einem LP-Solver.
Idee
Idee (Dijkstra 1959): Breite dich vom Startknoten \(s\) wie eine Welle aus. Jeder Knoten \(v\) trägt eine Marke \(d(v)\) (bisher kürzeste bekannte Entfernung) und einen Vorgänger \(p(v)\). In jedem Schritt wird der nächstgelegene noch offene Knoten endgültig („permanent“) markiert.
Zwei Arten von Marken
Warum ist der kleinste temporäre Wert endgültig? Jeder andere Weg müsste über einen Knoten mit größerer Marke laufen und kann wegen \(c_{vw} \geq 0\) nicht kürzer werden.
Kernoperation: Markenkorrektur
Für jeden Nachbarn \(w\) des neu permanenten Knotens \(v\): \[d(w) \leftarrow \min\big(d(w),\; d(v) + c_{vw}\big)\] Verbessert sich \(d(w)\), wird \(p(w) \leftarrow v\) gesetzt.
Voraussetzung: keine negativen Kantengewichte.
Algorithmus
Initialisierung: \(d(s) = 0\), \(d(v) = \infty\) für alle \(v \neq s\); alle Marken temporär; \(p(v) = \text{–}\)
Wiederhole, bis alle Knoten permanent sind:
Ergebnis: \(d(v)\) = kürzeste Entfernung von \(s\) nach \(v\); der Weg ergibt sich durch Rückverfolgung der Vorgänger \(p(v)\).
Aufwand
Notation im Fallbeispiel
Marke „\(d\) | \(p\)“, z. B. „15 | MH“ = 15 km, Vorgänger Mönchhof-Dreieck
Fallbeispiel – Iteration 1: Start in Raunheim
Schritt
Legende
Fallbeispiel – Iteration 3: Rüsselsheim
Schritt
Die Marke von C4 bleibt 6: Der Umweg über MH (\(5 + 10 = 15\)) war nie besser.
Fallbeispiel – Iteration 4: Markenkorrektur in Frankfurt
Schritt
Der direkte Weg nach Frankfurt (33 km) wird durch den Weg über die Autobahn (28 km) ersetzt. Temporäre Marken sind eben nur vorläufig.
Fallbeispiel – Tableau aller Iterationen
| It. | perm. | R | MH | WK | FK | C1 | C2 | C3 | C4 | C5 | C6 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | R | 0 | 5 | R | ∞ | ∞ | ∞ | ∞ | 33 | R | 6 | R | ∞ | ∞ |
| 2 | MH | 5 | 18 | MH | 15 | MH | ∞ | ∞ | 33 | R | 6 | R | ∞ | ∞ | |
| 3 | C4 | 18 | MH | 15 | MH | ∞ | 22 | C4 | 33 | R | 6 | 39 | C4 | ∞ | ||
| 4 | FK | 18 | MH | 15 | ∞ | 22 | C4 | 28 | FK | 39 | C4 | 27 | FK | |||
| 5 | WK | 18 | 26 | WK | 22 | C4 | 28 | FK | 39 | C4 | 27 | FK | ||||
| 6 | C2 | 26 | WK | 22 | 28 | FK | 39 | C4 | 27 | FK | |||||
| 7 | C1 | 26 | 28 | FK | 39 | C4 | 27 | FK | ||||||
| 8 | C6 | 28 | FK | 39 | C4 | 27 | |||||||
| 9 | C3 | 28 | 39 | C4 | ||||||||
| 10 | C5 | 39 |
Zellen: „\(d\) | \(p\)“ (temporäre Marke), grün = wird in dieser Iteration permanent, rot = in dieser Iteration verbessert, leer = bereits permanent.
Nach 10 Iterationen sind alle Knoten permanent. Die Reihenfolge entspricht aufsteigenden Entfernungen.
Ergebnis: Kürzeste-Wege-Baum ab Raunheim
| Filiale | Kürzester Weg | km | Luftlinie | Umweg-faktor |
|---|---|---|---|---|
| C1 | R → MH → WK → C1 | 26 | 18,3 | 1,42 |
| C2 | R → C4 → C2 | 22 | 13,9 | 1,59 |
| C3 | R → MH → FK → C3 | 28 | 19,8 | 1,41 |
| C4 | R → C4 | 6 | 4,0 | 1,51 |
| C5 | R → C4 → C5 | 39 | 19,4 | 2,01 |
| C6 | R → MH → FK → C6 | 27 | 24,6 | 1,10 |
Die Vorgänger bilden einen Baum (grün): Von jedem Knoten führt genau ein kürzester Weg zurück nach Raunheim. Der mittlere Umwegfaktor liegt bei 1,51. Typische Werte in Deutschland liegen bei 1,2–1,4.
Implementierung in R
# W: Gewichtsmatrix (0 = keine Kante)
dijkstra <- function(W, start) {
ids <- rownames(W)
d <- setNames(rep(Inf, nrow(W)), ids)
pred <- setNames(rep(NA, nrow(W)), ids)
perm <- setNames(rep(FALSE, nrow(W)), ids)
d[start] <- 0
while (!all(perm)) {
# 1. kleinste temporäre Marke
v <- names(which.min(ifelse(perm, Inf, d)))
# 2. permanent markieren
perm[v] <- TRUE
# 3. Markenkorrektur der Nachbarn
for (w in ids[W[v, ] > 0 & !perm]) {
if (d[v] + W[v, w] < d[w]) {
d[w] <- d[v] + W[v, w]
pred[w] <- v
}
}
}
list(d = d, pred = pred)
}Alle Paare: \(n\)-mal Dijkstra
Eigenschaften der Distanzmatrix
Ausblick auf Einheit Tourenplanung
Fährt der Kühltransporter jede Filiale einzeln an (Pendelverkehr), legt er täglich \(2 \cdot \sum_j d_{Rj} =\) 296 km zurück, 45 % mehr als mit den geschätzten Distanzen der Standortplanung II (204 km, Einheit Verkehrsmittel und Antriebe). Geht das mit einer Rundtour kürzer?
Varianten und Erweiterungen
Weitere Algorithmen
Was ist „kurz“?
Je nach Zielgröße ergeben sich unterschiedliche kürzeste Wege.
Das Wichtigste in Kürze
Übungsaufgaben zu dieser Einheit
Aufgaben zur Klausurvorbereitung (Teil 1) und eine vertiefende Fallstudie (Teil 2) finden Sie in Fallstudie 9: Kürzeste Wege.

Supply Chain Management