Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 213 – Large Scale Programming. Today’s Goals  Discuss what is meant by weighted graphs  Where weights placed within Graph  How to use Graph ’s.

Similar presentations


Presentation on theme: "CSC 213 – Large Scale Programming. Today’s Goals  Discuss what is meant by weighted graphs  Where weights placed within Graph  How to use Graph ’s."— Presentation transcript:

1 CSC 213 – Large Scale Programming

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 Edsgar Dijkstra  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 ORD PVD MIA DFW SFO LAX LGA HNL 849 802 1387 1743 1843 1099 1120 1233 337 2555 142

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 ORD PVD MIA DFW SFO LAX LGA HNL 849 802 1387 1743 1843 1099 1120 1233 337 2555 142

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

6 Dijkstra’s Algorithm  Finds cheapest paths from single vertex  Normally, computes cheapest path to all vertices  Stop once vertex computed for single target vertex  Makes several fundamental assumptions  Connected graph needed when targeting all vertices edge weights must be nonnegative  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 vertex not 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( z ) = 75 z s u d( u ) = 50 10 e

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( z ) = 75 z s u d( u ) = 50 10 e d( z ) = 60

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( z ) = 75 z s u d( u ) = 50 10 e d( z ) = 60

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: z s u d( u ) = 50 10 e d( z ) = 60

12 Dijkstra Example CB A E D F 0 428   4 8 7 1 2 5 2 3 9

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

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

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

16 CB A E D F 0 327 5 8 4 8 7 1 2 5 2 3 9

17 CB A E D F 0 327 5 8 4 8 7 1 2 5 2 3 9

18 Why Dijkstra’s Algorithm Works  Ultimately, Dijkstra was smart  Smarter than me, if that is possible

19 Why Dijkstra’s Algorithm Works  Ultimately, Dijkstra was smart  Smarter than me, if that is possible

20 Why Dijkstra’s Algorithm Works  Ultimately, Dijkstra was 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?  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 CB A E D F 0 4 5 7 5 9 4 8 7 1 2 5 6 0 -8

22 Why No Negative-Weight Edges?  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 C added when distance was 5, but cheapest distance is 1! CB A E D F 0 4 5 7 5 9 4 8 7 1 2 5 6 0 -8

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


Download ppt "CSC 213 – Large Scale Programming. Today’s Goals  Discuss what is meant by weighted graphs  Where weights placed within Graph  How to use Graph ’s."

Similar presentations


Ads by Google