Lecture Notes Discrete Optimization - Applied Mathematics
Lecture Notes Discrete Optimization - Applied Mathematics
Lecture Notes Discrete Optimization - Applied Mathematics
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