144 Networks
144.1 Networks
A network N = (D, X, Y, c).
A network N is a digraph D (the underlying digraph of N) with two distinguished subsets of vertices, X and Y, and a non-negative integer-valued function c defined on its arc set A; the sets X and Y are assumed to be disjoint and nonempty. The vertices in X are the sources of N and those in Y are the sinks of N. They correspond to production centres and markets, respectively. … The function c is the capacity function of N and its value on an arc a the capacity of a. The capacity of an arc can be thought of as representing the maximum rate at which a commodity can be transported along it.
Intermediate vertices I = V \ (X \(\cup \) Y).
Vertices which are neither sources nor sinks are called intermediate vertices; the set of such vertices will be denoted by I.
f\(^{+}\)(S) = f(S, \(\bar{S}\)) = \(\sum \)_{u\(\in \)S} \(\sum \)_{v\(\notin \)S} f u v.
If S \(\subseteq \) V, we denote V \ S by \(\bar{S}\). … If f is a real-valued function defined on the arc set A of N, and if K \(\subseteq \) A, we denote \(\sum \)_{a \(\in \) K} f(a) by f(K). Furthermore, if K is a set of arcs of the form (S, \(\bar{S}\)), we shall write f\(^{+}\)(S) for f(S, \(\bar{S}\)) and f\(^{-}\)(S) for f(\(\bar{S}\), S).
f\(^{-}\)(S) = f(\(\bar{S}\), S) = \(\sum \)_{u\(\notin \)S} \(\sum \)_{v\(\in \)S} f u v.
…and f\(^{-}\)(S) for f(\(\bar{S}\), S).
The book names the difference: If S is a subset of vertices in a network N and f is a flow in N, then f\(^{+}\)(S) - f\(^{-}\)(S) is called the resultant flow out of S, and f\(^{-}\)(S) - f\(^{+}\)(S) the resultant flow into S, relative to f.
A flow: (11.1) capacity constraint + (11.2) conservation at intermediate vertices.
A flow in a network N is an integer-valued function f defined on A such that
0 \(\le \) f(a) \(\le \) c(a) for all a \(\in \) A (11.1) f\(^{-}\)(v) = f\(^{+}\)(v) for all v \(\in \) I (11.2)
The upper bound in condition (11.1) is called the capacity constraint; it imposes the natural restriction that the rate of flow along an arc cannot exceed the capacity of the arc. Condition (11.2), called the conservation condition, requires that, for any intermediate vertex v, the rate at which material is transported into v is equal to the rate at which it is transported out of v. Note that every network has at least one flow, since the function f defined by f(a) = 0, for all a \(\in \) A, clearly satisfies both (11.1) and (11.2); it is called the zero flow.
val f = f\(^{+}\)(X) \(-\) f\(^{-}\)(X).
Since the conservation condition requires that the resultant flow out of any intermediate vertex is zero, it is intuitively clear and not difficult to show (exercise 11.1.3) that, relative to any flow f, the resultant flow out of X is equal to the resultant flow into Y. This common quantity is called the value of f, and is denoted by val f; thus
val f = f\(^{+}\)(X) - f\(^{-}\)(X)
A flow f in N is a maximum flow if there is no flow f’ in N such that val f’ > val f.
A cut (S, \(\bar{S}\)) with x \(\in \) S, y \(\notin \) S.
Let N be a network with a single source x and a single sink y. A cut in N is a set of arcs of the form (S, \(\bar{S}\)), where x \(\in \) S and y \(\in \) \(\bar{S}\).
cap (S, \(\bar{S}\)) = \(\sum \)_{u\(\in \)S} \(\sum \)_{v\(\notin \)S} c u v.
The capacity of a cut K is the sum of the capacities of its arcs. We denote the capacity of K by cap K; thus cap K = \(\sum \)_{a \(\in \) K} c(a).
A maximum flow.
A flow f in N is a maximum flow if there is no flow f’ in N such that val f’ > val f.
A minimum cut.
A cut K in N is a minimum cut if there is no cut K’ in N such that cap K’ < cap K.
An f-incrementing path from the source.
The path P is f-unsaturated if \(\iota \)(P) > 0 (or, equivalently, if each forward arc of P is f-unsaturated and each reverse arc of P is f-positive). Put simply, an f-unsaturated path is one that is not being used to its full capacity. An f-incrementing path is an f-unsaturated path from the source x to the sink y.
The residual capacity \(\iota \)(P) > 0 of an incrementing path — a recursion over IncPath.
With each path P in N we associate a non-negative integer \(\iota \)(P) = min_{a \(\in \) A(P)} \(\iota \)(a), where \(\iota \)(a) = c(a) - f(a) if a is a forward arc of P, and \(\iota \)(a) = f(a) if a is a reverse arc. As may easily be seen, \(\iota \)(P) is the largest amount by which the flow along P can be increased (relative to f) without violating condition (11.1).
The revised flow \(\hat{f}\) (11.9) obtained by pushing \(\iota \)(P) along P.
By sending an additional flow of \(\iota \)(P) along P, one obtains a new flow \(\hat{f}\) defined by \(\hat{f}\)(a) = f(a) + \(\iota \)(P) if a is a forward arc of P, \(\hat{f}\)(a) = f(a) - \(\iota \)(P) if a is a reverse arc of P, and \(\hat{f}\)(a) = f(a) otherwise.
We … define the edge connectivity \(\kappa \)’(G) of G to be the minimum k for which G has a k-edge cut. … G is said to be k-edge-connected if \(\kappa \)’(G) \(\ge \) k.
If G has at least one pair of distinct nonadjacent vertices, the connectivity \(\kappa \)(G) of G is the minimum k for which G has a k-vertex cut; otherwise, we define \(\kappa \)(G) to be \(\nu \) - 1. … G is said to be k-connected if \(\kappa \)(G) \(\ge \) k.
A family of paths is internally disjoint when no vertex of G is an internal vertex of more than one path of the family.
Max number of arc-disjoint directed (x,y)-paths in a unit-ish Network.
(B&M lemma 11.4(a), verbatim). …the maximum number m of arc-disjoint directed (x, y)-paths in N.
Min number of arcs whose deletion destroys all directed (x,y)-paths in a Network.
(B&M lemma 11.4(b), verbatim). …the minimum number n of arcs whose deletion destroys all directed (x, y)-paths in N.
Max number of arc-disjoint directed (x,y)-paths in a digraph.
Min number of arcs destroying all directed (x,y)-paths in a digraph.
Max number of internally-disjoint directed (x,y)-paths in a digraph.
Min number of vertices destroying all directed (x,y)-paths in a digraph.
Max number of edge-disjoint (x,y)-paths in a graph.
Min number of edges destroying all (x,y)-paths in a graph.
Max number of internally-disjoint (x,y)-paths in a graph.
Min number of vertices destroying all (x,y)-paths in a graph.
Max number of vertex-disjoint S–T paths (Ex 11.4.3).
…the maximum number of vertex-disjoint paths with one end in S and one end in T.
Min number of vertices separating S from T (Ex 11.4.3).
…the minimum number of vertices whose deletion separates S from T (that is, after deletion no component contains a vertex of S and a vertex of T).
The associated digraph D(G): each edge becomes two opposite arcs (cited as ex 10.3.6).
The associated digraph D(G) of a graph G is the digraph obtained when each edge e of G is replaced by two oppositely oriented arcs with the same ends as e.
The vertex-splitting digraph D’ of Theorem 11.6, on V \(\oplus \) V: inl v = v’, inr v = v”, with internal arcs v’ \(\to \) v” and each original arc u \(\to \) v redrawn as u” \(\to \) v’.
Construct a new digraph D’ from D as follows: (i) split each vertex v \(\in \) V \ {x, y} into two new vertices v’ and v”, and join them by an arc (v’, v”); (ii) replace each arc of D with head v \(\in \) V \ {x, y} by a new arc with head v’, and each arc of D with tail v \(\in \) V \ {x, y} by a new arc with tail v”.
Feasibility for supplies \(\sigma \) and demands dem (B&M’s \(\partial \)).
Suppose that to each source x\(_{i}\) of N is assigned a non-negative integer \(\sigma \)(x\(_{i}\)), called the supply at x\(_{i}\), and to each sink y\(_{j}\) of N is assigned a non-negative integer \(\partial \)(y\(_{j}\)), called the demand at y\(_{j}\). A flow f in N is said to be feasible if
f\(^{+}\)(x\(_{i}\)) - f\(^{-}\)(x\(_{i}\)) \(\le \) \(\sigma \)(x\(_{i}\)) for all x\(_{i}\) \(\in \) X f\(^{-}\)(y\(_{j}\)) - f\(^{+}\)(y\(_{j}\)) \(\ge \) \(\partial \)(y\(_{j}\)) for all y\(_{j}\) \(\in \) Y
In other words, a flow f is feasible if the resultant flow out of each source x\(_{i}\) relative to f does not exceed the supply at x\(_{i}\), and the resultant flow into each sink y\(_{j}\) relative to f is at least as large as the demand at y\(_{j}\).
(p,q) is realisable by a simple bipartite graph: there is a (0,1)-matrix B with row sums p and column sums q.
We say that the pair (p, q) is realisable by a simple bipartite graph if there exists a simple bipartite graph G with bipartition ({x\(_{1}\), x\(_{2}\), …, x_m}, {y\(_{1}\), y\(_{2}\), …, y_n}), such that d(x\(_{i}\)) = p\(_{i}\) for 1 \(\le \) i \(\le \) m and d(y\(_{j}\)) = q\(_{j}\) for 1 \(\le \) j \(\le \) n.
G is (m,n)-orientable: it admits an orientation in which every indegree is m or n.
(B&M exercise 11.5.5). An (m+n)-regular graph G is (m,n)-orientable if it can be oriented so that each indegree is either m or n.
|[S, \(\bar{S}\)]|: the number of edges of G crossing the cut (S, \(\bar{S}\)) (Ex 11.5.5).
[S, \(\bar{S}\)] is the set of edges with one end in S and the other outside.
Let \(N\) be a network on a finite vertex set \(V\), let \(f\) assign a nonnegative integer \(f(u,v)\) to each ordered pair of vertices \(u,v\), and let \(S\subseteq V\). Summing the resultant flow out of a singleton \(\{ v\} \) over all vertices \(v\in S\) recovers the resultant flow out of \(S\); that is, the following identity holds in \(\mathbb {Z}\):
Let \(N\) be a network with disjoint nonempty source set \(X\) and sink set \(Y\), and let \(f\) be a flow in \(N\). For a vertex set \(S\), write \(f^{+}(S)\) for the total flow along the arcs directed from \(S\) to its complement and \(f^{-}(S)\) for the total flow along the arcs directed from the complement into \(S\). Then
Let \(N\) be a network with source set \(X\), a single distinguished source vertex \(x\), and a single distinguished sink vertex \(y\); let \(f\) be a flow in \(N\); and let \(S\) be a set of vertices forming a cut, so that \(x \in S\) and \(y \notin S\). Then the value \(\operatorname {val} f = f^{+}(X) - f^{-}(X)\) of the flow is equal to the resultant flow out of \(S\):
Let \(N\) be a network with disjoint nonempty source set \(X\) and sink set \(Y\), distinguished source \(x\) and sink \(y\), and integer capacity function \(c\). Let \(f\) be a flow in \(N\), and let \((S,\bar S)\) be a cut, so that \(x\in S\) and \(y\notin S\). Then the value of \(f\) is at most the capacity of the cut:
Let \(N\) be a network with capacity function \(c\), distinguished source \(x\) and sink \(y\), let \(f\) be a flow in \(N\), and let \(S\) be a vertex set defining a cut, so that \(x \in S\) and \(y \notin S\); write \(\bar S\) for the complementary vertex set. Then the value of the flow equals the capacity of the cut, \(\mathrm{val}(f) = \mathrm{cap}(S,\bar S)\), if and only if \(f(u,v) = c(u,v)\) for every arc with \(u \in S\) and \(v \in \bar S\) (each forward arc across the cut is saturated) and \(f(u,v) = 0\) for every arc with \(u \in \bar S\) and \(v \in S\) (each backward arc across the cut carries no flow).
Let \(N\) be a network with single source \(x\) and single sink \(y\), let \(f\) be a flow in \(N\), and let \((S, \bar S)\) be a cut of \(N\), so that \(x \in S\) and \(y \notin S\). If the value of the flow equals the capacity of the cut, \(\mathrm{val}(f) = \mathrm{cap}(S)\), then \(f\) is a maximum flow in \(N\) and \((S,\bar S)\) is a minimum cut in \(N\).
Every network \(N\) on a finite vertex set admits a maximum flow: there exists a flow \(f\) in \(N\) such that \(\mathrm{val}(f') \le \mathrm{val}(f)\) for every flow \(f'\) in \(N\).
Let \(N\) be a network with distinguished single source \(x\) and single sink \(y\). Then \(N\) possesses a minimum cut: there exists a set \(S\) of vertices with \(x \in S\) and \(y \notin S\) whose capacity \(\sum _{u \in S}\sum _{v \notin S} c(u,v)\) is least among all sets separating \(x\) from \(y\) in this way.
Let \(N\) be a network with distinguished single source \(x\) and single sink \(y\), and suppose there is no directed path from \(x\) to \(y\) every arc of which has positive capacity. Then every maximum flow \(f\) in \(N\) has value \(0\), and every minimum cut \(S\) (a vertex set with \(x \in S\) and \(y \notin S\)) has capacity \(0\).
Let \(N\) be a network with a single source \(x\) and a single sink \(y\), and recall that a cut is determined by a vertex set \(S\) with \(x \in S\) and \(y \notin S\), its capacity being \(\sum _{u \in S}\sum _{v \notin S} c(u,v)\); a cut is a minimum cut if no cut has strictly smaller capacity. If the cuts determined by vertex sets \(S\) and \(T\) are both minimum cuts of \(N\), then the cuts determined by \(S \cup T\) and by \(S \cap T\) are also minimum cuts of \(N\).
Let \(N\) be a network — a finite digraph carrying a nonnegative integer capacity on each arc, with disjoint nonempty source and sink sets and a distinguished source \(x\) and sink \(y\) — and let \(f\) be a flow in \(N\). Then \(f\) is a maximum flow if and only if there is no \(f\)-incrementing path in \(N\) ending at the sink \(y\).
Let \(N\) be a network with a single source \(x\) and a single sink \(y\), and let \(f\) be a flow in \(N\). Suppose \(N\) contains no \(f\)-incrementing path from \(x\) to \(y\) — that is, no path from the source to the sink each of whose arcs is either a forward arc that is not yet saturated (\(f \lt c\)) or a backward arc carrying positive flow (\(f \gt 0\)). Then there is a cut \((S,\bar S)\), a set of vertices with \(x \in S\) and \(y \notin S\), whose capacity equals the value of \(f\):
Let \(N\) be a network on a finite vertex set, with capacity function \(c\), disjoint nonempty source and sink sets \(X\) and \(Y\), and a distinguished source \(x\) and sink \(y\) (Ford and Fulkerson, 1956). Then \(N\) admits a maximum flow \(f\) together with a minimum cut \((S,\bar S)\) — that is, \(x \in S\) and \(y \notin S\) — whose value and capacity coincide:
In particular, the value of a maximum flow in \(N\) equals the capacity of a minimum cut.
Let \(N\) be a network with distinguished source \(x\) and sink \(y\) whose capacity function takes only the values \(0\) and \(1\) (that is, every capacity is at most \(1\)), and let \(f\) be a maximum flow in \(N\). Then the value of \(f\) equals the maximum number of arc-disjoint directed \((x,y)\)-paths in \(N\).
Let \(N\) be a network with capacity function \(c\), a single source \(x\), and a single sink \(y\), and suppose every arc has capacity at most \(1\), that is \(c(u,v) \le 1\) for all vertices \(u,v\). For a set \(S\) of vertices with \(x \in S\) and \(y \notin S\), write \(\mathrm{cap}(S) = \sum _{u \in S}\sum _{v \notin S} c(u,v)\) for its cut capacity, and suppose \(S\) is a minimum cut, meaning \(\mathrm{cap}(S) \le \mathrm{cap}(S')\) for every set \(S'\) with \(x \in S'\) and \(y \notin S'\). Then \(\mathrm{cap}(S)\) equals the minimum number of arcs whose deletion destroys every directed \((x,y)\)-path in \(N\).
Let \(D\) be a finite digraph, and let \(x\) and \(y\) be two of its vertices. Then the maximum number of pairwise arc-disjoint directed paths from \(x\) to \(y\) equals the minimum number of arcs whose deletion destroys every directed path from \(x\) to \(y\).
Let \(G\) be a finite simple graph and let \(x\) and \(y\) be two of its vertices. Then the maximum number of pairwise edge-disjoint \((x,y)\)-paths in \(G\) equals the minimum number of edges whose deletion destroys every \((x,y)\)-path in \(G\).
Let \(G\) be a finite simple graph and let \(k\) be a natural number. Then the edge connectivity satisfies \(k \le \kappa '(G)\) if and only if, for every pair of distinct vertices \(u\) and \(v\), the maximum number of pairwise edge-disjoint paths joining \(u\) and \(v\) is at least \(k\).
Let \(D\) be a finite digraph and let \(x\) and \(y\) be two vertices of \(D\) with no arc from \(x\) to \(y\). Then the maximum number of pairwise internally-disjoint directed paths from \(x\) to \(y\) equals the minimum number of vertices (other than \(x\) and \(y\)) whose deletion destroys every directed path from \(x\) to \(y\).
Let \(G\) be a finite simple graph, and let \(x\) and \(y\) be two distinct, nonadjacent vertices of \(G\). Then the maximum number of internally disjoint \((x,y)\)-paths in \(G\) equals the minimum size of a set of vertices (necessarily distinct from \(x\) and \(y\)) whose deletion destroys every \((x,y)\)-path.
Let \(G\) be a simple graph on a finite vertex set \(V\), and let \(k\) be a natural number with \(|V| \ge k+1\). Then \(\kappa (G) \ge k\) if and only if every pair of distinct vertices \(u, v\) of \(G\) is joined by at least \(k\) internally disjoint \(u\)–\(v\) paths.
Let \(G\) be a finite simple graph, and let \(k \ge 2\) be an integer such that \(G\) is \(k\)-connected, that is, \(k \le \kappa (G)\). Then for any set \(T\) of exactly \(k\) vertices of \(G\), there is a cycle in \(G\) whose vertices include every vertex of \(T\).
(Gale, 1957.) Let \(N\) be a network with source set \(X\), sink set \(Y\), and capacity function \(c\), and suppose each vertex \(x\) is assigned a non-negative integer supply \(\sigma (x)\) and each vertex \(y\) a non-negative integer demand \(\partial (y)\). Then \(N\) admits a feasible flow for the supplies \(\sigma \) and demands \(\partial \) if and only if, for every vertex set \(S\),
where \(\bar S\) denotes the complement of \(S\) and \(\mathrm{cap}(S,\bar S)\) is the capacity of the cut from \(S\) to \(\bar S\).
Let \(p=(p_1,\dots ,p_m)\) and \(q=(q_1,\dots ,q_n)\) be sequences of non-negative integers with equal total, \(\sum _{i=1}^{m} p_i = \sum _{j=1}^{n} q_j\), and suppose \(q\) is non-increasing, \(q_1 \ge q_2 \ge \cdots \ge q_n\). Then \((p,q)\) is realisable by a simple bipartite graph if and only if
Let \(p_0, p_1, \ldots , p_m\) and \(q_0, q_1, \ldots , q_{n-1}\) be nonnegative integers, regarded as prescribed row degrees and column degrees. Then the pair \((p, q)\) is realisable by a simple bipartite graph if and only if the reduced pair \((p', q')\) is realisable, where \(p' = (p_1, \ldots , p_m)\) is obtained by deleting the first row degree \(p_0\), and the reduced column degrees are
that is, one is subtracted (never below zero) from each of the first \(p_0\) column degrees and the remaining column degrees are left unchanged.
Let \(G\) be a finite simple graph that is \((m+n)\)-regular. Then \(G\) is \((m,n)\)-orientable — it admits an orientation in which every vertex has indegree \(m\) or \(n\) — if and only if the vertex set can be split into two disjoint sets \(V_1\) and \(V_2\) whose union is the whole vertex set, such that for every set \(S\) of vertices
where \(\left\lvert [S,\bar S]\right\rvert \) is the number of edges of \(G\) with one end in \(S\) and the other outside \(S\).
Let \(G\) be a finite \((m+n)\)-regular simple graph, and suppose \(n \lt m\). If \(G\) is \((m,n)\)-orientable — that is, its edges admit an orientation in which every vertex has indegree equal to \(m\) or to \(n\) — then \(G\) is also \((m-1,\, n+1)\)-orientable.