28.11.2014 Views

Lecture Notes Discrete Optimization - Applied Mathematics

Lecture Notes Discrete Optimization - Applied Mathematics

Lecture Notes Discrete Optimization - Applied Mathematics

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6. Minimum Cost Flows<br />

6.1 Introduction<br />

We consider the minimum cost flow problem.<br />

Minimum Cost Flow Problem:<br />

Given: A directed graph G=(V,E) with capacities w : E → R + and costs c :<br />

E →R + and a balance function b : V →R.<br />

Goal: Compute a feasible flow f such that the overall cost ∑ e∈E c(e) f(e) is<br />

minimized.<br />

Here, a flow f : E →R + is said to be feasible if it respects the capacity constraints and the<br />

total flow at every node u∈ V is equal to the balance b(u). More formally, f is feasible if<br />

the following two conditions are satisfied:<br />

1. Capacity constraint: for every(u,v)∈E, f(u,v)≤w(u,v).<br />

2. Flow balance constraints: for every u∈ V,<br />

∑ f(u,v)− ∑ f(v,u)=b(u).<br />

(u,v)∈E (v,u)∈E<br />

Intuitively, a positive balance indicates that node u has a supply of b(u) units of flow,<br />

while a negative balance indicates that node u has a demand of −b(u) units of flow. A<br />

feasible flow f that satisfies the flow balance constraints with b(u)=0 for every u∈ V is<br />

called a circulation.<br />

The minimum cost flow problem can naturally be formulated as a linear program:<br />

minimize<br />

subject to<br />

∑ c(e) f(e)<br />

e∈E<br />

∑<br />

(u,v)∈E<br />

f(u,v)− ∑ f(v,u) = b(u) ∀u∈ V<br />

(v,u)∈E<br />

f(e) ≤ w(e) ∀e∈E<br />

f(e) ≥ 0 ∀e∈E<br />

(6)<br />

We use c( f)=∑ e∈E c(e) f(e) to refer to the total cost of a feasible flow f . We make a few<br />

assumptions throughout this section:<br />

Assumption 6.1. Capacities, costs and balances are integral.<br />

Note that we can enforce this assumption if all input numbers are rational numbers by<br />

multiplying by a suitably large constant.<br />

Assumption 6.2. The balance function satisfies ∑ u∈V b(u) = 0 and there is a feasible<br />

flow satisfying these balances.<br />

Note that we can test whether a feasible flow exists by a single max-flow computation<br />

as follows: Augment the network by adding a super-source s and a super-target t. Add<br />

36

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!