Sei
Mit Pseudocode:
if (delta[s][v] > delta[s][u] + weight(u, v)) {
delta[s][v] = delta[s][u] + weight(u, v);
}Beispiel
graph LR A---|2|B A---|4|C B---|1|C
- Wir schauen uns alle Knoten von A aus an.
- Wir finden B, zu dem der Pfad 2 kostet, und C, zu dem der Weg 4 kostet. Diese Werte speichern wir, am Besten in den Knoten.
- Wir schauen weiter von B aus: Es gibt einen Weg mit Kosten 1 nach C. Hier wird relaxiert:
- Bisher war uns nur bekannt, den Weg mit Kosten 4 nach C zu nehmen.
- Über den Weg mit B sind die Kosten 2+1=3, was kleiner ist als der bisherige Weg.
- Deswegen wird er “ausgetauscht”.
Siehe auch