0% found this document useful (0 votes)
43 views

L15 Graph Part04

The document describes the minimum spanning tree (MST) problem and algorithms to solve it. It defines an MST as a subset of edges in a connected, undirected graph that connects all vertices with the minimum total weight. Kruskal's algorithm and Prim's algorithm are elaborated as solutions that grow the MST by repeatedly adding safe edges. Kruskal's algorithm uses disjoint sets to ensure each added edge connects two different components, while Prim's algorithm grows a single tree by connecting vertices. An example is provided to illustrate Kruskal's algorithm.

Uploaded by

Enmusk
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

L15 Graph Part04

The document describes the minimum spanning tree (MST) problem and algorithms to solve it. It defines an MST as a subset of edges in a connected, undirected graph that connects all vertices with the minimum total weight. Kruskal's algorithm and Prim's algorithm are elaborated as solutions that grow the MST by repeatedly adding safe edges. Kruskal's algorithm uses disjoint sets to ensure each added edge connects two different components, while Prim's algorithm grows a single tree by connecting vertices. An example is provided to illustrate Kruskal's algorithm.

Uploaded by

Enmusk
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Lecture 15

Graph-Based Algorithms
CSE373: Design and Analysis of Algorithms
Definition of MST
• Let 𝐺 = (𝑉, 𝐸) be a connected, undirected graph.
• For each edge (𝑢, 𝑣) in 𝐸, we have a weight 𝑤(𝑢, 𝑣) specifying the
cost (length of edge) to connect 𝑢 and 𝑣.
• We wish to find a (acyclic) subset 𝑇 of 𝐸 that connects all of the
vertices in 𝑉 and whose total weight is minimized.
• Since the total weight is minimized, the subset 𝑇 must be acyclic
(no circuit).
• Thus, 𝑇 is a tree. We call it a spanning tree.
• The problem of determining the tree 𝑇 is called the minimum-
spanning-tree problem.
Application of MST
In the design of electronic circuitry, it is often necessary to make a set
of pins electrically equivalent by wiring them together.
To interconnect n pins, we can use n-1 wires, each connecting two
pins.
We want to minimize the total length of the wires.
Minimum Spanning Trees can be used to model this problem.
Application of MST
Problem: Laying Telephone Wire

Central office
Application of MST
Wiring: Naïve Approach

Central office

Expensive!
Application of MST
Wiring: Better Approach

Central office

Minimize the total length of wire connecting the customers


Here is an example of a connected graph and its minimum
spanning tree:
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Notice that the tree is not unique:


replacing (b,c) with (a,h) yields another spanning tree with the same minimum weight.
Growing a MST(Generic Algorithm)
Set 𝐴 is always a subset of some minimum spanning tree. This
property is called the invariant Property.
An edge (𝑢, 𝑣) is a safe edge for 𝐴 if adding the edge to 𝐴 does not
destroy the invariant.
A safe edge is just the CORRECT edge to choose to add to T.

GENERIC_MST(G,w)
1 A=∅
2 while A does not form a spanning tree
3 find an edge (u,v) that is safe for A
4 A = A∪{(u,v)}
5 return A
How to Find a Safe Edge
We need some definitions and a theorem.
• A cut (𝑆, 𝑉 − 𝑆) of an undirected graph 𝐺 = (𝑉, 𝐸) is a
partition of 𝑉.
• An edge crosses the cut (𝑆, 𝑉 − 𝑆) if one of its
endpoints is in 𝑆 and the other is in 𝑉 − 𝑆.
• An edge is a light edge crossing a cut if its weight is the
minimum of any edge crossing the cut.
How to Find a Safe Edge
8 7
b c d 9
4
2
S↑ 11 14 e ↑S
a i 4
7 6
10
8
V-S↓ h g f ↓ V-S
1 2

• This figure shows a cut (S,V-S) of the graph.


• The edge (d,c) is the unique light edge crossing the cut.
The Algorithms of Kruskal and Prim
• The two algorithms are elaborations of the generic
algorithm.
• They each use a specific rule to determine a safe edge in
line 3 of GENERIC_MST.
• In Kruskal's algorithm,
• The set 𝐴 is a forest.
• The safe edge added to 𝐴 is always a least-weight edge in the
graph that connects two distinct components.
• In Prim's algorithm,
• The set 𝐴 forms a single tree.
• The safe edge added to 𝐴 is always a least-weight edge
connecting the tree to a vertex not in the tree.
Related Topics
Disjoint-Set (Chapter 21, Page 571)
• Keep a collection of sets S1, S2, .., Sk,
• Each Si is a set, e,g, S1={v1, v2, v8}.
• Three operations
• Make-Set(x) - creates a new set whose only member is x.
• Union(x, y) – unites the sets that contain x and y, say, Sx and Sy,
into a new set that is the union of the two sets.
• Find-Set(x) - returns a pointer to the representative of the set
containing x.
• Each operation takes O(log n) time.
Kruskal's Algorithm
MST_KRUSKAL(G,w)
1 𝐴=∅
2 for each vertex 𝑣 ∈ 𝐺. 𝑉
3 MAKE_SET(𝑣)
4 sort the edges of 𝐺. 𝐸 into nondecreasing order by weight 𝑤
5 for each edge 𝑢, 𝑣 ∈ 𝐺. 𝐸, taken in nondecreasing order by weight
6 if FIND_SET(𝑢) ≠ FIND_SET(𝑣)
7 𝐴 = 𝐴 ∪ {(𝑢, 𝑣)}
8 UNION(𝑢, 𝑣)
9 return 𝐴
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴=∅
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎 𝑏 𝑐 {𝑑} {𝑒} {𝑓} {𝑔} {ℎ} {𝑖}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴=∅
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎 𝑏 𝑐 {𝑑} {𝑒} {𝑓} {𝑔} {ℎ} {𝑖}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = {(𝑔, ℎ)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎 𝑏 𝑐 {𝑑} {𝑒} {𝑓} {𝑔, ℎ} {𝑖}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = {(𝑔, ℎ)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎 𝑏 𝑐 {𝑑} {𝑒} {𝑓} {𝑔, ℎ} {𝑖}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , (𝑐, 𝑖)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎 𝑏 𝑐, 𝑖 {𝑑} {𝑒} {𝑓} {𝑔, ℎ}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , (𝑐, 𝑖)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎 𝑏 𝑐, 𝑖 {𝑑} {𝑒} {𝑓} {𝑔, ℎ}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , (𝑓, 𝑔)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎 𝑏 𝑐, 𝑖 {𝑑} {𝑒} {𝑓, 𝑔, ℎ}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , (𝑓, 𝑔)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎 𝑏 𝑐, 𝑖 {𝑑} {𝑒} {𝑓, 𝑔, ℎ}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , (𝑎, 𝑏)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎, 𝑏 𝑐, 𝑖 {𝑑} {𝑒} {𝑓, 𝑔, ℎ}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , (𝑎, 𝑏)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎, 𝑏 𝑐, 𝑖 {𝑑} {𝑒} {𝑓, 𝑔, ℎ}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , (𝑐, 𝑓)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎, 𝑏 𝑐, 𝑓, 𝑔, ℎ, 𝑖 {𝑑} {𝑒}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , (𝑐, 𝑓)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎, 𝑏 𝑐, 𝑓, 𝑔, ℎ, 𝑖 {𝑑} {𝑒}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , (𝑐, 𝑓)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎, 𝑏 𝑐, 𝑓, 𝑔, ℎ, 𝑖 {𝑑} {𝑒}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , 𝑐, 𝑓 , (𝑐, 𝑑)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎, 𝑏 𝑐, 𝑑, 𝑓, 𝑔, ℎ, 𝑖 {𝑒}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , 𝑐, 𝑓 , (𝑐, 𝑑)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎, 𝑏 𝑐, 𝑑, 𝑓, 𝑔, ℎ, 𝑖 {𝑒}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , 𝑐, 𝑓 , (𝑐, 𝑑)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: 𝑎, 𝑏 𝑐, 𝑑, 𝑓, 𝑔, ℎ, 𝑖 {𝑒}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , 𝑐, 𝑓 , 𝑐, 𝑑 , (𝑎, ℎ)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: {𝑎, 𝑏, 𝑐, 𝑑, 𝑓, 𝑔, ℎ, 𝑖} {𝑒}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , 𝑐, 𝑓 , 𝑐, 𝑑 , (𝑎, ℎ)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: {𝑎, 𝑏, 𝑐, 𝑑, 𝑓, 𝑔, ℎ, 𝑖} {𝑒}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , 𝑐, 𝑓 , 𝑐, 𝑑 , (𝑎, ℎ)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: {𝑎, 𝑏, 𝑐, 𝑑, 𝑓, 𝑔, ℎ, 𝑖} {𝑒}
Kruskal's Algorithm: Example
•The edges are considered by the algorithm in sorted order by weight.
•The edge under consideration at each step is shown with a red
weight number.
8 7
b c d 9
4
2
a 11 14 e
i 4
7 6
10
8
h g f
1 2

Sorted edges: (g,h) (c,i) (f,g) (a,b) (c,f) (g,i) (c,d) (h,i) (a,h) (b,c) (d,e) (e,f) (b,h) (d,f)
𝐴 = { 𝑔, ℎ , 𝑐, 𝑖 , 𝑓, 𝑔 , 𝑎, 𝑏 , 𝑐, 𝑓 , 𝑐, 𝑑 , 𝑎, ℎ , (𝑑, 𝑒)}
𝑉𝑒𝑟𝑡𝑒𝑥 𝑠𝑒𝑡𝑠: {𝑎, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓, 𝑔, ℎ, 𝑖}
Prim's Algorithm
MST_PRIM(G,w,r)
1 for each 𝑢 in 𝐺. 𝑉
2 𝑢. 𝑘𝑒𝑦 = ∞
3 𝑢. 𝜋 =NIL
4 𝑟. 𝑘𝑒𝑦 = 0
5 𝑄 = 𝐺. 𝑉 //Q is a min-priority queue
6 while 𝑄 ≠ ∅
7 𝑢 =EXTRACT_MIN(𝑄)
8 for each 𝑣 ∈ 𝐺. 𝐴𝑑𝑗[𝑢]
9 if 𝑣 ∈ 𝑄 and 𝑤 𝑢, 𝑣 < 𝑣. 𝑘𝑒𝑦
10 𝑣. 𝜋 = 𝑢
11 𝑣. 𝑘𝑒𝑦 = 𝑤(𝑢, 𝑣)
Prim's Algorithm: Example

the root 8 7
b c d
vertex 4 9
2
a 11 14 e
i 4
7 6
8 10
h g f
1 2
Prim's Algorithm: Example

∝/− ∝/− ∝/−


8 7
b c d
4 9
∝/− 2
a 11 14 e ∝/−
i 4
0/− 7 6
8 10
h g f
1 2
∝/− ∝/− ∝/−
Prim's Algorithm: Example

4/𝑎 ∝/− ∝/−


8 7
b c d
4 9
∝/− 2
a 11 14 e ∝/−
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 ∝/− ∝/−
Prim's Algorithm: Example

4/𝑎 ∝/− ∝/−


8 7
b c d
4 9
∝/− 2
a 11 14 e ∝/−
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 ∝/− ∝/−
Prim's Algorithm: Example

4/𝑎 8/𝑏 ∝/−


8 7
b c d
4 9
∝/− 2
a 11 14 e ∝/−
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 ∝/− ∝/−
Prim's Algorithm: Example

4/𝑎 8/𝑏 ∝/−


8 7
b c d
4 9
∝/− 2
a 11 14 e ∝/−
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 ∝/− ∝/−
Prim's Algorithm: Example

4/𝑎 8/𝑏 ∝/−


8 7
b c d
4 9
7/ℎ 2
a 11 14 e ∝/−
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ ∝/−
Prim's Algorithm: Example

4/𝑎 8/𝑏 ∝/−


8 7
b c d
4 9
7/ℎ 2
a 11 14 e ∝/−
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ ∝/−
Prim's Algorithm: Example

4/𝑎 8/𝑏 ∝/−


8 7
b c d
4 9
6/𝑔 2
a 11 14 e ∝/−
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔
Prim's Algorithm: Example

4/𝑎 8/𝑏 ∝/−


8 7
b c d
4 9
6/𝑔 2
a 11 14 e ∝/−
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔
Prim's Algorithm: Example

4/𝑎 4/𝑓 14/𝑓


8 7
b c d
4 9
6/𝑔 2
a 11 14 e 10/𝑓
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔
Prim's Algorithm: Example

4/𝑎 4/𝑓 14/𝑓


8 7
b c d
4 9
6/𝑔 2
a 11 14 e 10/𝑓
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔
Prim's Algorithm: Example

4/𝑎 4/𝑓 7/𝑐


8 7
b c d
4 9
2/𝑐 2
a 11 14 e 10/𝑓
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔
Prim's Algorithm: Example

4/𝑎 4/𝑓 7/𝑐


8 7
b c d
4 9
2/𝑐 2
a 11 14 e 10/𝑓
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔
Prim's Algorithm: Example

4/𝑎 4/𝑓 7/𝑐


8 7
b c d
4 9
2/𝑐 2
a 11 14 e 10/𝑓
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔
Prim's Algorithm: Example

4/𝑎 4/𝑓 7/𝑐


8 7
b c d
4 9
2/𝑐 2
a 11 14 e 9/𝑑
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔
Prim's Algorithm: Example

4/𝑎 4/𝑓 7/𝑐


8 7
b c d
4 9
2/𝑐 2
a 11 14 e 9/𝑑
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔
Prim's Algorithm: Example

4/𝑎 4/𝑓 7/𝑐


8 7
b c d
4 9
2/𝑐 2
a 11 14 e 9/𝑑
i 4
0/− 7 6
8 10
h g f
1 2
8/𝑎 1/ℎ 2/𝑔

You might also like