Maximal Flow Through a Network

About this paperTiếng Việt中文日本語beside Tiếng Việtbeside 中文beside 日本語

This paper is under a licence that does not allow it to be reproduced, so what is here is its front matter and a short abstract. Read it at the publisher's page.

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 a,b,c,…,ea, b, c, \ldots, e, and arcs α(ab),β(ac),…,δ(ce)\alpha(ab), \beta(ac), \ldots, \delta(ce). An arc α(ab)\alpha(ab) joins its end vertices a,ba, b; it passes through no other vertices of GG and intersects other arcs only in vertices. A chain is a set of distinct arcs of GG which can be arranged as α(ab),β(bc),γ(cd),…,δ(gh)\alpha(ab), \beta(bc), \gamma(cd), \ldots, \delta(gh), where the vertices a,b,c,…,ha, b, c, \ldots, h are distinct, i.e., a chain does not intersect itself; a chain joins its end vertices aa and hh. We distinguish two vertices of GG: aa, the source, and bb, the sink.1^1 A chain flow from aa to bb is a couple (C;k)(C; k) composed of a chain CC joining aa and bb, and a non-negative number kk representing the flow along CC from source to sink. Each arc in GG has associated with it a positive number called its capacity. We call the graph GG, 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.

1^1The 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 aa and bb meets the collection. A disconnecting set, no proper subset of which is disconnecting, is a cut. The value of a disconnecting set DD (written v(D)v(D)) 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 NN is the minimum of v(D)v(D) taken over all disconnecting sets DD.

Proof. There are only finitely many chains joining aa and bb, say nn of them. If we associate with each one a coordinate in nn-space, then a flow can be represented by a point whose jjth coordinate is the number attached to the chain flow along the jjth chain. With this representation, the class of all flows is a closed, convex polytope in nn-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 SS be the class of all arcs which are saturated in every maximal flow.

Lemma 1. SS is a disconnecting set.

Suppose not. Then there exists a chain α1,α2,…,αm\alpha_1, \alpha_2, \ldots, \alpha_m joining aa and bb with αi∉S\alpha_i \notin S for each ii. Hence, corresponding to each αi\alpha_i, there is a maximal flow fif_i in which αi\alpha_i is unsaturated. But the average of these flows,

f=1m∑fi,f = \frac{1}{m} \sum f_i,

is maximal and αi\alpha_i is unsaturated by ff for each ii. Thus the value of ff may be increased by imposing a larger chain flow on α1,α2,…,αm\alpha_1, \alpha_2, \ldots, \alpha_m, contradicting maximality.

Notice that the orientation assigned to an arc of SS by a positive chain flow of a maximal flow is the same for all such chain flows. For suppose first that (C1,k1),(C2,k2)(C_1, k_1), (C_2, k_2) are two chain flows occurring in a maximal flow f,k1≥k2>0f, k_1 \geq k_2 > 0, where

C1=α1(aa1),α2(a1a2),…,αj(aj−1,aj),…,αr(ar−1,b)C_1 = \alpha_1(a a_1), \alpha_2(a_1 a_2), \ldots, \alpha_j(a_{j-1}, a_j), \ldots, \alpha_r(a_{r-1}, b)
C2=β1(ab1),β2(b1b2),…,βk(bk−1,bk),…,βs(bs−1,b),C_2 = \beta_1(a b_1), \beta_2(b_1 b_2), \ldots, \beta_k(b_{k-1}, b_k), \ldots, \beta_s(b_{s-1}, b),

and αj(aj−1,aj)=βk(bk−1,bk)∈S,aj−1=bk,aj=bk−1\alpha_j(a_{j-1}, a_j) = \beta_k(b_{k-1}, b_k) \in S, a_{j-1} = b_k, a_j = b_{k-1}. Then

C1′=α1,α2,…,αj−1,βk+1,…,βsC'_1 = \alpha_1, \alpha_2, \ldots, \alpha_{j-1}, \beta_{k+1}, \ldots, \beta_s
C2′=β1,β2,…,βk−1,αj+1,…,αrC'_2 = \beta_1, \beta_2, \ldots, \beta_{k-1}, \alpha_{j+1}, \ldots, \alpha_r

contain chains C1′′C_1'', C2′′C_2'' joining aa and bb, and another maximal flow can be obtained from ff as follows. Reduce the C1C_1 and C2C_2 components of ff each by k2k_2, and increase each of the C1′′C_1'' and C2′′C_2'' components by k2k_2. This unsaturates the arc αj\alpha_j, contradicting its definition as an element of SS. On the other hand, if (C1,k1),(C2,k2)(C_1, k_1), (C_2, k_2) were members of distinct maximal flows f1,f2f_1, f_2, consideration of f=12(f1+f2)f = \frac{1}{2}(f_1 + f_2) brings us back to the former case. Hence, the arcs of SS have a definite orientation assigned to them by maximal flows. We refer to that vertex of an arc α∈S\alpha \in S which occurs first in a positive chain flow of a maximal flow as the left vertex of α\alpha.

Now define a left arc of SS as follows: an arc α\alpha of SS is a left arc if and only if there is a maximal flow ff and a chain α1,α2,…,αk\alpha_1, \alpha_2, \ldots, \alpha_k (possibly null) joining aa and the left vertex of α\alpha with no αi\alpha_i saturated by ff. Let LL be the set of left arcs of SS.

Lemma 2. LL is a disconnecting set.

Given an arbitrary chain α1(a a1),α2(a1a2),…,αm(am−1 b)\alpha_1(a\ a_1), \alpha_2(a_1a_2), \ldots, \alpha_m(a_{m-1}\ b) joining aa and bb, it must intersect SS by Lemma 1. Let αt(at−1,at)\alpha_t(a_{t-1}, a_t) be the first αi∈S\alpha_i \in S. Then for each αi,i<t\alpha_i, i < t, there is a maximal flow fif_i in which αi\alpha_i is unsaturated. The average of these flows provides a maximal flow ff in which α1,α2,…,αt−1\alpha_1, \alpha_2, \ldots, \alpha_{t-1} are unsaturated. It remains to show that this chain joins aa to the left vertex of αt\alpha_t, i.e., at−1a_{t-1} is the left vertex of αt\alpha_t. Suppose not. Then the maximal flow ff contains a chain flow

[β1(ab1),β2(b1,b2),…,βr(br−1,b);k], k>0, βs=αt, bs−1=at, bs=at−1.[\beta_1(ab_1), \beta_2(b_1, b_2), \ldots, \beta_r(b_{r-1}, b); k],\ k > 0,\ \beta_s = \alpha_t,\ b_{s-1} = a_t,\ b_s = a_{t-1}.

Let the amount of unsaturation in ff of αi (i=1,…,t−1)\alpha_i \ (i = 1, \ldots, t - 1), be ki>0k_i > 0. Now alter ff as follows: decrease the flow along the chain β1,β2,…,βr\beta_1, \beta_2, \ldots, \beta_r by min⁡[k,ki]>0\min[k, k_i] > 0 and increase the flow along the chain contained in

α1,α2,…,αt−1,βs+1,…,βr\alpha_1, \alpha_2, \ldots, \alpha_{t-1}, \beta_{s+1}, \ldots, \beta_r

by this amount. The result is a maximal flow in which αt\alpha_t is unsaturated, a contradiction. Hence αt∈L\alpha_t \in L.

Lemma 3. No positive chain flow of a maximal flow can contain more than one arc of LL.

Assume the contrary, that is, there is a maximal flow f1f_1 containing a chain flow

[β1(ab1),β2(b1b2),…,βr(br−1,b);k], k>0,[\beta_1(ab_1), \beta_2(b_1b_2), \ldots, \beta_r(b_{r-1}, b); k],\ k > 0,

with arcs βi,βj∈L,βi\beta_i, \beta_j \in L, \beta_i occurring before βj\beta_j, say, in the chain. Let f2f_2 be that maximal flow for which there is an unsaturated chain

α1(aa1), α2(a1,a2),…,αs(as−1,bj−1)\alpha_1(aa_1),\ \alpha_2(a_1, a_2), \ldots, \alpha_s(a_{s-1}, b_{j-1})

from aa to the left vertex of βj\beta_j. Consider f=12(f1+f2)f = \frac{1}{2}(f_1 + f_2). This maximal flow contains the chain flow [β1,β2,…,βr;k′][\beta_1, \beta_2, \ldots, \beta_r; k'] with k′≥12kk' \geq \frac{1}{2}k, and each αi(i=1,…,s)\alpha_i (i = 1, \ldots, s) is unsaturated by ki>0k_i > 0 in ff. Again alter ff: decrease the flow along

β1,β2,…,βr\beta_1, \beta_2, \ldots, \beta_r by min [k′,ki]>0[k', k_i] > 0 and increase the flow along the chain contained in α1,α2,…,αs,βj,…,βr\alpha_1, \alpha_2, \ldots, \alpha_s, \beta_j, \ldots, \beta_r by the same amount, obtaining a maximal flow in which βi\beta_i is unsaturated, a contradiction.

Now to prove the theorem it suffices only to remark that the value of every flow is no greater than v(D)v(D) where DD is any disconnecting set; and on the other hand we see from Lemma 3 and the definition of SS that in adding the capacities of arcs of LL we have counted each chain flow of a maximal flow just once. Since by Lemma 2 LL is a disconnecting set, we have the reverse inequality. Thus LL is a minimal cut and the value of a maximal flow is v(L)v(L).

We shall refer to the value of a maximal flow through a network NN as the capacity of NN (cap⁡(N)\operatorname{cap}(N)). Then note the following corollary of the minimal cut theorem.

Corollary. Let AA be a collection of arcs of a network NN which meets each cut of NN in just one arc. If N′N' is a network obtained from NN by adding kk to the capacity of each arc of AA, then cap⁡(N′)=cap⁡(N)+k\operatorname{cap}(N') = \operatorname{cap}(N) + k.

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 aia_i to bib_i 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

  1. A computing procedure for source-sink planar networks. We say that a network NN is planar with respect to its source and sink, or briefly, NN is ab-planar, provided the graph GG of NN, together with arc abab, 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 (2;3)(2; 3). (For convenience, we suppose there is no arc in GG joining aa and bb.) The importance of abab-planar networks lies in the following theorem.

Theorem 2. If NN is ab-planar, there exists a chain joining aa and bb which meets each cut of NN precisely once.

Proof. We may assume, without loss of generality, that the arc abab is part of the boundary of the outside region, and that GG lies in a vertical strip with aa located on the left bounding line of the strip, bb on the right. Let TT be the chain joining aa and bb which is top-most in NN. TT has the desired property, as we now show. Suppose not. Then there is a cut DD, at least two arcs of which are in TT. Let these be α1\alpha_1 and α2\alpha_2, with α1\alpha_1 occurring before α2\alpha_2 in following TT from aa to bb. Since DD is a cut, there is a chain C1C_1 joining aa and bb which meets DD in α1\alpha_1 only. Similarly there is a chain C2C_2 meeting DD in α2\alpha_2 only. Let C2′C_2' be that part of C2C_2 joining aa to an end point of α2\alpha_2. It follows from the definition of TT that C1C_1 and C2′C_2' must intersect. But now, starting at aa, follow C2′C_2' to its last intersection with C1C_1, then C1C_1 to bb. We thus have a chain from aa to bb not meeting DD, contradicting the fact that DD is a cut.

Symmetrically, of course, the bottom-most chain of NN has the same property.

Notice that this theorem is not valid for networks which are not abab-planar. A simple example showing this is provided by the "gas, water, electricity" graph (Fig. 2), in which every chain joining aa and bb 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 abab, 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 (T;k)(T; k) as possible on this chain, thereby saturating one or more of its arcs. By the corollary, subtracting kk from each capacity in TT reduces the capacity of NN by kk. Delete the saturated arcs, and proceed as before. Eventually, the graph disconnects, and a maximal flow has been constructed.

  1. 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 NN joining source and sink correspond to cuts (relative to two particular vertices) of the dual3^3 of NN and vice versa. More precisely, suppose one has a network NN, planar relative to two vertices aa and bb, and wishes to find a chain joining aa and bb 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 abab, and construct the dual of the resulting graph GG. Let a′a' and b′b' be the vertices of the dual which lie in the regions of GG separated by abab. Assign each number of the original network to the corresponding arc in the dual. Then solve the capacity problem relative to a′a' and b′b' for the dual network by the procedure of §2. A minimal cut thus constructed corresponds to a minimal chain in the original network.

3^3The dual of a planar graph GG is formed by taking a vertex inside each region of GG and connecting vertices which lie in adjacent regions by arcs. See (2; 3).

References

  1. G. B. Dantzig, *Maximization of a linear function of variables subject to linear inequalities: Activity analysis of production and allocation* (Cowles Commission, 1951).
  2. H. Whitney, *Non-separable and planar graphs*, Trans. Amer. Math. Soc., *34* (1932), 339–362.
  3. ———, *Planar graphs*, Fundamenta Mathematicae, *21* (1933), 73–84. Rand Corporation, Santi Monica, California

Read off the page by a vision model reading the page images using olmOCR-2-7B-1025-FP8.