Max Flow Application: Precedence Relations
description
Transcript of Max Flow Application: Precedence Relations
Max Flow Application: Precedence Relations
Precedence Relations
• Given a finite set of elements B we define a precedence relation as relation between pairs of elements of S such that:
1. i not i for all i in B2. i j implies j i for all i, j in B3. i j and j k implies i k for all i, j, k in
B
Slide 2
Examples of Precedence Relations
1. Let B be the set of integers. The < relation is a precedence relation on B.
2. Let B be a set of jobs and let i j mean that job j cannot start until job i is complete.
Slide 3
Network Representation of Precedence Relations
a
f
e
d
b
c
a e, a f, d e, d c, d b, f c
Page 4
Minimum Chain Covering Problem
• A chain i1, i2, …, ik is a sequence of elements in B such that i1 i2 … ik.
• The minimum chain covering problem is to find a minimum number of chains that covers all the elements of B.
Slide 5
Example: Aircraft Scheduling
• Given a set of flight legs that must be serviced, determine the minimum number of planes required.
• Example– Flight 1: SFO -> LAX– Flight 2: LAX -> DFW – Flight 3: OAK -> MSP– Flight 4: LAX -> CVG
Slide 6
Aircraft Scheduling Example
F1
F3
F2
F4
Four-Chain Solution: {{F1},{F2},{F3},{F4}}
Three-Chain Solution: {{F1,F2},{F3},{F4}}
Page 7
Max Flow Formulationa
b
c
d
e
f
a'
b'
c'
d'
e'
f'
s t
1
1
11
1
1 1
1
11
1
1
Page 8
Finding Chains from a Feasible Flow
1. Chose i' such that the flow from i' to t = 0. Let k = 1. chain[k] = i.
2. If the flow from s to i = 0, stop. {chain[1], chain[2], …, chain[k]} is a chain.
3. If the flow from s to i = 1 then find j' such that the flow from i to j' = 1. Let k = k+1, chain[k] = j. Let i = j. Go to step 2.
Slide 9
A Feasible Flow v = 2a
b
c
d
e
f
a’
b’
c’
d’
e’
f’
s t
1
0
00
0
1 1
101
0
0
1
0
Page 10
Finding a Chain
• Step 1: i’ = a’, k=1, chain[1] = a
• Step 2: xsa=1
• Step 3: j’=f’, k=2, chain[2] = f, i=f
• Step 2: xsf=1
• Step 3: j’=c’, k=3, chain[3] = c, i=c
• Step 2: xsc=0.– Chain: a, f, c
Page 11
Finding a Feasible Chaina
b
c
d
e
f
a’
b’
c’
d’
e’
f’
s t
1
0
1
0
1
1
Page 12
A Cover with 4 chains
a
f
e
d
b
c
a e, a f, d e, d c, d b, f c
Chain 1: a, f, cChain 2: eChain 3: dChain 4: b
Page 13
Interpretation of Network Flow Solution: Sink Side
• Each node i’ such that xi’t = 0 starts a chain.– Note that there are |B| nodes adjacent to the
sink. Each with unit capacity.– The number of chains determined by a feasible
flow is |B| - v. – Maximizing the flow minimizes the number of
chains.
Slide 14
Interpretation of Network Flow Solution: Source Side
• Each node j such that xsj = 0 ends a chain.– Observe that S = {s, 1, 2, …, |B|}, T = N \{S} is a cut
with finite capacity.
– Only arcs of the form (s,j) or (i’,t) can be in a minimum cut.
– If xsj = 0 in a maximum flow, then node j will be reachable from the source in the residual network.
– If Node j is in S, then (s, j) contributes one unit to u[S,T].
Slide 15
Interpretation of Network Flow Solution: Source Side
• Each node j such that xsj = 0 ends a chain.– The capacity of a minimum cut is equal to the number
of source-adjacent nodes that don’t receive flow in a maximum flow.
– The capacity of a minimum cut is equal to the number of chains.
– Maximizing the flow, minimizes the cut capacity which minimizes the number of chains.
Slide 16
A Maximum Flow v = 3a
b
c
d
e
f
a’
b’
c’
d’
e’
f’
s t
1
0
01
0
1 1
101
0
0
1
11
Page 17
A Cover with 3 chains
a
f
e
d
b
c
a e, a f, d e, d c, d b, f c
Chain 1: a, f, cChain 2: d, eChain 3: b
Page 18