Spanning Tree Algorithms - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Spanning Tree Algorithms

Description:

... Weight ... Then add the edge of minimum weight among those with one endpoint in T and the ... be a graph with non-negative weights on the edges, let F be ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 33
Provided by: XPR2
Category:

less

Transcript and Presenter's Notes

Title: Spanning Tree Algorithms


1
Spanning Tree Algorithms
  • William T. Trotter and Mitchel T. Keller
  • Math 3012 Applied Combinatorics
  • Spring 2007

2
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.
3
Links Will Form a Spanning Tree
Cost (T) 47 23 75 74 55 74 79
427
4
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.
5
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

6
Kruskals 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.

7
Kruskal Step 1
8
Kruskal Step 2
9
Kruskal Step 3
10
Kruskal Step 4
11
Kruskal Step 5
12
Kruskal Step 6
13
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.
14
Forms a Cycle
So we cannot take the blue edge having weight 55.
15
Kruskal Step 7 DONE!!
Weight (T) 23 29 31 32 47 54 66
282
16
Prims 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.

17
Prim Step 1
18
Prim Step 2
19
Prim Step 3
20
Prim Step 4
21
Prim Step 5
22
Prim Step 6
23
Prim Step 7 Done!!
Weight (T) 23 29 31 32 47 54 66
282
24
The Exchange Principle (1)
25
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.
26
The Exchange Principle (3)
Consider any edge f from T which belongs to
the path P.
27
The Exchange Principle (4)
Then T T f e is again a tree.
28
Constrained Spanning Trees
Some choices made by management. May or may not
be good ones??!!
29
Constrained Spanning Trees
Starting with this handicap, do the best you
can from this point on.
30
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.
31
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).
32
Data Structure and Computational Issues
  • Implementing Kruskals Algorithm seems to require
    sorting the edges by weight as a preliminary
    step. Are there alternatives?
  • Implementing Prims 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?
Write a Comment
User Comments (0)
About PowerShow.com