1 / 13

CSE 202 - Algorithms

Shortest Paths Problems. CSE 202 - Algorithms. Shortest Paths Problems. 1. v. t. Given a weighted directed graph, <u,v,t,x,z> is a path of weight 29 from u to z. <u,v,w,x,y,z> is another path from u to z; it has weight 16 and is the shortest path from u to z. 5. 9. 4. 13. 8. y.

helendavis
Télécharger la présentation

CSE 202 - Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Shortest Paths Problems CSE 202 - Algorithms CSE 202 - Shortest Paths

  2. Shortest Paths Problems 1 v t • Given a weighted directed graph, <u,v,t,x,z> is a path of weight 29 from u to z. <u,v,w,x,y,z> is another path from u to z; it has weight 16 and is the shortest path from u to z. 5 9 4 13 8 y 4 u x 3 2 10 1 2 1 z w 6 CSE 202 - Shortest Paths

  3. Variants of Shortest Paths Problems A. Single pair shortest path problem • Given s and d, find shortest path from s to d. B. Single source shortest paths problem • Given s, for each d find shortest path from s to d. C. All-pairs shortest paths problem • For each ordered pair s,d, find shortest path. • (A) and (B) seem to have same asymptotic complexity. • (C) takes longer, but not as long as repeating (B) for each s. CSE 202 - Shortest Paths

  4. More Shortest Paths Variants • All weights are non-negative. • Weights may be negative, but no negative cycles (A cycle is a path from a vertex to itself.) • Negative cycles allowed. Algorithm reports “- ” if there is a negative cycle on path from source to destination • (2) and (3) seem to be harder than (1). v v 5 5 u 2 -3 u 2 3 6 w -6 w CSE 202 - Shortest Paths

  5. Single Source Shortest Paths • Non-negative weights (problem B-1): From source, construct tree of shortest paths. • Why is this a tree? • Is this a Minimum Spanning Tree? Basic approach: label nodes with shortest path found so far. Relaxation step: choose any edge (u,v) . If it gives a shorter path to v, update v ’s label. 4 4 9 4 9 4 5 5 5 5 s s 9 9 1 2 1 2 7 9 relaxing this edge improves this node CSE 202 - Shortest Paths

  6. Single Source Shortest Paths • Simplest strategy: • Keep cycling through all edges • When all edges are relaxed, you’re done. What is upper bound on work? • Improvement: Mark nodes when we’re sure we have best path. Key insight: if you relax all edges out all marked nodes, the unmarked node that is closest to source can be marked. You can relax edge (u,v) only once - just after u is marked. O(V2) algorithm: mark node; relax its edges; find new min to mark. Dijkstra’s algorithm: Keep nodes on min-priority queue – need E Decrease-Key’s. Gives O(E lg V) - when is this faster? (Aside: can also get O(E + V lg V) using Fibonacci heap.) CSE 202 - Shortest Paths

  7. Single Source Shortest Paths • Negative weights allowed (problem B-2 and B-3) Why can’t we just add a constant to each weight? Why doesn’t Dijkstra’s algorithm work for B-2 ? Bellman-Ford: Cycle through edges V-1 times. O(VE) time. • PERT chart: Arbitrary weights, graph is acyclic: Is there a better algorithm than Bellman-Ford? CSE 202 - Shortest Paths

  8. All-pairs Shortest Paths • Naïve #1: Solve V single-source problems. • O(V2 E) for general problem. • O(V3) or O(V E lg V) for non-negative weights. • Naïve #2: Let dk(i,j) = shortest path from i to j • involving  k edges. d1(i,j) = is original weight matrix. Compute dk+1’s from dk’s by seeing if adding edge helps: dk+1(i,j) = Min { dk(i,m) + d1(m,j) } Hmmm ...this looks a lot like matrix multiplication If there are no negative cycles, dV-1(i,j) is solution. If there is a negative cycle, then dV-1  dV Complexity is O(V4) CSE 202 - Shortest Paths

  9. All-pairs Shortest Paths • No negative cycles – Divide and Conquer says: “Shortest path from a to b with at most 2k+1 hops is a shortest path from a to c with at most 2k hops followed by one from c to b with at most 2k hops.” T(k+1) = T(k) + V3 so T(lg V) is O(V3 lg V). This also looks like matrix multiplication, using d2k = dk x dk instead of dk+1= dk x d1 CSE 202 - Shortest Paths

  10. All-pairs Shortest Paths • No negative cycles – Dynamic Programming approach: Number cities 1 to V. Let S(a,b,k) be length of shortest path from a to b that uses only cities {1,2,...,k} as intermediate points. Intuition: At first (k=0), there are only direct flights between cities. Then (k=1) they allow city 1 to be an intermediate connection point. Then (k=2) they add city 2 as a possible connection point. Etc. Claim: S(a,b,k) = min{ S(a,b,k-1), S(a,k,k-1) + S(k,b,k-1) }. Intuition: either adding k as a possible connection point doesn’t shorten the trip, or it does. “No negative cycles”  needn’t consider paths going through k twice. Complexity: T(k+1)= T(k) + cV2, and T(0) is 0. Thus, T(V) is (V3). This is the Floyd-Warshall algorithm CSE 202 - Shortest Paths

  11. Johnson’s All-Pairs Shortest Paths • Motivation: for sparse non-negative weights, “O(V E lg V)” is better than “O(V3)” We’ll convert “arbitrary weights” (C3) to “non-negative” (C1) problem via reweighting. Dijkstra V times Floyd-Warshall 0 0 -1 -3 1 -3 4 8 -9 8 5 -10 Starting bonus or finishing penalty CSE 202 - Shortest Paths

  12. Johnson’s Algorithm • Reweighting can make all edges non-negative • Make node-weight(x) = shortest path to x from anywhere. • Sounds like all-pairs problem Slick trick use Bellman-Ford (only O(VE) time) 5 4 0 -1 -3 10 2 0 8 3 0 5 -10 0 0 s 0 -1 -3 0 0 8 5 -10 CSE 202 - Shortest Paths

  13. Glossary (in case symbols are weird) •        subset  element of infinity  empty set  for all  there exists  intersection  union  big theta  big omega  summation  >=  <=  about equal  not equal  natural numbers(N)  reals(R)  rationals(Q)  integers(Z) CSE 202 - Shortest Paths

More Related