260 likes | 357 Views
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
E N D
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 • ij implies ji for all i, j in B • i j and jk implies ik for all i, j, k in B
Examples of Precedence Relations • Let B be the set of integers. The < relation is a precedence relation on B. • Let B be a set of jobs and let ij mean that job j cannot start until job i is complete.
Network Representation of Precedence Relations f a e, a f, d e, d c, d b, f c a e c d b
Minimum Chain Covering Problem • A chain i1, i2, …, ik is a sequence of elements in B such that i1i2 … ik. • The minimum chain covering problem is to find a minimum number of chains that collectively contain (cover) all the elements of B.
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
Aircraft Scheduling Example Four-Chain Solution: {{F1},{F2},{F3},{F4}} Three-Chain Solution: {{F1, F2},{F3},{F4}} Three-Chain Solution: {{F1, F4},{F2},{F3}} F2 F1 F4 F3
Max Flow Formulation of Minimum Chain Covering Problem f a e, a f, d e, d c, d b, f c a e c d b
Max Flow Formulation a a' 1 1 b b' 1 1 c c' 1 1 s t 1 1 d d' 1 1 e e' 1 1 f f'
Representing Chains with Flows • If ij 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 • 6 chains: {{a}, {b}, {c}, {d}, {e}, {f}} • 4 chains: {{a, f, c}, {b}, {d}, {e}} • 3 chains: {{a, f, c}, {b}, {d, e}}
Cover 1: Flow Representation 0 a a' 0 0 b b' 0 0 c c' 0 0 s t 0 0 d d' 0 0 e e' 0 0 # chains = 6 v = 0 f f'
Cover 2: Flow Representation a a' 1 0 b b' 0 0 c c' 0 1 1 s t 0 0 d d' 0 0 e e' 1 1 1 # chains = 4 v = 2 f f'
Cover 3: Flow Representation a a' 1 0 b b' 0 0 c c' 0 1 1 s t 0 1 d d' 1 0 1 e e' 1 1 1 # chains = 3 v = 3 f f'
Finding Chains from a Feasible Flow • Chose i' such that the flow from i' to t = 0. Let k = 1. chain[k] = i. • If the flow from s to i= 0, then stop. {chain[1], chain[2], …, chain[k]} is a chain. • 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.
A Feasible Flow v = 2 a a' 1 0 b b' 0 0 c c' 0 1 1 s t 0 0 d d' 0 0 e e' 1 1 1 f f'
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
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
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 ij
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 Amutually incomparable
Maximum Flow v = 3 a a' 1 0 b b' 0 0 c c' 0 1 1 s t 0 1 d d' 1 0 1 e e' 1 1 1 f f'
Residual Network a a' 1 b b' c c' s t d d' e e' f f'
Residual Network a a' 1 b b' c c' s t d d' e e' f f'
Residual Network a a' 1 b b' c c' s t d d' e e' f f'
Residual Network a a' 1 b b' c c' s t d d' e e' f f'
Mutually Incomparable Elements f f is not e, e is notf, e is notb, b is not e, f is notb, b is notb a e c b, e, and f form an anti-chain d b
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