Presentation is loading. Please wait.

Presentation is loading. Please wait.

Shortest Path Problems Dijkstra’s Algorithm. Introduction Many problems can be modeled using graphs with weights assigned to their edges: Airline flight.

Similar presentations


Presentation on theme: "Shortest Path Problems Dijkstra’s Algorithm. Introduction Many problems can be modeled using graphs with weights assigned to their edges: Airline flight."— Presentation transcript:

1 Shortest Path Problems Dijkstra’s Algorithm

2 Introduction Many problems can be modeled using graphs with weights assigned to their edges: Airline flight times Telephone communication costs Computer networks response times

3 Where’s my motivation? Fastest way to get to school by car Finding the cheapest flight home How much wood could a woodchuck chuck if a woodchuck could chuck wood?

4 Optimal driving time UCLA In N’ Out The Red Garter My cardboard box on Sunset the beach (dude) 9 25 19 16 5 21 31 36

5 Setup:  G = weighted graph  In our version, need POSITIVE weights.  G is a simple connected graph.  A simple graph G = (V, E) consists of V, a nonempty set of vertices, and E, a set of unordered pairs of distinct elements of V called edges.  A labeling procedure is carried out at each iteration  A vertex w is labeled with the length of the shortest path from a to w that contains only the vertices already in the distinguished set.

6 Outline of Algorithm Label a with 0 and all others with . L 0 (a) = 0 and L 0 (v) =  Labels are shortest paths from a to vertices S k = the distinguished set of vertices after k iterations. S 0 = . The set S k is formed by adding a vertex u NOT in S k-1 with the smallest label. Once u is added to S k we update the labels of all the vertices not in S k To update labels: L k (a, v) = min{L k-1 (a, v), L k-1 (a, u) + w(u, v)}

7 Using the previous example, we will find the shortest path from a to c. a i r c b 9 25 19 16 5 21 31 36

8 Label a with 0 and all others with . L 0 (a) = 0 and L 0 (v) =  L 0 (a) = 0 L 0 (i) =  L 0 (r) =  L 0 (c) =  L 0 (b) =  9 25 19 16 5 21 31 36

9 Labels are shortest paths from a to vertices. S 1 = {a, i} L 1 (a) = 0 L 1 (i) = 9 L 1 (r) =  L 1 (c) =  L 1 (b) =  9 25 19 16 5 21 31 36

10 L k (a, v) = min{L k-1 (a, v), L k-1 (a, u) + w(u, v)} S 2 = {a, i, b} L 2 (a) = 0 L 2 (i) = 9 L 2 (r) =  L 2 (c) =  L 2 (b) = 19 9 25 19 16 5 21 31 36

11 S 3 = {a, i, b, r} L 3 (a) = 0 L 3 (i) = 9 L 3 (r) = 24 L 3 (c) =  L 3 (b) = 19 9 25 19 16 5 21 31 36

12 S 4 = {a, i, b, r, c} L 4 (a) = 0 L 4 (i) =  L 4 (r) = 24 L 4 (c) = 45 L 4 (b) = 19 9 25 19 16 5 21 31 36

13 Remarks Implementing this algorithm as a computer program, it uses O(n 2 ) operations [additions, comparisons] Other algorithms exist that account for negative weights Dijkstra’s algorithm is a single source one. Floyd’s algorithm solves for the shortest path among all pairs of vertices.


Download ppt "Shortest Path Problems Dijkstra’s Algorithm. Introduction Many problems can be modeled using graphs with weights assigned to their edges: Airline flight."

Similar presentations


Ads by Google