Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 20

MST - Kruskal

Minimum Spanning Tree


• A Tree is a graph with no cycles
• In a tree, there is only one path from one
node to any other
• Spanning Tree for a graph is a tree that
connects all vertices
• A graph can have many Spanning Trees
• Minimum Spanning Tree (MST) is the
spanning tree with minimum edge weight
Graph 1

B C

D
Spanning Trees
A
A

B C B C

D
D

A A

C
B C B

D D
Minimum Spanning Tree

A
10 18
12
B C
24

8 14

D
Minimum Spanning Tree

A A
10 18 10
12
B C B C
24

8 14 8 14

D D
MST Kruskal
• Input: Undirected graph G = (V, E)
• Step 1: Sort all edges in E in ascending order of
weight
• Step 2: Select edges from Sorted list, add to MST
unless a loop is formed
• Output: Minimum Spanning Tree for G
Algorithm
Input: Graph G with V Vertices and E edges
Associated Structure: Union-Find set T for V nodes
Output: MST for G
Procedure MST-Kruskal(G)
Begin
Initialize T for |V|
Sort edges in E in ascending order
Repeat for all edges (u,v) in E
If Find(u) != Find (v)
Add (u,v)to MST
Union (u, v)
End If
End Repeat
End

8
Example

4 A
6
3
5 7
B C
D
2
9
8 12

E F
14
Example - 1
A
Sort Edges in wt. (asc.)
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)
Example - 2
A
Sort Edges in wt. (asc.)
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)

A B C D E F
-1 -1 -1 -1 -1 -1 Union-Find Parent Array
Example - 3
A
Edge: BE
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)

A B C D E F Find (B) ≠ Find (E)


Add BE to MST
-1 -1 -1 -1 2 -1 Union (B, E)
Example - 4
A
Edge: AD
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)

A B C D E F Find (A) ≠ Find (D)


Add AD to MST
-1 -1 -1 1 2 -1 Union (A, D)
Example - 5
A
Edge: AB
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)

A B C D E F Find (A) ≠ Find (B)


Add AB to MST
-1 1 -1 1 2 -1 Union (A, B)
Example - 6
A
Edge: BD
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)

A B C D E F Find (B) = Find (D)


Reject BD
-1 1 -1 1 2 -1
Example - 7
A
Edge: AC
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)

A B C D E F Find (A) ≠ Find (C)


Add AC to MST
-1 1 1 1 2 -1 Union (A, C)
Example - 8
A
Edge: DC
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)

A B C D E F Find (D) = Find (C)


Reject DC
-1 1 1 1 2 -1
Example - 9
A
Edge: DE
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)

A B C D E F Reject DE
-1 1 1 1 2 -1
Example - 10
A
Select CF; Reject DF, EF
BE (2)
4 6
3 AD (3)
5 AB (4)
B 7
D C BD (5)
AC (6)
2 8 9 DC (7)
12
DE (8)
E 14 F CF (9)
DF (12)
EF (14)

A B C D E F MST has selected edges


-1 1 1 1 2 3
The End

You might also like