Dijkstra Algorithmus
Vorgehen
Der Algorithmus von Dijkstra berechnet in einem ungerichteten, gewichteten Graphen den Kürzest Weg von einem Punkt (s) zu einem anderen Punkt (t).
Dabei werden ausgehend vom Start immer alle angrenzenden Wege untersucht. Ziel ist es sich solang durch den Graphen zu „hangeln“ bis jeder Knoten markiert wurde. Damit ist sichergestellt, dass alle möglichen Wege untersucht wurden.
Wird ein neuer kürzester Weg zwischen 2 Knoten gefunden, wird der so gefundene Knoten für den nächsten Schritt ausgewählt. Findet der Algorithmus so eine Verbindung zwischen 2 Knoten, die kürzer ist als eine bereits bekannte wird diese verwendet, andernfalls wird die Verbindung verworfen.
Beispiel
| Knoten | T | |||||
|---|---|---|---|---|---|---|
| s | b | c | d | e | t | |
| 0 | ∞ | ∞ | ∞ | ∞ | ∞ | {s,b,c,d,e,t} |
| 2 | 8 | ∞ | ∞ | 14 | {b,c,d,d,e,t} | |
| 8 | ∞ | 7 | 14 | {c,d,e,t} | ||
| 8 | 12 | 14 | {c,d,t} | |||
| 11 | 14 | {d,t} | ||||
| 14 | {t} | |||||
Aus der Tabelle können nun auch die kürzesten Verbindungen vom Start zu jedem
anderen Knoten abgelesen werden (unterstrichene Werte):
- s-b: 2
- s-c: 8
- s-d: 11
- s-e: 7
- s-t: 14
Erklärung
- im Schritt 1 wird der Baum initialisiert. Vom Startpunkt aus kann nur zu sich selbst gegangen werden, die anderen Punkte sind nicht erreichbar (∞)
- Im 2. Schritt werden alle Verbindungen vom Knoten
sgesucht und der Weg mit der kürzesten Entfernung gewähltb. Damit enthält die Menge der ungefärbten Knoten T (Restknoten) zu diesem Zeitpunkt alle außer dem Startknoten selbst. - Im 3. Schritt ist
bnicht mehr Teil der ungefärbten Knoten. Es wird nun geprüft zu welchen Knoten gegangen werden kann. Dabei ist der Wegs-cgenau so weit wies-b-c. - Analog zu 3.
- Analog zu 3.
- Bei Schritt 4 wurde
cals Knoten gewählt. Der Wegs-c-dist mit der Länge 11 kürzer, als der bereits bekannte Wegs-b-e-d(12). Daher ändert sich hier der Wert im Vergleich zu Schritt 4.
