Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October...
Transcript of Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October...
![Page 1: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/1.jpg)
CS 374: Algorithms & Models of Computation,
Fall 2015
Algorithms for MinimumSpanning TreesLecture 18October 27, 2015
Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40
![Page 2: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/2.jpg)
Part I
Algorithms for Minimum SpanningTree
Chandra & Manoj (UIUC) CS374 2 Fall 2015 2 / 40
![Page 3: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/3.jpg)
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
Chandra & Manoj (UIUC) CS374 3 Fall 2015 3 / 40
![Page 4: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/4.jpg)
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
Chandra & Manoj (UIUC) CS374 3 Fall 2015 3 / 40
![Page 5: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/5.jpg)
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
Chandra & Manoj (UIUC) CS374 4 Fall 2015 4 / 40
![Page 6: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/6.jpg)
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
Chandra & Manoj (UIUC) CS374 5 Fall 2015 5 / 40
![Page 7: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/7.jpg)
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
Chandra & Manoj (UIUC) CS374 6 Fall 2015 6 / 40
![Page 8: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/8.jpg)
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
Chandra & Manoj (UIUC) CS374 6 Fall 2015 6 / 40
![Page 9: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/9.jpg)
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
Chandra & Manoj (UIUC) CS374 6 Fall 2015 6 / 40
![Page 10: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/10.jpg)
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
Chandra & Manoj (UIUC) CS374 6 Fall 2015 6 / 40
![Page 11: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/11.jpg)
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
Chandra & Manoj (UIUC) CS374 6 Fall 2015 6 / 40
![Page 12: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/12.jpg)
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
Chandra & Manoj (UIUC) CS374 6 Fall 2015 6 / 40
![Page 13: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/13.jpg)
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
Chandra & Manoj (UIUC) CS374 6 Fall 2015 6 / 40
![Page 14: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/14.jpg)
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 G
Back
Chandra & Manoj (UIUC) CS374 7 Fall 2015 7 / 40
![Page 15: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/15.jpg)
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 G
Back
Chandra & Manoj (UIUC) CS374 7 Fall 2015 7 / 40
![Page 16: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/16.jpg)
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 G
Back
Chandra & Manoj (UIUC) CS374 7 Fall 2015 7 / 40
![Page 17: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/17.jpg)
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 G
Back
Chandra & Manoj (UIUC) CS374 7 Fall 2015 7 / 40
![Page 18: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/18.jpg)
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 G
Back
Chandra & Manoj (UIUC) CS374 7 Fall 2015 7 / 40
![Page 19: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/19.jpg)
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 G
Back
Chandra & Manoj (UIUC) CS374 7 Fall 2015 7 / 40
![Page 20: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/20.jpg)
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 G
Back
Chandra & Manoj (UIUC) CS374 7 Fall 2015 7 / 40
![Page 21: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/21.jpg)
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
Chandra & Manoj (UIUC) CS374 8 Fall 2015 8 / 40
![Page 22: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/22.jpg)
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
Chandra & Manoj (UIUC) CS374 9 Fall 2015 9 / 40
![Page 23: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/23.jpg)
Boruvka’s Algorithm
20
15
3
17
28
231
4
9
1625
366
1 2
3
45
7
Chandra & Manoj (UIUC) CS374 10 Fall 2015 10 / 40
![Page 24: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/24.jpg)
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.
Chandra & Manoj (UIUC) CS374 11 Fall 2015 11 / 40
![Page 25: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/25.jpg)
AssumptionAnd for now . . .
AssumptionEdge costs are distinct, that is no two edge costs are equal.
Chandra & Manoj (UIUC) CS374 12 Fall 2015 12 / 40
![Page 26: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/26.jpg)
Cuts
DefinitionGiven a graph G = (V,E), a cut is apartition 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
Chandra & Manoj (UIUC) CS374 13 Fall 2015 13 / 40
![Page 27: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/27.jpg)
Cuts
DefinitionGiven a graph G = (V,E), a cut is apartition 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
Chandra & Manoj (UIUC) CS374 13 Fall 2015 13 / 40
![Page 28: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/28.jpg)
Safe and Unsafe Edges
DefinitionAn edge e = (u, v) is a safe edge if there is some partition of V intoS and V \ S and e is the unique minimum cost edge crossing S (oneend 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.
Chandra & Manoj (UIUC) CS374 14 Fall 2015 14 / 40
![Page 29: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/29.jpg)
Safe and Unsafe Edges
DefinitionAn edge e = (u, v) is a safe edge if there is some partition of V intoS and V \ S and e is the unique minimum cost edge crossing S (oneend 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.
Chandra & Manoj (UIUC) CS374 14 Fall 2015 14 / 40
![Page 30: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/30.jpg)
Safe and Unsafe Edges
DefinitionAn edge e = (u, v) is a safe edge if there is some partition of V intoS and V \ S and e is the unique minimum cost edge crossing S (oneend 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.
Chandra & Manoj (UIUC) CS374 14 Fall 2015 14 / 40
![Page 31: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/31.jpg)
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!
Chandra & Manoj (UIUC) CS374 15 Fall 2015 15 / 40
![Page 32: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/32.jpg)
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!
Chandra & Manoj (UIUC) CS374 15 Fall 2015 15 / 40
![Page 33: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/33.jpg)
Unsafe edgeExample...
Every cycle identifies one unsafe edge...
57
2
15
3
...the most expensive edge in the cycle.
Chandra & Manoj (UIUC) CS374 16 Fall 2015 16 / 40
![Page 34: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/34.jpg)
Unsafe edgeExample...
Every cycle identifies one unsafe edge...
57
2
15
3
15
...the most expensive edge in the cycle.
Chandra & Manoj (UIUC) CS374 16 Fall 2015 16 / 40
![Page 35: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/35.jpg)
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...
Chandra & Manoj (UIUC) CS374 17 Fall 2015 17 / 40
![Page 36: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/36.jpg)
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...
Chandra & Manoj (UIUC) CS374 17 Fall 2015 17 / 40
![Page 37: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/37.jpg)
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...
Chandra & Manoj (UIUC) CS374 17 Fall 2015 17 / 40
![Page 38: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/38.jpg)
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!!
Chandra & Manoj (UIUC) CS374 18 Fall 2015 18 / 40
![Page 39: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/39.jpg)
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!!
Chandra & Manoj (UIUC) CS374 18 Fall 2015 18 / 40
![Page 40: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/40.jpg)
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!!
Chandra & Manoj (UIUC) CS374 18 Fall 2015 18 / 40
![Page 41: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/41.jpg)
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.
Chandra & Manoj (UIUC) CS374 19 Fall 2015 19 / 40
![Page 42: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/42.jpg)
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.
Chandra & Manoj (UIUC) CS374 19 Fall 2015 19 / 40
![Page 43: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/43.jpg)
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...
Chandra & Manoj (UIUC) CS374 19 Fall 2015 19 / 40
![Page 44: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/44.jpg)
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.
Chandra & Manoj (UIUC) CS374 19 Fall 2015 19 / 40
![Page 45: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/45.jpg)
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?)
Chandra & Manoj (UIUC) CS374 20 Fall 2015 20 / 40
![Page 46: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/46.jpg)
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?)
Chandra & Manoj (UIUC) CS374 20 Fall 2015 20 / 40
![Page 47: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/47.jpg)
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?)
Chandra & Manoj (UIUC) CS374 20 Fall 2015 20 / 40
![Page 48: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/48.jpg)
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?)
Chandra & Manoj (UIUC) CS374 20 Fall 2015 20 / 40
![Page 49: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/49.jpg)
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?)
Chandra & Manoj (UIUC) CS374 20 Fall 2015 20 / 40
![Page 50: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/50.jpg)
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 connected bythe 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− 1 edges)and hence T′ is a tree
Chandra & Manoj (UIUC) CS374 21 Fall 2015 21 / 40
![Page 51: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/51.jpg)
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 connected bythe 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− 1 edges)and hence T′ is a tree
Chandra & Manoj (UIUC) CS374 21 Fall 2015 21 / 40
![Page 52: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/52.jpg)
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 connected bythe 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− 1 edges)and hence T′ is a tree
Chandra & Manoj (UIUC) CS374 21 Fall 2015 21 / 40
![Page 53: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/53.jpg)
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.
Chandra & Manoj (UIUC) CS374 22 Fall 2015 22 / 40
![Page 54: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/54.jpg)
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.
Chandra & Manoj (UIUC) CS374 23 Fall 2015 23 / 40
![Page 55: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/55.jpg)
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.
Chandra & Manoj (UIUC) CS374 23 Fall 2015 23 / 40
![Page 56: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/56.jpg)
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.
Chandra & Manoj (UIUC) CS374 24 Fall 2015 24 / 40
![Page 57: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/57.jpg)
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
Chandra & Manoj (UIUC) CS374 25 Fall 2015 25 / 40
![Page 58: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/58.jpg)
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
Chandra & Manoj (UIUC) CS374 25 Fall 2015 25 / 40
![Page 59: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/59.jpg)
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
Chandra & Manoj (UIUC) CS374 25 Fall 2015 25 / 40
![Page 60: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/60.jpg)
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
Chandra & Manoj (UIUC) CS374 25 Fall 2015 25 / 40
![Page 61: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/61.jpg)
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
Chandra & Manoj (UIUC) CS374 25 Fall 2015 25 / 40
![Page 62: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/62.jpg)
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 be addedby the algorithm to T
2 Set of edges output is a spanning tree : exercise
Chandra & Manoj (UIUC) CS374 26 Fall 2015 26 / 40
![Page 63: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/63.jpg)
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 be addedby the algorithm to T
2 Set of edges output is a spanning tree : exercise
Chandra & Manoj (UIUC) CS374 26 Fall 2015 26 / 40
![Page 64: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/64.jpg)
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, thene′ would come before e in the sorted order and would be addedby the algorithm to T
2 Set of edges output is a spanning tree : exercise
Chandra & Manoj (UIUC) CS374 26 Fall 2015 26 / 40
![Page 65: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/65.jpg)
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 be addedby the algorithm to T
2 Set of edges output is a spanning tree : exercise
Chandra & Manoj (UIUC) CS374 26 Fall 2015 26 / 40
![Page 66: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/66.jpg)
Correctness of Boruvka’s Algorithm
Proof of correctness.Argue that only safe edges are added.
Chandra & Manoj (UIUC) CS374 27 Fall 2015 27 / 40
![Page 67: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/67.jpg)
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.
Chandra & Manoj (UIUC) CS374 28 Fall 2015 28 / 40
![Page 68: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/68.jpg)
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.
Chandra & Manoj (UIUC) CS374 29 Fall 2015 29 / 40
![Page 69: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/69.jpg)
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.
Chandra & Manoj (UIUC) CS374 29 Fall 2015 29 / 40
![Page 70: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/70.jpg)
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.
Chandra & Manoj (UIUC) CS374 29 Fall 2015 29 / 40
![Page 71: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/71.jpg)
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.
Chandra & Manoj (UIUC) CS374 29 Fall 2015 29 / 40
![Page 72: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/72.jpg)
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?
Chandra & Manoj (UIUC) CS374 30 Fall 2015 30 / 40
![Page 73: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/73.jpg)
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?
Chandra & Manoj (UIUC) CS374 30 Fall 2015 30 / 40
![Page 74: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/74.jpg)
Part II
Data Structures for MST: PriorityQueues and Union-Find
Chandra & Manoj (UIUC) CS374 31 Fall 2015 31 / 40
![Page 75: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/75.jpg)
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.
Chandra & Manoj (UIUC) CS374 32 Fall 2015 32 / 40
![Page 76: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/76.jpg)
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.
Chandra & Manoj (UIUC) CS374 32 Fall 2015 32 / 40
![Page 77: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/77.jpg)
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.
Chandra & Manoj (UIUC) CS374 32 Fall 2015 32 / 40
![Page 78: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/78.jpg)
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 vertices
2 Picking e is O(m) where m is the number of edges
3 Total time O(nm)
Chandra & Manoj (UIUC) CS374 33 Fall 2015 33 / 40
![Page 79: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/79.jpg)
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 vertices
2 Picking e is O(m) where m is the number of edges
3 Total time O(nm)
Chandra & Manoj (UIUC) CS374 33 Fall 2015 33 / 40
![Page 80: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/80.jpg)
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 vertices
2 Picking e is O(m) where m is the number of edges
3 Total time O(nm)
Chandra & Manoj (UIUC) CS374 33 Fall 2015 33 / 40
![Page 81: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/81.jpg)
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 vertices
2 Picking e is O(m) where m is the number of edges
3 Total time O(nm)
Chandra & Manoj (UIUC) CS374 33 Fall 2015 33 / 40
![Page 82: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/82.jpg)
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).
Chandra & Manoj (UIUC) CS374 34 Fall 2015 34 / 40
![Page 83: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/83.jpg)
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).
Chandra & Manoj (UIUC) CS374 34 Fall 2015 34 / 40
![Page 84: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/84.jpg)
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).
Chandra & Manoj (UIUC) CS374 34 Fall 2015 34 / 40
![Page 85: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/85.jpg)
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 S
3 extractMin: Remove v ∈ S with smallest key and return it
4 add(v, k(v)): Add new element v with key k(v) to S
5 Delete(v): Remove element v from S
6 decreaseKey (v, k′(v)): decrease key of v from k(v) (currentkey) to k′(v) (new key). Assumption: k′(v) ≤ k(v)
7 meld: merge two separate priority queues into one
Chandra & Manoj (UIUC) CS374 35 Fall 2015 35 / 40
![Page 86: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/86.jpg)
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
Chandra & Manoj (UIUC) CS374 36 Fall 2015 36 / 40
![Page 87: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/87.jpg)
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
Chandra & Manoj (UIUC) CS374 36 Fall 2015 36 / 40
![Page 88: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/88.jpg)
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
Chandra & Manoj (UIUC) CS374 36 Fall 2015 36 / 40
![Page 89: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/89.jpg)
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).
Prim’s algorithm and Dijkstra’s algorithms are similar. Where is thedifference?
Chandra & Manoj (UIUC) CS374 37 Fall 2015 37 / 40
![Page 90: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/90.jpg)
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).
Prim’s algorithm and Dijkstra’s algorithms are similar. Where is thedifference?
Chandra & Manoj (UIUC) CS374 37 Fall 2015 37 / 40
![Page 91: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/91.jpg)
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)
Chandra & Manoj (UIUC) CS374 38 Fall 2015 38 / 40
![Page 92: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/92.jpg)
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)
Chandra & Manoj (UIUC) CS374 38 Fall 2015 38 / 40
![Page 93: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/93.jpg)
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)
Chandra & Manoj (UIUC) CS374 38 Fall 2015 38 / 40
![Page 94: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/94.jpg)
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)
Chandra & Manoj (UIUC) CS374 38 Fall 2015 38 / 40
![Page 95: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/95.jpg)
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)
Chandra & Manoj (UIUC) CS374 38 Fall 2015 38 / 40
![Page 96: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/96.jpg)
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)
Chandra & Manoj (UIUC) CS374 38 Fall 2015 38 / 40
![Page 97: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/97.jpg)
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.
Chandra & Manoj (UIUC) CS374 39 Fall 2015 39 / 40
![Page 98: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/98.jpg)
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.
Chandra & Manoj (UIUC) CS374 39 Fall 2015 39 / 40
![Page 99: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/99.jpg)
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.
Chandra & Manoj (UIUC) CS374 39 Fall 2015 39 / 40
![Page 100: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/100.jpg)
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?
Chandra & Manoj (UIUC) CS374 40 Fall 2015 40 / 40
![Page 101: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/101.jpg)
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?
Chandra & Manoj (UIUC) CS374 40 Fall 2015 40 / 40
![Page 102: Algorithms for Minimum Spanning Trees · Algorithms for Minimum Spanning Trees Lecture 18 October 27, 2015 Chandra & Manoj (UIUC) CS374 1 Fall 2015 1 / 40. ... 2 Approximation algorithms](https://reader035.fdocuments.us/reader035/viewer/2022070717/5edc776ead6a402d66672270/html5/thumbnails/102.jpg)
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?
Chandra & Manoj (UIUC) CS374 40 Fall 2015 40 / 40