- 45 Views
- Uploaded on
- Presentation posted in: General

Max Flow Application: Precedence Relations

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Max Flow Application: Precedence Relations

Updated 4/2/08

- 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

- 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.

f

a e, a f, d e,

d c, d b, f c

a

e

c

d

b

- 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.

- 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

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

f

a e, a f, d e,

d c, d b, f c

a

e

c

d

b

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'

- 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}}

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'

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'

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'

- 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

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'

- 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

- 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

- 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

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

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'

a

a'

1

b

b'

c

c'

s

t

d

d'

e

e'

f

f'

a

a'

1

b

b'

c

c'

s

t

d

d'

e

e'

f

f'

a

a'

1

b

b'

c

c'

s

t

d

d'

e

e'

f

f'

a

a'

1

b

b'

c

c'

s

t

d

d'

e

e'

f

f'

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

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