L. R. Ford, Jr. and D. R. Fulkerson
Introduction. The problem discussed in this paper was formulated by T. Harris as follows: "Consider a rail network connecting two cities by way of a number of intermediate cities, where each link of the network has a number assigned to it representing its capacity. Assuming a steady state condition, find a maximal flow from one given city to the other." While this can be set up as a linear programming problem with as many equations as there are cities in the network, and hence can be solved by the simplex method (1), it turns out that in the cases of most practical interest, where the network is planar in a certain restricted sense, a much simpler and more efficient hand computing procedure can be described. In §1 we prove the minimal cut theorem, which establishes that an obvious upper bound for flows over an arbitrary network can always be achieved. The proof is non-constructive. However, by specializing the network (§2), we obtain as a consequence of the minimal cut theorem an effective computational scheme. Finally, we observe in §3 the duality between the capacity problem and that of finding the shortest path, via a network, between two given points.
1. The minimal cut theorem. A graph G is a finite, 1-dimensional complex, composed of vertices , and arcs . An arc joins its end vertices ; it passes through no other vertices of and intersects other arcs only in vertices. A chain is a set of distinct arcs of which can be arranged as , where the vertices are distinct, i.e., a chain does not intersect itself; a chain joins its end vertices and . We distinguish two vertices of : , the source, and , the sink. A chain flow from to is a couple composed of a chain joining and , and a non-negative number representing the flow along from source to sink. Each arc in has associated with it a positive number called its capacity. We call the graph , together with the capacities of its individual arcs, a network. A flow in a network is a collection of chain flows which has the property that the sum of the numbers of all chain flows that contain any arc is no greater than the capacity of that arc. If equality holds, we say the arc is saturated by the flow. A chain is saturated with respect to a flow if it contains
Received September 20, 1955.
The case in which there are many sources and sinks with shipment permitted from any source to any sink is obviously reducible to this.
a saturated arc. The value of a flow is the sum of the numbers of all the chain flows which compose it.
It is clear that the above definition of flow is not broad enough to include everything that one intuitively wishes to think of as a flow, for example, sending trains out a dead end and back or around a circuit, but as far as effective transportation is concerned, the definition given suffices.
A disconnecting set is a collection of arcs which has the property that every chain joining and meets the collection. A disconnecting set, no proper subset of which is disconnecting, is a cut. The value of a disconnecting set (written ) is the sum of the capacities of its individual members. Thus a disconnecting set of minimal value is automatically a cut.
Theorem 1. (Minimal cut theorem). The maximal flow value obtainable in a network is the minimum of taken over all disconnecting sets .
Proof. There are only finitely many chains joining and , say of them. If we associate with each one a coordinate in -space, then a flow can be represented by a point whose th coordinate is the number attached to the chain flow along the th chain. With this representation, the class of all flows is a closed, convex polytope in -space, and the value of a flow is a linear functional on this polytope. Hence, there is a maximal flow, and the set of all maximal flows is convex.
Now let be the class of all arcs which are saturated in every maximal flow.
Lemma 1. is a disconnecting set.
Suppose not. Then there exists a chain joining and with for each . Hence, corresponding to each , there is a maximal flow in which is unsaturated. But the average of these flows,
is maximal and is unsaturated by for each . Thus the value of may be increased by imposing a larger chain flow on , contradicting maximality.
Notice that the orientation assigned to an arc of by a positive chain flow of a maximal flow is the same for all such chain flows. For suppose first that are two chain flows occurring in a maximal flow , where
and . Then
contain chains , joining and , and another maximal flow can be obtained from as follows. Reduce the and components of each by , and increase each of the and components by . This unsaturates the arc , contradicting its definition as an element of . On the other hand, if were members of distinct maximal flows , consideration of brings us back to the former case. Hence, the arcs of have a definite orientation assigned to them by maximal flows. We refer to that vertex of an arc which occurs first in a positive chain flow of a maximal flow as the left vertex of .
Now define a left arc of as follows: an arc of is a left arc if and only if there is a maximal flow and a chain (possibly null) joining and the left vertex of with no saturated by . Let be the set of left arcs of .
Lemma 2. is a disconnecting set.
Given an arbitrary chain joining and , it must intersect by Lemma 1. Let be the first . Then for each , there is a maximal flow in which is unsaturated. The average of these flows provides a maximal flow in which are unsaturated. It remains to show that this chain joins to the left vertex of , i.e., is the left vertex of . Suppose not. Then the maximal flow contains a chain flow
Let the amount of unsaturation in of , be . Now alter as follows: decrease the flow along the chain by and increase the flow along the chain contained in
by this amount. The result is a maximal flow in which is unsaturated, a contradiction. Hence .
Lemma 3. No positive chain flow of a maximal flow can contain more than one arc of .
Assume the contrary, that is, there is a maximal flow containing a chain flow
with arcs occurring before , say, in the chain. Let be that maximal flow for which there is an unsaturated chain
from to the left vertex of . Consider . This maximal flow contains the chain flow with , and each is unsaturated by in . Again alter : decrease the flow along
by min and increase the flow along the chain contained in by the same amount, obtaining a maximal flow in which is unsaturated, a contradiction.
Now to prove the theorem it suffices only to remark that the value of every flow is no greater than where is any disconnecting set; and on the other hand we see from Lemma 3 and the definition of that in adding the capacities of arcs of we have counted each chain flow of a maximal flow just once. Since by Lemma 2 is a disconnecting set, we have the reverse inequality. Thus is a minimal cut and the value of a maximal flow is .
We shall refer to the value of a maximal flow through a network as the capacity of (). Then note the following corollary of the minimal cut theorem.
Corollary. Let be a collection of arcs of a network which meets each cut of in just one arc. If is a network obtained from by adding to the capacity of each arc of , then .
It is worth pointing out that the minimal cut theorem is not true for networks with several sources and corresponding sinks, where shipment is restricted to be from a source to its sink. For example, in the network (Fig. 1) with shipment from to and capacities as indicated, the value of a minimal disconnecting set (i.e., a set of arcs meeting all chains joining sources and corresponding sinks) is 4, but the value of a maximal flow is 3.
Figure.
Fig. 1
- A computing procedure for source-sink planar networks. We say that a network is planar with respect to its source and sink, or briefly, is ab-planar, provided the graph of , together with arc , is a planar
2It was conjectured by G. Dantzig, before a proof of the minimal cut theorem was obtained, that the computing procedure described in this section would lead to a maximal flow for planar networks.
graph . (For convenience, we suppose there is no arc in joining and .) The importance of -planar networks lies in the following theorem.
Theorem 2. If is ab-planar, there exists a chain joining and which meets each cut of precisely once.
Proof. We may assume, without loss of generality, that the arc is part of the boundary of the outside region, and that lies in a vertical strip with located on the left bounding line of the strip, on the right. Let be the chain joining and which is top-most in . has the desired property, as we now show. Suppose not. Then there is a cut , at least two arcs of which are in . Let these be and , with occurring before in following from to . Since is a cut, there is a chain joining and which meets in only. Similarly there is a chain meeting in only. Let be that part of joining to an end point of . It follows from the definition of that and must intersect. But now, starting at , follow to its last intersection with , then to . We thus have a chain from to not meeting , contradicting the fact that is a cut.
Symmetrically, of course, the bottom-most chain of has the same property.
Notice that this theorem is not valid for networks which are not -planar. A simple example showing this is provided by the "gas, water, electricity" graph (Fig. 2), in which every chain joining and meets some cut in three arcs.
Figure.
Fig. 2
Theorem 2 and the corollary to Theorem 1 provide an easy computational procedure for determining a maximal flow in a network of the kind here considered. Simply locate a chain having the property of Theorem 2; this can be done at a glance by finding the two regions separated by arc , and taking the rest of the boundary of either region (throwing out portions of the boundary where it has looped back and intersected itself, so as to get a chain). Impose as large a chain flow as possible on this chain, thereby saturating one or more of its arcs. By the corollary, subtracting from each capacity in reduces the capacity of by . Delete the saturated arcs, and proceed as before. Eventually, the graph disconnects, and a maximal flow has been constructed.
- A minimal path problem. For source-sink planar networks, there is an interesting duality between the problem of finding a chain of minimal capacity-sum joining source and sink and the network capacity problem, which lies in the fact that chains of joining source and sink correspond to cuts (relative to two particular vertices) of the dual of and vice versa. More precisely, suppose one has a network , planar relative to two vertices and , and wishes to find a chain joining and such that the sum of the numbers assigned to the arcs of the chain is minimal. An easy way to solve this problem is as follows. Add the arc , and construct the dual of the resulting graph . Let and be the vertices of the dual which lie in the regions of separated by . Assign each number of the original network to the corresponding arc in the dual. Then solve the capacity problem relative to and for the dual network by the procedure of §2. A minimal cut thus constructed corresponds to a minimal chain in the original network.
The dual of a planar graph is formed by taking a vertex inside each region of and connecting vertices which lie in adjacent regions by arcs. See (2; 3).