max flow application: precedence relations
DESCRIPTION
Max Flow Application: Precedence Relations. Updated 4/2/08. Precedence Relations. Given a finite set of elements B we define a precedence relation as relation between pairs of elements of S such that: i not i for all i in B i j implies j i for all i , j in B - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/1.jpg)
Max Flow Application: Precedence Relations
Updated 4/2/08
![Page 2: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/2.jpg)
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
![Page 3: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/3.jpg)
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
![Page 4: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/4.jpg)
Network Representation of Precedence Relations
a
f
e
d
b
c
a e, a f, d e, d c, d b, f c
Slide 4
![Page 5: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/5.jpg)
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 collectively contain (cover) all the elements of B.
Slide 5
![Page 6: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/6.jpg)
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
![Page 7: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/7.jpg)
Aircraft Scheduling Example
F1
F3
F2
F4
Four-Chain Solution: {{F1},{F2},{F3},{F4}}
Three-Chain Solution: {{F1, F2},{F3},{F4}}
Three-Chain Solution: {{F1, F4},{F2},{F3}}
Slide 7
![Page 8: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/8.jpg)
Max Flow Formulation of Minimum Chain Covering Problem
a
f
e
d
b
c
a e, a f, d e, d c, d b, f c
Slide 8
![Page 9: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/9.jpg)
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
Slide 9
![Page 10: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/10.jpg)
Representing Chains with Flows
• If i j and elements i and j are consecutive elements in the same chain, then let xsi = xij' = xj't = 1
• If element i starts a chain, then let xi't = 0• If element i ends a chain, then let xsi = 0• If element i is itself a chain, then let xsi = xi't = 0• Example Covers
1. 6 chains: {{a}, {b}, {c}, {d}, {e}, {f}}2. 4 chains: {{a, f, c}, {b}, {d}, {e}}3. 3 chains: {{a, f, c}, {b}, {d, e}}
Slide 10
![Page 11: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/11.jpg)
Cover 1: Flow Representationa
b
c
d
e
f
a'
b'
c'
d'
e'
f'
s t
0
0
00
0
0 0
0
00
0
00
# chains = 6v = 0
Slide 11
![Page 12: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/12.jpg)
Cover 2: Flow Representationa
b
c
d
e
f
a'
b'
c'
d'
e'
f'
s t
1
0
00
0
1 1
101
0
0
1
0
# chains = 4v = 2
Slide 12
![Page 13: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/13.jpg)
Cover 3: Flow Representationa
b
c
d
e
f
a'
b'
c'
d'
e'
f'
s t
1
0
01
0
1 1
101
0
0
1
1
# chains = 3v = 3
1
Slide 13
![Page 14: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/14.jpg)
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, then stop. {chain[1], chain[2], …, chain[k]} is a chain.
3. If the flow from s to i = 1 then find the unique 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 14
![Page 15: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/15.jpg)
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
Slide 15
![Page 16: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/16.jpg)
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
Slide 16
![Page 17: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/17.jpg)
Observation
• There is a one-to-one correspondence between feasible flows and chain coverings
• The number of chains in a cover plus the value of the flow is equal to the number of elements in the set– Cover 1: 6 + 0 = 6– Cover 2: 4 + 2 = 6– Cover 3: 3 + 3 = 6
• # chains + v = |B|• # chains = |B| - v• Since |B| is fixed, maximizing v minimizes the number
of chains
Slide 17
![Page 18: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/18.jpg)
Interpretation of Min Cuts
• Observe that S = {s, 1, 2, …, |B|}, T = N \{S} is a cut with finite capacity.
• Arcs of the form (i, j') cannot be in a minimum cut.
• If xsi = 0 in a maximum flow then
– Node i will be reachable from the source in the residual network
– Node j' will also be reachable from the source if i j
Slide 18
![Page 19: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/19.jpg)
Interpretation of Min Cuts
• Arcs of the form (s, i) and (i', t) each contribute 1 unit to u[S, T].
• Minimizing u[S, T] is equivalent to finding the largest subset A of B such that i can be in S and i' can be in T for all i in A
• Since the capacity of a minimum cut is finite, it follows that the set of elements in A mutually incomparable
Slide 19
![Page 20: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/20.jpg)
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
Slide 20
![Page 21: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/21.jpg)
Residual Networka
b
c
d
e
f
a'
b'
c'
d'
e'
f'
s t
1
Slide 21
![Page 22: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/22.jpg)
Residual Networka
b
c
d
e
f
a'
b'
c'
d'
e'
f'
s t
1
Slide 22
![Page 23: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/23.jpg)
Residual Networka
b
c
d
e
f
a'
b'
c'
d'
e'
f'
s t
1
Slide 23
![Page 24: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/24.jpg)
Residual Networka
b
c
d
e
f
a'
b'
c'
d'
e'
f'
s t
1
Slide 24
![Page 25: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/25.jpg)
Mutually Incomparable Elements
a
f
e
d
b
c
f is not e, e is not f, e is not b, b is not e, f is not b, b is not b
b, e, and f form an anti-chain
Slide 25
![Page 26: Max Flow Application: Precedence Relations](https://reader033.vdocument.in/reader033/viewer/2022052414/5681362c550346895d9da895/html5/thumbnails/26.jpg)
Dilworth’s Theorem
• Given a set B and a precedence relation, the size of the largest anti-chain is equal to the size of the minimum chain covering
• Proof follows from the max-flow min-cut theorem
Slide 26