Presentation is loading. Please wait.

Presentation is loading. Please wait.

Single-Source Shortest Path & Minimum Spanning Trees

Similar presentations


Presentation on theme: "Single-Source Shortest Path & Minimum Spanning Trees"— Presentation transcript:

1 Single-Source Shortest Path & Minimum Spanning Trees
Dijkstra’s, Prim’s, and Kruskal’s Algorithms

2 Single-Source Shortest Path Defined
Given G = (V, E) Source vertex s  V Compute {SP} = set of shortest paths from s to all vertices in V

3 Path Weight Defined Weight of path p = {v1, v2, … vk}
Shortest-path weight from u to v

4 Determining Path Lengths
1 3 s b 5 2 4 c

5 Determining Path Lengths
3 1 3 s b 5 5 2 4 c 2

6 Determining Path Lengths
3 1 3 s b 5 5 2 4 c d[b] <= d[c] + w(c,b) 5 <= 2

7 Determining Path Lengths
d[b] > d[a] + w(a,b) 5 > 3 1 3 s b 5 5 2 4 c 2

8 Determining Path Lengths
d[b] > d[a] + w(a,b) 5 > 3 1 3 s b 5 4 2 4 c 2 Reduce

9 Path Lengths - FIN a All vertices are in S 3 1 3 s b 5 4 2 4 c 2

10 Cycles in Paths a b -4 3 -1 3 4 s 6 c d g 5 8 5 11 - -3 2 3 7 e f -
5 11 - -3 2 3 7 e f - - -6

11 Properties of Shortest Paths
Cannot contain a negative-weight cycle No need to contain 0-weight cycle No need to contain positive-weight cycle Thus contains no cycles Will contain at most V-1 edges Assumes no cycles (as stated above) Maintain predecessor information E & V

12 Shortest Paths Not Unique
x 6 3 9 3 s 4 2 1 2 7 3 5 5 11 6 y z t x t x 3 6 9 3 6 9 3 3 s 4 s 4 2 1 2 7 2 1 2 7 3 3 5 11 5 11 5 5 6 6 y y z z

13 Shortest Path Distance Is Unique
x s u z v y [z] must be either x or y, but not both This is true even if d[x] + w(x,z) = d[y] + w(y,z) establishing that if s is source, d[z] is well-defined and unique

14 Setting up the Solution
For each vertex v in V[G] Predecessor of v ([v]) = NIL Distance to v from source (d[v]) =  RELAX: as we process the graph, we’ll “Improve” [v] & d[v] by “relaxing” if (d[v] > d[u] + w(u,v)) d[v] = d[u] + w(u,v) [v] = u

15 Init & Relax Initialize(G, s) for each v in V[G] d[v] = INFINITY
[v] = NULL d[s] = 0 Relax(u, v, w) if (d[v] > d[u] + w(u,v)) d[v] = d[u] + w(u,v) [v] = u

16 Dijkstra’s Algorithm (1959)
Assume G = (V, E), source s, & weight function w Also assume all edges are non-negative Dijkstra(G, w, s) Initialize(G, s) S = {} Q = V[G] while Q != {} u = Extract_Min(Q) S.Add(u) for each vertex v in u.Adjacency() Relax(u, v, w)

17 Example: Dijkstra’s t x 1 10 s 9 2 3 4 6 7 5 y 2 z

18 Example: Dijkstra’s t x 1 10 10 s 9 2 3 4 6 7 5 5 y 2 z

19 Example: Dijkstra’s t x 1 8 14 10 s 9 2 3 4 6 7 5 5 7 y 2 z

20 Example: Dijkstra’s t x 1 8 13 10 s 9 2 3 4 6 7 5 5 7 y 2 z

21 Example: Dijkstra’s t x 1 8 9 10 s 9 2 3 4 6 7 5 5 7 y 2 z

22 Dijkstra’s - FIN t x 1 8 9 10 s 9 2 3 4 6 7 5 5 7 y 2 z

23 Runtime of Dijkstra’s O(V lgV + E lgV) O(E lgV) O(V lgV + E)
If G is connected O(V lgV + E) If we use a Fibonacci heap Better if V << E (i.e. sparsely connected)

24 MST Defined

25 Minimum Spanning Tree Connect all nodes at minimum cost.
Can start anywhere? Why? One solution. i.e. There is just one minimum Two algorithms Prim’s Kruskal’s

26 A Graph 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

27 Prim's start 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

28 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

29 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

30 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

31 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

32 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

33 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

34 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

35 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

36 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

37 Prim's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

38 Prim's 5 4 4 2 5 2 5 6 6 44 5

39 The Same Graph 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

40 Kruskal's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

41 Kruskal's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

42 Kruskal's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

43 Kruskal's 5 4 9 4 2 5 12 6 8 7 2 5 8 6 8 7 9 12 6 5 11

44 Kruskal's 5 4 4 2 5 2 5 6 6 44 5


Download ppt "Single-Source Shortest Path & Minimum Spanning Trees"

Similar presentations


Ads by Google