Introduction to All-Pairs Shortest Paths
Understand how to solve the all-pairs shortest path problem by computing shortest distances between every pair of vertices in a graph. Explore implementations that use single-source shortest path algorithms repeatedly, and learn strategies such as edge reweighting to handle negative edges effectively.
Shortest path tree
Previously, we discussed several algorithms to find the shortest paths from a single-source vertex to every other vertex of the graph by constructing the shortest path tree rooted at . The shortest path tree specifies two pieces of information for each node in the graph:
- : This is the length of the shortest path from to .
- : This is the second-to-last vertex in the shortest path from to .
Now, we consider the more general all-pairs shortest path problem, which asks for the shortest path from every possible source to every possible destination. For every pair of vertices and , we want to compute the following information:
-
: This is the length of the shortest path from to .
-
: This is the second-to-last vertex on the shortest path from to . These intuitive definitions exclude a few boundary cases, all of which we already saw previously.
-
If there is no path from ...