MaximumFlowLP

ClassS04CS141 | recent changes | Preferences

maximum flow

input: a directed graph G=(V,E) with edge capacities c, a source vertex s, and a destination vertex t

goal: find the maximum-size flow from s to t

A flow f is an assignment of non-negative values to the edges in E. f(u,v) denotes the amount of flow on edge e=(u,v).

To simplify the presentation, we introduce an artificial, infinite capacity edge from t to s.

The flow is feasible if it meets the following constraints:

(conservation) The flow into each vertex equals the flow out. (capacity) The flow on each edge does not exceed the capacity of the edge.

The size (or value) of the flow is the total flow from t to s.

Maximize f(t,s) subject to
(conservation) v f(w,v) - u f(u,w) = 0 for each vertex w,
(capacity) 0 ≤ f(u,v) ≤ c(u,v) for each edge (u,v).

The dual is:

Minimize u,v c(u,v) x(u,v) subject to
y(u) - y(v) + x(u,v) ≥ 0 for each edge (u,v) other than (t,s),
y(t) - y(s) + x(t,s) ≥ 1.
x(u,v) ≥ 0 for each edge (u,v).

Note that any s-t cut C (a collection of edges whose removal separates s from t) gives a feasible solution to the dual, where y(u) = 0 if u is reachable from s without using edges in C, and y(u) = 1 otherwise, and x(u,v) = 1 if (u,v) in C and 0 otherwise. The total capacity of the edges in the cut equals the cost of the corresponding solution to the dual.

In fact, there is always an s-t cut that gives an optimal dual solution in this way. Here is a proof sketch:

MAX-FLOW MIN-CUT THM: Given any feasible solution (x,y) to the dual LP, there exists an s-t cut whose capacity equals the value of the dual solution u,v c(u,v) x(u,v).
PROOF: Let (x,y) be a feasible solution to the dual.

Without loss of generality assume y(s) = 0 (otherwise subtract y(s) from each y(v) to get an equivalent dual solution).

Choose R uniformly at random in [0,1]. Let U={u ∈ V : y(u) ≤ R}. Then (U,V-U) forms an s-t cut. The probability that an edge (u,v) crosses the cut is

Pr[y(u) ≤ R < y(v)]   ≤  max(0,y(v)-y(u))   ≤  x(u,v).

Thus, the expected capacity of the cut is

(u,v)∈ E c(u,v)Pr[edge (u,v) cut]   ≤  (u,v)∈ E c(u,v) x(u,v).
Thus, there exists an s-t cut with capacity at most (u,v)∈ E c(u,v) x(u,v).

QED

It is also the case that if the capacities are integers, there is an integer-valued maximum flow f.


ClassS04CS141 | recent changes | Preferences
This page is read-only | View other revisions
Last edited February 9, 2004 6:49 pm by NealYoung (diff)
Search: