minimum spanning trees - dongseokowon.dongseo.ac.kr/.../20131/23.minimumspanningtrees.pdf ·...
TRANSCRIPT
![Page 1: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/1.jpg)
Minimum Spanning Trees
Hosung Jo
Division of Computer and Engineering
Hanyang University
![Page 2: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/2.jpg)
Weighted Undirected Graphs
Weighted undirected graph G = (V, E)
For each edge (u, v) ∈ E, we have a weight w (u, v).
a
b
h
i e
c
g f
d 8 7
4
8
11
7
2
6 4 14
10
9
1 2
![Page 3: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/3.jpg)
A spanning tree for G.
A tree containing all of the vertices in G and edges of the tree
are selected from the edges in G.
There are many spanning trees.
a
b
h
i e
c
g f
d 8 7
4
8
11
7
2
6 4 14
10
9
1 2
Spanning Trees
![Page 4: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/4.jpg)
a
b
h
i e
c
g f
d 8 7
4
8
11
7
2
6 4 14
10
9
1 2
a
b
h
i e
c
g f
d 8 7
4
8
11
7
2
6 4 14
10
9
1 2
Spanning Trees
![Page 5: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/5.jpg)
Cost of a spanning tree
Minimum-spanning-tree problem
Finding a spanning tree whose cost is the smallest.
T is acyclic and connects all of the vertices → a tree
Tvu
vuwTw),(
),()(
Minimum Spanning Trees
![Page 6: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/6.jpg)
GENERIC-MST
It grows the minimum spanning tree one edge at a time.
It adds an edge (u, v) to A such that A∪ {(u, v)} is also a
subset of some minimum spanning tree.
Call such an edge a safe edge for A.
GENERIC-MST(G, w)
1 A ← Ø
2 while A does not form a spanning tree
3 do find an edge (u, v) that is safe for A
4 A ← A ∪{(u, v)}
5 return A
Minimum Spanning Trees
![Page 7: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/7.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Prim’s Algorithm
![Page 8: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/8.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Prim’s Algorithm
![Page 9: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/9.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Prim’s Algorithm
![Page 10: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/10.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Prim’s Algorithm
![Page 11: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/11.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Prim’s Algorithm
![Page 12: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/12.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Prim’s Algorithm
![Page 13: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/13.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Prim’s Algorithm
![Page 14: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/14.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Prim’s Algorithm
![Page 15: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/15.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Prim’s Algorithm
![Page 16: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/16.jpg)
A cut (S, V - S) of an undirected graph G = (V, E)
A partition of V
An edge (u, v) ∈ E crosses the cut (S, V - S)
if one of edge (u, v) ∈ E endpoints is in S and the other
is in V - S.
a
b
h
i e
c
g f
d 8 7
4
8
11
7
2
6 4 14
10
9
1 2
S
V - S
S
V - S
Minimum Spanning Trees
![Page 17: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/17.jpg)
A cut respects a set A of edges
if no edge in A crosses the cut.
An edge is a light edge
if its weight is the minimum of any edge crossing the cut.
a
b
h
i e
c
g f
d 8 7
4
8
11
7
2
6 4 14
10
9
1 2
S
V - S
S
V - S
Minimum Spanning Trees
![Page 18: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/18.jpg)
Theorem 23.1
Consider an edge subset A contained in some MST.
Consider a cut respecting A.
Then, a light edge crossing the cut is safe for A.
Outline of the proof
Let T be a minimum spanning tree that includes A.
Assume that T does not contain the light edge (u, v).
It constructs another minimum spanning tree T′
that includes A ∪{(u, v)}.
Minimum Spanning Trees
![Page 19: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/19.jpg)
The edge (u, v) forms a cycle
with the edges on the path p
from u to v in T.
Since u and v are on opposite
sides of the cut (S, V - S),
there is at least one edge in
T on the path p
that also crosses the cut.
Let (x, y) be any such edge.
u
y
x
v
p
Minimum Spanning Trees
![Page 20: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/20.jpg)
The edge (x, y) is not in A.
Because the cut respects A.
Removing (x, y) breaks T
into two components.
Because (x, y) is on the
unique path from u to v in T.
Adding (u, v) reconnects
them to form a new
spanning tree
T′ = T - {(x, y)}∪{(u, v)}.
u
y
x
v
p
Minimum Spanning Trees
![Page 21: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/21.jpg)
We next show that T′ is a minimum spanning tree.
Since (u, v) is a light edge crossing (S, V -S) and (x, y)
also crosses this cut, w(u, v) ≤ w(x, y).
But T is a minimum spanning tree, so that w(T) ≤ w(T′);
thus, T′ must be a minimum spanning tree, too.
)(
),(),()()'(
Tw
vuwyxwTwTw
Minimum Spanning Trees
![Page 22: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/22.jpg)
We show that (u, v) is actually a safe edge for A.
A ⊆ T and (x, y) ∉ A ⇒ A ⊆ T′
Thus A ∪{(u, v)}⊆ T′.
Since T′ is a minimum spanning tree, (u, v) is safe for A.
Minimum Spanning Trees
![Page 23: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/23.jpg)
Corollary 23.2
Let G = (V, E) be a graph and A be a subset of E that is
included in some MST.
Let A be a subset of E that is included in some minimum
spanning tree for G.
Let C = (VC, EC) be a connected component (tree) in the
forest GA = (V, A).
If (u, v) is a light edge connecting C to some other
component in GA, then (u, v) is safe for A.
Minimum Spanning Trees
![Page 24: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/24.jpg)
Proof
The cut (VC , V - VC) respects A, and (u, v) is a light edge for
this cut.
Therefore, (u, v) is safe for A.
Minimum Spanning Trees
![Page 25: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/25.jpg)
Prim’s Algorithm
The edges in the set A always form a single tree.
The tree starts from an arbitrary root vertex r and grows until
the tree spans all the vertices in V.
At each step, a light edge is added to the tree A that connects A
to an isolated vertex of GA = (V, A).
By Corollary 23.2, this rule adds only edges that are safe for A.
Therefore, when the algorithm terminates, the edges in A form
a minimum spanning tree.
![Page 26: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/26.jpg)
Prim’s Algorithm
MST-PRIM(G, w, r)
1 for each u ∈ V [G]
2 do key[u] ← ∞
3 π[u] ← NIL
4 key[r] ← 0
5 Q ← V [G]
6 while Q ≠ Ø
7 do u ← EXTRACT-MIN(Q)
8 for each v∈Adj[u]
9 do if v ∈ Q and w(u, v) < key[v]
10 then π[v] ← u
11 key[v] ← w(u, v)
![Page 27: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/27.jpg)
Kruskal's Algorithm
It finds a safe edge to add to the growing forest by finding,
of all the edges that connect any two trees in the forest,
an edge (u, v) of least weight.
Let C1 and C2 denote the two trees that are connected by (u, v).
Since (u, v) must be a light edge connecting C1 to some other
tree, Corollary 23.2 implies that (u, v) is a safe edge for C1.
![Page 28: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/28.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(a)
Kruskal's Algorithm
![Page 29: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/29.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(b)
Kruskal's Algorithm
![Page 30: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/30.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(c)
Kruskal's Algorithm
![Page 31: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/31.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(d)
Kruskal's Algorithm
![Page 32: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/32.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(e)
Kruskal's Algorithm
![Page 33: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/33.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(f)
Kruskal's Algorithm
![Page 34: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/34.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(g)
Kruskal's Algorithm
![Page 35: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/35.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(h)
Kruskal's Algorithm
![Page 36: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/36.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(i)
Kruskal's Algorithm
![Page 37: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/37.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(j)
Kruskal's Algorithm
![Page 38: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/38.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(k)
Kruskal's Algorithm
![Page 39: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/39.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(l)
Kruskal's Algorithm
![Page 40: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/40.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(m)
Kruskal's Algorithm
![Page 41: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/41.jpg)
a
b
h
i e
c
g f
d
8 7
4
8
11
7
2
6
4 14
10
9
1 2
Kruskal’s algorithm
(n)
Kruskal's Algorithm
![Page 42: Minimum Spanning Trees - Dongseokowon.dongseo.ac.kr/.../20131/23.MinimumSpanningTrees.pdf · 2015-02-06 · It grows the minimum spanning tree one edge at a time. It adds an edge](https://reader033.vdocument.in/reader033/viewer/2022060503/5f1cbbdf65847279bb3c4cf2/html5/thumbnails/42.jpg)
Kruskal's Algorithm
MST-KRUSKAL(G, w)
1 A ← Ø
2 for each vertex v ∈ V[G]
3 do MAKE-SET(v)
4 sort the edges of E into nondecreasing order by weight w
5 for each edge (u, v) ∈ E, taken in nondecreasing order by weight
6 do if FIND-SET(u) ≠ FIND-SET(v)
7 then A ← A ∪ {(u, v)}
8 UNION(u, v)
9 return A