
266 NETWORK FLOW THEORY
Exercise 9.9 Show that the improving flow in Example 9.6 results in a maximal flow
for the network.
Exercise 9.10 Prove Corollary 9.8.
Instead of adjusting flows in a network-flow problem, it is convenient to adjust
the arc capacities so that all the existing flows x
o
ij
are converted to zero and an im-
proving flow is found in this adjusted-capacity network. After finding the improving
flow, the arc capacities are again adjusted so that θ improvements are converted
to zero, and so on, iteratively. A final step notes the difference between the final
adjusted capacity and the original capacity on an arc, and this difference is x
∗
ij
, the
maximal flow solution.
Definition (Adjusted-Capacity Network): Given any existing flow x = x
0
ij
on a
network (Nd, Ac), the adjusted-capacity network is a network that is computed
as follows. Subtract existing arc-flows x
o
ij
from the upper bound h
ij
on arc-
capacity to obtain a new upper bound
¯
h
ij
= h
ij
−x
o
ij
on the arc capacity. Add
a reverse arc (j, i) with an upper bound
¯
h
ji
= x
o
ij
on arc capacity; if x
o
ij
=0,
the reverse arc (j, i) may be omitted.
Example 9.7 (Construction of an Adjusted-Capacity Network) In Figure 9-10
we illustrate how to obtain an adjusted-capacity network from a network with initial flows.
The direction of the existing flow is shown by the arrows, and the flow values are shown
as numbers approximately halfway on each arc. It is assumed that each pair of nodes has
two arcs connecting it. The capacity on the arc from node i to node j is shown at the
tail of the arc; i.e., near node i. In the figure, on the line joining node 1 and node 2, the
number 4 near node 1 is the arc capacity for arc (1, 2) and the number 0 near node 2 is
the arc capacity for arc (2, 1). In Figure 9-10(a), an initial exogenous flow of F =5is
assumed. In Figure 9-10(b) we have created an adjusted-capacity network by converting
the existing flows to zero as discussed above.
Theorem 9.7 is a theoretical basis for the Ford-Fulkerson Augmenting Path Al-
gorithm (also due independently to Elias, Feinstein, and Shannon). We shall first
illustrate the algorithm through an example.
Example 9.8 (Illustration of the Augmenting Path Algorithm) Consider the
network displayed in Figure 9-11(a) with the capacities of the forward and reverse arcs
as shown by capacities on both ends of the arcs. Notice that the arc connecting nodes 2
and 3 has a capacity of 1 along the arc, (2, 3) and a capacity of 2 along the arc (3, 2); i.e.,
the arc joining nodes 2 and 3 is undirected and has been replaced by two arcs (2, 3) and
(3, 2). Noting that there are no existing flows, we start the algorithm by setting F =0
and finding an augmenting path such as (1, 3), (3, 2), and (2, 4) with arc capacities 2, 2,
and 2 respectively. Thus the improving flow θ through this path is 2, and F =0+2. The
capacities are then adjusted by subtracting θ = 2 from the tail of the forward arcs along
the path and adding θ = 2 to the tail of the reverse arcs along the path to generate the
next adjusted-capacity network, shown in Figure 9-11(b).