1 / 25

Single-Source Shortest Path

Single-Source Shortest Path. How does Google Maps work?. Single-Source Shortest Path. How many ways can I go from SPSU to KSU? How can I represent the map? What are vertices? What are edges? What are weights?. Single-Source Shortest Path. For this problem Disallow cycles

millie
Download Presentation

Single-Source Shortest Path

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. Single-Source Shortest Path Jeff Chastine

  2. How does Google Maps work? Jeff Chastine

  3. Single-Source Shortest Path • How many ways can I go from SPSU to KSU? • How can I represent the map? • What are vertices? • What are edges? • What are weights? Jeff Chastine

  4. Single-Source Shortest Path • For this problem • Disallow cycles • Still have weight function • Calculate path p and shortest path where • Note: Breadth works for non-weighted edges Jeff Chastine

  5. Single-Source Shortest Path • Has optimal sub-structure. Why? • Path is is fastest • Assume faster way between x and w • Cut and paste faster way and you get optimal! • Graph can’t have a negative cycle. Why? • Can the graph have a positive cycle? • Can the shortest path contain a positive cycle? Jeff Chastine

  6. How it’s Done in General • A node v has a predecessor node • Tells us how we got there • NIL for first node • End with a directed graph rooted at start node s • Relaxation (pay attention!) • Maintain an upper-bound cost for each node d[v] • Initially, all nodes are marked as ∞ • If we find a cheaper path to node v, relax (update) the cost and predecessor Jeff Chastine

  7. Relaxation Example(using a breadth-first traversal) b ∞ 2 5 11 a d 0 ∞ 3 99 c ∞ Original Graph Predecessor and Cost INITIALIZE-SINGLE-SOURCE(G, s) Jeff Chastine

  8. Relaxation Example b ∞ 2 5 11 a d 0 ∞ 3 99 c ∞ Original Graph Predecessor and Cost Start with source node Jeff Chastine

  9. Relaxation Example b 2 2 5 11 a d 0 ∞ 3 99 c 99 Original Graph Predecessor and Cost Update connected nodes Jeff Chastine

  10. Relaxation Example b 2 2 5 11 a d 0 ∞ 3 99 c 99 Original Graph Predecessor and Cost Continue with Jeff Chastine

  11. Relaxation Example b 2 2 5 11 a d 0 7 3 99 c 99 Original Graph Predecessor and Cost Jeff Chastine

  12. Relaxation Example b 2 2 5 11 a d 0 7 3 99 c 99 Original Graph Predecessor and Cost This guy can chill out… RELAX! Jeff Chastine

  13. Relaxation Example b 2 2 5 11 a d 0 7 3 99 c 13 Original Graph Predecessor and Cost Jeff Chastine

  14. Relaxation Example b 2 2 5 11 a d 0 7 3 99 c 13 Original Graph Predecessor and Cost But wait! We’re not done! Jeff Chastine

  15. Relaxation Example b 2 2 5 11 a d 0 7 3 99 c 13 Original Graph Predecessor and Cost No relaxation Jeff Chastine

  16. Relaxation Example b 2 2 5 11 a d 0 7 3 99 c 13 Original Graph Predecessor and Cost Jeff Chastine

  17. Relaxation Example b 2 2 5 11 a d 0 7 3 99 c 13 Original Graph Predecessor and Cost Needs to relax again! Jeff Chastine

  18. Relaxation Example b 2 2 5 11 a d 0 7 3 99 c 10 Original Graph Predecessor and Cost Needs to relax again! Jeff Chastine

  19. Relaxation Example b 2 2 5 11 a d 0 7 3 99 c 10 Original Graph Predecessor and Cost Final Predecessor and Cost Jeff Chastine

  20. How does Google Maps work? PWND! Jeff Chastine

  21. Bellman-Ford Algorithm • Works with negatively weighted edges • Detects if negative cycle exists • Consistently uses relaxation • Runs in Jeff Chastine

  22. Bellman-Ford Algorithm BELLMAN-FORD(G, w, s) • INITIALIZE-SINGLE-SOURCE(G, s) • fori← 1 to |V[G]| -1 • foreach edge (u, v) E[G] • RELAX(u, v, w) • foreach edge (u, v) E[G] • if d[v] > d[u] + w(u, v) • then return FALSE • return TRUE Jeff Chastine

  23. Dijkstra’s Algorithm • Is more efficient than Bellman-Ford • Doesn’t work with negative edges • Has a set S of vertices that it has already traversed. Heapifies V. • In general • Picks vertex u from V - S with minimum estimate • Relaxes everything connected to u • Adds u to S • Repeats untilV - Sis the empty set Jeff Chastine

  24. Dijkstra’s Algorithm DIJKSTRA (G, w, s) • INITIALIZE-SINGLE-SOURCE(G, s) • S ← • Q ← V[G] • while Q • do u ← EXTRACT-MIN(Q) • S←S {u} • foreach vertex v Adj[u] • do RELAX(u, v, w) Jeff Chastine

  25. Summary • Both algorithms use • A predecessor graph • Costs to each node • Relaxation • Bellman-Ford () • Works with negative weights • Detects negative cycles • Dijkstra () • More efficient • Doesn’t work with negative weights Jeff Chastine

More Related