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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ole: Suppose f is a feasible flow of G. We introduce for each edge e = (u,v) ∈ E the<br />

reverse edge (v,u) with cost c(v,u)=−c(u,v). Subsequently, these edges will be called<br />

backward edges. In contrast, we refer to the original edges (u,v)∈E as forward edges.<br />

The residual capacity of a forward edge (u,v) is defined as r f (u,v) = w(u,v)− f(u,v).<br />

The residual capacity of a backward edge (v,u) is r f (v,u)= f(u,v). The residual graph<br />

G f =(V,E f ) with respect to f is the graph that contains all edges with positive residual<br />

capacity.<br />

Consider a directed simple cycle C in the residual graph G f . Let the residual capacity of<br />

C be r f (C)=min e∈C r f (e). We can then push x=r f (C) additional units of flow along C<br />

to obtain a feasible flow f ′ . Observe that an increase of x units on a backward edge(v,u)<br />

corresponds to a decrease of x units on the forward edge (u,v) ∈ E. More formally, the<br />

flow f ′ that we obtain from f by augmenting x units of flow along C is defined as follows:<br />

for every edge e=(u,v)∈E, we have<br />

⎧<br />

⎪⎨ f(u,v)+x<br />

f ′ (u,v)= f(u,v)−x<br />

⎪⎩<br />

f(u,v)<br />

Let the total cost of a cycle C in G f be c(C)=∑ e∈C c(e).<br />

if (u,v)∈ C<br />

if (v,u)∈ C<br />

otherwise.<br />

Lemma 6.2. Let f be a feasible flow of G and let C be a directed simple cycle in G f .<br />

Suppose f ′ is a flow that is obtained from f by augmenting x=r f (C) units of flow along<br />

C. Then f ′ is a feasible flow of G. Moreover, we have c( f ′ )=c( f)+x·c(C).<br />

Proof. Observe that x ≤ r f (u,v) for every edge (u,v) ∈ C. If (u,v) ∈ C is a forward<br />

edge, then f ′ (u,v) = f(u,v)+x ≤ f(u,v)+w(u,v)− f(u,v) ≤ w(u,v). If (v,u) ∈ C is<br />

a backward edge, then f ′ (u,v) = f(u,v)−x ≥ f(u,v)− f(u,v) = 0. The new flow f ′<br />

therefore respects the capacity and non-negativity constraints.<br />

Note that by pushing x units of flow along C, the flow at a node u that is not part of C<br />

remains the same. Consider a node u that is part of C. Because C is simple there are<br />

exactly two edges of C incident to u, say e 1 and e 2 . Note that the flow on all other edges<br />

incident to u remains the same. Also, the flow at u remains the same by pushing x units of<br />

flow along e 1 and e 2 . (Note that in order to verify this we need to consider four different<br />

cases, depending on whether e 1 and e 2 are forward or backward edges.) We therefore<br />

have<br />

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

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

The flow balance constraints are therefore satisfied.<br />

Finally, observe that by pushing x units of flow along C we effectively increase the cost<br />

of the flow by x·c(u,v) for every forward edge(u,v)∈ C∩ E and decrease the cost of the<br />

38

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

Saved successfully!

Ooh no, something went wrong!