DOC PREVIEW
CALVIN CS 212 - Shortest Paths

This preview shows page 1-2-3-27-28-29 out of 29 pages.

Save
View full document
Premium Document
Do you want full access? Go Premium and unlock all 29 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Shortest Paths A 8 B 2 8 2 7 5 E C 3 0 2 4 1 9 D 8 F 5 3 Outline and Reading Weighted graphs 7 1 Dijkstra s algorithm 7 1 1 Shortest path problem Shortest path properties Algorithm Edge relaxation The Bellman Ford algorithm 7 1 2 Shortest paths in dags 7 1 3 All pairs shortest paths 7 2 1 Weighted Graphs In a weighted graph each edge has an associated numerical value called the weight of the edge Edge weights may represent distances costs etc Example In a flight route graph the weight of an edge represents the distance in miles between the endpoint airports 337 HNL 2555 3 4 17 LAX 1233 ORD DFW 849 2 4 1 PVD 1205 SFO 1843 802 LGA 87 3 1 1120 10 9 9 MIA Shortest Path Problem Given a weighted graph and two vertices u and v we want to find a path of minimum total weight between u and v Example Length of a path is the sum of the weights of its edges Shortest path between Providence and Honolulu Applications Internet packet routing Flight reservations Driving directions 337 HNL 2555 3 4 17 LAX 1233 ORD DFW 849 2 4 1 PVD 1205 SFO 1843 802 LGA 87 3 1 1120 10 9 9 MIA Shortest Path Properties Property 1 A subpath of a shortest path is itself a shortest path Property 2 There is a tree of shortest paths from a start vertex to all the other vertices Example Tree of shortest paths from Providence LAX 1233 802 337 HNL 2555 43 7 1 ORD DFW 849 2 14 PVD 1205 SFO 1843 LGA 87 3 1 1120 10 9 9 MIA Dijkstra s Algorithm The distance of a vertex v from a vertex s is the length of a shortest path between s and v Dijkstra s algorithm computes the distances of all the vertices from a given start vertex s Assumptions the graph is connected the edges are undirected the edge weights are nonnegative We grow a cloud of vertices beginning with s and eventually covering all the vertices We store with each vertex v a label d v representing the distance of v from s in the subgraph consisting of the cloud and its adjacent vertices At each step We add to the cloud the vertex u outside the cloud with the smallest distance label d u We update the labels of the vertices adjacent to u Edge Relaxation Consider an edge e u z such that u is the vertex most recently added to the cloud z is not in the cloud d u 50 s The relaxation of edge e updates distance d z as follows d z min d z d u weight e u e d u 50 s u e 10 d z 75 z 10 d z 60 z Example A 8 B 2 8 7 E 2 8 1 2 7 C 3 0 2 4 5 B 9 F 2 7 5 E C 3 5 3 B 2 7 4 2 1 D 8 2 7 C 3 0 2 3 5 F A 5 E 0 9 8 D 11 8 2 4 1 A 8 D F A 5 E 4 9 8 B 2 3 2 C 0 4 1 9 D 8 F 5 3 Example cont A 8 B 2 2 7 7 C 3 5 E 0 2 4 1 9 D 8 F 3 5 A 8 B 2 2 7 7 C 3 5 E 0 2 4 1 9 D 8 F 5 3 Dijkstra s Algorithm A priority queue stores the vertices outside the cloud Locator based methods Key distance Element vertex insert k e returns a locator replaceKey l k changes the key of an item We store two labels with each vertex Distance d v label locator in priority queue Algorithm DijkstraDistances G s Q new heap based priority queue for all v G vertices if v s setDistance v 0 else setDistance v l Q insert getDistance v v setLocator v l while Q isEmpty u Q removeMin for all e G incidentEdges u relax edge e z G opposite u e r getDistance u weight e if r getDistance z setDistance z r Q replaceKey getLocator z r Analysis Graph operations Label operations Each vertex is inserted once into and removed once from the priority queue where each insertion or removal takes O log n time The key of a vertex in the priority queue is modified at most deg w times where each key change takes O log n time Dijkstra s algorithm runs in O n m log n time provided the graph is represented by the adjacency list structure We set get the distance and locator labels of vertex z O deg z times Setting getting a label takes O 1 time Priority queue operations Method incidentEdges is called once for each vertex Recall that v deg v 2m The running time can also be expressed as O m log n since the graph is connected Extension Using the template method pattern we can extend Dijkstra s algorithm to return a tree of shortest paths from the start vertex to all other vertices We store with each vertex a third label parent edge in the shortest path tree In the edge relaxation step we update the parent label Algorithm DijkstraShortestPathsTree G s for all v G vertices setParent v for all e G incidentEdges u relax edge e z G opposite u e r getDistance u weight e if r getDistance z setDistance z r setParent z e Q replaceKey getLocator z r Why Dijkstra s Algorithm Works Dijkstra s algorithm is based on the greedy method It adds vertices by increasing distance Suppose it didn t find all shortest distances Let F be the first wrong vertex the algorithm processed When the previous node D on the true shortest path was considered its distance was correct But the edge D F was relaxed at that time Thus so long as d F d D F s distance cannot be wrong That is there is no wrong vertex A 8 B 2 2 7 7 C 3 5 E 0 2 4 1 9 D 8 F 5 3 Why It Doesn t Work for Negative Weight Edges Dijkstra s algorithm is based on the greedy method It adds vertices by increasing distance 0 If a node with a negative incident edge were to be added late to the cloud it could mess up distances for vertices already in the cloud A 8 B 2 6 7 7 C 0 5 E 4 5 1 8 D 9 F 5 C s true distance is 1 but it is already in the cloud with d C 5 4 Bellman Ford Algorithm Works even with negativeweight edges Must assume directed edges for otherwise we would have negativeweight cycles Iteration i finds all shortest paths that use i edges Running time O nm Can be extended to detect a negative weight cycle if it …


View Full Document

CALVIN CS 212 - Shortest Paths

Documents in this Course
Load more
Download Shortest Paths
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Shortest Paths and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Shortest Paths and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?