260 likes | 371 Vues
This text discusses the application of max flow in optimizing chains in precedence relations. It covers concepts such as precedence relations, chain covering problems, aircraft scheduling examples, max flow formulations, finding chains from feasible flows, and interpretations of min cuts. The text also explores the relationship between feasible flows, chain coverings, and anti-chains. Discussions on Dilworth’s Theorem and its proof based on the max-flow min-cut theorem are included.
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