Kürzeste Wege

Eine der häufigsten Anwendungen von Graphen im Alltag ist die Darstellung von Infrastruktur- und Kommunikationsnetzen. Man denke beispielsweise an Straßenkarten, Buslinienpläne oder Flugverbindungen, all diese Dinge können durch Graphen repräsentiert werden.

Die Frage nach einem Weg zwischen zwei gegebenen Knoten in solchen Graphen ist eine besonders wichtige Anwendung. Meistens geht es dabei um ‘kostengünstige’ Wege, wobei ‘kostengünstig’ durchaus verschiedene Bedeutungen haben kann. Vielleicht such man nach dem kürzesten oder schnellsten Weg, vielleicht nach dem mit dem geringsten Energieverbrauch, den geringsten Reisekosten oder auch dem, der am wenigsten Geschwindigkeitskontrollen enthält.

logo for the category 'A*-Algorithmus'
A*-Algorithmus

Der A*-Algorithmus (sprich ‘A Stern’) arbeitet ähnlich wie der Dijkstra-Algorithmus. Zusätzlich wird aber noch eine Abschätzung für die Distanz zwischen Knoten verwendet, der Algorithmus wird so in vielen Fällen beschleunigt.

logo for the category 'Algorithmus von Dijkstra'
Algorithmus von Dijkstra

Der Algorithmus von Dijkstra berechnet einen kürzesten Weg zwischen zwei beliebigen Knoten, falls alle Kantengewichte im Graphen nichtnegativ sind.

logo for the category 'Bellman-Ford-Algorithmus'
Bellman-Ford-Algorithmus

Im Gegensatz zum A*-Algorithmus und dem Algorithmus von Dijkstra kann der Bellman-Ford-Algorithmus auch dann eingesetzt werden, wenn der Graph negative Kantengewichte enthält.

logo for the category 'Floyd-Warshall-Algorithmus'
Floyd-Warshall-Algorithmus

Mit dem Floyd-Warshall-Algorithmus bestimmt man kürzeste Wege zwischen allen Knotenpaaren im Graphen. Der Algorithmus funktioniert selbst dann, wenn der Graph negative Kantengewichte enthält.