Folgerungen
           
Das kürzeste-Wege-Problem
           
Gliederung
Dijkstra in Pseudocode
Knoten, die in die Menge M aufgenommen worden sind, heißen
markiert.
Für die Implementation des Dijkstra-Algorithmus ist es besser, an
Stelle der Menge M die Menge
U = {v aus V : Dist(v) < unendlich, v nicht aus M}
zu betrachten. Diese Menge, die aus den noch nicht markierten Knoten besteht, zu denen der Algorithmus schon einen provisorischen Weg gefunden hat, heißt Front. Neu formuliert heißt der Algorithmus jetzt so:
- Dist(s) := 0, U leer
- for v aus V mit (s,v) aus E do
- Dist(v) = c(s,v), Vor(v) = s
- U = U + {v}
- end for
- while U nicht leer do
- wähle u aus U mit Dist(u) minimal (finde min)
- U = U - {u} (lösche min)
- for all (u,v) aus E do
- if Dist(u) + c(u,v) < Dist(v) then
- Dist(v) = Dist(u) + c(u,v), Vor(v) = u (verringere)
- if v nicht aus U then U = U + {v} (füge ein)
- end if
- end for
- end while