Presentation is loading. Please wait.

Presentation is loading. Please wait.

EMIS 8374 Optimal Trees updated 25 April 2006. slide 1 Minimum Spanning Tree (MST) Input –A (simple) graph G = (V,E) –Edge cost c ij for each edge e 

Similar presentations


Presentation on theme: "EMIS 8374 Optimal Trees updated 25 April 2006. slide 1 Minimum Spanning Tree (MST) Input –A (simple) graph G = (V,E) –Edge cost c ij for each edge e "— Presentation transcript:

1 EMIS 8374 Optimal Trees updated 25 April 2006

2 slide 1 Minimum Spanning Tree (MST) Input –A (simple) graph G = (V,E) –Edge cost c ij for each edge e  E Optimization Problem –Find a minimum-cost spanning tree Spanning tree: a set of |V|-1 edges T such that each vertex is incident to at least one edge in T, and T contains no cycles.

3 slide 2 MST Example: Input 1 3 2 5 4 3 2 6 7 5 4 1

4 slide 3 MST Example: Some Feasible Spanning Trees 1 3 2 5 4 3 6 7 1 1 3 2 5 4 2 7 4 1 1 3 2 5 4 3 2 6 5 1 3 2 5 4 2 6 7 1 cost = 14 cost = 16 cost = 17

5 slide 4 MST Example: Optimal Solution 13254 3 2 6 1 cost = 12

6 slide 5 MST Optimality Conditions: Path Optimality 13254 3 2 6 7 5 4 1 c 25 > c 12 c 25 > c 15 c 24 > c 12 c 24 > c 15 c 24 > c 45 c 34 > c 23 c 34 > c 12 c 34 > c 15 c 34 > c 45

7 slide 6 Path Optimality Condition A spanning tree T is a minimum spanning tree if and only for every out-of-tree edge (i,j), c ij  c uv for every in-tree edge (u,v) on the path from i to j in T. This is clearly a necessary condition for a MST. If an out-of-tree edge (i, j) has a lower cost than any in-tree edge (u,v) on the path from i to j in T, then we can improve T by replacing edge (u,v) with edge (i, j).

8 slide 7 Path Optimality: Necessity 13254 3 2 6 5 1 Replacing in-tree edge (2,4) with out-of-tree edge (4,5) would decrease the cost of this tree. Therefore, it cannot be optimal.

9 slide 8 MST Optimality Conditions: Cut Optimality 13254 3 2 6 1 Removing an in-tree edge (u,v) creates a cut in the tree. For any out-of-tree edge (i,j) crossing the cut c ij  c uv. 7 5 4 c 25 >c 12 c 24 > c 12 c 45 > c 12

10 slide 9 Cut Optimality Given a spanning tree T, let C[u,v] be the set of edges in the cut formed by removing in-tree edge (u, v) from T. A spanning tree T is a MST if and only if every in-tree edge is a minimum cost edge in C[u,v].

11 slide 10 Cut Optimality: Necessity 13254 3 2 6 1 The in-tree edge (2, 4) is not a minimum cost edge in the cut formed by removing it from T. 7 5 4 If we remove in-tree edge (2, 4), we can restore connectivity by adding out-of-tree edge (4, 5).

12 slide 11 Cut Optimality: Necessity 13254 3 6 1 5 4 If we remove in-tree edge (2, 4), we can restore connectivity by adding out-of-tree edge (4, 5). Since the resulting tree has a lower total cost, the first tree could not have been optimal.

13 slide 12 Sufficiency of Cut and Path Optimality It is easy to see that any MST must satisfy the cut and path optimality conditions. If a tree T happens to satisfy these conditions, does that imply that T is a MST?

14 slide 13 4 5 2 1 Sufficiency of Cut Optimality 3 G 4 5 2 1 3 T*T* 4 5 2 1 3 TCTC Let T * be a MST of G. Suppose that T C satisfies the cut optimality condition. Show that T C is also a MST.

15 slide 14 4 5 2 1 Sufficiency of Cut Optimality 3 T*T* 4 5 2 1 3 TCTC Since T * is a MST, it must satisfy the path optimality condition. So, c 25  c 24 (and c 25  c 45 ). Since T C satisfies the cut optimality condition, c 25  c 24 (and c 25  c 35 ). This implies c 25 = c 24. Replacing (2,4) with (2,5) in T * creates a new MST, T **.

16 slide 15 4 5 2 1 Sufficiency of Cut Optimality 3 T ** 4 5 2 1 3 TCTC Since T ** is a MST, it must satisfy the path optimality condition. So, c 23  c 35 (and c 23  c 25 ). Since T C satisfies the cut optimality condition, c 23  c 35 (and c 25  c 13 ). This implies c 23 = c 35. Replacing (3,5) with (2,3) in T ** creates a new MST, T ***.

17 slide 16 4 5 2 1 Sufficiency of Cut Optimality 3 T *** 4 5 2 1 3 TCTC Since T C is identical to T ***, it is optimal. This argument can be formalized to apply to the general case and show that any tree that satisfies the cut optimality condition must be optimal. Thus, cut optimality is a sufficient condition for a tree to be a MST.

18 slide 17 Kruskal’s Algorithm (Path Optimality) F := E T := {} Repeat Until |T| = |V| - 1 Begin Select (i,j)  F such that c ij = min(c uv : (u,v)  F) F := F \ {(i,j)} If T  {(i,j)} does not contain a cycle then T := T  {(i,j)} End Can be implemented in O(|E|+|V| log |V}) time plus the time for sorting the edges.

19 slide 18 Kruskal’s Algorithm: Example 1 14235 3 2 6 7 5 4 1

20 slide 19 Testing for Cycles Let G T be the subgraph of G induced by the set of edges in T. As edges are added to T, the algorithm creates a forest (i.e., a collection of trees). Each tree in the forest forms a connected component of G T. By keeping track of which component each node is in, we can quickly, and easily determine whether or not adding a new edge to T will create a cycle.

21 slide 20 Testing for Cycles Initialize component[i] = 0 for all i  V. When edge (i,j) is inspected, there are 5 cases to 1.component[i] = component[j] = 0 Add (i,j) to T; (i,j) becomes a new component of G T. 2.component[i] = 0, component[j] > 0. Add (i,j) to T; vertex i will go into the same component as j. 3.component[i] > 0, component[j] = 0. Add (i,j) to T; vertex j will go into the same component as i. 4.component[i] > 0, component[j] > 0, component[i]  component[j] Add (i,j) to T; merge components. 5.component[i] = component[j] > 0 Adding (i,j) would create a cycle.

22 slide 21 Kruskal’s Algorithm: Example 2 14235 2 2 4 1 5 3 6

23 slide 22 Kruskal’s Algorithm: Example 2 14235 2 2 4 1 5 3 6 1 1 2 2 2 (2, 3) creates a cycle because vertices 2 and 3 are in the same connected component.

24 slide 23 Kruskal’s Algorithm: Example 2 14235 2 2 4 1 5 3 6 1 1 2 2 2 (2, 4) does not create a cycle because vertices 2 and 4 are in different connected components.

25 slide 24 Kruskal’s Algorithm: Example 2 14235 2 2 4 1 5 3 6 2 2 2 2 2 Merge components 1 and 2.

26 slide 25 Prim’s Algorithm (Cut Optimality) Choose any node v in V. S 1 := {v} T := {} k := 1 Repeat Until |T| = |V| - 1 Begin Select a minimum cost edge (i,j) in the cut [S k,V\{S k }] T := T  {(i,j)} If i  S k then S k+1 := S k  {j} Else If j  S k then S k+1 := S k  {i} k := k+1 End Can be implemented in O(|E|+|V| log |V}) time.

27 slide 26 Prim’s Algorithm 14235 2 2 4 1 5 3 6 S 1 = {3} S 2 = {1,3}

28 slide 27 Prim’s Algorithm 14235 2 2 4 1 5 3 6 S 3 = {1, 2, 3} S 2 = {1,3}

29 slide 28 Prim’s Algorithm 14235 2 2 4 1 5 3 6 S 3 = {1, 2, 3} S 4 = {1, 2, 3, 4}

30 slide 29 Prim’s Algorithm 14235 2 2 4 1 5 3 6 S 4 = {1, 2, 3, 4} S 5 = {1, 2, 3, 4, 5}

31 slide 30 Directed Spanning Tree (DST) Input –A network (directed graph) G = (N,A) –Arc cost c ij for each edge arc (i,j)  A –A designated root node s  N Optimization Problem –Find a minimum-cost directed-out tree T = (N, A * ) rooted at node s. Directed-Out Tree: T = (N, A * ) contains a unique, directed path from s to every other node in N (every other node in the tree has in-degree = 1).

32 slide 31 Is DST a (Pure) Network Flow Problem? Suggestion: –Let b(s) = |N| - 1 –Let b(i) = -1 for i in N\{s} –Let ij = 0 –Let u ij = |N| –Each node gets 1 unit of flow –Total cost of flow is minimized –Arcs carrying flow form a directed spanning tree

33 slide 32 DST Example 13254 10 5 1 5 s


Download ppt "EMIS 8374 Optimal Trees updated 25 April 2006. slide 1 Minimum Spanning Tree (MST) Input –A (simple) graph G = (V,E) –Edge cost c ij for each edge e "

Similar presentations


Ads by Google