Download presentation
Presentation is loading. Please wait.
Published byJason Oliver Modified over 8 years ago
1
Introduction to Algorithms All-Pairs Shortest Paths My T. Thai @ UF
2
Single-Source Shortest Paths Problem Input: A weighted, directed graph G = (V, E) Output: An n × n matrix of shortest-path distances δ. δ(i, j) is the weight of a shortest path from i to j. My T. Thai mythai@cise.ufl.edu 2 12345 1 0 1-32-4 230 1 374053 42 -50-2 585160
3
Can use algorithms for Single-Source Shortest Paths Run BELLMAN-FORD once from each vertex Time: If there are no negative-weight edges, could run Dijkstra’s algorithm once from each vertex Time: My T. Thai mythai@cise.ufl.edu 3
4
Outline Shortest paths and matrix multiplication Floyd-Warshall algorithm Johnson’s algorithm My T. Thai mythai@cise.ufl.edu 4
5
Recursive solution Optimal substructure: subpaths of shortest paths are shortest paths Recursive solution: Let = weight of shortest path from i to j that contains ≤ m edges. Where w ij : My T. Thai mythai@cise.ufl.edu
6
Computing the shortest-path weights bottom up All simple shortest paths contain ≤ n − 1 edges Compute from bottom up: L (1), L (2),..., L (n-1). Compute L (i+1) from L (i) by extending one more edge Time: My T. Thai mythai@cise.ufl.edu 6
7
Time: My T. Thai mythai@cise.ufl.edu 7
8
Shortest paths and matrix multiplication Extending shortest paths by one more edge likes matrix product: L (i+1) = L (i).W Compute L (1), L (2), L (4)..., L (r) with My T. Thai mythai@cise.ufl.edu 8 Time:
9
Example My T. Thai mythai@cise.ufl.edu 9
10
Floyd-Warshall algorithm For path p =, v 2 … v l-1 are intermediate vertices from v 1 to v l Define = shortest-path weight of any path from i to j with all intermediate vertices in {1, 2,..., k} Consider a shortest path with all intermediate vertices in {1, 2,..., k}: If k is not an intermediate vertex, all intermediate vertices in {1, 2,..., k -1} If k is an intermediate vertex: mythai@cise.ufl.edu 10
11
Floyd-Warshall algorithm Recursive formula: Time: My T. Thai mythai@cise.ufl.edu 11 Note: since we have at most n vertices, return
12
Constructing a shortest path is the predecessor of vertex j on a shortest path from vertex i with all intermediate vertices in the set {1, 2,..., k} My T. Thai mythai@cise.ufl.edu 12 (Use vertex k)
13
Example My T. Thai mythai@cise.ufl.edu 13
14
My T. Thai mythai@cise.ufl.edu 14
15
My T. Thai mythai@cise.ufl.edu 15
16
Johnson’s algorithm Reweighting edges to get non-negative weight edges: For all u, v ∈ V, p is a shortest path using w if and only if p is a shortest path using For all (u, v) ∈ E, Run Dijkstra’s algorithm once from each vertex My T. Thai mythai@cise.ufl.edu 16
17
Reweighting My T. Thai mythai@cise.ufl.edu 17
18
Proof of lemma 25.1 First, we prove With cycle, My T. Thai mythai@cise.ufl.edu 18
19
Producing nonnegative weights Construct Since no edges enter s, has the same set of cycles as G has a negative-weight cycle if and only if G does Define: Claim: Proof: Triangle inequality of shortest paths My T. Thai mythai@cise.ufl.edu 19
20
Johnson’s algorithm Time: My T. Thai mythai@cise.ufl.edu 20
21
Example My T. Thai mythai@cise.ufl.edu 21
22
My T. Thai mythai@cise.ufl.edu 22
23
Summary Dynamic-programming algorithm based on matrix multiplication Define sub-optimal solutions based on the length of paths Use the technique of “repeated squaring” Time: Floyd-Warshall algorithm Define sub-optimal solutions based on the set of allowed intermediate vertices Time: My T. Thai mythai@cise.ufl.edu 23
24
Johnson’s algorithm Reweight edges to non-negative weight edges Run Dijkstra’s algorithm once from each vertex Time: Faster than Floyd-Warshall algorithm when the graph is dense E = o(V 2 ) My T. Thai mythai@cise.ufl.edu 24
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.