Top Banner
Minimum Spanning Trees • Definition • Two properties of MST’s • Prim and Kruskal’s Algorithm – Proofs of correctness • Boruvka’s algorithm • Verifying an MST • Randomized algorithm in linear time
23

Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Dec 15, 2015

Download

Documents

Dante Jean
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Minimum Spanning Trees

• Definition

• Two properties of MST’s

• Prim and Kruskal’s Algorithm– Proofs of correctness

• Boruvka’s algorithm

• Verifying an MST

• Randomized algorithm in linear time

Page 2: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

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

Page 3: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Example

A B C D

E F G

1

3

8

2

4

7

5

69Input:

A B C D

E F G

1

3

8

2

4

7

5

69Output:

Page 4: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Two Properties of MST’s

• 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

Page 5: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

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

A B C D

E F G

1

3

8

2

4

7

5

69

A B C D

E F G

1

3

8

2

4

7

5

69

Page 6: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

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

A B C D

E F G

1

3

8

2

4

7

5

69

A B C D

E F G

1

3

8

2

4

7

5

69

Page 7: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Three Classic Greedy Algorithms

• Kruskal’s approach– Select the minimum weight edge that does not form a

cycle

• Prim’s 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

• Boruvka’s approach– Prim “in parallel”

Page 8: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

• Illustrate the execution of Kruskal and Prim’s algorithms on the following input graph. Let D be the arbitrary start node for Prim’s algorithm.

Example

A B C D

E F G

1

3

8

2

4

7

5

69

Page 9: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

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.

A B C D

E F G

1

3

8

2

4

7

5

69

Page 10: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

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

Page 11: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Kruskal Implementation

• Kruskal’s 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.

A B C D

E F G

1

3

8

2

4

7

5

69

Page 12: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

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.

A B C D

E F G

1

3

8

2

4

7

5

69

Page 13: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Running Time of Kruskal

• How many merges will we perform?• How many Find-set operations will we

perform?– Each can be implemented in amortized (V) time

where is a very slow growing function.

• What other operations do we need to implement?

• Overall running time?

Page 14: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Proofs of Correctness

• Why do we know each edge that is added in Kruskal’s algorithm is part of an MST?

• Why do we know that each edge added in Prim’s algorithm is part of an MST?

Page 15: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Boruvka’s 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

Page 16: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Boruvka Step IllustrationA B C D

E F G

1

3

8

2

9

7

5

64

6A B C D

E F G

1

3

8

2

9

7

54

A’ B’7

Page 17: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Boruvka’s 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?

Page 18: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

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?

Page 19: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

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) > w(T(u,v)), then (u,v) should not be in T.

A B C D

E F G

1

3

8

2

4

7

5

69

• 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) > w(C,G).

Page 20: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

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.

Page 21: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Randomized Algorithm

1. Run Baruvka’s Step 2 timesa) If there were originally n nodes, how many in reduced problem

2. Random Samplinga) Make a smaller subgraph by choosing each edge with

probability ½b) Recursively compute minimum spanning tree (or perhaps forest)

F on this reduced graphc) Use verification algorithm to eliminate any edges (u,v) not in F

whose weight is more than weight of F(u,v).

3. Apply algorithm recursively to the remaining graph to compute a spanning tree T’

a) Knit together tree from step 1 with F’ to form spanning tree

Page 22: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Graph Go

Step 1: Run 2 Baruvka Steps:Contracted Graph G1 List of edges E1

Step 2: Construct G2 by sampling ½ edges

Step 2: Recursively Construct T2 for graph G2

Step 2: Use T2 to identify edges E2 that cannot be in MST for G1

Graph G3 = G1 – E2

Step 3: Recursively Construct T3 for graph G3

Step 3: Return T3 melded with edges E1 as final tree T4

Tree T4 = T3 union E1

Visualization

Page 23: Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.

Graph Go

Step 1: Run 2 Baruvka Steps:Contracted Graph G1 List of edges E1

Step 2: Construct G2 by sampling ½ edges

Step 2: Recursively Construct T2 for graph G2

Step 2: Use T2 to identify edges E2 that cannot be in MST for G1

Graph G3 = G1 – E2

Step 3: Recursively Construct T3 for graph G3

Step 3: Return T3 melded with edges E1 as final tree T4

Tree T4 = T3 union E1

Analysis Intuition

G2 has at most ½ the edges of G0

G3 edges bounded by ½ nodes of G0