chapter 11 trees graphs iii (trees, msts) reading: epp chp 11.5, 11.6
TRANSCRIPT
Chapter 11 Trees
Graphs III (Trees, MSTs)Reading: Epp Chp 11.5, 11.6
Outline
1. Trees1.1 Definition of a tree.1.2 Examples of trees.1.3 Theorem #1: Tree Characterization
2. Rooted Trees2.1 Definitions2.2 Definition: n-ary trees and binary trees.2.3 Definition: Full n-ary trees2.4 Theorem #2: Full Tree2.5 Theorem #3: Leaves-Height2.6 Examples
3. Spanning Trees3.1 Motivation3.2 Definition3.3 Theorem #4: Spanning Tree3.4 Minimum Spanning Tree (MST)3.5 Kruskal’s Algorithm3.6 Prim’s Algorithm
1. Trees
1.1 Definition: Let G=(V,E).
G is a tree IFF
(a) G is connected; and
(b) G does not have any circuits (acyclic).
Comment: – The textbook distinguishes between trivial and
non-trivial circuits. They define a trivial circuit as a circuit of length 0.
– As far as we are concerned, unless otherwise stated, when we say ‘circuit’ we mean ‘NON-TRIVIAL circuit’. i.e. the default meaning of ‘circuit’ is a non-trivial circuit.
1. Trees
1.1 Definition: Let G=(V,E).
G is a tree IFF
(a) G is connected; and
(b) G does not have any circuits (acyclic).
1.2.1 Example of a tree
1. Trees
1.2.2 Examples of trees in real life usage– Family Tree– Tournaments– Directory Tree– Syntax Tree – Execution Tree– Decision Tree– Search Tree– B-Tree (Databases)
1. Trees
1.3 Theorem (Tree Characterization Theorem): Let G=(V,E). G is a tree IFF G is connected and |E|=|V|-1
Proof Strategy:– () Assume G is a tree
• Prove that G is connected (Trivial)
• Prove that |E| = |V| - 1 (Prove by induction on |V|)– Lemma 1: A tree with more than 1 vertex has at least 1 vertex of
degree 1
– () Assume G is connected and |E| = |V| -1(Prove that G is a tree. How? Show that G fits the definition of a
tree.)
• Prove that G is connected (Trivial)
• Prove that G has no circuits (Prove by contradiction)– Lemma 2: Deletion of edge from a circuit of a connected graph
does not violate connectedness.
Outline
1. Trees1.1 Definition of a tree.1.2 Examples of trees.1.3 Theorem #1: Tree Characterization
2. Rooted Trees2.1 Definitions2.2 Definition: n-ary trees and binary trees.2.3 Definition: Full n-ary trees2.4 Theorem #2: Full Tree2.5 Theorem #3: Leaves-Height2.6 Examples
3. Spanning Trees3.1 Motivation3.2 Definition3.3 Theorem #4: Spanning Tree3.4 Minimum Spanning Tree (MST)3.5 Kruskal’s Algorithm3.6 Prim’s Algorithm
2.1 Rooted Trees (Definition)
A rooted tree is a tree in which one vertex is distinguished from the others and is called the root.
The level of a vertex v is the path length from the root to v. The height of the tree is the maximum level to any vertex of the tree.
rootLevel 0
Level 1
Level 2
Level 3
Level 4
2.1 Rooted Trees (Definition)
Given any vertex v in a rooted tree:– The children of v are the vertices adjacent to v, 1 level
further away from the root.– The parent of v is the vertex adjacent to v, 1 level
nearer to the root.– The siblings of v are the vertices which have the same
parent as v.
vParent of v
Children of v
Siblings of v
2.1 Rooted Trees (Definition)
Given any vertex v in a rooted tree:– The ancestor of v are the vertices which lie in the path
from v to the root.– If u is the ancestor of v, then v is the descendant of u.
v
Ancestors of v
Descendants of v
2.1 Rooted Trees (Definition)
Given any rooted tree:– The internal vertices of the tree are the vertices which have at
least 1 child.– The external vertices of the tree are the vertices which have
no children. External vertices are also known as the leaves of the tree, or terminal vertices.
External Vertices (Leaves)
The rest are Internal Vertices
2.2 m-ary trees and binary trees (Defn)
A m-ary tree is a rooted tree in which every vertex has at most m children.
Example of a 4-ary Tree
Example of a 3-ary Tree
2.2 m-ary trees and binary trees (Defn)
A m-ary tree is a rooted tree in which every vertex has at most m children.– A binary tree is a m-ary tree with n=2.
• Each child of the binary tree is designated either the left child or the right child.
• Given a vertex v of a binary tree, the left subtree of v (right subtree of v) is the binary tree whose root is the left child of v (right child of v).
v
Left subtree of v
Right subtree of v
Left child of v
Right child of v
Example of a Binary Tree
2.3 Full m-ary Trees (Definition)
A m-ary tree is FULL iff every vertex has either 0 or m children. (OR every internal vertex has m children).
Examples of full binary trees.
Full Tree? Yes No Yes No No
Yes Yes
Proof:
2.4 Full Tree Theorem
Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices.
Let T=(V,E) be a full m-ary tree, with k internal vertices.
Total number of vertices in T
Number of vertices that HAVE a parent
Number of vertices that DO NOT HAVE a parent
= +
Q: How many vertices HAVE a parent?
1. Observe for a 2-ary tree with 7 internal vertices
2. Each internal vertex has 2 children
2.5 Leaves-Height Theorem. Leaves-Height Theorem for Binary Trees: Let T=(V,E) be a
binary tree that has t leaves, and height h. Thent 2h.
Proof: (by using induction on the height of the tree)
Base Case: h = 0
T has 1 vertex, which is a leaf.
t = 1 1 = 20 = 2h
Base case is true.
2.5 Leaves-Height Theorem. Leaves-Height Theorem for Binary Trees: Let T=(V,E) be a
binary tree that has t leaves, and height h. Thent 2h.
Proof: (by using induction on the height of the tree)
Inductive Case: Assume that t 2h for h = 0,1,2,…,k (STRONG!)
Let T be any binary tree of height k+1. (Need to show t 2k+1)
k
1
TL TR
With respect to the root vertex, let the left and right subtrees be TL and TR respectively.
Let the number of leaves in TL and TR be tL and tR respectively. (t = tL+ tR)
Height of TL and TR are both < k+1.By inductive hypothesis, tL 2(TL Height) 2k and tR 2(TR Height) 2k.
t = tL+ tR 2k + 2k = 2k+1.
2.5 Leaves-Height Theorem. Corollary to the Leaves-Height Theorem: Let T=(V,E) be a
binary tree that has t leaves, and height h. Then
log2 t h.
Proof:
Using leaves-height theorem, we have t 2h.
Taking logarithms on both sides will yield
log2t log22h
log2t h
2.5 Leaves-Height Theorem.
IN GENERAL:
Leaves-Height Theorem for m-ary Trees: Let T=(V,E) be a m-ary tree that has t leaves, and height h. Then
t mh
Corollary to the Leaves-Height Theorem: Let T=(V,E) be a m-ary tree that has t leaves, and height h. Then
logmt h
Proof left as exercise (follows very closely to the proofs shown before)
2.6 Examples
Q: Is there a binary tree that has height 5 and 38 external vertices?
A: No, since 38 > 25 which violates the leaves-height theorem.
2.6 Examples
Q: Is there a full binary tree with 10 internal vertices and 13 external vertices?
A: No. Using the full-tree theorem, a binary tree with 10 internal vertices has 21 vertices in total. Therefore there should be 21-10 = 11 external vertices.
Outline
1. Trees1.1 Definition of a tree.1.2 Examples of trees.1.3 Theorem #1: Tree Characterization
2. Rooted Trees2.1 Definitions2.2 Definition: n-ary trees and binary trees.2.3 Definition: Full n-ary trees2.4 Theorem #2: Full Tree2.5 Theorem #3: Leaves-Height2.6 Examples
3. Spanning Trees3.1 Motivation3.2 Definition3.3 Theorem #4: Spanning Tree3.4 Minimum Spanning Tree (MST)3.5 Kruskal’s Algorithm3.6 Prim’s Algorithm
3.1 Spanning Trees.
Example of use is in IP multicasting (studied in networking).
Do a web-search on the keywords ‘IP multicasting spanning tree’ and more info will be available.
3.1 Spanning Trees.
Layer 2 routing of packets through network switches. Multiple connections from one switch to the rest of
network to increase fault tolerance.
When all links are operational, redundacy in connection occurs.
Network forms a spanning tree so that packets will not be redundantly routed. R
Network will elect a root. Root will broadcast packets to
all other switches. Each switch will select the
‘best’ link to use.
3.1 Spanning Trees.
Layer 2 routing of packets through network switches. Multiple connections from one switch to the rest of
network to increase fault tolerance.
When all links are operational, redundacy in connection occurs.
Network forms a spanning tree so that packets will not be redundantly routed. R
Network will elect a root. Root will broadcast packets to
all other switches. Each switch will select the
‘best’ link to use.
3.1 Spanning Trees.
Layer 2 routing of packets through network switches. Multiple connections from one switch to the rest of
network to increase fault tolerance.
When all links are operational, redundacy in connection occurs.
Network forms a spanning tree so that packets will not be redundantly routed. R
Network will elect a root. Root will broadcast packets to
all other switches. Each switch will select the
‘best’ link to use.
3.1 Spanning Trees.
Layer 2 routing of packets through network switches. Multiple connections from one switch to the rest of
network to increase fault tolerance.
When all links are operational, redundacy in connection occurs.
Network forms a spanning tree so that packets will not be redundantly routed. R
Network will elect a root. Root will broadcast packets to
all other switches. Each switch will select the
‘best’ link to use. When a link goes down, the network reconfigures again.
3.2 Spanning Trees (Definition).
Definition: Let G=(V,E). A spanning tree for G is a subgraph T=(V,E’) of G, such that T is a tree and T contains every vertex of G.
R
3.3 Spanning Tree theorem. Spanning Tree theorem:
A graph is connected IFF it has a spanning tree.
Proof: ()
Assume that G=(V,E) is connected. We will show that G has a spanning tree.
Step 1: Let H = G
Step 2: while (H has a circuit C) {
Step 2a: Remove an edge from C to form new graph H’.
Step 2b: Let H = H’ }
Step 3: Output H.
1. Algorithm will terminate because G is finite and there is a finite number of edges to delete
3.4 Minimum Spanning Tree
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
Let the following graph depict the scenario where the vertices are cities and the weighted edges are distances (km) between the cities.
Let’s say that the country wants to connect up the cities by building roads between them. The longer the road, the more money it has to spend.
How do we connect up the cities and spend the LEAST AMOUNT OF MONEY?
Ans: Find the MINIMUM spanning tree.
3.4 Minimum Spanning Tree.
Definition: A weighted graph is a graph where each edge has a number associated with it.
G = (V,E), E Z x { {x,y} | x,y V}
The total weight of the graph is the sum of all the weights of the edges in the graph.
A minimum spanning tree (MST) for a weighted graph is a spanning tree that has the least possible total weight compared to all other spanning trees for the graph
3.4 Minimum Spanning Tree.
How to find the minimum spanning tree?– Kruskal’s Algorithm– Prim’s Algorithm
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}• m = m + 1
} 4. Output T.
Idea: To add edges of the smallest weights which do not cause a circuit.
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
m=0
|V|-1 = 12
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
m=1
|V|-1 = 12
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
m=2
|V|-1 = 12
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
m=3
|V|-1 = 12
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
m=4
|V|-1 = 12
3
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66 8
10
612
m=7
|V|-1 = 12
3
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66 8
10
612
m=8
|V|-1 = 12
3
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66 8
10
612
m=9
|V|-1 = 12
3
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66 8
10
612
m=10
|V|-1 = 12
CIRCUIT!!!
3
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
2
66 8
10
612
m=10
|V|-1 = 12
3
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
2
66 8
10
612
m=11
|V|-1 = 12
3
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
2
66 8
10
612
m=12
|V|-1 = 12
3
3.5 MST: Kruskal’s Algorithm
1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) {
– a. Find edge e in E of least weight.– b. E = E - {e}– c. If E’ {e} does not produce circuit
• E’ = E’ {e}
• m = m + 1
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
2
2
2 33
4
4
4
2
m=12
|V|-1 = 12
Algorithm Halts. Cost = 39
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in
V.• e has least weight of all edges connecting T to a vertex
in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
Idea: To ‘grow’ a spanning tree.
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
|V| = 12 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
|V| = 12 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
|V| = 11 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
|V| = 11 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
612
|V| = 10 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
6|V| = 9 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
6|V| = 8 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
5
5
2
2
2 33
4
4
4
4 2
66
3
8
10
6|V| = 7 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
52
2
2 33
4
4
4
4 2
66
3
8
10
6|V| = 6 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
52
2
2 33
4
4
4 2
66
3
8
10
6|V| = 5 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
52
2
2 33
4
4
4 2
66
3
8
10
|V| = 4 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
52
2
2 33
4
4
4 2
66
3
8
10
|V| = 3 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
52
2
2 33
4
4
4 2
66
3
10
|V| = 2 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
52
2
2 33
4
4
4 2
66
3
|V| = 1 > 0
3.6 MST: Prim’s Algorithm
1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) {
– a. Find an edge e such that• e = {x,y}, x in V’, y in V. e connects T to some vertex in V.
• e has least weight of all edges connecting T to a vertex in V.
– b. V’=V’ {y}, E’ = E’ {e}, V = V - {y}
} 4. Output T.
A
GH
B C D
I
JK
F
L
EM5
52
2
2 33
4
4
4 2
3
|V| = 0
Algorithm Halts. Cost = 39
Different output possible
3A
GH
B C D
I
JK
F
L
EM5
5
2
2
2 33
4
4
4
2
A
GH
B C D
I
JK
F
L
EM5
52
2
2 33
4
4
4 2
3
Kruskal’s Algorithm
Prim’s Algorithm
Cost of Tree = 39