TCSLib

144 Networks

144.1 Networks

Definition 144.1 A network \(N = (D, X, Y, c)\)
✓
#

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.

Definition 144.2 Intermediate vertices \(I = V \ (X \cup Y)\)
✓
#

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.

Definition 144.3 \(f^{+}(S) = f(S, \bar{S}) = \sum _{u\in S} \sum _{v\notin S} f u v\)
✓
#

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).

Definition 144.4 \(f^{-}(S) = f(\bar{S}, S) = \sum _{u\notin S} \sum _{v\in S} f u v\)
✓
#

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.

Definition 144.5 A flow: (11.1) capacity constraint + (11.2) conservation at intermediate vertices
✓

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.

Definition 144.6 val f = f\(^{+}\)(X) \(-\) f\(^{-}\)(X)
✓

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.

Definition 144.7 A cut \((S, \bar{S})\) with \(x \in S\), \(y \notin S\)
✓
#

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}\).

Definition 144.8 cap (S, \(\bar{S}\)) = \(\sum \)_{u\(\in \)S} \(\sum \)_{v\(\notin \)S} c u v
✓
#

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).

Definition 144.9 A maximum flow
✓

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.

Definition 144.10 A minimum cut
✓

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.

Definition 144.11 An \(f\)-incrementing path from the source
✓
#

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.

Definition 144.12 The residual capacity \(\iota (P) \gt 0\) of an incrementing path — a recursion over IncPath

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).

Definition 144.13 The revised flow \(\hat{f}\) (11.9) obtained by pushing \(\iota (P)\) along \(P\)

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.

Definition 144.14 Edge connectivity \(\kappa '(G)\)
✓
#

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.

Definition 144.15 Vertex connectivity \(\kappa (G)\)
✓
#

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.

Definition 144.16 Internally disjoint family of paths
✓
#

A family of paths is internally disjoint when no vertex of G is an internal vertex of more than one path of the family.

Definition 144.17 Max number of arc-disjoint directed \((x,y)\)-paths in a unit-ish Network
#

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.

Definition 144.18 Max number of arc-disjoint directed \((x,y)\)-paths in a unit-ish Network

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.

Definition 144.19 Max number of arc-disjoint directed \((x,y)\)-paths in a digraph
#

Max number of arc-disjoint directed (x,y)-paths in a digraph.

Definition 144.20 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.

Definition 144.21 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.

Definition 144.22 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.

Definition 144.23 Max number of edge-disjoint \((x,y)\)-paths in a graph
#

Max number of edge-disjoint (x,y)-paths in a graph.

Definition 144.24 Max number of edge-disjoint \((x,y)\)-paths in a graph
#

Min number of edges destroying all (x,y)-paths in a graph.

Definition 144.25 Min number of edges destroying all \((x,y)\)-paths in a graph
#

Max number of internally-disjoint (x,y)-paths in a graph.

Definition 144.26 Max number of internally-disjoint \((x,y)\)-paths in a graph
#

Min number of vertices destroying all (x,y)-paths in a graph.

Definition 144.27 Max number of vertex-disjoint \(S\)–\(T\) paths (Ex 11.4.3)
#

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.

Definition 144.28 Max number of vertex-disjoint \(S\)–\(T\) paths (Ex 11.4.3)
#

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).

Definition 144.29 The associated digraph \(D(G)\): each edge becomes two opposite arcs (cited as ex 10.3.6)
#

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.

Definition 144.30 The vertex-splitting digraph \(D'\) of Theorem 11.6, on \(V \oplus V\): inl v = v’, inr v =…
✓
#

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”.

Definition 144.31 IsFeasible
✓

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}\).

Definition 144.32 \((p,q)\) is realisable by a simple bipartite graph: there is a \((0,1)\)-matrix \(B\) with row sums \(p\) and…
✓
#

(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.

Definition 144.33 \(G\) is \((m,n)\)-orientable: it admits an orientation in which every indegree is \(m\) or \(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.

Definition 144.34 \(|(S, \bar{S})|\): the number of edges of \(G\) crossing the cut \((S, \bar{S})\) (Ex 11.5.5)
✓
#

|[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.

Theorem 144.35 Resultant flow out of a set as a sum over singleton vertices
✓

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}\):

\[ \sum _{v\in S}\bigl(f^{+}(\{ v\} )-f^{-}(\{ v\} )\bigr)=f^{+}(S)-f^{-}(S). \]
Theorem 144.36 Resultant flow out of the sources equals resultant flow into the sinks
✓

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

\[ f^{+}(X) - f^{-}(X) \; =\; f^{-}(Y) - f^{+}(Y). \]
Theorem 144.37 Value of a flow across an arbitrary cut
✓

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\):

\[ \operatorname {val} f = f^{+}(S) - f^{-}(S). \]
Theorem 144.38 Weak duality: flow value is bounded by cut capacity
✓

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:

\[ \mathrm{val}(f)\; \le \; \operatorname {cap}(S,\bar S)\; =\; \sum _{u\in S}\sum _{v\notin S} c(u,v). \]
Theorem 144.39 Equality in the flow-value/cut-capacity bound
✓

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).

Theorem 144.40 Equal value and capacity certify a maximum flow and a minimum cut
✓

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\).

Theorem 144.41 Existence of a maximum flow in every network
✓

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\).

Theorem 144.42 Existence of a minimum cut
✓

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.

Theorem 144.43 Zero maximum flow and minimum cut without a positive-capacity path
✓

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\).

Theorem 144.44 Minimum cuts are closed under union and intersection
✓

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\).

Theorem 144.45 Max-flow criterion via incrementing paths

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\).

Theorem 144.46 A cut matching the flow when no incrementing path exists
✓

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\):

\[ \mathrm{val}(f) = \mathrm{cap}(S,\bar S). \]
Theorem 144.47 Max-flow min-cut theorem

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:

\[ \operatorname {val} f = \operatorname {cap}(S,\bar S). \]

In particular, the value of a maximum flow in \(N\) equals the capacity of a minimum cut.

Theorem 144.48 Max-flow value equals arc-disjoint path number in a unit-capacity network

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\).

Theorem 144.49 Min cut equals min arcs destroying all paths in a unit-capacity network

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\).

Theorem 144.50 Menger’s theorem: arc version for digraphs

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\).

Theorem 144.51 Menger’s theorem, edge version for graphs

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\).

Theorem 144.52 Edge connectivity and edge-disjoint paths

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\).

Theorem 144.53 Menger’s theorem, vertex form for digraphs

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\).

Theorem 144.54 Menger’s theorem, vertex version

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.

Theorem 144.55 Menger’s criterion for \(k\)-connectivity

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.

Theorem 144.56 Dirac’s theorem on k vertices lying on a common cycle
#

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\).

Theorem 144.57 Gale’s feasible flow theorem
✓

(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\),

\[ \sum _{v \in Y \cap \bar S} \partial (v) \; -\; \sum _{v \in X \cap \bar S} \sigma (v) \; \le \; \mathrm{cap}(S, \bar 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\).

Theorem 144.58 Gale–Ryser condition for bipartite degree sequences
✓
#

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

\[ \sum _{j=1}^{k} q_j \; \le \; \sum _{i=1}^{m} \min (p_i,\, k) \qquad \text{for every } k = 1, 2, \dots , n. \]
Theorem 144.59 One-row reduction for bipartite degree realisability
✓
#

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

\[ q'_j = \max (q_j - 1,\, 0) \quad \text{for every column } j \text{ with } j \lt p_0, \qquad q'_j = q_j \quad \text{otherwise;} \]

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.

Theorem 144.60 Cut characterization of \((m,n)\)-orientability of regular graphs
✓

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

\[ \left\lvert (m-n)\bigl(\left\lvert V_1\cap S\right\rvert -\left\lvert V_2\cap S\right\rvert \bigr)\right\rvert \; \le \; \left\lvert [S,\bar S]\right\rvert , \]

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\).

Theorem 144.61 Shifting the indegrees of an orientation
✓
#

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.