Minimum%20Spanning%20Trees - PowerPoint PPT Presentation

About This Presentation
Title:

Minimum%20Spanning%20Trees

Description:

... a spanning tree. The problem of determining the tree T is called the minimum-spanning-tree ... Minimum Spanning Trees can be used to model this problem. 4 ... – PowerPoint PPT presentation

Number of Views:79
Avg rating:3.0/5.0
Slides: 40
Provided by: csCit
Category:

less

Transcript and Presenter's Notes

Title: Minimum%20Spanning%20Trees


1
Minimum Spanning Trees
  • Definition of MST
  • Generic MST algorithm
  • Kruskal's algorithm
  • Prim's algorithm

2
Definition of MST
  • Let G(V,E) be a connected, undirected graph.
  • For each edge (u,v) in E, we have a weight w(u,v)
    specifying the cost (length of edge) to connect u
    and v.
  • We wish to find a (acyclic) subset T of E that
    connects all of the vertices in V and whose total
    weight is minimized.
  • Since the total weight is minimized, the subset T
    must be acyclic (no circuit).
  • Thus, T is a tree. We call it a spanning tree.
  • The problem of determining the tree T is called
    the minimum-spanning-tree problem.

3
Application of MST an example
  • In the design of electronic circuitry, it is
    often necessary to make a set of pins
    electrically equivalent by wiring them together.
  • To interconnect n pins, we can use n-1 wires,
    each connecting two pins.
  • We want to minimize the total length of the
    wires.
  • Minimum Spanning Trees can be used to model this
    problem.

4
Here is an example of a connected graph and its
minimum spanning tree
Notice that the tree is not unique replacing
(b,c) with (a,h) yields another spanning tree
with the same minimum weight.
5
Growing a MST(Generic Algorithm)
GENERIC_MST(G,w) 1 A 2 while A does not form
a spanning tree do 3 find an edge (u,v) that is
safe for A 4 AA?(u,v) 5 return A
  • Set A is always a subset of some minimum spanning
    tree. This property is called the invariant
    Property.
  • An edge (u,v) is a safe edge for A if adding the
    edge to A does not destroy the invariant.
  • A safe edge is just the CORRECT edge to choose to
    add to T.

6
How to find a safe edge
  • We need some definitions and a theorem.
  • A cut (S,V-S) of an undirected graph G(V,E) is a
    partition of V.
  • An edge crosses the cut (S,V-S) if one of its
    endpoints is in S and the other is in V-S.
  • An edge is a light edge crossing a cut if its
    weight is the minimum of any edge crossing the
    cut.

7
  • This figure shows a cut (S,V-S) of the graph.
  • The edge (d,c) is the unique light edge crossing
    the cut.

8
  • Theorem 25.1
  • Let G(V,E) be a connected, undirected graph with
    a real-valued weight function w defined on E.
  • Let A be a subset of E that is included in some
    minimum spanning tree for G.
  • Let (S,V-S) be any cut of G such that for any
    edge (u, v) in A, u, v ? S or u, v ? (V-S).
  • Let (u,v) be a light edge crossing (S,V-S).
  • Then, edge (u,v) is safe for A.
  • Proof Let Topt be an minimum spanning
    tree.(Blue)
  • A --a subset of Topt and (u,v)-- a light edge
    crossing (S, V-S)
  • If (u,v) is NOT safe, then (u,v) is not in T.
    (See the red edge in Figure)
  • There MUST be another edge (u, v) in Topt
    crossing (S, V-S).(Green)
  • We can replace (u,v) in Topt with (u, v) and
    get another treeTopt
  • Since (u, v) is light (the shortest edge connect
    crossing (S, V-S), Topt is also optimal.

9
  • Corollary 25.2
  • Let G(V,E) be a connected, undirected graph with
    a real-valued weight function w defined on E.
  • Let A be a subset of E that is included in some
    minimum spanning tree for G.
  • Let C be a connected component (tree) in the
    forest GA(V,A).
  • Let (u,v) be a light edge (shortest among all
    edges connecting C with others components)
    connecting C to some other component in GA.
  • Then, edge (u,v) is safe for A. (For Kruskals
    algorithm)

10
The algorithms of Kruskal and Prim
  • The two algorithms are elaborations of the
    generic algorithm.
  • They each use a specific rule to determine a safe
    edge in line 3 of GENERIC_MST.
  • In Kruskal's algorithm,
  • The set A is a forest.
  • The safe edge added to A is always a least-weight
    edge in the graph that connects two distinct
    components.
  • In Prim's algorithm,
  • The set A forms a single tree.
  • The safe edge added to A is always a least-weight
    edge connecting the tree to a vertex not in the
    tree.

11
Kruskal's algorithm(basic part)
  • (Sort the edges in an increasing order)
  • A
  • while E is not empty do
  • take an edge (u, v) that is shortest in E
  • and delete it from E
  • if u and v are in different components then
  • add (u, v) to A
  • Note each time a shortest edge in E is
    considered.

12
Kruskal's algorithm (Fun Part, not required)
  • MST_KRUSKAL(G,w)
  • 1 A
  • 2 for each vertex v in VG
  • 3 do MAKE_SET(v)
  • 4 sort the edges of E by nondecreasing weight w
  • 5 for each edge (u,v) in E, in order by
    nondecreasing weight
  • 6 do if FIND_SET(u) ! FIND_SET(v)
  • 7 then AA?(u,v)
  • 8 UNION(u,v)
  • return A
  • (Disjoint set is discussed in Chapter 21, Page
    498)

13
  • Disjoint-Set (Chapter 21, Page 498)
  • Keep a collection of sets S1, S2, .., Sk,
  • Each Si is a set, e,g, S1v1, v2, v8.
  • Three operations
  • Make-Set(x)-creates a new set whose only member
    is x.
  • Union(x, y) unites the sets that contain x and
    y, say, Sx and Sy, into a new set that is the
    union of the two sets.
  • Find-Set(x)-returns a pointer to the
    representative of the set containing x.

14
  • Our implementation uses a disjoint-set data
    structure to maintain several disjoint sets of
    elements.
  • Each set contains the vertices in a tree of the
    current forest.
  • The operation FIND_SET(u) returns a
    representative element from the set that contains
    u.
  • Thus, we can determine whether two vertices u and
    v belong to the same tree by testing whether
    FIND_SET(u) equals FIND_SET(v).
  • The combining of trees is accomplished by the
    UNION procedure.
  • Running time O(E lg (E)). (The analysis is
    not required.)

15
The execution of Kruskal's algorithm (Moderate
part)
  • The edges are considered by the algorithm in
    sorted order by weight.
  • The edge under consideration at each step is
    shown with a red weight number.

16
(No Transcript)
17
(No Transcript)
18
(No Transcript)
19
(No Transcript)
20
(No Transcript)
21
(No Transcript)
22
Prim's algorithm(basic part)
  • MST_PRIM(G,w,r)
  • A
  • Sr (r is an arbitrary node in V)
  • 3. QV-r
  • 4. while Q is not empty do
  • 5 take an edge (u, v) such that (1) u ?S
    and v ? Q (v? S ) and
  • (u, v) is the shortest edge
    satisfying (1)
  • 6 add (u, v) to A, add v to S and delete v
    from Q

23
Prim's algorithm(Fun part, not required)
  • MST_PRIM(G,w,r)
  • 1 for each u in Q do
  • keyu8
  • parentuNIL
  • 4 keyr0
  • 5 Q?VQ
  • 6 while Q! do
  • 7 uEXTRACT_MIN(Q)
  • 8 for each v in Adju do
  • 9 if v in Q and w(u,v)ltkeyv
  • 10 then parentvu
  • 11 keyvw(u,v)

24
  • Grow the minimum spanning tree from the root
    vertex r.
  • Q is a priority queue, holding all vertices that
    are not in the tree now.
  • keyv is the minimum weight of any edge
    connecting v to a vertex in the tree.
  • parentv names the parent of v in the tree.
  • When the algorithm terminates, Q is empty the
    minimum spanning tree A for G is thus
    A(v,parentv)v?V-r.
  • Running time O(EVlg V). (Analysis is not
    required)

25
The execution of Prim's algorithm(moderate part)
the root vertex
26
(No Transcript)
27
(No Transcript)
28
(No Transcript)
29
Bottleneck spanning tree A spanning tree of G
whose largest edge weight is minimum over all
spanning trees of G. The value of the bottleneck
spanning tree is the weight of the maximum-weight
edge in T. Theorem A minimum spanning
tree is also a bottleneck spanning tree.
30
2-optimal Euler path problem
  • 2-optimal Euler path problem

31
Euler circuit in a directed graph
  • An Euler circuit in a directed graph is a
    directed circuit that visits every edge in G
    exactly once.

b
d
e
g
a
c
f
Figure 1
32
Theorem 2
  • If all the vertices of a connected graph have
    equal in-degrees and out-degrees, then the graph
    has an Euler circuit.
  • in-degree-- number of edges pointing to the node
  • out-degree-- number of edges pointing out from
    the node.

33
2-path
  • A 2-path is a directed subgraph consisting of two
    consecutive edges. For example
  • v is called the midpoint.
  • Every 2-path is given a cost (positive number)
  • A Euler circuit of m edges contains m 2-paths,and
    the cost of the Euler circuit is the total weight
    of the m 2-paths.

u
v
w
34
An Example
There are four 2-paths (a, b), (b, c), (c, d)
and (d, a). If c(a,b)1, c(b, c)2, c(c,d)3,
and c(d, a)3, then the total cost of the four
2-paths is 12339.
b
a
c
d
35
2-optimal Euler circuit problem
  • Instance A directed graph, each of its vertices
    has in-degree at most 2 and out-degree at most 2,
    and 2-path has a cost.
  • Question Find an Euler circuit with the smallest
    cost among all possible Euler circuits.
  • Back to the example of the last slide.
  • If c(a,b)1, c(b, c)2, c(c,d)3, and c(d, a)3,
    the total cost of the four 2-paths is 12339.

36
An Euler circuit
  • An Euler circuit in the directed graph is a, b,
    g, f, e, d, c, a.

b
d
e
g
a
c
f
Figure 1
The 2-paths are (a, b), (b, g), (g, f), (f, e),
(e,d), (d, c) and (c, a)
37
Line graph
  • If we view each edge in the above graph G(Figure
    1) as a vertex, and each 2-path in the above
    graph as an edge, we get another graph L(G),
    called line graph.

d
b
e
a
c
g
f
38
Continue
  • Observation An Euler circuit in graph G
    corresponds to a Hamilton circuit in graph L(G).
  • 2-optimal Euler path problem becomes a TSP
    problem in line graph.
  • Theorem TSP in line graph L(G), where G has
    in-degree at most 2 and out-degree at most 2,
    can be solved in polynomial time. (TSP in general
    is NP-complete)

39
Line graph
  • In the line graph, the corresponding Hamilton
    circuit is
  • a, b, g, f, e, d, c, a. Some edges in the line
    graph are not used, e.g., (b, c), and (d, g).

d
b
e
a
c
g
f
Write a Comment
User Comments (0)
About PowerShow.com