Minimum Spanning Trees - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Minimum Spanning Trees

Description:

If there are n nodes in G, a spanning tree consists of n-1 edges such that no cycles ... Knit together tree from step 1 with F' to form spanning tree. Graph Go ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 24
Provided by: erict9
Category:
Tags: knit | minimum | spanning | trees

less

Transcript and Presenter's Notes

Title: Minimum Spanning Trees


1
Minimum Spanning Trees
  • Definition
  • Two properties of MSTs
  • Prim and Kruskals Algorithm
  • Proofs of correctness
  • Boruvkas algorithm
  • Verifying an MST
  • Randomized algorithm in linear time

2
Problem Definition
  • Input
  • Weighted, connected undirected graph G(V,E)
  • Weight (length) function w on each edge e in E
  • Task
  • Compute a spanning tree of G of minimum total
    weight
  • Spanning tree
  • If there are n nodes in G, a spanning tree
    consists of n-1 edges such that no cycles are
    formed

3
Example
Input
4
Two Properties of MSTs
  • Cycle Property For any cycle C in a graph, the
    heaviest edge in C does not appear in the minimum
    spanning tree
  • Used to rule edges out
  • Cut Property For any proper non-empty subset X
    of the vertices, the lightest edge with exactly
    one endpoint in X belongs to the minimum spanning
    forest
  • Used to rule edges in

5
Cycle Property Illustration/Proof
  • Proof by contradiction
  • Suppose T is an MST with such an edge e.
  • Derive a contradiction showing that T is not an
    MST

6
Cut Property Illustration/Proof
  • Proof by contradiction
  • Suppose T is an MST without such an edge e.
  • Derive a contradiction showing that T is not an
    MST

7
Three Classic Greedy Algorithms
  • Kruskals approach
  • Select the minimum weight edge that does not form
    a cycle
  • Prims approach
  • Choose an arbitrary start node v
  • At any point in time, we have connected component
    N containing v and other nodes V-N
  • Choose the minimum weight edge from N to V-N
  • Boruvkas approach
  • Prim in parallel

8
Example
  • Illustrate the execution of Kruskal and Prims
    algorithms on the following input graph. Let D
    be the arbitrary start node for Prims algorithm.

9
Prim Implementation
  • Use a priority queue to organize nodes in V-N to
    facilitate finding closest node.
  • Extract-Min operation
  • Decrease-key operation
  • Describe how we could implement Prim using a
    priority queue.

10
Running Time of Prim
  • How many extract-min operations will we perform?
  • How many decrease-key operations will we perform?
  • How much time to build initial priority queue?
  • Given binary heap implementation, what is the
    running time?
  • Fibonacci heap
  • Decrease-key drops to O(1) amortized time

11
Kruskal Implementation
  • Kruskals Algorithm
  • Adding edge (u,v) to the current set of edges T
    forms a cycle if and only if u and v are in the
    same connected component.

12
Disjoint Set Data Stucture (Ch 21)
  • Given a universe U of objects
  • Maintain a collection of sets Si such that
  • Unioni Si U
  • Si intersect Sj is empty
  • Find-set(x) Returns set Si that contains x
  • Merge(Si, Sj) Returns new set Sk Si union Sj
  • Describe how we can implement cycle detection
    with this data structure.

13
Running Time of Kruskal
  • How many merges will we perform?
  • How many Find-set operations will we perform?
  • Each can be implemented in amortized a(V) time
    where a is a very slow growing function.
  • What other operations do we need to implement?
  • Overall running time?

14
Proofs of Correctness
  • Why do we know each edge that is added in
    Kruskals algorithm is part of an MST?
  • Why do we know that each edge added in Prims
    algorithm is part of an MST?

15
Boruvkas Algorithm
  • Prim in parallel
  • Boruvka Step
  • We have a graph of vertices
  • For each v in V, select the minimum weight edge
    connected to v
  • Update
  • Contract all selected edges, replacing each
    connected component by a single vertex
  • Delete loops, and keep only the lowest weight
    edge in a multi-edge
  • Run Boruvka steps until we have a single node

16
Boruvka Step Illustration
17
Boruvkas Algorithm Analysis
  • Correctness
  • How can we verify that each edge we add is part
    of an MST?
  • Running time
  • What is the running time of a Boruvka Step?
  • How many Boruvka steps must we implement in the
    worst case?

18
Verification Problem
  • Input
  • Weighted, connected undirected graph G(V,E)
  • Weight (length) function w on each edge e in E
  • A spanning tree T of G
  • Task
  • Answer yes/no if T is a minimum spanning tree for
    G
  • Two key concepts
  • Decision problem problem with yes/no answer
  • Verification Is it easier to verify an answer as
    correct as compared to generating an answer?

19
Key idea T(u,v)
  • Suppose we have a tree T
  • For each edge (u,v) not in T, let T(u,v) be the
    heaviest edge on the (u,v) path in T
  • If w(u,v) gt w(T(u,v)), then (u,v) should not be
    in T.
  • Consider edge (B,F) with weight 7.
  • T(B,F) (C,G) which has weight 6.
  • (B,F) is appropriately not in T as w(B,F) gt
    w(C,G).

20
Verification Algorithm
  • For each edge (u,v) not in T, find T(u,v).
  • Compare w (u,v) to w(T(u,v))
  • If all are ok, then return yes, else return no.
  • Running time?
  • O(E) time to perform comparisons
  • Sophisticated techniques to find all the T(u,v)
    in O(E) time.

21
Randomized Algorithm
  • Run Baruvkas Step 2 times
  • If there were originally n nodes, how many in
    reduced problem
  • Random Sampling
  • Make a smaller subgraph by choosing each edge
    with probability ½
  • Recursively compute minimum spanning tree (or
    perhaps forest) F on this reduced graph
  • Use verification algorithm to eliminate any edges
    (u,v) not in F whose weight is more than weight
    of F(u,v).
  • Apply algorithm recursively to the remaining
    graph to compute a spanning tree T
  • Knit together tree from step 1 with F to form
    spanning tree

22
Visualization
Graph Go
Step 1 Run 2 Baruvka Steps
Graph G3 G1 E2
Tree T4 T3 union E1
23
Analysis Intuition
Graph Go
Step 1 Run 2 Baruvka Steps
G2 has at most ½ the edges of G0
Step 2 Construct G2 by sampling ½ edges
Graph G3 G1 E2
Step 2 Recursively Construct T2 for graph G2
Step 2 Use T2 to identify edges E2 that cannot
be in MST for G1
G3 edges bounded by ½ nodes of G0
Tree T4 T3 union E1
Write a Comment
User Comments (0)
About PowerShow.com