The goal of maximum flow problems is send as much flow as possible from node to node without exceeding arc capacities. Mathematically we can view this as the optimization problem
where is the value of flow. For example, consider the flow along the network below:
Where , and arcs are labeled . Here the value of flow is
In maximum flow we make the following assumptions:
- is directed.
- All capacities are non-negative integers.
- does not contain a directed path with for all .
- When , is also present in . (One may correct this by adding with ).
- There are no parallel (forward) arcs. If such arcs are present, we add extra node(s) to split all but one of them.
Feasibility Problem
In a feasibility problem we seek a feasible flow in with and such that . For example consider a simple transportation problem on node sets . We add nodes , arcs with for all and arcs with for all . If the maximum flow saturates all arcs , , then there exists a feasible flow given by the values in the arcs of the original network.
Residual Network
Many algorithms for max flow employ the concept of residual networks. For each arc with capacity and flow , we split the arc into a forward arc with residual and backward arc with residual .
The residual capacity, , of an arc is given by
and denotes the maximum additional flow we can send from to using arcs and . The residual network contains all nodes and all arcs with .
Example:
Consider the network below where arcs are labeled .
On the left is the original network and on the right is the residual network . Notice that has an path given by which we could push an additional 1 unit of flow along. Such a path is called an augmenting path. The residual capacity of an augmenting path is
We say to augment along is to send units along each arc in and modify and accordingly. Thus, if we push unit of flow along in our example, our new network becomes:
Notice now that there are no paths in . We claim this flow is optimal.
The Generic Augmenting Path Algorithm
Assume for all .
Algorithm 5 The Generic Augmenting Path Algorithm
procedure FordFulkerson()
;
initialize ;
while has a path from to do
augment units of flow along ;
updtae and ;
end while
end procedure
Once the algorithm has finished one may obtain the optimal values from the final . Recall that , i.e., . If we set and . Otherwise, we set and .
This algorithm halts due to the following properties:
- The residual capacities are integral after each iteration.
- The capacity of each augmenting path is at least 1.
- Augmenting along a path decreases for some arc by at least one unit.
- Augmentation never increases for any .
- keeps decreasing and is lower bounded by zero.
One may show that the number of augmentations needed is where .
Max-Flow Min-Cut Theorem
The max-flow min-cut theorem (MFMC) theorem determines when a flow is optimal.
Def
An cut is a partition of node set in two disjoint sets such that , . A forward arc is an arc with and . A backward arc is an arc with and . The capacity of an cut is given by
Property: The flow value of any feasible flow is at most for any cut .
Def
The flow across a cut is given by
Property: If is an cut, then .
Property: for any cut .
Optimality Conditions for Max-flow
The following statements are equivalent.
- A flow is maximum.
- There is no augmenting path in .
- There is an cut whose capacity is equal to the value of the flow , i.e., .
Max-Flow Min-Cut Theorem
The maximum flow value is equal to the minimum capacity of an cut.