0% found this document useful (0 votes)
53 views32 pages

SpanTree

The document discusses spanning tree algorithms for finding minimum cost connections between data centers. It describes Kruskal's and Prim's algorithms for finding minimum weight spanning trees in graphs. Kruskal's algorithm avoids cycles by adding edges in order of weight without forming cycles. Prim's algorithm builds a tree one vertex at a time by adding the minimum weight edge connected to the growing tree. Both algorithms find the same minimum cost solution.

Uploaded by

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

SpanTree

The document discusses spanning tree algorithms for finding minimum cost connections between data centers. It describes Kruskal's and Prim's algorithms for finding minimum weight spanning trees in graphs. Kruskal's algorithm avoids cycles by adding edges in order of weight without forming cycles. Prim's algorithm builds a tree one vertex at a time by adding the minimum weight edge connected to the growing tree. Both algorithms find the same minimum cost solution.

Uploaded by

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

Spanning Tree Algorithms

William T. Trotter and Mitchel T. Keller


Math 3012 – Applied Combinatorics
Spring 2009
A Networking Problem

Problem: The vertices represent 8 regional data centers which


need to be connected with high-speed data lines. Feasibility
studies show that the links illustrated above are possible, and the
cost in millions of dollars is shown next to the link. Which links
should be constructed to enable full communication (with relays
allowed) and keep the total cost minimal.
Links Will Form a Spanning Tree

Cost (T) = 47 + 23 + 75 + 74 + 55 + 74 + 79
= 427
Minimum Weight Spanning Trees

Problem: Given a connected graph with non-negative


weights on the edges, find a spanning tree T for
which the sum of the weights on the edges in T is as
small as possible.
Why Not Try All Possibilities?

 Suppose the graph has n vertices. Then the number of


possible spanning trees can be as large as n n-2 .
 When n = 75, this means that the number of spanning
trees can be as large as

7576562804644601479086318651590413464814067\
83308840339247043281018024279971356804708193\
5219466686248779296875
Kruskal’s Algorithm (Avoid Cycles)

 Sort the edges by weight


 Build a spanning forest (that eventually becomes a tree)
by adding the edge of minimum weight which when
added to those already chosen does not form a cycle.
Kruskal – Step 1
Kruskal – Step 2
Kruskal – Step 3
Kruskal – Step 4
Kruskal – Step 5
Kruskal – Step 6
Why Avoiding Cycles Matters

Up to this point, we have simply taken the


edges in order of their weight. But now we
will have to reject an edge since it forms a
cycle when added to those already chosen.
Forms a Cycle

So we cannot take the blue edge having weight 55.


Kruskal – Step 7 DONE!!

Weight (T) = 23 + 29 + 31 + 32 + 47 + 54 + 66 = 282


Prim’s Algorithm (Build Tree)

 Build a tree one vertex at a time.


 Start with a trivial one point tree T.
 Then add the edge of minimum weight among those
with one endpoint in T and the other not in T.
Prim – Step 1
Prim – Step 2
Prim – Step 3
Prim – Step 4
Prim – Step 5
Prim – Step 6
Prim – Step 7 Done!!

Weight (T) = 23 + 29 + 31 + 32 + 47 + 54 + 66 = 282


The Exchange Principle (1)
The Exchange Principle (2)

Consider any edge e not in the tree T. Then there is a


unique path P in T from one endpoint of e to the
other.
The Exchange Principle (3)

Consider any edge f from T


which belongs to the path P.
The Exchange Principle (4)

Then T’ = T – f + e is again a tree.


Constrained Spanning Trees

Some choices made by management.


May or may not be good ones??!!
Constrained Spanning Trees

Starting with this “handicap”, do the


best you can from this point on.
Fundamental Lemma

Lemma. Let G be a graph with non-negative weights on


the edges, let F be a spanning forest of G and let C be
a component of F. Also, among all edges with one
endpoint in C and the other not in C, let edge e be one
of minimum weight. Then among all the spanning trees of
G that contain F, there is one of minimum weight that
contains the edge e.
Applying the Exchange Principle

Let T be a tree containing F with w(T) minimum and


suppose that T does not contain the edge e = xy. On the
path P in T from x to y, chose an edge f with one
endpoint in C and the other not in C. Then w(e) ≤ w(f).
It follows that T’ = T – f + e is a tree containing e with
w(T’) ≤ w(T).
Data Structure and
Computational Issues

 Implementing Kruskal’s Algorithm seems to require


sorting the edges by weight as a preliminary step. Are
there alternatives?
 Implementing Prim’s algorithm seems to require
keeping track of the edge of minimum weight with one
endpoint in a component, but the components are
changing. How does one do this?

You might also like