29
1 15.082 and 6.855J April 3, 2003 Introduction to Minimum Cost Flows

Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

1

15.082 and 6.855J April 3, 2003

Introduction to Minimum Cost Flows

Page 2: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

2

The Minimum Cost Flow Problem

uij = capacity of arc (i,j).cij = unit cost of shipping flow from node i to

node j on (i,j).xij = amount shipped on arc (i,j)

Minimize ∑(i,j)∈A cijxij

∑j xij - ∑k xki = bi for all i ∈ N.

and 0 ≤ xij ≤ uij for all (i,j) ∈ A.

Page 3: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

3

Find the shortest path from node 1 to node 6

1

2

3

4

5

6

2

4

21

3

4

2

32

0 0

b(6) = -1b(1) = 1

0 0

The optimal flow is to send one unit of flow along 1-2-5-6.

This transformation works so long as there are no negative cost cycles in G. (What if there are negative cost cycles?)

Page 4: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

4

Find the Maximum Flow from s to t

b(i) = 0 for all i;

add arc (t,s) with a cost of -1 and large capacity.

The cost of every other arc is 0.

s

1

2

t

10, 8 8,7

1,1

10,66, 5

13

The optimal solution in the corresponding minimum cost flow problem will send as much flow in (t,s) as possible.

Page 5: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

5

Transshipment Problems

Plants with given production capabilities for a product.

One can ship directly from the plants to retailers, or from plants to warehouses, and then from warehouses to retailers.

There is a given demand for each retailer.

Costs of shipment are given.

What is the minimum cost method for satisfying demands?

Page 6: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

6

A Network Representation

Retailers

1

2

3

4

5

6

7

190

310

100

400

180

Demands1

2

3

4

5

6

7

400

1

2

3

4

5

6

7

400

1

2

3

4

5

6

7

PlantsWarehouses

Page 7: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

7

The Caterer Problem

Demand for di napkins on day i for i = 1 to 7 (so, j ∈ [1..7]). Cost of new napkins: a cents each, 2-day laundry: b cents per napkin1-day laundry: c cents per napkin.

Minimize the cost of meeting demand.

1 2 3 4 5 6 7

2’ 3’ 4’ 5’ 6’ 7’

clean

dirty

0

demand arcs

a

c b

1’

Page 8: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

8

Purchase arcs

In any period of the seven periods, one can purchase napkins, at a cost of a cents per napkin.

clean napkins

1 2 3 4 5 6 7

0a

Page 9: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

9

Demand Arcs

You must use di napkins on day i

dirty napkins

1 2 3 4 5 6 7

0a

lower bound on flows

1’

d1

2’

d2

3’

d3

4’ 5’ 6’

d4 d5 d6

7’

d7

Page 10: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

10

The rest of the arcs

You may launder napkins in 2 days at b cents each

You may launder napkins in 1 day at c cents each

You may store clean napkins for free

You may store dirty napkins for free

1 2 3 4 5 6 7

0a

1’ 2’ 3’ 4’ 5’ 6’ 7’

bc

Application to airplane maintenance.

Page 11: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

11

Some Assumptions

1. All data is integral. (Needed for some proofs, and some running time analysis).

2. The network is directed.

3. ∑i=1 to n b(i) = 0. (Otherwise, there cannot be a feasible solution)

4. There is a feasible solution (see next slide)

Page 12: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

12

Artificial Solutions

1

2

3

4

5

61

3 -4

3

-52

To create a feasible solution, add a dummy node d.

d

Add an arc from d to each demand node, each with a large cost M, and large capacity.

Add an arc to d from each supply node, each with a large cost M, and a large capacity.

In an optimal solution, arcs with large cost will have a flow of 0.

Page 13: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

13

Overview of the solution procedure

Reduced costsrecall replacing cij – πi + πj for the shortest path problem. The same transformation is very useful for min cost flow algorithms.

Optimality conditionsMost iterative optimization algorithms stop when “optimality conditions are satisfied”. We describe optimality conditions for the min cost flow problem.

Residual networkJust as in max flows, we run most algorithms on the residual network.

Page 14: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

14

Reduced Costs

Let πi denote the node potential (or dual price) for node i.

ij ij i jc cπ π π= − +

For unit of flow out of node i, subtract πi from the cost

For unit of flow into node j, add πj to the cost.

$3 – π1 + π21 2

3

$1 – π2 + π3-$5 – π3 + π1

$31 2

3

$1-$5

Page 15: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

15

More on Using Reduced Costs

Claim: For any feasible solution x, cx - cπx = πb. Thus a feasible flow x that minimizes cx will also minimize cπx.

( , )( )i j iji j A

cx c x xπ π π∈

− = −∑Proof:

( )i ij jii j jx xπ= −∑ ∑ ∑

i iib bπ π= =∑

Page 16: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

16

Optimality Conditions

Let x be a flow and let π be a vector of node potentials.

The pair (x, π) is optimal if it satisfies the following:1. x is a feasible flow

2. If cπij > 0, then xij = 0

3. If cπij < 0, then xij = uij

$31 2

-$53 4

If x, π satisfy (1) – (3), we say that x is an optimal flow, and π is an optimal set of node potentials.

Page 17: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

17

The Residual Network G(x)

81 2

$10uiji jcij

Suppose x12 = 3

5

1 23

$10

-$10

uij - xij

i jxij

cij

cij

Page 18: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

18

Optimality Conditions for G(x)

Every arc in the residual network has a non-negative reduced cost.

If cπij < 0, then xij = uijIf cπ

ij > 0, then xij = 0

81 2

$7Then x12 = 0

53 4

-$6Then x34 = 5

0

3 45

-$6

$6

8

1 20

$7

-$7

Page 19: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

19

Other optimality conditions for G(x)

A feasible flow x is optimal for the minimum cost flow problem if and only if there is no negative cost cycle in the residual network G(x).

Page 20: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

20

Negative Cycle Algorithm

Algorithm NEGATIVE CYCLE;begin

establish a feasible flow x in the network;while G(x) contains a negative cost cycle do begin

use some algorithm to identify a negative cost cycle C;

let δ : = min { rij : (i, j) ∈ C };augment δ units of flow in cycle C and

update G(x);end;

end;Negative Cycle Algorithm

Page 21: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

21

More on the Negative Cycle Algorithm

Suppose that all supplies/demands are integral, and capacities are integral. Then the negative cycle algorithm maintains an integral solution at each iteration.

Page 22: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

22

Finiteness

Theorem. The Negative Cycle Algorithm is finite if all data are finite and integral.

Proof. By flow decomposition, we can express the min cost flow as the sum of n+m paths and cycles. Each path and cycle has a cost bounded by nC, where C = max (|cij| : (i,j) ∈ A). The cost of the flow is at most (nC)(n+m)U, where U is the largest capacity.

At each iteration of cycle canceling, the cost improves by at least one.

Page 23: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

23

Optimality

Theorem. The Negative Cycle Algorithm terminates with an optimal flow.

Proof. Consider the final residual network G(x*). There is no negative cost cycle. Let d(j) denote the shortest path from node 1 to node j for each j. Let π*j = -d(j) for each j.

Suppose that (i,j) ∈ G(x*). Then d(j) ≤ d(i) + cij. Therefore, cij - π*i + π*j ≥ 0, and thus cπ*

ij ≥ 0.

Page 24: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

24

Review of Cycle Canceling

Given a flow x, we look for negative cost cycles in G(x).

If we find a negative cost cycle, we sent flow around the cycleIf we don’t find a negative cost cycle, we establish optimality.

It is a very generic algorithm for solving minimum cost flows.

Key subroutine: finding a negative cost cycle. It can be done in different ways.

Page 25: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

25

How to Find a Negative Cycle

POSSIBILITY 1. Use a shortest path algorithm to determine a negative cost cycle.

POSSIBILITY 2. Find the most negative cost cycle.

POSSIBILITY 3. Augment along the cycle that minimizes COST(C)/|C|. (The cost divided by the number of arcs.)

POSSIBILITY 4. Simplex method.

Page 26: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

26

Summary

Some applications of the minimum cost flow problem

Optimality Conditions

Cycle Canceling Algorithm

Integrality Property for Minimum Cost Flows

Page 27: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

27

Opt. Conditions When Capacities Are InfiniteSuppose uij = ∞ for all (i,j). Node potential vector π of node potentials π is feasible if for every arc (i,j) ∈ A, cπ

ij ≥ 0.

Lemma. If x is a feasible flow, and if π is a feasible vector of node potentials, then cx ≥ πb.

Proof. We have shown that cx - cπx = πb. Therefore, cx - πb = cπx. By assumption, cπ ≥ 0 and x ≥ 0, so the result is true.

Page 28: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

28

Strong Duality When Capacities are Infinite

Strong Duality Theorem. Suppose there is a feasible flow and a feasible vector of node potentials for the uncapacitated minimum cost flow problem. Let x* be a minimum cost flow , and let π* be a maximum cost feasible vector of node potentials. (That is, it maximizes πb.)

Then cx* = π*b.

Page 29: Introduction to Minimum Cost Flows - DSpace@MIT Homedspace.mit.edu/.../lecture-notes/14mincostflows.pdf · Find the Maximum Flow from s to t b(i) = 0 for all i; add arc (t,s) with

29

Proof. We already know that cx* ≥ πb for any feasible vector π of node potentials. Let π’ be the vector of node potentials satisfying the optimality conditions. We claim that cx* = π’b.

First, cx* - π’b = cπ’x. Next cπ’ ≥ 0 and x ≥ 0.

$31 2If cπij > 0, then xij = 0

Therefore, cπ’x = 0.