1 / 25

Lecture 31: Finding the Best Path

CSC 213 – Large Scale Programming. Lecture 31: Finding the Best Path. Today’s Goals. Discuss what is meant by weighted graphs Where weights placed within Graph How to use Graph ’s weights to model problems How to solve problems once Graph is set up

wylie
Download Presentation

Lecture 31: Finding the Best 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. CSC 213 – Large Scale Programming Lecture 31:Finding the Best Path

  2. Today’s Goals • Discuss what is meant by weighted graphs • Where weights placed within Graph • How to use Graph’s weights to model problems • How to solve problems once Graph is set up • Learn about myth & legend of EdsgarDijkstra • Who was he? Why should we care? How is it related? • What was his largest contribution to graph theory? • How does Dijkstra’s algorithm find smallest path?

  3. Weighted Graphs • Edge’s weight is cost of using edge • Distance, cost, travel time, &c. usable as the weight • Weights below are distance in miles PVD 849 ORD 1843 142 SFO 802 LGA 1743 337 1387 HNL 2555 1099 LAX 1233 DFW 1120 MIA

  4. Cheapest Path Problem • Find path with min. weight between 2 vertices • Sum of edge weights is the path weight • Consider the cheapest path from PVD to HNL • None of edges is cheapest in this example PVD 849 ORD 1843 142 SFO 802 LGA 1743 337 1387 HNL 2555 1099 LAX 1233 DFW 1120 MIA

  5. Cheapest Path Problem • Subpath on shortest path is shortestpath also • Otherwise we would use shorter subpath • Tree made by all shortest paths from vertex • Consider all shortest paths from PVD PVD 849 ORD 1843 142 SFO 802 LGA 1743 337 1387 HNL 2555 1099 LAX 1233 DFW 1120 MIA

  6. Dijkstra’s Algorithm • Finds cheapest paths from single vertex • Normally, computes cheapest path to all vertices • Stop once vertex computedfor single target vertex • Makes several fundamental assumptions • Connected graph needed when targeting all vertices • Only works if edge weights must be nonnegative

  7. Dijkstra’s Algorithm • Grows cloud of vertices as it goes • Cloud starts with source vetex • Add vertex to cloud with each step • Tracks distances to each vertexnot in cloud • For each vertex, considers only cheapest path • Only uses 1 edge from cloud to vertex not in cloud • Each step uses vertex with smallest distance • Adds this vertex to cloud, if not done yet • Checks if creates smaller path to any vertices

  8. Edge Relaxation • Consider e from u to z • When u added to cloud • Check adjacent vertices • Assume z not in cloud • Found faster path! • Update via relaxation • New minimum selected: d(u) = 50 10 u e z d(z) = 75 s

  9. Edge Relaxation • Consider e from u to z • When u added to cloud • Check adjacent vertices • Assume z not in cloud • Found faster path! • Update via relaxation • New minimum selected: d(u) = 50 d(z) =60 10 u e z d(z) = 75 s

  10. Edge Relaxation • Consider e from u to z • When u added to cloud • Check adjacent vertices • Assume z not in cloud • Found faster path! • Update via relaxation • New minimum selected: d(u) = 50 d(z) =60 10 u e z d(z) = 75 s

  11. Edge Relaxation • Consider e from u to z • When u added to cloud • Check adjacent vertices • Assume z not in cloud • Found faster path! • Update via relaxation • New minimum selected: d(u) = 50 d(z) =60 10 u e z s

  12. Dijkstra Example 0 A 4 8 2 8 2 4 1 7 B C D 9 3 2 5   E F

  13. Dijkstra Example 0 A 4 8 2 8 2 3 1 7 B C D 9 3 2 5 11 5 E F

  14. Dijkstra Example 0 A 4 8 2 8 2 3 1 7 B C D 9 3 2 5 8 5 E F

  15. Dijkstra Example 0 A 4 8 2 7 2 3 1 7 B C D 9 3 2 5 8 5 E F

  16. Dijkstra Example 0 A 4 8 2 7 2 3 1 7 B C D 9 3 2 5 8 5 E F

  17. Dijkstra Example 0 A 4 8 2 7 2 3 1 7 B C D 9 3 2 5 8 5 E F

  18. Why Dijkstra’s Algorithm Works • Ultimately, Dijkstrawas smart • Smarter than me, if that is possible

  19. Why Dijkstra’s Algorithm Works • Ultimately, Dijkstrawas smart • Smarter than me, if that is possible

  20. Why Dijkstra’s Algorithm Works • Ultimately, Dijkstrawas smart • Smarter than me, if that is possible • Example of a greedy algorithm • Takes best choice at each point in time • Vertices added in increasing distance • Brings vertices closer at each step • Stops when vertex cannot move closer

  21. Why No Negative-Weight Edges? 0 A 4 8 • Assume edge has negative weight • Greedily chose vertex before finding edge • Cloud will include only one endpoint • Negative weight changes everything, however • Vertices not added in order • Negative weight cycles? • Repeat cycle to optimize 6 5 7 1 4 7 B C D 0 -8 5 2 5 9 E F

  22. Why No Negative-Weight Edges? 0 A 4 8 • Assume edge has negative weight • Greedily chose vertex before finding edge • Cloud will include only one endpoint • Negative weight changes everything, however • Vertices not added in order • Negative weight cycles? • Repeat cycle to optimize 6 5 7 1 4 7 B C D 0 -8 5 2 5 9 E F C added when distance was 5, but cheapest distance is 1!

  23. Not All Is Lost • Slower cheapest paths algorithms can work • Bellman-Ford algorithm takes time O(nm) • DAG-based algorithms takes time O(n + m) • Merlin algorithm takes time O(n + m)

  24. Not All Is Lost • Slower cheapest paths algorithms can work • Bellman-Ford algorithm takes time O(nm) • DAG-based algorithms takes time O(n + m) • Merlin algorithm takes time O(n + m)

  25. For Next Lecture • Weekly assignment available today • Due at regular time next week • Programming assignment #2 due today • Midterm #2 in class in one week! • Reading on cheap connections for Monday • How can we minimize cost of building highways? • What algorithms can we use to solve this?

More Related