Minimum Spanning Trees: (Some Material Adapted From Slides by Peter Lee)
Minimum Spanning Trees: (Some Material Adapted From Slides by Peter Lee)
Central office
Central office
Expensive!
3
Central office
the total cost associated with tree edges is the minimum among all possible spanning trees not necessarily unique
5
Applications of MST
Any time you want to visit all vertices in a graph at minimum cost (e.g., wire routing on printed circuit boards, sewer pipe layout, road planning) Internet content distribution
$$$, also a hot research topic
Idea: publisher produces web pages, content distribution network replicates web pages to many locations so consumers can access at higher speed MST may not be good enough!
content distribution on minimum cost tree may take a long time!
6
b
6 4 5
b
6 4 5
a
5
2 4
d
5
a
5
2 4
d
5
Prims Algorithm
Let V ={1,2,..,n} and U be the set of vertices that makes the MST and T be the MST Initially : U = {1} and T =
while (U V) let (u,v) be the lowest cost edge such that u U and v V-U
T = T {(u,v)}
U = U {v}
8
b
6 4 5
a
5
2 4
d
5
e a b c d 0 e
Vertex Parent e -
Prims Algorithm
While P is not empty:
10
Prims algorithm
b
6 4 5
a
5
2 4
d
5
d b c a 4 5 5 e
Vertex Parent e b e c e d e
The MST initially consists of the vertex e, and we update the distances and parent for its adjacent vertices
11
Prims algorithm
b
6 4 5
a
5
2 4
d
5
a c b 2 4 5 e
Vertex Parent e b e c d d e a d
12
Prims algorithm
b
6 4 5
a
5
2 4
d
5
c b 4 5 e
Vertex Parent e b e c d d e a d
13
Prims algorithm
b
6 4 5
a
5
2 4
d
5
b 5 e
Vertex Parent e b e c d d e a d
14
Prims algorithm
b
6 4 5
a
5
2 4
d
5
Vertex Parent e b e c d d e a d
15
16
Update loop: |V| calls Choosing vertex with minimum cost edge: O(|V|) Updating distance values of unconnected vertices: each edge is considered only once during entire execution, for a total of O(|E|) updates O(|E| + |V| 2) Overall cost:
17
b
6 4 5
a
5
2 4
d
5
18
Kruskals algorithm
Initialization a. Create a set for each vertex v V b. Initialize the set of safe edges A comprising the MST to the empty set c. Sort edges by increasing weight
9
b
6 4 5
a
5
2 4
d
5
{a}, {b}, {c}, {d}, {e} A= E = {(a,d), (c,d), (d,e), (a,c), (b,e), (c,e), (b,d), (a,b)}
19
Kruskals algorithm
For each edge (u,v) E in increasing order while more than one set remains: If u and v, belong to different sets a. A = A {(u,v)} b. merge the sets containing u and v Return A
Kruskals algorithm
9
b
6
a
5
2 4
d
5
e A {(a,d)} {(a,d), (c,d)} {(a,d), (c,d), (d,e)} {(a,d), (c,d), (d,e), (b,e)}
21
Forest {a}, {b}, {c}, {d}, {e} {a,d}, {b}, {c}, {e} {a,d,c}, {b}, {e} {a,d,c,e}, {b} {a,d,c,e,b}
22
Greedy Approach
Like Dijkstras algorithm, both Prims and Kruskals algorithms are greedy algorithms The greedy approach works for the MST problem; however, it does not work for many other problems!
23