Easy Coding
  Forum Wiki Tagging Projekte Karte RSS
» Start
» All Recent Changes
» Wiki Suche
» Wiki Hilfe

Algorithmen

How To's Informationen

edit SideBar

Neue Wiki Eintrage finden Sie unter easy-coding.de/wiki.

Dijkstra

Der Dijkstra Algorithmus dient der Berechnung eines kürzesten Pfades zwischen einem Startknoten und einem beliebigen Knoten in einem kantengewichteten Graphen.

Die Gewichte dürfen dabei nicht negativ sein. Für Graphen mit negativen Gewichten ist der Bellman-Ford-Algorithmus geeignet.

Beispiel

Betrachten Sie das Beispiel rechts Suche den Weg von "A nach E"

ABCDE
0-{}
027-{A}
0271315-{A,B}
027109-{A,B,C}
027109-{A,B,C,E}
027109-{A,B,C,E,D}

Ergebnis: Der kürzeste Weg ist [AC],[CE] mit dem Gewicht 9

Algorithmus

G bezeichnet den gewichteten Graphen mit V (engl. vertex) als Knotenmenge, E (engl. edge) als Kantenmenge und w als Gewichtsfunktion, welche Kanten auf positive reelle Zahlen abbildet. Der Knoten s ist der Startknoten, Q ist die Prioritätswarteschlange der noch zu bearbeitenden Knoten und g ist ggf. ein spezieller Zielknoten, bei dem abgebrochen werden kann, wenn seine Distanz zum Startknoten bekannt ist.

Nach Ende des Algorithmus enthält d[v] die Abstände aller Knoten v zu s. In π[v] ist ein spannender Baum der von s aus ausgehenden minimalen Wege in Form eines In-Tree gespeichert.

Wird bei Erreichen von g abgebrochen, so enthalten d[v] und π[v] diese Werte nur für alle zuvor betrachteten Knoten v. Das sind mindestens die, die kleineren Abstand als g zu s besitzen.

Weblinks

Zuletzt geändert am 28.09.2006 18:36 Uhr
  Impressum