Dijkstra - Algorithmus
Aus Byte-Welt Wiki
Version vom 19. Juli 2007, 22:03 Uhr von EagleEye (Diskussion | Beiträge) (Die Seite wurde neu angelegt: {{ Der Algorithmus ''Shortest Path First'' wurde von Edsger Wybe Dijkstra entwickelt und wird unteranderem in der Netzwerktechnik verwendet, um den kürzesten ...)
{{
Der Algorithmus Shortest Path First wurde von Edsger Wybe Dijkstra entwickelt und wird unteranderem in der Netzwerktechnik verwendet, um den kürzesten Pfad zwischen zwei Knoten in einem Netzwerk zu ermitteln.
In dem Algorithmus werden alle Knoten in zwei Kategorien unterteilt:
- Gruppe der beurteilten Knoten (E)
- Gruppe der restlichen Knoten (R)
- Geordnete Liste der Pfade (O) anhand ihrer Metrik (steigend)
Für die beurteilten Knoten ist der kürzeste Pfad bekannt.
- Initialsierung der einzelnen Gruppen, E enthält nur den Quellknoten S und R alle anderen Knoten. Die Liste O wird nur mit dem Ein-Segment-Pfad initialisiert, welcher bei S beginnt. Die Kosten der Pfade entspricht der Metrik der Verbindung
- Wenn die Liste O leer ist , oder der erste Pfad die Metrik unendlich hat werden alle übringen Knoten in R als nicht erreichbar markiert und der Algorithmus ist beendet.
- Entnehme den kürzesten Pfad P aus O (1.Element), Entnehme den längsten Pfad V aus O (das letzte Element), wenn V schon in E enthalten ist mache mit Schritt 2 weiter. sonst ist P der kürzeste Pfad zu V, daher verschiebe V von R nach E.
- Erzeugen einer neuen Gruppe von Pfaden, die mit V beginnen und alle anderen Verbindungen verketten. Die Kosten sind die Summe der Kosten von P und der Verbindung die angehängt wurde. Einfügen der neuen Verbindung zu O und fortfahren mit Schritt 2.
Der Aufwand des Algorithmus ist O(N^2)