Kürzester Pfad
Ein kürzester Pfad ist in der Graphentheorie ein Pfad zwischen zwei Knoten, welcher minimale Länge hat. Haben die Kanten im Graphen alle das gleiche Kantengewicht, so ist der kürzeste Pfad äquivalent zu dem Pfad mit den wenigsten Knoten. Sollten die Kanten jedoch unterschiedliche Kantengewichte haben, so ist ein kürzester Pfad nicht notwendigerweise der Pfad, der durch die wenigsten Knoten verläuft.
Inhaltsverzeichnis |
[Bearbeiten] Definitionen
[Bearbeiten] Single-pair shortest path
Der kürzeste Pfad zwischen zwei unterschiedlichen, fest vorgegebenen Knoten.
[Bearbeiten] Single-source shortest path (SSSP)
Diese Variante des Problems der kürzesten Pfade befasst sich mit der Problemstellung wie man die kürzesten Wege zwischen einem gegebenen Startknoten und allen übrigen Knoten eines Graphen berechnet. Bei einer guten Implementierung ist für diesen Fall der Algorithmus von Dijkstra schneller als der von Bellmann und Ford.
[Bearbeiten] Single-destination shortest path
Der kürzeste Pfad zwischen einem Endknoten und allen anderen Knoten des Graphen. Dieser kann durch eine Umkehrung der Kantenrichtungen als SSSP beschrieben werden.
[Bearbeiten] All-pairs shortest path (APSP)
Diese Variante des Problems der kürzesten Pfade befasst sich mit der Problemstellung alle kürzesten Pfade zwischen zwei Knotenpaaren eines Graphen zu berechnen. Sie tritt z.B. auf, wenn für eine Straßenkarte eine Tabelle mit den kürzesten Entfernungen zwischen alle Paaren von Städten hergestellt werden soll. Das Problem könnte gelöst werden indem man für jeden Knoten einen single-source shortest path Algorithmus laufen lässt. Allerdings kann das Problem schneller gelöst werden. z.B. mit Hilfe des Floyd-Warshall-Algorithmus.
[Bearbeiten] Algorithmen
Um kürzeste Pfade in Graphen zu berechnen kann man zum Beispiel folgende Algorithmen verwenden:
- A*-Algorithmus
- Dijkstra-Algorithmus
- Bellman-Ford-Algorithmus
- Algorithmus von Floyd und Warshall
- Johnson-Algorithmus
[Bearbeiten] Beispiel
Im nebenstehend gegebenen Graphen ist ein kürzester Pfad zwischen den Knoten
und
der Pfad, welcher in
startet, und über
nach
geht. Die Pfadkosten betragen hierbei
. Will man jedoch einen Pfad von
nach
finden, so ist der direkte Weg mit Kosten von
nicht der kürzestmögliche Pfad, da der Weg von
über
nach
nur Kosten von
hat.
[Bearbeiten] Anwendungen
Algorithmen, die einen kürzesten Pfad berechnen, finden häufig Anwendung in der Berechnung von Reiserouten. So kann zum Beispiel die Entfernung zwischen zwei Städten berechnet werden. Dabei sind die Städte die Knoten des Graphen und die Straßen die Kanten.
[Bearbeiten] Kürzeste Wege mit Nebenbedingungen
Wenn jede Kante nicht nur Kosten hat, sondern auch Ressourcen, dann ist das Problem NP-schwer, also nicht mehr polynomiell lösbar.
[Bearbeiten] Literatur
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Introduction to Algorithms. 2. Auflage. MIT Press, Cambridge (Massachusetts) 2001, ISBN 0-262-03293-7.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Algorithmen - Eine Einführung. 2. Auflage. 2007. ISBN 978-3-486-58262-8
- Bernhard Korte, Jens Vygen: Combinatorial Optimization. Theory and Algorithms. 4th edition. Springer, Berlin u. a. 2008, ISBN 978-3-540-71844-4 (Algorithms and Combinatorics 21).