0% found this document useful (0 votes)
131 views9 pages

A Spanning Tree Is A Subset of Graph G

A spanning tree is a subset of edges in a graph that connects all vertices while avoiding cycles. A connected graph will have at least one spanning tree, while a disconnected graph will have none. There are several properties of spanning trees: they contain all vertices of the original graph using the minimum number of possible edges, they do not contain any cycles, and removing any edge would disconnect the graph. Common algorithms for finding spanning trees, especially minimum spanning trees, are Kruskal's algorithm and Prim's algorithm, which both use a greedy approach.

Uploaded by

gopi9966957145
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
131 views9 pages

A Spanning Tree Is A Subset of Graph G

A spanning tree is a subset of edges in a graph that connects all vertices while avoiding cycles. A connected graph will have at least one spanning tree, while a disconnected graph will have none. There are several properties of spanning trees: they contain all vertices of the original graph using the minimum number of possible edges, they do not contain any cycles, and removing any edge would disconnect the graph. Common algorithms for finding spanning trees, especially minimum spanning trees, are Kruskal's algorithm and Prim's algorithm, which both use a greedy approach.

Uploaded by

gopi9966957145
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

A spanning tree is a subset of Graph G, which has all the vertices covered with minimum

possible number of edges. Hence, a spanning tree does not have cycles and it cannot be
disconnected..

By this definition, we can draw a conclusion that every connected and undirected Graph G has
at least one spanning tree. A disconnected graph does not have any spanning tree, as it cannot
be spanned to all its vertices.

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, 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.
Mathematical Properties of Spanning Tree
 Spanning tree has n-1 edges, where n is the number of nodes (vertices).

 From a complete graph, by removing maximum e - n + 1 edges, we can construct a spanning tree.

 A complete graph can have maximum nn-2 number of spanning trees.

Thus, we can conclude that spanning trees are a subset of connected Graph G and
disconnected graphs do not have spanning tree.

Application of Spanning Tree


Spanning tree is basically used to find a minimum path to connect all nodes in a graph.
Common application of spanning trees are −

 Civil Network Planning

 Computer Network Routing Protocol

 Cluster Analysis

Let us understand this through a small example. Consider, city network as a huge graph and
now plans to deploy telephone lines in such a way that in minimum lines we can connect to all
city nodes. This is where the spanning tree comes into picture.

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 −

 Kruskal's Algorithm

 Prim's Algorithm

Both are greedy algorithms.

Kruskal's Spanning Tree Algorithm

Kruskal's algorithm 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.

To understand Kruskal's algorithm let us consider the following example −

Step 1 - Remove all loops and Parallel Edges


Remove all loops and parallel edges from the given graph.

In case of parallel edges, keep the one which has the least cost associated
and remove all others.
Step 2 - Arrange all edges in their increasing
order of weight
The next step is to create a set of edges and weight, and arrange them in
an ascending order of weightage (cost).

Step 3 - Add the edge which has the least


weightage
Now we start adding edges to the graph beginning from the one which has
the least weight. Throughout, we shall keep checking that the spanning
properties remain intact. In case, by adding one edge, the spanning tree
property does not hold then we shall consider not to include the edge in the
graph.

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.

Next cost is 3, and associated edges are A,C and C,D. We add them again −
Next cost in the table is 4, and we observe that adding it will create a circuit
in the graph. −

We ignore it. In the process we shall ignore/avoid all edges that create a
circuit.

We observe that edges with cost 5 and 6 also create circuits. We ignore
them and move on.

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.

Prim's Spanning Tree Algorithm

Prim's algorithm 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 - Remove all loops and parallel edges


Remove all loops and parallel edges from the given graph. In case of
parallel edges, keep the one which has the least cost associated and
remove all others.

Step 2 - Choose any arbitrary node as root


node
In this case, we choose S node as the root node of Prim's spanning tree.
This node is arbitrarily chosen, so any node can be the root node. One may
wonder why any video can be a root node. So the answer is, in the
spanning tree all the nodes of a graph are included and because it is
connected then there must be at least one edge, which will join it to the
rest of the tree.

Step 3 - Check outgoing edges and select the


one with less cost
After choosing the root node S, we see that S,A and S,C are two edges with
weight 7 and 8, respectively. We choose the edge S,A as it is lesser than
the other.
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.

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.

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 is same.

You might also like