Download Minimum Spanning Tree Algorithms: Kruskal and Prim and more Slides Data Representation and Algorithm Design in PDF only on Docsity!
Minimum Spanning Tree
2
Minimum Spanning Tree
MST. Given connected graph G with positive edge weights, find a min
weight set of edges that connects all of the vertices.
23 10 21 14 24 16 4 18 9 7 11 8
G
5 6 3
Minimum Spanning Tree
MST. Given connected graph G with positive edge weights, find a min
weight set of edges that connects all of the vertices.
Theorem. [Cayley, 1889] There are VV-^2 spanning trees on the
complete graph on V vertices.
can't solve by brute force 23 10 21 14 24 16 4 18 9 7 11 8
cost(T) = 50
5 6 4
MST Origin
Otakar Boruvka (1926).
! Electrical Power Company of Western Moravia in Brno.
! Most economical construction of electrical power network.
! Concrete engineering problem is now a cornerstone problem in
combinatorial optimization.
Otakar Boruvka
5 Applications
MST is fundamental problem with diverse applications.
! Network design.
- telephone, electrical, hydraulic, TV cable, computer, road
! Approximation algorithms for NP-hard problems.
- traveling salesperson problem, Steiner tree
! Indirect applications.
- max bottleneck paths
- LDPC codes for error correction
- image registration with Renyi entropy
- learning salient features for real-time face verification
- reducing data storage in sequencing amino acids in a protein
- model locality of particle interactions in turbulent fluid flows
- autoconfig protocol for Ethernet bridging to avoid cycles in a network
! Cluster analysis.
6 Medical Image Processing MST describes arrangement of nuclei in the epithelium for cancer research http://www.bccrc.ca/ci/ta 01 _archlevel.html http://ginger.indstate.edu/ge/gfx 7 8 Two Greedy Algorithms
Kruskal's algorithm. Consider edges in ascending order of cost.
Add the next edge to T unless doing so would create a cycle.
Prim's algorithm. Start with any vertex s and greedily grow a tree T
from s. At each step, add the cheapest edge to T that has exactly
one endpoint in T.
Theorem. Both greedy algorithms compute an MST.
Greed is good. Greed is right. Greed works. Greed clarifies, cuts through, and captures the essence of the evolutionary spirit." - Gordon Gecko
13
MST Structure
14
Spanning Tree
MST. Given connected graph G with positive edge weights,
find a min weight set of edges that connects all of the vertices.
Def. A spanning tree of a graph G is a subgraph T that is
connected and acyclic.
Property. MST of G is always a spanning tree.
15
Greedy Algorithms
Simplifying assumption. All edge costs ce are distinct.
Cycle property. Let C be any cycle, and let f be the max cost edge
belonging to C. Then the MST does not contain f.
Cut property. Let S be any subset of vertices, and let e be the min
cost edge with exactly one endpoint in S. Then the MST contains e.
f
C
S
e is in the MST
e
f is not in the MST
16
Cycle Property
Simplifying assumption. All edge costs ce are distinct.
Cycle property. Let C be any cycle in G, and let f be the max cost edge
belonging to C. Then the MST T* does not contain f.
Pf. [by contradiction]
! Suppose f belongs to T*. Let's see what happens.
! Deleting f from T* disconnects T*. Let S be one side of the cut.
! Some other edge in C, say e, has exactly one endpoint in S.
! T = T*! { e } " { f } is also a spanning tree.
! Since ce < cf, cost(T) < cost(T*).
! This is a contradiction.!
f T* e
S
17
Cut Property
Simplifying assumption. All edge costs ce are distinct.
Cut property. Let S be any subset of vertices, and let e be the min cost
edge with exactly one endpoint in S. Then the MST T* contains e.
Pf. [by contradiction]
! Suppose e does not belong to T*. Let's see what happens.
! Adding e to T* creates a (unique) cycle C in T*.
! Some other edge in C, say f, has exactly one endpoint in S.
! T = T*! { e } " { f } is also a spanning tree.
! Since ce < cf, cost(T) < cost(T*).
! This is a contradiction.!
f T* e
S
18
Kruskal's Algorithm
19
Kruskal's algorithm. [Kruskal, 1956] Consider edges in ascending order
of cost. Add the next edge to T unless doing so would create a cycle.
Kruskal's Algorithm: Example
3-5 1-7 6- 0-2 0-7 0-1 3-4 4-5 4- 20
Kruskal's Algorithm: Example
25% 50% 75% 100%
25 public class Kruskal { private Sequence mst = new Sequence(); public Kruskal(WeightedGraph G) { // sort edges in ascending order Edge[] edges = G.edges(); Arrays.sort(edges); // greedily add edges to MST UnionFind uf = new UnionFind(G.V()); for (int i = 0 ; (i < E) && (mst.size() < G.V()- 1 ); i++) { int v = edges[i].v; int w = edges[i].w; if (!uf.find(v, w)) { uf.unite(v, w); mst.add(edges[i]); } } } public Iterable mst() { return mst; } }
Kruskal's Algorithm: Java Implementation
safe to stop early if tree already has V-1 edges 26
Kruskal's Algorithm: Running Time
Kruskal running time. O(E log V).
Remark. If edges already sorted: O(E log* V) time.
Operation sort union find Time per op E log V log* V † log* V † Frequency 1 V E † amortized bound using weighted quick union with path compression recall: log* V # 5 in this universe E # V^2 so O(log E) is O(log V) 27
Prim's Algorithm
28
Prim's Algorithm: Example
Prim's algorithm. [Jarník 1 930, Dijkstra 1957, Prim 1959]
Start with vertex 0 and greedily grow tree T. At each step,
add cheapest edge that has exactly one endpoint in T.
29 Prim's Algorithm: Example 25% 50% 75% 100% 30 Prim's Algorithm: Proof of Correctness
Theorem. Prim's algorithm computes the MST.
Pf.
! Let S be the subset of vertices in current tree T.
! Prim adds the cheapest edge e with exactly one endpoint in S.
! Cut property asserts that e is in the MST.!
S e
31 Prim's Algorithm: Implementation
Q. How to find cheapest edge with exactly one endpoint in S?
A1. Brute force: try all edges.
! O(E) time per spanning tree edge.
! O(E V) time overall.
32 Prim's Algorithm: Implementation
Q. How to find cheapest edge with exactly one endpoint in S?
A2. Maintain edges with (at least) one endpoint in S in a priority queue.
! Delete min to determine next edge e to add to T.
! Disregard e if both endpoints are in S.
! Upon adding e to T, add to PQ the edges incident to one endpoint.
Running time.
! O(log V) time per edge (using a binary heap).
! O(E log V) time overall.
the one not already in S
37 Advanced MST Algorithms Worst Case E log log V E log log V E log* V, E + V log V E log (log* V) E &(V) log &(V) Discovered By Yao Cheriton-Tarjan Fredman-Tarjan Gabow-Galil-Spencer-Tarjan Chazelle E &(V) optimal Chazelle Pettie-Ramachandran Year 1975 1976 1984 1986 1997 2000 2002 deterministic comparison based MST algorithms related problems Problem Planar MST MST Verification Discovered By Cheriton-Tarjan Dixon-Rauch-Tarjan Year 1976 1992 Time E E (^1995) Randomized MST E Karger-Klein-Tarjan 20 xx E ??? 38 Euclidean MST
Euclidean MST. Given N points in the plane, find MST connecting them.
! Distances between point pairs are Euclidean distances.
Brute force. Compute $(N^2 ) distances and run Prim's algorithm.
Ingenuity. Exploit geometry and do it in O(N log N).
39 Euclidean MST
Key geometric fact. Edges of the Euclidean MST are edges of the
Delaunay triangulation.
Euclidean MST algorithm.
! Compute Voronoi diagram to get Delaunay triangulation.
! Run Kruskal's MST algorithm on Delaunay edges.
Running time. O(N log N).
! Fact: # 3N Delaunay edges since it's planar.
! O(N log N) for Voronoi.
! O(N log N) for Kruskal.
Lower bound. Any comparison-based Euclidean
MST algorithm requires %(N log N) comparisons.