113
Algorithms & Models of Computation CS/ECE 374, Spring 2019 Algorithms for Minimum Spanning Trees Lecture 20 Thursday, March 28, 2019 L A T E Xed: April 3, 2019 23:32 Chan, Har-Peled, Hassanieh (UIUC) CS374 1 Spring 2019 1 / 47

Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Algorithms & Models of ComputationCS/ECE 374, Spring 2019

Algorithms for MinimumSpanning TreesLecture 20Thursday, March 28, 2019

LATEXed: April 3, 2019 23:32

Chan, Har-Peled, Hassanieh (UIUC) CS374 1 Spring 2019 1 / 47

Page 2: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Part I

Algorithms for Minimum SpanningTree

Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 2019 2 / 47

Page 3: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Minimum Spanning Tree

Input Connected graph G = (V ,E) with edge costs

Goal Find T ⊆ E such that (V ,T ) is connected and totalcost of all edges in T is smallest

1 T is the minimum spanning tree (MST) of G

20

15

3

17

28

231

4

9

1625

366

1 2

3

45

7

Chan, Har-Peled, Hassanieh (UIUC) CS374 3 Spring 2019 3 / 47

Page 4: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Minimum Spanning Tree

Input Connected graph G = (V ,E) with edge costs

Goal Find T ⊆ E such that (V ,T ) is connected and totalcost of all edges in T is smallest

1 T is the minimum spanning tree (MST) of G

20

15

3

17

28

231

4

9

1625

366

1 2

3

45

7

Chan, Har-Peled, Hassanieh (UIUC) CS374 3 Spring 2019 3 / 47

Page 5: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Applications

1 Network Design1 Designing networks with minimum cost but maximum

connectivity

2 Approximation algorithms1 Can be used to bound the optimality of algorithms to

approximate Traveling Salesman Problem, Steiner Trees, etc.

3 Cluster Analysis

Chan, Har-Peled, Hassanieh (UIUC) CS374 4 Spring 2019 4 / 47

Page 6: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Some basic properties of Spanning Trees

A graph G is connected iff it has a spanning tree

Every spanning tree of a graph on n nodes has n − 1 edges

Let T = (V ,ET ) be a spanning tree of G = (V ,E). Forevery non-tree edge e ∈ E \ ET there is a unique cycle C inT + e. For every edge f ∈ C − e, T − f + e is anotherspanning tree of G .

Chan, Har-Peled, Hassanieh (UIUC) CS374 5 Spring 2019 5 / 47

Page 7: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Some basic properties of Spanning Trees

A graph G is connected iff it has a spanning tree

Every spanning tree of a graph on n nodes has n − 1 edges

Let T = (V ,ET ) be a spanning tree of G = (V ,E). Forevery non-tree edge e ∈ E \ ET there is a unique cycle C inT + e. For every edge f ∈ C − e, T − f + e is anotherspanning tree of G .

Chan, Har-Peled, Hassanieh (UIUC) CS374 5 Spring 2019 5 / 47

Page 8: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Part II

The Algorithms

Chan, Har-Peled, Hassanieh (UIUC) CS374 6 Spring 2019 6 / 47

Page 9: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Greedy Template

Initially E is the set of all edges in GT is empty (* T will store edges of a MST *)

while E is not empty dochoose e ∈ Eif (e satisfies condition)

add e to Treturn the set T

Main Task: In what order should edges be processed? When shouldwe add edge to spanning tree?

KA PA RD

Chan, Har-Peled, Hassanieh (UIUC) CS374 7 Spring 2019 7 / 47

Page 10: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Process edges in the order of their costs (starting from the least) andadd edges to T as long as they don’t form a cycle.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

Figure: MST of G

Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 2019 8 / 47

Page 11: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Process edges in the order of their costs (starting from the least) andadd edges to T as long as they don’t form a cycle.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

1

Figure: MST of G

Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 2019 8 / 47

Page 12: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Process edges in the order of their costs (starting from the least) andadd edges to T as long as they don’t form a cycle.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

3

1

Figure: MST of G

Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 2019 8 / 47

Page 13: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Process edges in the order of their costs (starting from the least) andadd edges to T as long as they don’t form a cycle.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

3

14

Figure: MST of G

Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 2019 8 / 47

Page 14: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Process edges in the order of their costs (starting from the least) andadd edges to T as long as they don’t form a cycle.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

3

14

9

Figure: MST of G

Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 2019 8 / 47

Page 15: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Process edges in the order of their costs (starting from the least) andadd edges to T as long as they don’t form a cycle.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

3

14

9

Figure: MST of G

Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 2019 8 / 47

Page 16: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Process edges in the order of their costs (starting from the least) andadd edges to T as long as they don’t form a cycle.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

3

17

231

4

9

Figure: MST of G

Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 2019 8 / 47

Page 17: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s Algorithm

T maintained by algorithm will be a tree. Start with a node in T . Ineach iteration, pick edge with least attachment cost to T .

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

Figure: MST of GBack

Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 2019 9 / 47

Page 18: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s Algorithm

T maintained by algorithm will be a tree. Start with a node in T . Ineach iteration, pick edge with least attachment cost to T .

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

1

Figure: MST of GBack

Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 2019 9 / 47

Page 19: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s Algorithm

T maintained by algorithm will be a tree. Start with a node in T . Ineach iteration, pick edge with least attachment cost to T .

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

14

Figure: MST of GBack

Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 2019 9 / 47

Page 20: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s Algorithm

T maintained by algorithm will be a tree. Start with a node in T . Ineach iteration, pick edge with least attachment cost to T .

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

14

9

Figure: MST of GBack

Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 2019 9 / 47

Page 21: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s Algorithm

T maintained by algorithm will be a tree. Start with a node in T . Ineach iteration, pick edge with least attachment cost to T .

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

3

14

9

Figure: MST of GBack

Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 2019 9 / 47

Page 22: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s Algorithm

T maintained by algorithm will be a tree. Start with a node in T . Ineach iteration, pick edge with least attachment cost to T .

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

3

17

14

9

Figure: MST of GBack

Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 2019 9 / 47

Page 23: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s Algorithm

T maintained by algorithm will be a tree. Start with a node in T . Ineach iteration, pick edge with least attachment cost to T .

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

3

17

231

4

9

Figure: MST of GBack

Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 2019 9 / 47

Page 24: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Boruvka’s Algorithm

Simplest to implement. See notes.Assume G is a connected graph.

T is ∅ (* T will store edges of a MST *)

while T is not spanning doX ← ∅for each connected component S of T do

add to X the cheapest edge between S and V \ SAdd edges in X to T

return the set T

Chan, Har-Peled, Hassanieh (UIUC) CS374 10 Spring 2019 10 / 47

Page 25: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Boruvka’s Algorithm

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

Figure: MST of G

Chan, Har-Peled, Hassanieh (UIUC) CS374 11 Spring 2019 11 / 47

Page 26: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Reverse Delete Algorithm

Initially E is the set of all edges in GT is E (* T will store edges of a MST *)

while E is not empty dochoose e ∈ E of largest cost

if removing e does not disconnect T thenremove e from T

return the set T

Returns a minimum spanning tree. Back

Chan, Har-Peled, Hassanieh (UIUC) CS374 12 Spring 2019 12 / 47

Page 27: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Reverse Delete Algorithm

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: Graph G

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

Figure: MST of G

Chan, Har-Peled, Hassanieh (UIUC) CS374 13 Spring 2019 13 / 47

Page 28: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Part III

Safe and unsafe edges

Chan, Har-Peled, Hassanieh (UIUC) CS374 14 Spring 2019 14 / 47

Page 29: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

AssumptionAnd for now . . .

AssumptionEdge costs are distinct, that is no two edge costs are equal.

Chan, Har-Peled, Hassanieh (UIUC) CS374 15 Spring 2019 15 / 47

Page 30: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Cuts

DefinitionGiven a graph G = (V ,E), a cut isa partition of the vertices of the graphinto two sets (S,V \ S).

Edges having an endpoint on bothsides are the edges of the cut.

A cut edge is crossing the cut.

S V \ S

Chan, Har-Peled, Hassanieh (UIUC) CS374 16 Spring 2019 16 / 47

Page 31: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Cuts

DefinitionGiven a graph G = (V ,E), a cut isa partition of the vertices of the graphinto two sets (S,V \ S).

Edges having an endpoint on bothsides are the edges of the cut.

A cut edge is crossing the cut.

S V \ S

Chan, Har-Peled, Hassanieh (UIUC) CS374 16 Spring 2019 16 / 47

Page 32: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Safe and Unsafe Edges

DefinitionAn edge e = (u, v) is a safe edge if there is some partition of Vinto S and V \ S and e is the unique minimum cost edge crossing S(one end in S and the other in V \ S).

DefinitionAn edge e = (u, v) is an unsafe edge if there is some cycle C suchthat e is the unique maximum cost edge in C .

PropositionIf edge costs are distinct then every edge is either safe or unsafe.

Proof.Exercise.

Chan, Har-Peled, Hassanieh (UIUC) CS374 17 Spring 2019 17 / 47

Page 33: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Safe and Unsafe Edges

DefinitionAn edge e = (u, v) is a safe edge if there is some partition of Vinto S and V \ S and e is the unique minimum cost edge crossing S(one end in S and the other in V \ S).

DefinitionAn edge e = (u, v) is an unsafe edge if there is some cycle C suchthat e is the unique maximum cost edge in C .

PropositionIf edge costs are distinct then every edge is either safe or unsafe.

Proof.Exercise.

Chan, Har-Peled, Hassanieh (UIUC) CS374 17 Spring 2019 17 / 47

Page 34: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Safe and Unsafe Edges

DefinitionAn edge e = (u, v) is a safe edge if there is some partition of Vinto S and V \ S and e is the unique minimum cost edge crossing S(one end in S and the other in V \ S).

DefinitionAn edge e = (u, v) is an unsafe edge if there is some cycle C suchthat e is the unique maximum cost edge in C .

PropositionIf edge costs are distinct then every edge is either safe or unsafe.

Proof.Exercise.

Chan, Har-Peled, Hassanieh (UIUC) CS374 17 Spring 2019 17 / 47

Page 35: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Every edge is either safe or unsafe

PropositionIf edge costs are distinct then every edge is either safe or unsafe.

Chan, Har-Peled, Hassanieh (UIUC) CS374 18 Spring 2019 18 / 47

Page 36: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Safe edgeExample...

Every cut identifies one safe edge...

S V \ S13

7

3

5

11

...the cheapest edge in the cut.Note: An edge e may be a safe edge for many cuts!

Chan, Har-Peled, Hassanieh (UIUC) CS374 19 Spring 2019 19 / 47

Page 37: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Safe edgeExample...

Every cut identifies one safe edge...

S V \ S13

7

3

5

11

Safe edge in the cut (S, V \ S)

...the cheapest edge in the cut.Note: An edge e may be a safe edge for many cuts!Chan, Har-Peled, Hassanieh (UIUC) CS374 19 Spring 2019 19 / 47

Page 38: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Unsafe edgeExample...

Every cycle identifies one unsafe edge...

57

2

15

3

...the most expensive edge in the cycle.

Chan, Har-Peled, Hassanieh (UIUC) CS374 20 Spring 2019 20 / 47

Page 39: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Unsafe edgeExample...

Every cycle identifies one unsafe edge...

57

2

15

3

15

...the most expensive edge in the cycle.

Chan, Har-Peled, Hassanieh (UIUC) CS374 20 Spring 2019 20 / 47

Page 40: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Example

20

15

3

17

28

231

4

9

1625

366

1 2

3

45

7

Figure: Graph with unique edge costs. Safe edges are red, rest are unsafe.

And all safe edges are in the MST in this case...

Chan, Har-Peled, Hassanieh (UIUC) CS374 21 Spring 2019 21 / 47

Page 41: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Example

20

15

3

17

28

231

4

9

1625

366

1 2

3

45

7

Figure: Graph with unique edge costs. Safe edges are red, rest are unsafe.

And all safe edges are in the MST in this case...

Chan, Har-Peled, Hassanieh (UIUC) CS374 21 Spring 2019 21 / 47

Page 42: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Example

20

15

3

17

28

231

4

9

1625

366

1 2

3

45

7

Figure: Graph with unique edge costs. Safe edges are red, rest are unsafe.

And all safe edges are in the MST in this case...

Chan, Har-Peled, Hassanieh (UIUC) CS374 21 Spring 2019 21 / 47

Page 43: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Some key observationsProofs later

LemmaIf e is a safe edge then every minimum spanning tree contains e.

LemmaIf e is an unsafe edge then no MST of G contains e.

Chan, Har-Peled, Hassanieh (UIUC) CS374 22 Spring 2019 22 / 47

Page 44: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Part IV

Correctness

Chan, Har-Peled, Hassanieh (UIUC) CS374 23 Spring 2019 23 / 47

Page 45: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of MST Algorithms

1 Many different MST algorithms

2 All of them rely on some basic properties of MSTs, in particularthe Cut Property to be seen shortly.

Chan, Har-Peled, Hassanieh (UIUC) CS374 24 Spring 2019 24 / 47

Page 46: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Key Observation: Cut Property

LemmaIf e is a safe edge then every minimum spanning tree contains e.

Proof.1 Suppose (for contradiction) e is not in MST T .

2 Since e is safe there is an S ⊂ V such that e is the unique mincost edge crossing S .

3 Since T is connected, there must be some edge f with one endin S and the other in V \ S

4 Since cf > ce , T ′ = (T \ f ) ∪ e is a spanning tree oflower cost! Error: T ′ may not be a spanning tree!!

Chan, Har-Peled, Hassanieh (UIUC) CS374 25 Spring 2019 25 / 47

Page 47: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Key Observation: Cut Property

LemmaIf e is a safe edge then every minimum spanning tree contains e.

Proof.1 Suppose (for contradiction) e is not in MST T .

2 Since e is safe there is an S ⊂ V such that e is the unique mincost edge crossing S .

3 Since T is connected, there must be some edge f with one endin S and the other in V \ S

4 Since cf > ce , T ′ = (T \ f ) ∪ e is a spanning tree oflower cost!

Error: T ′ may not be a spanning tree!!

Chan, Har-Peled, Hassanieh (UIUC) CS374 25 Spring 2019 25 / 47

Page 48: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Key Observation: Cut Property

LemmaIf e is a safe edge then every minimum spanning tree contains e.

Proof.1 Suppose (for contradiction) e is not in MST T .

2 Since e is safe there is an S ⊂ V such that e is the unique mincost edge crossing S .

3 Since T is connected, there must be some edge f with one endin S and the other in V \ S

4 Since cf > ce , T ′ = (T \ f ) ∪ e is a spanning tree oflower cost! Error: T ′ may not be a spanning tree!!

Chan, Har-Peled, Hassanieh (UIUC) CS374 25 Spring 2019 25 / 47

Page 49: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Error in Proof: ExampleProblematic example. S = 1, 2, 7, e = (7, 3), f = (1, 6). T− f + e is not aspanning tree.

2

3

45

6 7

20

15

3

17

28

23

14

9

1625

36

1

f

(A)

1 (A) Consider adding the edge f .

Chan, Har-Peled, Hassanieh (UIUC) CS374 26 Spring 2019 26 / 47

Page 50: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Error in Proof: ExampleProblematic example. S = 1, 2, 7, e = (7, 3), f = (1, 6). T− f + e is not aspanning tree.

2

3

45

6 7

20

15

3

17

28

23

14

9

1625

36

1

f

(B)

1 (A) Consider adding the edge f .

2 (B) It is safe because it is thecheapest edge in the cut.

Chan, Har-Peled, Hassanieh (UIUC) CS374 26 Spring 2019 26 / 47

Page 51: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Error in Proof: ExampleProblematic example. S = 1, 2, 7, e = (7, 3), f = (1, 6). T− f + e is not aspanning tree.

2

3

45

6 7

20

15

3

17

28

23

14

9

1625

36

1

f

e

(C)

1 (A) Consider adding the edge f .

2 (B) It is safe because it is thecheapest edge in the cut.

3 (C) Lets throw out the edge ecurrently in the spanning treewhich is more expensive than fand is in the same cut. Put it finstead...

Chan, Har-Peled, Hassanieh (UIUC) CS374 26 Spring 2019 26 / 47

Page 52: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Error in Proof: ExampleProblematic example. S = 1, 2, 7, e = (7, 3), f = (1, 6). T− f + e is not aspanning tree.

2

3

45

6 7

20

15

3

17

28

23

14

9

1625

36

1

(D)

1 (A) Consider adding the edge f .

2 (B) It is safe because it is thecheapest edge in the cut.

3 (C) Lets throw out the edge ecurrently in the spanning treewhich is more expensive than fand is in the same cut. Put it finstead...

4 (D) New graph of selected edgesis not a tree anymore. BUG.

Chan, Har-Peled, Hassanieh (UIUC) CS374 26 Spring 2019 26 / 47

Page 53: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Proof of Cut Property

Proof.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

1 Suppose e = (v ,w) is not in MSTT and e is min weight edge in cut(S,V \ S). Assume v ∈ S .

2 T is spanning tree: there is a uniquepath P from v to w in T

3 Let w ′ be the first vertex in Pbelonging to V \ S ; let v ′ be thevertex just before it on P, and lete′ = (v ′,w ′)

4 T ′ = (T \ e′)∪e is spanningtree of lower cost. (Why?)

Chan, Har-Peled, Hassanieh (UIUC) CS374 27 Spring 2019 27 / 47

Page 54: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Proof of Cut Property

Proof.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36 e

1 Suppose e = (v ,w) is not in MSTT and e is min weight edge in cut(S,V \ S). Assume v ∈ S .

2 T is spanning tree: there is a uniquepath P from v to w in T

3 Let w ′ be the first vertex in Pbelonging to V \ S ; let v ′ be thevertex just before it on P, and lete′ = (v ′,w ′)

4 T ′ = (T \ e′)∪e is spanningtree of lower cost. (Why?)

Chan, Har-Peled, Hassanieh (UIUC) CS374 27 Spring 2019 27 / 47

Page 55: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Proof of Cut Property

Proof.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36 e

P

1 Suppose e = (v ,w) is not in MSTT and e is min weight edge in cut(S,V \ S). Assume v ∈ S .

2 T is spanning tree: there is a uniquepath P from v to w in T

3 Let w ′ be the first vertex in Pbelonging to V \ S ; let v ′ be thevertex just before it on P, and lete′ = (v ′,w ′)

4 T ′ = (T \ e′)∪e is spanningtree of lower cost. (Why?)

Chan, Har-Peled, Hassanieh (UIUC) CS374 27 Spring 2019 27 / 47

Page 56: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Proof of Cut Property

Proof.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36 e

e′

1 Suppose e = (v ,w) is not in MSTT and e is min weight edge in cut(S,V \ S). Assume v ∈ S .

2 T is spanning tree: there is a uniquepath P from v to w in T

3 Let w ′ be the first vertex in Pbelonging to V \ S ; let v ′ be thevertex just before it on P, and lete′ = (v ′,w ′)

4 T ′ = (T \ e′)∪e is spanningtree of lower cost. (Why?)

Chan, Har-Peled, Hassanieh (UIUC) CS374 27 Spring 2019 27 / 47

Page 57: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Proof of Cut Property

Proof.

1 2

3

45

6 7

20

15

3

17

28

231

4

9

1625

36

1 Suppose e = (v ,w) is not in MSTT and e is min weight edge in cut(S,V \ S). Assume v ∈ S .

2 T is spanning tree: there is a uniquepath P from v to w in T

3 Let w ′ be the first vertex in Pbelonging to V \ S ; let v ′ be thevertex just before it on P, and lete′ = (v ′,w ′)

4 T ′ = (T \ e′)∪e is spanningtree of lower cost. (Why?)

Chan, Har-Peled, Hassanieh (UIUC) CS374 27 Spring 2019 27 / 47

Page 58: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Proof of Cut Property (contd)

ObservationT ′ = (T \ e′) ∪ e is a spanning tree.

Proof.T ′ is connected.

Removed e′ = (v ′,w ′) from T but v ′ and w ′ are connectedby the path P − f + e in T ′. Hence T ′ is connected if T is.

T ′ is a tree

T ′ is connected and has n − 1 edges (since T had n − 1edges) and hence T ′ is a tree

Chan, Har-Peled, Hassanieh (UIUC) CS374 28 Spring 2019 28 / 47

Page 59: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Proof of Cut Property (contd)

ObservationT ′ = (T \ e′) ∪ e is a spanning tree.

Proof.T ′ is connected.

Removed e′ = (v ′,w ′) from T but v ′ and w ′ are connectedby the path P − f + e in T ′. Hence T ′ is connected if T is.

T ′ is a tree

T ′ is connected and has n − 1 edges (since T had n − 1edges) and hence T ′ is a tree

Chan, Har-Peled, Hassanieh (UIUC) CS374 28 Spring 2019 28 / 47

Page 60: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Proof of Cut Property (contd)

ObservationT ′ = (T \ e′) ∪ e is a spanning tree.

Proof.T ′ is connected.

Removed e′ = (v ′,w ′) from T but v ′ and w ′ are connectedby the path P − f + e in T ′. Hence T ′ is connected if T is.

T ′ is a tree

T ′ is connected and has n − 1 edges (since T had n − 1edges) and hence T ′ is a tree

Chan, Har-Peled, Hassanieh (UIUC) CS374 28 Spring 2019 28 / 47

Page 61: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Safe Edges form a Tree

LemmaLet G be a connected graph with distinct edge costs, then the set ofsafe edges form a connected graph.

Proof.1 Suppose not. Let S be a connected component in the graph

induced by the safe edges.

2 Consider the edges crossing S , there must be a safe edge amongthem since edge costs are distinct and so we must have picked it.

Chan, Har-Peled, Hassanieh (UIUC) CS374 29 Spring 2019 29 / 47

Page 62: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Safe Edges form an MST

CorollaryLet G be a connected graph with distinct edge costs, then set of safeedges form the unique MST of G .

Consequence: Every correct MST algorithm when G has uniqueedge costs includes exactly the safe edges.

Chan, Har-Peled, Hassanieh (UIUC) CS374 30 Spring 2019 30 / 47

Page 63: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Safe Edges form an MST

CorollaryLet G be a connected graph with distinct edge costs, then set of safeedges form the unique MST of G .

Consequence: Every correct MST algorithm when G has uniqueedge costs includes exactly the safe edges.

Chan, Har-Peled, Hassanieh (UIUC) CS374 30 Spring 2019 30 / 47

Page 64: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Cycle Property

LemmaIf e is an unsafe edge then no MST of G contains e.

Proof.Exercise.

Note: Cut and Cycle properties hold even when edge costs are notdistinct. Safe and unsafe definitions do not rely on distinct costassumption.

Chan, Har-Peled, Hassanieh (UIUC) CS374 31 Spring 2019 31 / 47

Page 65: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Prim’s Algorithm

Prim’s AlgorithmPick edge with minimum attachment cost to current tree, and add tocurrent tree.

Proof of correctness.1 If e is added to tree, then e is safe and belongs to every MST.

1 Let S be the vertices connected by edges in T when e is added.2 e is edge of lowest cost with one end in S and the other in

V \ S and hence e is safe.

2 Set of edges output is a spanning tree

1 Set of edges output forms a connected graph: by induction, S isconnected in each iteration and eventually S = V .

2 Only safe edges added and they do not have a cycle

Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 2019 32 / 47

Page 66: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Prim’s Algorithm

Prim’s AlgorithmPick edge with minimum attachment cost to current tree, and add tocurrent tree.

Proof of correctness.1 If e is added to tree, then e is safe and belongs to every MST.

1 Let S be the vertices connected by edges in T when e is added.

2 e is edge of lowest cost with one end in S and the other inV \ S and hence e is safe.

2 Set of edges output is a spanning tree

1 Set of edges output forms a connected graph: by induction, S isconnected in each iteration and eventually S = V .

2 Only safe edges added and they do not have a cycle

Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 2019 32 / 47

Page 67: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Prim’s Algorithm

Prim’s AlgorithmPick edge with minimum attachment cost to current tree, and add tocurrent tree.

Proof of correctness.1 If e is added to tree, then e is safe and belongs to every MST.

1 Let S be the vertices connected by edges in T when e is added.2 e is edge of lowest cost with one end in S and the other in

V \ S and hence e is safe.

2 Set of edges output is a spanning tree

1 Set of edges output forms a connected graph: by induction, S isconnected in each iteration and eventually S = V .

2 Only safe edges added and they do not have a cycle

Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 2019 32 / 47

Page 68: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Prim’s Algorithm

Prim’s AlgorithmPick edge with minimum attachment cost to current tree, and add tocurrent tree.

Proof of correctness.1 If e is added to tree, then e is safe and belongs to every MST.

1 Let S be the vertices connected by edges in T when e is added.2 e is edge of lowest cost with one end in S and the other in

V \ S and hence e is safe.

2 Set of edges output is a spanning tree1 Set of edges output forms a connected graph: by induction, S is

connected in each iteration and eventually S = V .

2 Only safe edges added and they do not have a cycle

Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 2019 32 / 47

Page 69: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Prim’s Algorithm

Prim’s AlgorithmPick edge with minimum attachment cost to current tree, and add tocurrent tree.

Proof of correctness.1 If e is added to tree, then e is safe and belongs to every MST.

1 Let S be the vertices connected by edges in T when e is added.2 e is edge of lowest cost with one end in S and the other in

V \ S and hence e is safe.

2 Set of edges output is a spanning tree1 Set of edges output forms a connected graph: by induction, S is

connected in each iteration and eventually S = V .2 Only safe edges added and they do not have a cycle

Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 2019 32 / 47

Page 70: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Kruskal’s Algorithm

Kruskal’s AlgorithmPick edge of lowest cost and add if it does not form a cycle withexisting edges.

Proof of correctness.1 If e = (u, v) is added to tree, then e is safe

1 When algorithm adds e let S and S ’ be the connectedcomponents containing u and v respectively

2 e is the lowest cost edge crossing S (and also S ’).3 If there is an edge e′ crossing S and has lower cost than e,

then e′ would come before e in the sorted order and would beadded by the algorithm to T

2 Set of edges output is a spanning tree : exercise

Chan, Har-Peled, Hassanieh (UIUC) CS374 33 Spring 2019 33 / 47

Page 71: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Kruskal’s Algorithm

Kruskal’s AlgorithmPick edge of lowest cost and add if it does not form a cycle withexisting edges.

Proof of correctness.1 If e = (u, v) is added to tree, then e is safe

1 When algorithm adds e let S and S ’ be the connectedcomponents containing u and v respectively

2 e is the lowest cost edge crossing S (and also S ’).3 If there is an edge e′ crossing S and has lower cost than e,

then e′ would come before e in the sorted order and would beadded by the algorithm to T

2 Set of edges output is a spanning tree : exercise

Chan, Har-Peled, Hassanieh (UIUC) CS374 33 Spring 2019 33 / 47

Page 72: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Kruskal’s Algorithm

Kruskal’s AlgorithmPick edge of lowest cost and add if it does not form a cycle withexisting edges.

Proof of correctness.1 If e = (u, v) is added to tree, then e is safe

1 When algorithm adds e let S and S ’ be the connectedcomponents containing u and v respectively

2 e is the lowest cost edge crossing S (and also S ’).

3 If there is an edge e′ crossing S and has lower cost than e,then e′ would come before e in the sorted order and would beadded by the algorithm to T

2 Set of edges output is a spanning tree : exercise

Chan, Har-Peled, Hassanieh (UIUC) CS374 33 Spring 2019 33 / 47

Page 73: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Kruskal’s Algorithm

Kruskal’s AlgorithmPick edge of lowest cost and add if it does not form a cycle withexisting edges.

Proof of correctness.1 If e = (u, v) is added to tree, then e is safe

1 When algorithm adds e let S and S ’ be the connectedcomponents containing u and v respectively

2 e is the lowest cost edge crossing S (and also S ’).3 If there is an edge e′ crossing S and has lower cost than e,

then e′ would come before e in the sorted order and would beadded by the algorithm to T

2 Set of edges output is a spanning tree : exercise

Chan, Har-Peled, Hassanieh (UIUC) CS374 33 Spring 2019 33 / 47

Page 74: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Boruvka’s Algorithm

Proof of correctness.Argue that only safe edges are added.

Chan, Har-Peled, Hassanieh (UIUC) CS374 34 Spring 2019 34 / 47

Page 75: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Correctness of Reverse Delete Algorithm

Reverse Delete AlgorithmConsider edges in decreasing cost and remove an edge if it does notdisconnect the graph

Proof of correctness.Argue that only unsafe edges are removed.

Chan, Har-Peled, Hassanieh (UIUC) CS374 35 Spring 2019 35 / 47

Page 76: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

When edge costs are not distinct

Heuristic argument: Make edge costs distinct by adding a small tinyand different cost to each edge

Formal argument: Order edges lexicographically to break ties

1 ei ≺ ej if either c(ei) < c(ej) or (c(ei) = c(ej) and i < j)

2 Lexicographic ordering extends to sets of edges. If A,B ⊆ E ,A 6= B then A ≺ B if either c(A) < c(B) or (c(A) = c(B)and A \ B has a lower indexed edge than B \ A)

3 Can order all spanning trees according to lexicographic order oftheir edge sets. Hence there is a unique MST.

Prim’s, Kruskal, and Reverse Delete Algorithms are optimal withrespect to lexicographic ordering.

Chan, Har-Peled, Hassanieh (UIUC) CS374 36 Spring 2019 36 / 47

Page 77: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

When edge costs are not distinct

Heuristic argument: Make edge costs distinct by adding a small tinyand different cost to each edge

Formal argument: Order edges lexicographically to break ties

1 ei ≺ ej if either c(ei) < c(ej) or (c(ei) = c(ej) and i < j)

2 Lexicographic ordering extends to sets of edges. If A,B ⊆ E ,A 6= B then A ≺ B if either c(A) < c(B) or (c(A) = c(B)and A \ B has a lower indexed edge than B \ A)

3 Can order all spanning trees according to lexicographic order oftheir edge sets. Hence there is a unique MST.

Prim’s, Kruskal, and Reverse Delete Algorithms are optimal withrespect to lexicographic ordering.

Chan, Har-Peled, Hassanieh (UIUC) CS374 36 Spring 2019 36 / 47

Page 78: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

When edge costs are not distinct

Heuristic argument: Make edge costs distinct by adding a small tinyand different cost to each edge

Formal argument: Order edges lexicographically to break ties

1 ei ≺ ej if either c(ei) < c(ej) or (c(ei) = c(ej) and i < j)

2 Lexicographic ordering extends to sets of edges. If A,B ⊆ E ,A 6= B then A ≺ B if either c(A) < c(B) or (c(A) = c(B)and A \ B has a lower indexed edge than B \ A)

3 Can order all spanning trees according to lexicographic order oftheir edge sets. Hence there is a unique MST.

Prim’s, Kruskal, and Reverse Delete Algorithms are optimal withrespect to lexicographic ordering.

Chan, Har-Peled, Hassanieh (UIUC) CS374 36 Spring 2019 36 / 47

Page 79: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

When edge costs are not distinct

Heuristic argument: Make edge costs distinct by adding a small tinyand different cost to each edge

Formal argument: Order edges lexicographically to break ties

1 ei ≺ ej if either c(ei) < c(ej) or (c(ei) = c(ej) and i < j)

2 Lexicographic ordering extends to sets of edges. If A,B ⊆ E ,A 6= B then A ≺ B if either c(A) < c(B) or (c(A) = c(B)and A \ B has a lower indexed edge than B \ A)

3 Can order all spanning trees according to lexicographic order oftheir edge sets. Hence there is a unique MST.

Prim’s, Kruskal, and Reverse Delete Algorithms are optimal withrespect to lexicographic ordering.

Chan, Har-Peled, Hassanieh (UIUC) CS374 36 Spring 2019 36 / 47

Page 80: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Edge Costs: Positive and Negative

1 Algorithms and proofs don’t assume that edge costs arenon-negative! MST algorithms work for arbitrary edge costs.

2 Another way to see this: make edge costs non-negative byadding to each edge a large enough positive number. Why doesthis work for MSTs but not for shortest paths?

3 Can compute maximum weight spanning tree by negating edgecosts and then computing an MST.

Question: Why does this not work for shortest paths?

Chan, Har-Peled, Hassanieh (UIUC) CS374 37 Spring 2019 37 / 47

Page 81: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Edge Costs: Positive and Negative

1 Algorithms and proofs don’t assume that edge costs arenon-negative! MST algorithms work for arbitrary edge costs.

2 Another way to see this: make edge costs non-negative byadding to each edge a large enough positive number. Why doesthis work for MSTs but not for shortest paths?

3 Can compute maximum weight spanning tree by negating edgecosts and then computing an MST.Question: Why does this not work for shortest paths?

Chan, Har-Peled, Hassanieh (UIUC) CS374 37 Spring 2019 37 / 47

Page 82: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Part V

Data Structures for MST: PriorityQueues and Union-Find

Chan, Har-Peled, Hassanieh (UIUC) CS374 38 Spring 2019 38 / 47

Page 83: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Boruvka’s Algorithm

No complex data structure needed.

T is ∅ (* T will store edges of a MST *)

while T is not spanning doX ← ∅for each connected component S of T do

add to X the cheapest edge between S and V \ SAdd edges in X to T

return the set T

O(log n) iterations of while loop. Why? Number of connectedcomponents shrink by at least half since each component mergeswith one or more other components.

Each iteration can be implemented in O(m) time.

Running time: O(m log n) time.

Chan, Har-Peled, Hassanieh (UIUC) CS374 39 Spring 2019 39 / 47

Page 84: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Boruvka’s Algorithm

No complex data structure needed.

T is ∅ (* T will store edges of a MST *)

while T is not spanning doX ← ∅for each connected component S of T do

add to X the cheapest edge between S and V \ SAdd edges in X to T

return the set T

O(log n) iterations of while loop. Why?

Number of connectedcomponents shrink by at least half since each component mergeswith one or more other components.

Each iteration can be implemented in O(m) time.

Running time: O(m log n) time.

Chan, Har-Peled, Hassanieh (UIUC) CS374 39 Spring 2019 39 / 47

Page 85: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Boruvka’s Algorithm

No complex data structure needed.

T is ∅ (* T will store edges of a MST *)

while T is not spanning doX ← ∅for each connected component S of T do

add to X the cheapest edge between S and V \ SAdd edges in X to T

return the set T

O(log n) iterations of while loop. Why? Number of connectedcomponents shrink by at least half since each component mergeswith one or more other components.

Each iteration can be implemented in O(m) time.

Running time: O(m log n) time.

Chan, Har-Peled, Hassanieh (UIUC) CS374 39 Spring 2019 39 / 47

Page 86: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Boruvka’s Algorithm

No complex data structure needed.

T is ∅ (* T will store edges of a MST *)

while T is not spanning doX ← ∅for each connected component S of T do

add to X the cheapest edge between S and V \ SAdd edges in X to T

return the set T

O(log n) iterations of while loop. Why? Number of connectedcomponents shrink by at least half since each component mergeswith one or more other components.

Each iteration can be implemented in O(m) time.

Running time: O(m log n) time.

Chan, Har-Peled, Hassanieh (UIUC) CS374 39 Spring 2019 39 / 47

Page 87: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Boruvka’s Algorithm

No complex data structure needed.

T is ∅ (* T will store edges of a MST *)

while T is not spanning doX ← ∅for each connected component S of T do

add to X the cheapest edge between S and V \ SAdd edges in X to T

return the set T

O(log n) iterations of while loop. Why? Number of connectedcomponents shrink by at least half since each component mergeswith one or more other components.

Each iteration can be implemented in O(m) time.

Running time: O(m log n) time.

Chan, Har-Peled, Hassanieh (UIUC) CS374 39 Spring 2019 39 / 47

Page 88: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Prim’s AlgorithmImplementing Prim’s Algorithm

Prim ComputeMSTE is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

while S 6= V dopick e = (v ,w) ∈ E such that

v ∈ S and w ∈ V − Se has minimum cost

T = T ∪ eS = S ∪ w

return the set T

Analysis

1 Number of iterations = O(n), where n is number of vertices2 Picking e is O(m) where m is the number of edges3 Total time O(nm)

Chan, Har-Peled, Hassanieh (UIUC) CS374 40 Spring 2019 40 / 47

Page 89: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Prim’s AlgorithmImplementing Prim’s Algorithm

Prim ComputeMSTE is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

while S 6= V dopick e = (v ,w) ∈ E such that

v ∈ S and w ∈ V − Se has minimum cost

T = T ∪ eS = S ∪ w

return the set T

Analysis1 Number of iterations = O(n), where n is number of vertices

2 Picking e is O(m) where m is the number of edges3 Total time O(nm)

Chan, Har-Peled, Hassanieh (UIUC) CS374 40 Spring 2019 40 / 47

Page 90: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Prim’s AlgorithmImplementing Prim’s Algorithm

Prim ComputeMSTE is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

while S 6= V dopick e = (v ,w) ∈ E such that

v ∈ S and w ∈ V − Se has minimum cost

T = T ∪ eS = S ∪ w

return the set T

Analysis1 Number of iterations = O(n), where n is number of vertices2 Picking e is O(m) where m is the number of edges

3 Total time O(nm)

Chan, Har-Peled, Hassanieh (UIUC) CS374 40 Spring 2019 40 / 47

Page 91: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Prim’s AlgorithmImplementing Prim’s Algorithm

Prim ComputeMSTE is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

while S 6= V dopick e = (v ,w) ∈ E such that

v ∈ S and w ∈ V − Se has minimum cost

T = T ∪ eS = S ∪ w

return the set T

Analysis1 Number of iterations = O(n), where n is number of vertices2 Picking e is O(m) where m is the number of edges3 Total time O(nm)

Chan, Har-Peled, Hassanieh (UIUC) CS374 40 Spring 2019 40 / 47

Page 92: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Prim’s AlgorithmMore Efficient Implementation

Prim ComputeMSTE is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

for v 6∈ S, a(v) = minw∈S c(w , v)for v 6∈ S, e(v) = w such that w ∈ S and c(w , v) is minimum

while S 6= V dopick v with minimum a(v)T = T ∪ (e(v), v)S = S ∪ vupdate arrays a and e

return the set T

Maintain vertices in V \ S in a priority queue with key a(v).

Chan, Har-Peled, Hassanieh (UIUC) CS374 41 Spring 2019 41 / 47

Page 93: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Prim’s AlgorithmMore Efficient Implementation

Prim ComputeMSTE is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

for v 6∈ S, a(v) = minw∈S c(w , v)for v 6∈ S, e(v) = w such that w ∈ S and c(w , v) is minimum

while S 6= V dopick v with minimum a(v)T = T ∪ (e(v), v)S = S ∪ vupdate arrays a and e

return the set T

Maintain vertices in V \ S in a priority queue with key a(v).

Chan, Har-Peled, Hassanieh (UIUC) CS374 41 Spring 2019 41 / 47

Page 94: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Prim’s AlgorithmMore Efficient Implementation

Prim ComputeMSTE is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

for v 6∈ S, a(v) = minw∈S c(w , v)for v 6∈ S, e(v) = w such that w ∈ S and c(w , v) is minimum

while S 6= V dopick v with minimum a(v)T = T ∪ (e(v), v)S = S ∪ vupdate arrays a and e

return the set T

Maintain vertices in V \ S in a priority queue with key a(v).

Chan, Har-Peled, Hassanieh (UIUC) CS374 41 Spring 2019 41 / 47

Page 95: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Priority Queues

Data structure to store a set S of n elements where each elementv ∈ S has an associated real/integer key k(v) such that thefollowing operations

1 makeQ: create an empty queue

2 findMin: find the minimum key in S3 extractMin: Remove v ∈ S with smallest key and return it

4 add(v , k(v)): Add new element v with key k(v) to S5 Delete(v): Remove element v from S6 decreaseKey (v , k ′(v)): decrease key of v from k(v) (current

key) to k ′(v) (new key). Assumption: k ′(v) ≤ k(v)

7 meld: merge two separate priority queues into one

Chan, Har-Peled, Hassanieh (UIUC) CS374 42 Spring 2019 42 / 47

Page 96: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s using priority queues

E is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

for v 6∈ S, a(v) = minw∈S c(w , v)for v 6∈ S, e(v) = w such that w ∈ S and c(w , v) is minimum

while S 6= V dopick v with minimum a(v)T = T ∪ (e(v), v)S = S ∪ vupdate arrays a and e

return the set T

Maintain vertices in V \ S in a priority queue with key a(v)

1 Requires O(n) extractMin operations

2 Requires O(m) decreaseKey operations

Chan, Har-Peled, Hassanieh (UIUC) CS374 43 Spring 2019 43 / 47

Page 97: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s using priority queues

E is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

for v 6∈ S, a(v) = minw∈S c(w , v)for v 6∈ S, e(v) = w such that w ∈ S and c(w , v) is minimum

while S 6= V dopick v with minimum a(v)T = T ∪ (e(v), v)S = S ∪ vupdate arrays a and e

return the set T

Maintain vertices in V \ S in a priority queue with key a(v)

1 Requires O(n) extractMin operations

2 Requires O(m) decreaseKey operations

Chan, Har-Peled, Hassanieh (UIUC) CS374 43 Spring 2019 43 / 47

Page 98: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Prim’s using priority queues

E is the set of all edges in GS = 1T is empty (* T will store edges of a MST *)

for v 6∈ S, a(v) = minw∈S c(w , v)for v 6∈ S, e(v) = w such that w ∈ S and c(w , v) is minimum

while S 6= V dopick v with minimum a(v)T = T ∪ (e(v), v)S = S ∪ vupdate arrays a and e

return the set T

Maintain vertices in V \ S in a priority queue with key a(v)

1 Requires O(n) extractMin operations

2 Requires O(m) decreaseKey operations

Chan, Har-Peled, Hassanieh (UIUC) CS374 43 Spring 2019 43 / 47

Page 99: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Running time of Prim’s Algorithm

O(n) extractMin operations and O(m) decreaseKey operations

1 Using standard Heaps, extractMin and decreaseKey takeO(log n) time. Total: O((m + n) log n)

2 Using Fibonacci Heaps, O(log n) for extractMin and O(1)(amortized) for decreaseKey. Total: O(n log n + m).

3 Prim’s algorithm and Dijkstra’s algorithms are similar. Where isthe difference?

4 Prim’s algorithm = Dijkstra where length of a path π is theweight of the heaviest edge in π. (Bottleneck shortest path.)

Chan, Har-Peled, Hassanieh (UIUC) CS374 44 Spring 2019 44 / 47

Page 100: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Running time of Prim’s Algorithm

O(n) extractMin operations and O(m) decreaseKey operations

1 Using standard Heaps, extractMin and decreaseKey takeO(log n) time. Total: O((m + n) log n)

2 Using Fibonacci Heaps, O(log n) for extractMin and O(1)(amortized) for decreaseKey. Total: O(n log n + m).

3 Prim’s algorithm and Dijkstra’s algorithms are similar. Where isthe difference?

4 Prim’s algorithm = Dijkstra where length of a path π is theweight of the heaviest edge in π. (Bottleneck shortest path.)

Chan, Har-Peled, Hassanieh (UIUC) CS374 44 Spring 2019 44 / 47

Page 101: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Running time of Prim’s Algorithm

O(n) extractMin operations and O(m) decreaseKey operations

1 Using standard Heaps, extractMin and decreaseKey takeO(log n) time. Total: O((m + n) log n)

2 Using Fibonacci Heaps, O(log n) for extractMin and O(1)(amortized) for decreaseKey. Total: O(n log n + m).

3 Prim’s algorithm and Dijkstra’s algorithms are similar. Where isthe difference?

4 Prim’s algorithm = Dijkstra where length of a path π is theweight of the heaviest edge in π. (Bottleneck shortest path.)

Chan, Har-Peled, Hassanieh (UIUC) CS374 44 Spring 2019 44 / 47

Page 102: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Kruskal ComputeMSTInitially E is the set of all edges in GT is empty (* T will store edges of a MST *)

while E is not empty dochoose e ∈ E of minimum cost

if (T ∪ e does not have cycles)

add e to Treturn the set T

1 Presort edges based on cost. Choosing minimum can be done inO(1) time

2 Do BFS/DFS on T ∪ e. Takes O(n) time

3 Total time O(m log m) + O(mn) = O(mn)

Chan, Har-Peled, Hassanieh (UIUC) CS374 45 Spring 2019 45 / 47

Page 103: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Kruskal ComputeMSTInitially E is the set of all edges in GT is empty (* T will store edges of a MST *)

while E is not empty dochoose e ∈ E of minimum cost

if (T ∪ e does not have cycles)

add e to Treturn the set T

1 Presort edges based on cost. Choosing minimum can be done inO(1) time

2 Do BFS/DFS on T ∪ e. Takes O(n) time

3 Total time O(m log m) + O(mn) = O(mn)

Chan, Har-Peled, Hassanieh (UIUC) CS374 45 Spring 2019 45 / 47

Page 104: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Kruskal ComputeMSTInitially E is the set of all edges in GT is empty (* T will store edges of a MST *)

while E is not empty dochoose e ∈ E of minimum cost

if (T ∪ e does not have cycles)

add e to Treturn the set T

1 Presort edges based on cost. Choosing minimum can be done inO(1) time

2 Do BFS/DFS on T ∪ e. Takes O(n) time

3 Total time O(m log m) + O(mn) = O(mn)

Chan, Har-Peled, Hassanieh (UIUC) CS374 45 Spring 2019 45 / 47

Page 105: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Kruskal ComputeMSTInitially E is the set of all edges in GT is empty (* T will store edges of a MST *)

while E is not empty dochoose e ∈ E of minimum cost

if (T ∪ e does not have cycles)

add e to Treturn the set T

1 Presort edges based on cost. Choosing minimum can be done inO(1) time

2 Do BFS/DFS on T ∪ e. Takes O(n) time

3 Total time O(m log m) + O(mn) = O(mn)

Chan, Har-Peled, Hassanieh (UIUC) CS374 45 Spring 2019 45 / 47

Page 106: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Kruskal ComputeMSTInitially E is the set of all edges in GT is empty (* T will store edges of a MST *)

while E is not empty dochoose e ∈ E of minimum cost

if (T ∪ e does not have cycles)

add e to Treturn the set T

1 Presort edges based on cost. Choosing minimum can be done inO(1) time

2 Do BFS/DFS on T ∪ e. Takes O(n) time

3 Total time O(m log m) + O(mn) = O(mn)

Chan, Har-Peled, Hassanieh (UIUC) CS374 45 Spring 2019 45 / 47

Page 107: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Kruskal’s Algorithm

Kruskal ComputeMSTInitially E is the set of all edges in GT is empty (* T will store edges of a MST *)

while E is not empty dochoose e ∈ E of minimum cost

if (T ∪ e does not have cycles)

add e to Treturn the set T

1 Presort edges based on cost. Choosing minimum can be done inO(1) time

2 Do BFS/DFS on T ∪ e. Takes O(n) time

3 Total time O(m log m) + O(mn) = O(mn)

Chan, Har-Peled, Hassanieh (UIUC) CS374 45 Spring 2019 45 / 47

Page 108: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Kruskal’s Algorithm Efficiently

Kruskal ComputeMSTSort edges in E based on cost

T is empty (* T will store edges of a MST *)

each vertex u is placed in a set by itself

while E is not empty dopick e = (u, v) ∈ E of minimum cost

if u and v belong to different sets

add e to Tmerge the sets containing u and v

return the set T

Need a data structure to check if two elements belong to same setand to merge two sets.Using Union-Find data structure can implement Kruskal’s algorithmin O((m + n) log m) time.

Chan, Har-Peled, Hassanieh (UIUC) CS374 46 Spring 2019 46 / 47

Page 109: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Kruskal’s Algorithm Efficiently

Kruskal ComputeMSTSort edges in E based on cost

T is empty (* T will store edges of a MST *)

each vertex u is placed in a set by itself

while E is not empty dopick e = (u, v) ∈ E of minimum cost

if u and v belong to different sets

add e to Tmerge the sets containing u and v

return the set T

Need a data structure to check if two elements belong to same setand to merge two sets.

Using Union-Find data structure can implement Kruskal’s algorithmin O((m + n) log m) time.

Chan, Har-Peled, Hassanieh (UIUC) CS374 46 Spring 2019 46 / 47

Page 110: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Implementing Kruskal’s Algorithm Efficiently

Kruskal ComputeMSTSort edges in E based on cost

T is empty (* T will store edges of a MST *)

each vertex u is placed in a set by itself

while E is not empty dopick e = (u, v) ∈ E of minimum cost

if u and v belong to different sets

add e to Tmerge the sets containing u and v

return the set T

Need a data structure to check if two elements belong to same setand to merge two sets.Using Union-Find data structure can implement Kruskal’s algorithmin O((m + n) log m) time.

Chan, Har-Peled, Hassanieh (UIUC) CS374 46 Spring 2019 46 / 47

Page 111: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Best Known Asymptotic Running Times for MST

Prim’s algorithm using Fibonacci heaps: O(n log n + m).If m is O(n) then running time is Ω(n log n).

QuestionIs there a linear time (O(m + n) time) algorithm for MST?

1 O(m log∗m) time [Fredman, Tarjan 1987]2 O(m + n) time using bit operations in RAM model [Fredman,

Willard 1994]3 O(m + n) expected time (randomized algorithm) [Karger,

Klein, Tarjan 1995]4 O((n + m)α(m, n)) time Chazelle 2000]5 Still open: Is there an O(n + m) time deterministic algorithm

in the comparison model?

Chan, Har-Peled, Hassanieh (UIUC) CS374 47 Spring 2019 47 / 47

Page 112: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Best Known Asymptotic Running Times for MST

Prim’s algorithm using Fibonacci heaps: O(n log n + m).If m is O(n) then running time is Ω(n log n).

QuestionIs there a linear time (O(m + n) time) algorithm for MST?

1 O(m log∗m) time [Fredman, Tarjan 1987]2 O(m + n) time using bit operations in RAM model [Fredman,

Willard 1994]3 O(m + n) expected time (randomized algorithm) [Karger,

Klein, Tarjan 1995]4 O((n + m)α(m, n)) time Chazelle 2000]5 Still open: Is there an O(n + m) time deterministic algorithm

in the comparison model?

Chan, Har-Peled, Hassanieh (UIUC) CS374 47 Spring 2019 47 / 47

Page 113: Algorithms for Minimum Spanning Trees...Minimum Spanning Tree InputConnected graph G = (V;E) with edge costs GoalFind T E such that (V;T) is connected and total cost of all edges in

Best Known Asymptotic Running Times for MST

Prim’s algorithm using Fibonacci heaps: O(n log n + m).If m is O(n) then running time is Ω(n log n).

QuestionIs there a linear time (O(m + n) time) algorithm for MST?

1 O(m log∗m) time [Fredman, Tarjan 1987]2 O(m + n) time using bit operations in RAM model [Fredman,

Willard 1994]3 O(m + n) expected time (randomized algorithm) [Karger,

Klein, Tarjan 1995]4 O((n + m)α(m, n)) time Chazelle 2000]5 Still open: Is there an O(n + m) time deterministic algorithm

in the comparison model?

Chan, Har-Peled, Hassanieh (UIUC) CS374 47 Spring 2019 47 / 47