Presentation is loading. Please wait.

Presentation is loading. Please wait.

Minimum Spanning Tree.

Similar presentations


Presentation on theme: "Minimum Spanning Tree."— Presentation transcript:

1 Minimum Spanning Tree

2 Spanning Trees A spanning tree of a graph is just a subgraph that contains all the vertices and is a tree. A graph may have many spanning trees. Graph A Some Spanning Trees from Graph A or or or

3 Complete Graph All 16 of its Spanning Trees

4 Minimum Spanning Trees
The Minimum Spanning Tree for a given graph is the Spanning Tree of minimum cost for that graph. Complete Graph Minimum Spanning Tree 7 2 2 5 3 3 4 1 1

5 Algorithms for Obtaining the Minimum Spanning Tree
Kruskal's Algorithm Prim's Algorithm Boruvka's Algorithm

6 Complete Graph 4 B C 4 2 1 A 4 E F 1 2 D 3 10 5 G 5 6 3 4 I H 3 2 J

7 4 1 A B A D 4 4 B C B D 4 10 2 B C B J C E 4 2 1 1 5 C F D H A 4 E F 1 6 2 2 D J E G D 3 10 5 G 3 5 F G F I 5 6 3 4 3 4 I G I G J H 3 2 J 2 3 H J I J

8 Sort Edges (in reality they are placed in a priority queue - not sorted - but sorting them makes the algorithm easier to visualize) 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A 4 E F 1 4 4 2 A B B D D 3 10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

9 Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A
10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

10 Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A
10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

11 Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A
10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

12 Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A
10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

13 Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A
10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

14 Cycle Don’t Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3
I I J A 4 E F 1 4 4 2 A B B D D 3 10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

15 Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A
10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

16 Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A
10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

17 Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A
10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

18 Cycle Don’t Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3
I I J A 4 E F 1 4 4 2 A B B D D 3 10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

19 Add Edge 1 1 A D C F 2 2 C E E G 4 2 3 B C H J F G 4 2 1 3 3 G I I J A
10 5 G 4 4 B C G J 5 6 3 4 5 5 I F I D H H 3 2 J 6 10 D J B J

20 Minimum Spanning Tree Complete Graph 4 B C 4 B C 4 4 2 1 2 1 A E A 4 F
D 2 D 3 10 G 5 G 3 5 6 3 4 I I H H 3 2 3 J 2 J

21 Prim's Algorithm This algorithm starts with one node. It then, one by one, adds a node that is unconnected to the new graph to the new graph, each time selecting the node whose connecting edge has the smallest weight out of the available nodes’ connecting edges.

22 Complete Graph 4 B C 4 2 1 A 4 E F 1 2 D 3 10 5 G 5 6 3 4 I H 3 2 J

23 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

24 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

25 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

26 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

27 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

28 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

29 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

30 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

31 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

32 Old Graph New Graph 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1 A 4 E F 1 2 D 3
10 D 3 5 G 10 5 G 5 6 3 5 6 3 4 I 4 H I H 3 2 J 3 2 J

33 Complete Graph Minimum Spanning Tree 4 B C 4 4 B C 2 1 4 2 1 A 4 E F 1
D 3 2 10 D 5 G G 5 6 3 3 4 I H I H 3 2 J 3 2 J

34 Boruvka's Algorithm This algorithm is similar to Prim’s, but nodes are added to the new graph in parallel all around the graph. It creates a list of trees, each containing one node from the original graph and proceeds to merge them along the smallest-weight connecting edges until there’s only one tree, which is, of course, the MST. It works rather like a merge sort.

35 Complete Graph 4 B C 4 2 1 A 4 E F 1 2 D 3 10 5 G 5 6 3 4 I H 3 2 J

36 Trees of the Graph at Beginning of Round 1
List of Trees A B C D E F G H I J 4 B C 4 2 1 A 4 E F 1 2 D 3 10 5 G 5 6 3 4 I H 3 2 J

37 Round 1 Tree A 4 B C B 4 4 2 1 A 4 E A F 1 1 2 D 3 D 10 5 G 5 6 3 4 I
H 3 2 J

38 Round 1 Edge A-D 4 B C B 4 4 2 1 A 4 E A F 1 1 2 D 3 D 10 5 G 5 6 3 4
I H 3 2 J

39 Round 1 Tree B 4 B C 4 B C 4 4 2 1 A 4 E A 4 F 1 2 D 3 D 10 10 5 G 5 6
I H 3 2 J J

40 Round 1 Edge B-A 4 B C 4 B C 4 4 2 1 A 4 E A 4 F 1 2 D 3 D 10 10 5 G 5
6 3 4 I H 3 2 J J

41 Round 1 Tree C 4 B C 4 B C 4 2 1 2 1 A 4 E F E 1 F 2 D 3 10 5 G 5 6 3
I H 3 2 J

42 Round 1 Edge C-F 4 B C 4 B C 4 2 1 2 1 A 4 E F E 1 F 2 D 3 10 5 G 5 6
I H 3 2 J

43 Round 1 Tree D 4 B C B 4 2 1 A 4 E A 4 F 1 1 2 D 3 D 10 5 G 5 6 3 5 6
I H H 3 2 J J

44 Round 1 Edge D-A 4 B C B 4 2 1 A 4 E A 4 F 1 1 2 D 3 D 10 5 G 5 6 3 5
I H H 3 2 J J

45 Round 1 Tree E 4 B C C 4 2 1 2 A 4 E F E 1 2 D 3 2 10 5 G G 5 6 3 4 I
H 3 2 J

46 Round 1 Edge E-C 4 B C C 4 2 1 2 A 4 E F E 1 2 D 3 2 10 5 G G 5 6 3 4
I H 3 2 J

47 Round 1 Tree F 4 B C C 4 2 1 1 A 4 E F 1 F 2 D 3 3 10 5 G 5 G 5 6 3 4
I I H 3 2 J

48 Round 1 Edge F-C 4 B C C 4 2 1 1 A 4 E F 1 F 2 D 3 3 10 5 G 5 G 5 6 3
I I H 3 2 J

49 Round 1 Tree G 4 B C 4 2 1 A 4 E F E 1 F 2 D 3 2 3 10 5 G G 5 6 3 3 4
I I H 3 2 J J

50 Round 1 Edge G-E 4 B C 4 2 1 A 4 E F E 1 F 2 D 3 2 3 10 5 G G 5 6 3 3
I I H 3 2 J J

51 Round 1 Tree H 4 B C 4 2 1 A 4 E F 1 2 D 3 D 10 5 G 5 6 3 5 4 I H H 3
J 2 J

52 Round 1 Edge H-J 4 B C 4 2 1 A 4 E F 1 2 D 3 D 10 5 G 5 6 3 5 4 I H H

53 Round 1 Tree I 4 B C 4 2 1 A 4 E F 1 F 2 D 3 10 5 G 5 G 5 6 3 3 4 I I
H 3 2 3 J J

54 Round 1 Edge I-G 4 B C 4 2 1 A 4 E F 1 F 2 D 3 10 5 G 5 G 5 6 3 3 4 I
H 3 2 3 J J

55 Round 1 Tree J 4 B C B 4 2 1 A 4 E F 1 2 D 3 D 10 10 5 G G 5 6 3 6 4 4
I I H H 3 2 3 J 2 J

56 Round 1 Edge J-H 4 B C B 4 2 1 A 4 E F 1 2 D 3 D 10 10 5 G G 5 6 3 6 4
I I H H 3 2 3 J 2 J

57 A-D B-A C-F D-A E-C F-C G-E H-J I-G J-H Round 1 Ends - Add Edges
List of Edges to Add A-D B-A C-F D-A E-C F-C G-E H-J I-G J-H 4 B C 4 2 1 A 4 E F 1 2 D 3 10 5 G 5 6 3 4 I H 3 2 J

58 Trees of the Graph at Beginning of Round 2
List of Trees D-A-B F-C-E-G-I H-J 4 B C 4 2 1 A 4 E F 1 2 D 3 10 5 G 5 6 3 4 I H 3 2 J

59 Round 2 Tree D-A-B 4 B C 4 B C 4 4 2 1 2 1 A 4 E A 4 F E 1 F 1 2 D 3 2
10 10 5 G G 5 6 3 5 6 3 4 I I H H 3 2 J 2 J

60 Round 2 Edge B-C 4 B C 4 B C 4 4 2 1 2 1 A 4 E A 4 F E 1 F 1 2 D 3 2 D
10 10 5 G G 5 6 3 5 6 3 4 I I H H 3 2 J 2 J

61 Round 2 Tree F-C-E-G-I 4 B C 4 B C 4 4 2 1 2 1 A 4 E A F E 1 F 1 2 D 3
10 5 G 5 G 5 6 3 3 4 4 I I H H 3 2 3 J 2 J

62 Round 2 Edge I-J 4 B C 4 B C 4 4 2 1 2 1 A 4 E A F E 1 F 1 2 D 3 2 D 3
10 5 G 5 G 5 6 3 3 4 4 I I H H 3 2 3 J 2 J

63 Round 2 Tree H-J 4 B C B C 4 4 2 1 2 1 A 4 E A F E 1 F 1 2 D 3 2 D 10
5 G G 5 6 3 5 6 3 4 4 I I H H 3 2 3 J 2 J

64 Round 2 Edge J-I 4 B C B C 4 4 2 1 2 1 A 4 E A F E 1 F 1 2 D 3 2 D 10
5 G G 5 6 3 5 6 3 4 4 I I H H 3 2 3 J 2 J

65 B-C I-J J-I Round 2 Ends - Add Edges List of Edges to Add 4 B C 4 2 1
3 10 5 G 5 6 3 4 I H 3 2 J

66 Minimum Spanning Tree Complete Graph 4 B C 4 B C 4 4 2 1 2 1 A E A 4 F
D 2 D 3 10 G 5 G 3 5 6 3 4 I I H H 3 2 3 J 2 J

67 Conclusion Kruskal’s and Boruvka’s have better running times if the number of edges is low, while Prim’s has a better running time if both the number of edges and the number of nodes are low. Boruvka’s avoids the complicated data structures needed for the other two algorithms. So, of course, the best algorithm depends on the graph and if you want to bear the cost of complex data structures. The best algorithm that I know of is a hybrid of Boruvka’s and Prim’s, which I did not examine here. It does O(log log n) passes of Boruvka’s and then switches to Prim’s, resulting in a running time of O(m log log n). So, it’s the fastest algorithm, but would, of course, require the Fibonacci heap for Prim’s which Boruvka’s avoids when used by itself. However, in order to keep things simple, I did not explore it here.


Download ppt "Minimum Spanning Tree."

Similar presentations


Ads by Google