An algorithm for finding a graph geodesic, i.e., the shortest path between two graph vertices in a graph.
It functions by constructing a shortest-path tree from the initial vertex to every
other vertex in the graph. The algorithm is implemented as Dijkstra[g] in the Mathematica package Combinatorica`) .
The worst-case running time for the Dijkstra algorithm on a graph with nodes and edges is because it
allows for directed cycles. It even finds the shortest paths from a source node to all other nodes in the graph. This is basically
for node selection and for distance
updates. While is the best possible complexity
for dense graphs, the complexity can be improved significantly for sparse graphs.
With slight modifications, Dijkstra's algorithm can be used as a reverse algorithm that maintains minimum spanning trees for the sink node. With further modifications, it can be extended to become bidirectional.
The bottleneck in Dijkstra's algorithm is node selection. However, using Dial's implementation, this can be significantly improved for sparse graphs.
In the Season 3 episode "Money For Nothing" (2007) of the television crime drama
NUMB3RS, mathematics professor Charlie Eppes uses Dijkstra's
algorithm to find the most likely escape routes out of Los Angeles for a hijacked
truck that is carrying millions of dollars in cash and medical supplies and also
two kidnapping victims.
Portions of this entry contributed by Andreas
Lauschke
Portions of this entry contributed by Len Goodman
Dijkstra, E. W. "A Note on Two Problems in Connection with Graphs."
Numerische Math. 1, 269-271, 1959.
Skiena, S. "Dijkstra's Algorithm." §6.1.1 in Implementing Discrete Mathematics: Combinatorics and Graph Theory
with Mathematica. Reading, MA: Addison-Wesley, pp. 225-227, 1990.
Whiting, P. D. and Hillier, J. A. "A Method for Finding the Shortest Route through a Road Network." Operational Res. Quart. 11, 37-40,
1960.
|