emis 8374

33
EMIS 8374 Optimal Trees updated 25 April 2006

Upload: valentine-reilly

Post on 31-Dec-2015

60 views

Category:

Documents


2 download

DESCRIPTION

EMIS 8374. Optimal Trees updated 25 April 2006. 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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: EMIS 8374

EMIS 8374

Optimal Treesupdated 25 April 2006

Page 2: EMIS 8374

slide 2

Minimum Spanning Tree (MST)

• Input– A (simple) graph G = (V,E)

– Edge cost cij 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.

Page 3: EMIS 8374

slide 3

MST Example: Input

1

32

5 4

3

2

6

75

4

1

Page 4: EMIS 8374

slide 4

MST Example: Some Feasible Spanning Trees

1

32

5 4

36

7

1

1

32

5 42

74

1

1

32

5 4

3

2

6

5

1

32

5 42

6

7

1

cost = 14 cost = 16

cost = 16cost = 17

Page 5: EMIS 8374

slide 5

MST Example: Optimal Solution

1

32

5 4

3

2

6

1

cost = 12

Page 6: EMIS 8374

slide 6

MST Optimality Conditions: Path Optimality

1

32

5 4

3

2

6

75

4

1

c25 > c12

c25 > c15

c24 > c12

c24 > c15

c24 > c45

c34 > c23

c34 > c12

c34 > c15

c34 > c45

Page 7: EMIS 8374

slide 7

Path Optimality Condition

• A spanning tree T is a minimum spanning tree if and only for every out-of-tree edge (i,j), cij cuv 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).

Page 8: EMIS 8374

slide 8

Path Optimality: Necessity

1

32

5 4

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.

Page 9: EMIS 8374

slide 9

MST Optimality Conditions: Cut Optimality

1

32

5 4

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 cij cuv.

75

4

c25 >c12

c24 > c12

c45 > c12

Page 10: EMIS 8374

slide 10

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].

Page 11: EMIS 8374

slide 11

Cut Optimality: Necessity

1

32

5 4

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.

75

4

If we remove in-tree edge (2, 4), we can restore connectivity by adding out-of-tree edge (4, 5).

Page 12: EMIS 8374

slide 12

Cut Optimality: Necessity

1

32

5 4

3

6

1

54

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.

Page 13: EMIS 8374

slide 13

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?

Page 14: EMIS 8374

slide 14

4

5

2

1

Sufficiency of Cut Optimality

3

G 4

5

2

1

3

T*

4

5

2

1

3

TC • Let T* be a MST of G.• Suppose that TC satisfies the cut optimality condition.• Show that TC is also a MST.

Page 15: EMIS 8374

slide 15

4

5

2

1

Sufficiency of Cut Optimality

3

T*

4

5

2

1

3

TC

Since T* is a MST, it must satisfy the path optimality condition.So, c25 c24 (and c25 c45).

Since TC satisfies the cut optimality condition, c25 c24 (and c25 c35 ).

This implies c25 = c24.

Replacing (2,4) with (2,5) in T* creates a new MST, T**.

Page 16: EMIS 8374

slide 16

4

5

2

1

Sufficiency of Cut Optimality

3

T**

4

5

2

1

3

TC

Since T** is a MST, it must satisfy the path optimality condition.So, c23 c35 (and c23 c25).

Since TC satisfies the cut optimality condition, c23 c35 (and c25 c13 ).

This implies c23 = c35.

Replacing (3,5) with (2,3) in T** creates a new MST, T***.

Page 17: EMIS 8374

slide 17

4

5

2

1

Sufficiency of Cut Optimality

3

T***

4

5

2

1

3

TC

Since TC 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.

Page 18: EMIS 8374

slide 18

Kruskal’s Algorithm (Path Optimality)

F := ET := {}Repeat Until |T| = |V| - 1 Begin

Select (i,j) F such that cij = min(cuv: (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.

Page 19: EMIS 8374

slide 19

Kruskal’s Algorithm: Example 1

1

42

3 5

3

2

6

75

4

1

Page 20: EMIS 8374

slide 20

Testing for Cycles

• Let GT 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 GT.

• 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.

Page 21: EMIS 8374

slide 21

Testing for CyclesInitialize component[i] = 0 for all i V.When edge (i,j) is inspected, there are 5 cases to

1. component[i] = component[j] = 0Add (i,j) to T; (i,j) becomes a new component of GT.

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] > 0Adding (i,j) would create a cycle.

Page 22: EMIS 8374

slide 22

Kruskal’s Algorithm: Example 2

1

42

3 5

2

2

4

15

3

6

Page 23: EMIS 8374

slide 23

Kruskal’s Algorithm: Example 2

1

42

3 5

2

2

4

15

3

6

1

1

2

2

2(2, 3) creates a cycle because vertices 2 and 3 are in the same connected component.

Page 24: EMIS 8374

slide 24

Kruskal’s Algorithm: Example 2

1

42

3 5

2

2

4

15

3

6

1

1

2

2

2(2, 4) does not create a cycle because vertices 2 and 4 are in different connected components.

Page 25: EMIS 8374

slide 25

Kruskal’s Algorithm: Example 2

1

42

3 5

2

2

4

15

3

6

2

2

2

2

2Merge components 1 and 2.

Page 26: EMIS 8374

slide 26

Prim’s Algorithm (Cut Optimality)

Choose any node v in V.S1 := {v}T := {}k := 1Repeat Until |T| = |V| - 1

BeginSelect a minimum cost edge (i,j) in the cut [Sk,V\{Sk}]T := T {(i,j)} If i Sk then Sk+1 := Sk {j}Else If j Sk then Sk+1 := Sk {i}

k := k+1End

Can be implemented in O(|E|+|V| log |V}) time.

Page 27: EMIS 8374

slide 27

Prim’s Algorithm

1

42

3 5

2

2

4

15

3

6

S1 = {3}S2 = {1,3}

Page 28: EMIS 8374

slide 28

Prim’s Algorithm

1

42

3 5

2

2

4

15

3

6

S3 = {1, 2, 3}S2 = {1,3}

Page 29: EMIS 8374

slide 29

Prim’s Algorithm

1

42

3 5

2

2

4

15

3

6

S3 = {1, 2, 3}S4 = {1, 2, 3, 4}

Page 30: EMIS 8374

slide 30

Prim’s Algorithm

1

42

3 5

2

2

4

15

3

6

S4 = {1, 2, 3, 4}

S5 = {1, 2, 3, 4, 5}

Page 31: EMIS 8374

slide 31

Directed Spanning Tree (DST)

• Input– A network (directed graph) G = (N,A)– Arc cost cij 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).

Page 32: EMIS 8374

slide 32

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 uij = |N|

– Each node gets 1 unit of flow

– Total cost of flow is minimized

– Arcs carrying flow form a directed spanning tree

Page 33: EMIS 8374

slide 33

DST Example

1

32

5 4

10

5

10

1

5

s