Presentation is loading. Please wait.

Presentation is loading. Please wait.

Shortest Paths and Dijkstra's Algorithm CS 110: Data Structures and Algorithms First Semester, 2010-2011.

Similar presentations


Presentation on theme: "Shortest Paths and Dijkstra's Algorithm CS 110: Data Structures and Algorithms First Semester, 2010-2011."— Presentation transcript:

1 Shortest Paths and Dijkstra's Algorithm CS 110: Data Structures and Algorithms First Semester, 2010-2011

2 Single-Source Shortest Paths ► Given a weighted graph G and a source vertex v in G, determine the shortest paths from v to all other vertices in G ► Path length: sum of all edges in path ► Useful in road map applications (e.g., Google maps or map quest) for example

3 Dijkstra’s Algorithm ► Solves the single-source shortest path problem ► Involves keeping a table of current shortest path lengths from a source vertex (initialize to infinity for all vertices except v, which has length 0)

4 Dijkstra’s Algorithm ► Repeatedly select the vertex u with shortest path length, and update other lengths by considering the path that passes through that vertex ► Stop when all vertices have been selected

5 Dijkstra’s Algorithm ► Can make use of a priority queue to facilitate selection of shortest lengths ► Need to refine the data structure to allow the updating of key values ► Time complexity: O(n+m) or O(n 2 log n) ► O(n 2 ) if computation of minimum is simplified

6 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 Dijkstra’s Algorithm

7 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 Dijkstra’s Algorithm

8 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 ∞ 621 ∞ ∞ 946 ∞ 184 ∞ 0 Dijkstra’s Algorithm

9 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 ∞ 621 ∞ ∞ 946 ∞ 184 ∞ 0 Dijkstra’s Algorithm

10 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 ∞ ∞ 946 371 184 1575 0 Dijkstra’s Algorithm

11 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 ∞ ∞ 946 371 184 1575 0 Dijkstra’s Algorithm

12 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 ∞ ∞ 946 371 184 1575 0 Dijkstra’s Algorithm

13 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 ∞ ∞ 946 371 184 1575 0 Dijkstra’s Algorithm

14 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 3075 ∞ 946 371 184 1575 0 Dijkstra’s Algorithm

15 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 3075 ∞ 946 371 184 1575 0 Dijkstra’s Algorithm

16 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 2467 ∞ 946 371 184 1423 0 Dijkstra’s Algorithm

17 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 2467 ∞ 946 371 184 1423 0 Dijkstra’s Algorithm

18 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 2467 3288 946 371 184 1423 0 Dijkstra’s Algorithm

19 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 2467 3288 946 371 184 1423 0 Dijkstra’s Algorithm

20 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 2467 3288 946 371 184 1423 0 Dijkstra’s Algorithm

21 MIA JFK PVD BOS DFW SFO LAX BWI ORD 2704 1846 337 1235 1464 802 621 2342 1391 1121 144 849 740 867 187 946 184 1090 1258 328 621 2467 2658 946 371 184 1423 0 Dijkstra’s Algorithm

22 Pseudo-Code: Dijkstra function Dijkstra( Graph g, Vertex source ) for each vertex v in g dist[v] <-- infinity previous[v] <-- undefined dist[source] <-- 0 Q <-- the set of all nodes in Graph while Q is not empty u <-- vertex in Q with smallest dist[] if dist[u] == infinity break remove u from Q for each neighbor v of u alt = dist[u] + dist_between( u, v ) if alt < dist[v] dist[v] = alt previous[v] = u return dist[]


Download ppt "Shortest Paths and Dijkstra's Algorithm CS 110: Data Structures and Algorithms First Semester, 2010-2011."

Similar presentations


Ads by Google