minimum spanning trees - technical university of denmark · 2020-04-10 · • spanning tree....
TRANSCRIPT
![Page 1: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/1.jpg)
Philip Bille
Minimum Spanning Trees
• Minimum Spanning Trees• Representation of Weighted Graphs• Properties of Minimum Spanning Trees• Prim's Algorithm• Kruskal's Algorithm
![Page 2: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/2.jpg)
Minimum Spanning Trees
• Minimum Spanning Trees• Representation of Weighted Graphs• Properties of Minimum Spanning Trees• Prim's Algorithm• Kruskal's Algorithm
![Page 3: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/3.jpg)
• Weighted graphs. Weight w(e) on each edge e in G. • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning tree (MST). Spanning tree of minimum total weight.
Minimum Spanning Trees
1
8
2
4
3
6
7
5
4
24
23
189
7
11
14
21
10
5
6
816
Graph G
![Page 4: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/4.jpg)
• Weighted graphs. Weight w(e) on each edge e in G. • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning tree (MST). Spanning tree of minimum total weight.
Minimum Spanning Trees
1
8
2
4
3
6
7
5
4
24
23
189
7
11
14
21
10
5
6
816
Not connected
![Page 5: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/5.jpg)
• Weighted graphs. Weight w(e) on each edge e in G. • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning tree (MST). Spanning tree of minimum total weight.
Minimum Spanning Trees
1
8
2
4
3
6
7
5
4
24
23
189
7
11
14
21
10
5
6
816
Connected and cyclic
![Page 6: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/6.jpg)
• Weighted graphs. Weight w(e) on each e in G. • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning tree (MST). Spanning tree of minimum total weight.
Minimum Spanning Trees
1
8
2
4
3
6
7
5
4
24
23
189
7
11
14
21
10
5
6
816
Connected and acyclic = spanning treeTotal weight = 6 + 8 + 23 + 24 + 9 + 11 + 7 = 88
![Page 7: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/7.jpg)
• Weighted graphs. Weight w(e) on each e in G. • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning tree (MST). Spanning tree of minimum total weight.
Minimum Spanning Trees
1
8
2
4
3
6
7
5
4
24
23
189
7
11
14
21
10
5
6
816
Minimum spanning treeTotal weight = 4 + 6 + 5 + 8 + 11 + 9 + 7 = 50
![Page 8: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/8.jpg)
• Network design.• Computer, road, telephone, electrical, circuit, cable tv, hydralic, …
• Approximation algorithms.• Travelling salesperson problem, steiner trees.
• Other applications.• Meteorology, cosmology, biomedical analysis, encoding, image analysis, ...
Applications
![Page 9: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/9.jpg)
Minimum Spanning Trees
• Minimum Spanning Trees• Representation of Weighted Graphs• Properties of Minimum Spanning Trees• Prim's Algorithm• Kruskal's Algorithm
![Page 10: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/10.jpg)
• Adjacency matrix and adjacency list.• Similar for directed graphs.
Representation of Weighted Graphs
0
6
1
2
4
5 7
3
6
7
6
3
8
42
2
4
1
2 5
1
7
0 1 2 3 4 5 6 7
0 0 6 8 2 0 0 0 0
1 6 0 3 0 4 0 0 0
2 8 3 0 4 2 6 0 0
3 2 0 4 0 0 0 7 0
4 0 4 2 0 0 1 0 1
5 0 0 6 0 1 0 2 7
6 0 0 0 7 0 2 0 5
7 0 0 0 0 1 7 5 0
4
0
1
2
3
4
5
6
7
1 6 2 8 3 2
0 6 2 3 4 4
0 8 1 3 4 2 5 6 3
0 2 2 4 6 7
1 4 2 2 5 1 7 1
4 1 7 7 6 2 2 6
3 7 5 2 7 5
4 1 5 7 6 5
![Page 11: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/11.jpg)
Minimum Spanning Trees
• Minimum Spanning Trees• Representation of Weighted Graphs• Properties of Minimum Spanning Trees• Prim's Algorithm• Kruskal's Algorithm
![Page 12: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/12.jpg)
• Assume for simplicity:• All edge weights are distinct.• G is connected.
• ⟹ MST exists and is unique.
Properties of Minimum Spanning Trees
![Page 13: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/13.jpg)
• Def. A cut is a partition of the vertices into two non-empty sets. • Def. A cut edge is an edge crossing the cut.• Cut property. For any cut, the lightest cut edge is in the MST.• Proof.
• Assume the lightest cut edge e is not in the MST.• Replace other cut edge f with e. • Produces a new spanning with smaller weight.
Cut Property
e
f
cut edges
![Page 14: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/14.jpg)
• Cycle property. For any cycle, the heaviest edge is not in the MST. • Proof.
• Assume heaviest edge f in cycle is in MST.• Replace f with lighter edge e in cycle. • Produces a new spanning tree with smaller weight.
Cycle Property
cycle
f
e
![Page 15: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/15.jpg)
• Cut property. For any cut, the lightest cut edge is in the MST.• Cycle property. For any cycle, the heaviest edge is not in the MST.
Properties of Minimum Spanning Trees
e
f
f
e
![Page 16: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/16.jpg)
Minimum Spanning Trees
• Minimum Spanning Trees• Representation of Weighted Graphs• Properties of Minimum Spanning Trees• Prim's Algorithm• Kruskal's Algorithm
![Page 17: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/17.jpg)
• Grow a tree T from some vertex s.• In each step, add lightest edge with one endpoint i T.• Stop when T has n-1 edges.
Prim's Algorithm
s
![Page 18: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/18.jpg)
77
66
55
44
33
211
00
4
24
23
189
7
11
14
21
10
5
6
816
s
2
![Page 19: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/19.jpg)
• Grow a tree T from some vertex s.• In each step, add lightest edge with one endpoint i T.• Stop when T has n-1 edges.• Exercise. Show execution of Prim's algorithm from vertex 0 on the following graph.
Prim's Algorithm
0
6
1
2
4
5 7
3
11
7
10
5
8
62
4
16
1
14 18
3
9
![Page 20: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/20.jpg)
• Lemma. Prim's algorithm computes the MST. • Proof.
• Consider cut between T and other vertices.• We add lightest cut edge to T. • Cut property ⟹ edge is in MST ⟹ T is MST after n-1 steps.
Prim's Algorithm
s
![Page 21: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/21.jpg)
• Implementation. How do we implement Prim's algorithm?• Challenge. Find the lightest cut edge.
Prim's Algorithm
s
![Page 22: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/22.jpg)
• Implementation. Maintain vertices outside T in priority queue.• Key of vertex v = weight of lightest cut edge (∞ if no cut edge).• In each step:
• Find lightest edge = EXTRACT-MIN • Update weight of neighbors of new vertex with DECREASE-KEY.
Prim's Algorithm
s
5
3
8
11
10 10
3
8
∞
![Page 23: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/23.jpg)
• Time. • n EXTRACT-MIN • n INSERT • O(m) DECREASE-KEY
• Total time with min-heap. O(n log n + n log n + m log n) = O(m log n)
Prim's AlgorithmPRIM(G, s)
for all vertices v∈Vv.key = ∞v.π = nullINSERT(P,v)
DECREASE-KEY(P,s,0)while (P ≠ ∅)
u = EXTRACT-MIN(P)for all neighbors v of u
if (v ∈ P and w(u,v)<key[v])DECREASE-KEY(P,v,w(u,v))v.π = u
![Page 24: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/24.jpg)
• Priority queues and Prim's algorithm. Complexity of Prim's algorithm depend on priority queue. • n INSERT• n EXTRACT-MIN• O(m) DECREASE-KEY
• Greed. Prim's algorithm is a greedy algorithm. • Makes local optimal choices in each step that lead to global optimal solution.
Prim's Algorithm
Priority queue INSERT EXTRACT-MIN DECREASE-KEY Total
array O(1) O(n) O(1) O(n2)
binary heap O(log n) O(log n) O(log n) O(m log n)
Fibonacci heap O(1)† O(log n)† O(1)† O(m + n log n)
† = amortized
![Page 25: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/25.jpg)
Minimum Spanning Trees
• Minimum Spanning Trees• Representation of Weighted Graphs• Properties of Minimum Spanning Trees• Prim's Algorithm• Kruskal's Algorithm
![Page 26: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/26.jpg)
• Consider edges from lightest to heaviest.• In each step, add edge to T if it does not create a cycle.• Stop when T has n-1 edges.
Kruskal's Algorithm
5
3
8
11
10
4
6
2
9
1
7
912
1315
16
17
![Page 27: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/27.jpg)
0
7
1
3
2
5
6
4
4
24
23
189
7
11
14
21
10
5
6
816
![Page 28: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/28.jpg)
• Lemma. Kruskal's algorithm computes the MST.• Proof.
• Algorithms considers edges from light to heavy. At edge e = (u,v):• Case 1. e creates a cycle and is not added to T.
• e must be heaviest edge on cycle. • Cycle property ⟹ e is not in MST.
• Case 2. e does not create a cycle and is added to T.• e must be lightest edge in cut.• Cut property ⟹ e is in MST.
• ⟹ T is MST when n-1 edges are added.
Kruskal's Algorithm
![Page 29: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/29.jpg)
• Implementation. How do we implement Kruskal's algorithm?• Challenge. Check if an edge form a cycle.
Kruskal's Algorithm
5
3
8
11
10
4
6
2
9
1
7
912
1315
16
17
![Page 30: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/30.jpg)
• Implementation. Maintain edges in a data structure for dynamic connectivity. • In each step:
• Check if an edge creates a cycle = CONNECTED.• Add new edge = INSERT.
Kruskal's Algorithm
5
3
8
11
10
4
6
2
9
1
7
912
1315
16
17
![Page 31: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/31.jpg)
• Time. • Sorting m edges. • 1 INIT• m CONNECTED • n INSERT
• Total time. O(m log m + n + m log n + n log n) = O(m log n).• Greed. Kruskal's algorithm is also a greedy algorithm.
Kruskal's Algorithm
KRUSKAL(G) Sort edgesINIT(n)for all edges (u,v) i sorted order
if (!CONNECTED(u,v))INSERT(u,v)
return all inserted edges
![Page 32: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/32.jpg)
• What is the best algorithm for computing MSTs?
Minimum Spanning Trees
Year Time Authors
??? O(m log n) Jarnik, Prim, Dijkstra, Kruskal, Boruvka, ?
1975 O(m log log n) Yao
1986 O(m log* n) Fredman, Tarjan
1995 O(m)‡ Karger, Klein, Tarjan
2000 O(nɑ(m,n)) Chazelle
2002 optimal Pettie, Ramachandran
‡ = randomized
![Page 33: Minimum Spanning Trees - Technical University of Denmark · 2020-04-10 · • Spanning tree. Subgraph T of G over all vertices that is connected and acyclic. • Minimum spanning](https://reader033.vdocument.in/reader033/viewer/2022050103/5f4221f28afca70476596ea5/html5/thumbnails/33.jpg)
Minimum Spanning Trees
• Minimum Spanning Trees• Representation of Weighted Graphs• Properties of Minimum Spanning Trees• Prim's Algorithm• Kruskal's Algorithm