Minimum Spanning Tree Algorithms: Kruskal and Prim, Slides of Data Representation and Algorithm Design

An in-depth analysis of minimum spanning tree (mst) algorithms, specifically kruskal's and prim's algorithms. The theory behind these algorithms, their implementation, and their proof of correctness. Mst algorithms are essential in graph theory and have numerous applications in various fields, including electrical power companies, image registration, and error correction. This document serves as a valuable resource for students and researchers in computer science and related fields.

Typology: Slides

2011/2012

Uploaded on 07/15/2012

saandeep
saandeep 🇮🇳

4.5

(6)

99 documents

1 / 10

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
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
docsity.com
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

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.