0% found this document useful (0 votes)
18 views

Optimization Trees

This document discusses minimum spanning trees (MSTs) and optimal spanning tree problems. It provides examples and explanations of MST optimality conditions including path optimality and cut optimality. Algorithms for finding MSTs like Kruskal's and Prim's are presented along with examples. The document also introduces the directed spanning tree problem and discusses how it relates to network flow problems.

Uploaded by

Rohit Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Optimization Trees

This document discusses minimum spanning trees (MSTs) and optimal spanning tree problems. It provides examples and explanations of MST optimality conditions including path optimality and cut optimality. Algorithms for finding MSTs like Kruskal's and Prim's are presented along with examples. The document also introduces the directed spanning tree problem and discusses how it relates to network flow problems.

Uploaded by

Rohit Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 33

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 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.
slide 2
MST Example: Input
1
3 2
5 4
3
2
6
7
5
4
1
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 = 16
cost = 17
slide 4
MST Example: Optimal Solution
1
3 2
5 4
3
2
6
1
cost = 12
slide 5
MST Optimality Conditions:
Path Optimality
1
3 2
5 4
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
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).
slide 7
Path Optimality: Necessity
1
3 2
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.
slide 8
MST Optimality Conditions:
Cut Optimality
1
3 2
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 c
ij
c
uv
.
7
5
4
c
25
>c
12
c
24
> c
12
c
45
> c
12
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].
slide 10
Cut Optimality: Necessity
1
3 2
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.
7
5
4
If we remove in-tree edge (2, 4), we can restore
connectivity by adding out-of-tree edge (4, 5).
slide 11
Cut Optimality: Necessity
1
3 2
5 4
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.
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?
slide 13
4
5
2
1
Sufficiency of Cut Optimality
3
G
4
5
2
1
3
T
*
4
5
2
1
3
T
C
Let T
*
be a MST of G.
Suppose that T
C
satisfies the
cut optimality condition.
Show that T
C
is also a MST.
slide 14
4
5
2
1
Sufficiency of Cut Optimality
3
T
*
4
5
2
1
3
T
C
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
**
.
slide 15
4
5
2
1
Sufficiency of Cut Optimality
3
T
**
4
5
2
1
3
T
C
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
***
.
slide 16
4
5
2
1
Sufficiency of Cut Optimality
3
T
***
4
5
2
1
3
T
C
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.
slide 17
Kruskals 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.
slide 18
Kruskals Algorithm: Example 1
1
4 2
3 5
3
2
6
7
5
4
1
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.
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.
slide 21
Kruskals Algorithm: Example 2
1
4 2
3 5
2
2
4
1
5
3
6
slide 22
Kruskals Algorithm: Example 2
1
4 2
3 5
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.
slide 23
Kruskals Algorithm: Example 2
1
4 2
3 5
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.
slide 24
Kruskals Algorithm: Example 2
1
4 2
3 5
2
2
4
1
5
3
6
2
2
2
2
2
Merge components 1 and 2.
slide 25
Prims 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.
slide 26
Prims Algorithm
1
4 2
3 5
2
2
4
1
5
3
6
S
1
= {3}
S
2
= {1,3}
slide 27
Prims Algorithm
1
4 2
3 5
2
2
4
1
5
3
6
S
3
= {1, 2, 3}
S
2
= {1,3}
slide 28
Prims Algorithm
1
4 2
3 5
2
2
4
1
5
3
6
S
3
= {1, 2, 3}
S
4
= {1, 2, 3, 4}
slide 29
Prims Algorithm
1
4 2
3 5
2
2
4
1
5
3
6
S
4
= {1, 2, 3, 4}
S
5
= {1, 2, 3, 4, 5}
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).
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
slide 32
DST Example
1
3 2
5 4
10
5
10
1
5
s

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy