You are on page 1of 2

Discrete Optimization (WI4227) 2018–2019

Topics: Network flows


Book: Chapters 3.1, 3.2, 3.3
Literature: Most material is also covered in Chapter 4 of lecture notes
A Course in Combinatorial Optimization by Alexander Schrijver.

Network flows
We discussed the concepts of an r–s flow (under a given capacity/upper bound) in a directed graph, and
r–s cuts. The main theorem is the following.
Theorem 1 (Max-flow Min-cut theorem). The maximum value of a feasible r–s flow (w.r.t. given
capacities) equals the minimum capacity of an r–s cut.
The fact that value(x) ≤ u(δ out (R)) for each feasible r–s flow x and each r–s cut δ out (R) is easy to
see. The fact that equality holds for some flow and some cut needs a proof. We will prove it using the
algorithm for finding a maximum flow.
The algorithm of Ford-Fulkerson finds a maximum r–s flow by iteratively finding flow-augmenting
paths. Given a feasible r–s flow x, an x-augmenting path corresponds to a directed r–s path in the
auxiliary graph G(x) and hence can be found using for example Breadth First Search.
If no augmenting path exists, the current flow is optimal. The non-existence of a directed r–s path in
the auxiliary graph gives an r–s cut in G of capacity equal to the flow value. The algorithm thus produces
both an optimal flow and an optimal cut, each certifying optimality of the other.
We saw an example where the algorithm took an exponential number of steps (integer capacities) and
an example with real valued capacities where the algorithm did not terminate. In fact, the flow values did
not even converge to the optimum value!
By implementing the rule to always use a shortest r–s path in the auxiliary digraph (Edmonds-Karp,
Dinits) we fixed this problem and showed that the number of iterations is now O(nm). Since the algorithm
always teminates with a flow and a cut of equal values, this proves the Max-flow Min-cut theorem.
The key ingredient in proving that (using shortest augmenting paths) the number of iterations is
O(nm) is the following lemma.
Lemma 1. Let G be a digraph and let e = ab be an arc on a shortest (directed) r–s path in G. Let G0 be
obtained by adding the reverse arc e−1 = ba to D. Then e−1 is not on a shortest r–s path in G0 .
The lemma implies that in each iteration, the length of a shortest r–s path in the auxiliary graphs
cannot decrease and must strictly increase after O(m) iterations. Indeed, in each iteration the auxiliary
graph changes by adding some reverse arcs on a shortest r–s path and deleting one or more arcs. As at
least one arc on a shortest path is deleted, the length of a shortest r–s path must strictly increase after
O(m) steps.
It is important to note that if the capacities are integer valued, there is a maximum flow that is
integer valued (and such flow is found by the max-flow min-cut algorithm). Hence discrete transportation
problems can be solved using the same algorithm.

Infinite capacities
If can be useful to assign infinite capacity to arcs. If there is an r–s path consisting only of infinite
capacity arcs, then clearly no maximum flow exists (the value can be arbitrarily high). If, on the other
hand, no such path exists, then a flow of maximum (finite) value does exist. In that case the Max-flow
Min-cut theorem and the algorithm go through as in the finite capacity case.

Applications
Bipartite matching
Let G = (V, E) be a bipartite graph with bipartition V = A ∪ B. The theorem of Kőnig-Egerváry states
that
max{|M | : M is a matching in G} = min{|C| : C is a cover in G}.

1
See the slides from the MIM.
This theorem can be proved as a corollary to the Max-flow Min-cut theorem. Construct a digraph
by directing the edges in G from A to B and give them capacity ∞. Add a node r and arcs of capacity
1 from r to every node in A. Also add a node s and arcs of capacity 1 from every node in B to s. An
integral r–s flow of value k gives us a matching M of size k. An r–s cut δ out (R) of finite capacity gives
a cover C := (A \ R) ∪ (B ∩ R) of size |C| = c(δ out (R)). Hence a flow and cut of the same value give a
matching and cover of the same size.

Optimal closure
Let G = (V, E) be a digraph and let b : V → R be values on the nodes. A subset R ⊂ V is a closure if no
arc leaves R, that is, δ out (R) = ∅. The problem is to find a closure R maximizing b(R). It can be solved
through reduction to Min-cut.

Feasible flows
The max-flow problem can be seen as a feasibility problem: Given a network, is there a feasible r–s flow
of value k. One may consider a more general problem as follows:
Given a digraph G = (V, E), lower bounds l : E → R, upper bounds u : E → R and demands
b : V → R, we say that x : E → R is a feasible flow if l ≤ x ≤ u and fx (v) = b(v) for every node v. Here
fx (u) := x(δ in ({v})) − x(δ out ({v})) is the net inflow of node v. The goal is to find a feasible flow (if it
exists).
This general problem can be reduced to the Max-flow Min-cut problem. If l, u and b are integral and
some feasible flow exists, then there is also an integral such flow.
A notable special case is where b(v) = 0 for every node v. In that case a feasible flow is called a feasible
circulation. A theorem of Hoffman characterizes when a feasible flow exists.

Theorem 2 (Hoffman’s circulation theorem). Given a digraph G = (V, E) and l, u : E → R a feasible


circulation exists if and only if u(δ in (R)) ≥ l(δ out (R)) for every subset R ⊆ V .
Moreover, if l and u are integral, then there is an integral feasible circulation if a feasible circulation
exists.

Exercises
CH 3.2: 3.1, 3.2, 3.3, 3.7
CH 3.3: 3.17, 3.18, 3.28, 3.35, 3.37

You might also like