What Is Spanning Tree? What Are The Properties and Applications of Spanning Tree?
What Is Spanning Tree? What Are The Properties and Applications of Spanning Tree?
We found three spanning trees off one complete graph. A complete undirected graph can have
maximum nn-2 number of spanning trees, where n is the number of nodes. In the above addressed
example, n is 3, hence 33−2 = 3 spanning trees are possible.
General Properties of Spanning Tree:
We now understand that one graph can have more than one spanning tree. Following are a few
properties of the spanning tree connected to graph G −
A connected graph G can have more than one spanning tree.
All possible spanning trees of graph G, have the same number of edges and vertices.
The spanning tree does not have any cycle (loops).
Removing one edge from the spanning tree will make the graph disconnected, i.e. the
spanning tree is minimally connected.
Adding one edge to the spanning tree will create a circuit or loop, i.e. the spanning tree
is maximally acyclic.
Application of Spanning Tree:
Spanning tree is basically used to find a minimum path to connect all nodes in a graph. Common
applications of spanning trees are −
Civil Network Planning
Computer Network Routing Protocol
Cluster Analysis
What is Minimum Spanning Tree (MST)? Explain its Algorithms?
Minimum Spanning Tree (MST):In a weighted graph, a minimum spanning tree is a spanning
tree that has minimum weight than all other spanning trees of the same graph. In real-world
situations, this weight can be measured as distance, congestion, traffic load or any arbitrary value
denoted to the edges.
Minimum Spanning-Tree Algorithm:
We shall learn about two most important spanning tree algorithms here −
1. Kruskal's Algorithm
2. Prim's Algorithm
Both are greedy algorithms.
1. Kruskal's Spanning Tree Algorithm:
Kruskal's algorithm is to find the minimum cost spanning tree uses the greedy approach. This
algorithm treats the graph as a forest and every node it has as an individual tree. A tree connects to
another only and only if, it has the least cost among all available options and does not violate MST
properties.
Step-1: To understand Kruskal's algorithm let us consider the following example –
The least cost is 2 and edges involved are B,D and D,T. We add them. Adding them does not violate
spanning tree properties, so we continue to our next edge selection.
Step-4:Next cost is 3, and associated edges are A,C and C,D. We add them again −
Step-5:Next cost in the table is 4, and we observe that adding it will create a circuit in the graph.
Step-6: We ignore it. In the process we shall ignore/avoid all edges that create a circuit.
Step-7:We observe that edges with cost 5 and 6 also create circuits. We ignore them and move on.
Step-8:Now we are left with only one node to be added. Between the two least cost edges available
7 and 8, we shall add the edge with cost 7.
By adding edge S,A we have included all the nodes of the graph and we now have minimum cost
spanning tree.
2. Prim's Spanning Tree Algorithm:
Prim's algorithm is to find minimum cost spanning tree (as Kruskal's algorithm) uses the greedy
approach. Prim's algorithm shares a similarity with the shortest path first algorithms.
Prim's algorithm, in contrast with Kruskal's algorithm, treats the nodes as a single tree and keeps on
adding new nodes to the spanning tree from the given graph.
To contrast with Kruskal's algorithm and to understand Prim's algorithm better, we shall use the
same example –
Step-1: To understand Prim's algorithm let us consider the following example –
Now, the tree S-7-A is treated as one node and we check for all edges going out from it. We select
the one which has the lowest cost and include it in the tree.
Step-4:After this step, S-7-A-3-C tree is formed. Now we'll again treat it as a node and
will check all the edges again. However, we will choose only the least cost edge. In this
case, C-3-D is the new edge, which is less than other edges' cost 8, 6, 4, etc.
Step-5:After adding node D to the spanning tree, we now have two edges going out of
it having the same cost, i.e. D-2-T and D-2-B. Thus, we can add either one. But the
next step will again yield edge 2 as the least cost. Hence, we are showing a spanning
tree with both edges included.
We may find that the output spanning tree of the same graph using two different
algorithms issame.