×

Close

Type:
**Note**Institute:
**
Vellore institute of Technology University
**Specialization:
**Computer Science Engineering**Offline Downloads:
**277**Views:
**7462**Uploaded:
**6 months ago**

Touch here to read

Page-2

- Greedy Technique - ( 1 - 14 )
- Divide and Conquer Technique - ( 15 - 26 )
- Introduction to Data Structure - ( 27 - 30 )
- Array Data Structure - ( 31 - 44 )
- Stack - ( 45 - 52 )
- Queue - ( 53 - 56 )
- Linked list storage - ( 57 - 74 )
- Content of Algorithm - ( 75 - 75 )
- Introduction to Algorithm - ( 76 - 81 )
- Searching Techniques - ( 82 - 86 )
- Sorting Techniques - ( 87 - 107 )
- Greedy Algorithms - ( 108 - 108 )
- Divide and Conquer - ( 109 - 109 )
- Programs and Examples - ( 110 - 121 )

Topic:

Spanning Tree
Definition:
Spanning tree is a connected acyclic sub-graph (tree) of the given graph (G) that includes
all of G’s vertices
Example: Consider the following graph
1
b
a
2
5
c
d
3
The spanning trees for the above graph are as follows:
1
1
b
b
a
a
2
5
d
5
3
c
d
c
Weight (T2) = 8
Weight (T1) = 9
1
a
b
2
d
c
3
Weight (T3) = 6
Minimum Spanning Tree (MST)
Definition:
MST of a weighted, connected graph G is defined as: A spanning tree of G with
minimum total weight.
Example: Consider the example of spanning tree:
For the given graph there are three possible spanning trees. Among them the spanning
tree with the minimum weight 6 is the MST for the given graph
Question: Why can’t we use BRUTE FORCE method in constructing MST ?
Answer: If we use Brute force method• Exhaustive search approach has to be applied.
• Two serious obstacles faced:
1. The number of spanning trees grows exponentially with graph size.
2. Generating all spanning trees for the given graph is not easy.
2

MST Applications:
•
•
•
•
•
•
Network design.
Telephone, electrical, hydraulic, TV cable, computer, road
Approximation algorithms for NP-hard problems.
Traveling salesperson problem, Steiner tree
Cluster analysis.
Reducing data storage in sequencing amino acids in a protein
Learning salient features for real-time face verification
Auto config protocol for Ethernet bridging to avoid cycles in a network, etc
Prim’s Algorithm
-to find minimum spanning tree
Some useful definitions:
Fringe edge: An edge which has one vertex is in partially constructed tree Ti and
the other is not.
• Unseen edge: An edge with both vertices not in Ti
•
Algorithm:
ALGORITHM Prim (G)
//Prim’s algorithm for constructing a MST
//Input: A weighted connected graph G = { V, E }
//Output: ET the set of edges composing a MST of G
// the set of tree vertices can be initialized with any vertex
VT { v0}
ET Ø
for i 1 to |V| - 1 do
Find a minimum-weight edge e* = (v*, u*) among all the edges (v, u) such
that v is in VT and u is in V - VT
VT VT U { u*}
ET ET U { e*}
return ET
3

The method:
STEP 1: Start with a tree, T0, consisting of one vertex
STEP 2: “Grow” tree one vertex/edge at a time
• Construct a series of expanding sub-trees T1, T2, … Tn-1.
• At each stage construct Ti + 1 from Ti by adding the minimum weight edge
connecting a vertex in tree (Ti) to one vertex not yet in tree, choose from
“fringe” edges (this is the “greedy” step!)
Algorithm stops when all vertices are included
Example:
Apply Prim’s algorithm for the following graph to find MST.
1
b
3
c
4
5
a
4
6
5
f
d
2
8
6
e
Solution:
Tree
vertices
Remaining
vertices
a ( -, - )
b(a,3)
c(-,∞)
d(-,∞)
e(a,6)
f(a,5)
b ( a, 3 )
c(b,1)
d(-,∞)
e(a,6)
f(b,4)
Graph
b
3
a
1
3
b
c
a
1
c ( b, 1 )
d(c,6)
e(a,6)
f(b,4)
b
c
3
4
a
f
4

1
b
c
3
f ( b, 4)
d(f,5)
e(f,2)
4
a
f
2
e
1
b
3
e ( f, 2)
d(f,5)
a
c
4
5
f
d
2
e
d( f, 5)
Algorithm stops since all vertices
are included.
The weight of the minimum spanning
tree is 15
Efficiency:
Efficiency of Prim’s algorithm is based on data structure used to store priority queue.
• Unordered array: Efficiency: Θ(n2)
• Binary heap: Efficiency: Θ(m log n)
• Min-heap: For graph with n nodes and m edges: Efficiency: (n + m) log n
Conclusion:
•
•
Prim’s algorithm is a “vertex based algorithm”
Prim’s algorithm “Needs priority queue for locating the nearest vertex.” The
choice of priority queue matters in Prim implementation.
o Array - optimal for dense graphs
o Binary heap - better for sparse graphs
o Fibonacci heap - best in theory, but not in practice
5

## Leave your Comments