Emis 8374
Download
1 / 33

EMIS 8374 - PowerPoint PPT Presentation


  • 67 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' EMIS 8374' - valentine-reilly


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Emis 8374

EMIS 8374

Optimal Trees

updated 25 April 2006


Minimum spanning tree mst
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.


Mst example input

1

3

2

5

4

6

3

5

4

7

1

2

MST Example: Input


Mst example some feasible spanning trees
MST Example: Some Feasible Spanning Trees

6

6

3

3

2

2

3

3

5

cost = 17

1

1

7

cost = 16

1

2

5

5

4

4

6

3

3

2

2

cost = 14

cost = 16

4

1

1

7

7

1

1

2

2

5

5

4

4


Mst example optimal solution

1

3

2

5

4

MST Example: Optimal Solution

6

3

1

2

cost = 12


Mst optimality conditions path optimality

1

3

2

5

4

5

4

7

MST Optimality Conditions: Path Optimality

c25 > c12

c25 > c15

6

c34 > c23

c34 > c12

c34 > c15

c34 > c45

3

1

2

c24 > c12

c24 > c15

c24 > c45


Path optimality condition
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).


Path optimality necessity

1

3

2

5

4

Path Optimality: Necessity

6

3

5

1

2

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.


Mst optimality conditions cut optimality

1

3

2

5

4

c25 >c12

c24 > c12

c45 > c12

3

5

4

7

MST Optimality Conditions: Cut Optimality

6

1

2

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.


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


Cut optimality necessity

1

3

2

5

4

3

Cut Optimality: Necessity

6

5

4

7

1

2

The in-tree edge (2, 4) is not a minimum cost edge in the cut formed by removing it from T.

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


Cut optimality necessity1

1

3

2

5

4

5

3

1

Cut Optimality: Necessity

6

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.


Sufficiency of cut and path optimality
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?


Sufficiency of cut optimality
Sufficiency of Cut Optimality

4

4

2

2

G

T*

1

1

3

3

5

5

  • Let T* be a MST of G.

  • Suppose that TC satisfies the cut optimality condition.

  • Show that TC is also a MST.

4

2

TC

1

3

5


Sufficiency of cut optimality1
Sufficiency of Cut Optimality

4

T*

2

Since T* is a MST, it must satisfy the path optimality condition.

So, c25 c24 (and c25 c45).

1

3

5

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

4

2

TC

This implies c25= c24.

1

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

3

5


Sufficiency of cut optimality2
Sufficiency of Cut Optimality

4

T**

2

Since T** is a MST, it must satisfy the path optimality condition.

So, c23 c35 (and c23 c25).

1

3

5

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

4

2

TC

This implies c23= c35.

1

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

3

5


Sufficiency of cut optimality3
Sufficiency of Cut Optimality

4

T***

2

Since TC is identical to T***, it is optimal.

1

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.

3

5

4

2

TC

1

Thus, cut optimality is a sufficient condition for a tree to be a MST.

3

5


Kruskal s algorithm path optimality
Kruskal’s Algorithm (Path Optimality)

  • F := E

  • T := {}

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


Kruskal s algorithm example 1

1

4

2

3

5

Kruskal’s Algorithm: Example 1

6

3

5

4

7

1

2


Testing for cycles
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.


Testing for cycles1
Testing for Cycles

Initialize component[i] = 0 for all i  V.

When edge (i,j) is inspected, there are 5 cases to

  • component[i] = component[j] = 0

    Add (i,j) to T; (i,j) becomes a new component of GT.

  • component[i] = 0, component[j] > 0.

    Add (i,j) to T; vertex i will go into the same component as j.

  • component[i] > 0, component[j] = 0.

    Add (i,j) to T; vertex j will go into the same component as i.

  • component[i] > 0, component[j] > 0, component[i]  component[j]

    Add (i,j) to T; merge components.

  • component[i] = component[j] > 0

    Adding (i,j) would create a cycle.


Kruskal s algorithm example 2

1

4

2

3

5

Kruskal’s Algorithm: Example 2

4

2

5

3

1

6

2


Kruskal s algorithm example 21

1

4

2

3

5

Kruskal’s Algorithm: Example 2

2

4

1

2

2

5

3

1

6

2

1

2

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


Kruskal s algorithm example 22

1

4

2

3

5

Kruskal’s Algorithm: Example 2

2

4

1

2

2

5

3

1

6

2

1

2

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


Kruskal s algorithm example 23

1

4

2

3

5

Kruskal’s Algorithm: Example 2

2

4

2

2

2

5

3

1

6

2

2

2

Merge components 1 and 2.


Prim s algorithm cut optimality
Prim’s Algorithm (Cut Optimality)

  • Choose any node v in V.

  • S1 := {v}

  • T := {}

  • k := 1

  • Repeat Until |T| = |V| - 1

    • Begin

    • Select 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+1

    • End

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


Prim s algorithm

1

4

2

3

5

Prim’s Algorithm

4

2

5

3

1

6

2

S1 = {3}

S2 = {1,3}


Prim s algorithm1

1

4

2

3

5

Prim’s Algorithm

4

2

5

3

1

6

2

S2 = {1,3}

S3 = {1, 2, 3}


Prim s algorithm2

1

4

2

3

5

Prim’s Algorithm

4

2

5

3

1

6

2

S3 = {1, 2, 3}

S4 = {1, 2, 3, 4}


Prim s algorithm3

1

4

2

3

5

Prim’s Algorithm

4

2

5

3

1

6

2

S4 = {1, 2, 3, 4}

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


Directed spanning tree dst
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).


Is dst a pure network flow problem
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


Dst example

1

3

2

5

4

DST Example

10

10

1

s

5

5


ad