100 likes | 240 Views
Feasible Flow. Network : A digraph with a nonnegative capacity c(e) on each edge e and a distinguished source node s and sink node t. Flow: A flow f assign a value f(e) to each edge e. f + (v) denotes the total flow on edges leaving v and f - (v) denotes the total flow on edges entering v.
E N D
Feasible Flow • Network : A digraph with a nonnegative capacity c(e) on each edge e and a distinguished source node s and sink node t. • Flow: A flow f assign a value f(e) to each edge e. f+(v) denotes the total flow on edges leaving v and f-(v) denotes the total flow on edges entering v. • Feasible Flow: A flow is feasible if it satisfies the capacity constraints 0<=f(e)<=c(e) for each edge and the conservation contraints f+(v)= f-(v) for each node v{s,t}. • Maximum flow: The value vaf(f) of a flow f is the net flow f-(t)-f+(t) into the sink. A maximum flow is a feasible flow of maximum value.
f-augmenting path • f-augmenting path : When f is a feasible flow in a network N, an f-augmenting path is a source-to-sink path P in the underlying graph G such that for each eE(P), (a) if P follows e in the forward direction, then f(e)<c(e). (b) if P follows e in the backward direction, then f(e)>0. • Tolerance of P: Let (e)=c(e)-f(e) when e is forward on P, and let (e)=f(e) when e is backward on P. The tolerance of P is mineE(P)(e).
Lemma 4.3.5 • If P is an f-augmenting path with tolerance z, then changing +z on edges followed forward by P and by –z on edges followed backward by P produces a feasible flow f’ with val(f’)=val(f)+z.
Source/Sink Cut [S,T] • Source/Sink Cut [S,T]: In a network, a source/sink cut[S,T] consists of the edges with tail in a source set S and head in a sink set T, where S and T partition the set of nodes, with sS and tT. • cap(S,T): The capacity of the cut[S,T], written cap(S,T), is the total of the capacities on the edges of [S,T].
Lemma 4.3.7 • If f is a feasible flow and [S,T] is a source/sink cut, then the net flow out of S and net flow into T equal val(f). Proof. 1. f+(S)-f-(S)=vS[f+(v)-f-(v)]= f+(s)-f-(s)=val(f). 2. f+(T)-f-(T)=vT[f+(v)-f-(v)]= f+(t)-f-(t)=-val(f).
Corollary 4.3.8 • If f is feasible flow and [S,T] is a source/sink cut, then val(f)<=cap(S,T). Proof. 1. f+(S)-f-(S)<=cap(S,T) due to the capacity constraints. val(f)<=cap(S,T) by Lemma 4.3.7.
Theorem 4.3.11 • Ford-Fulkerson Labeling Algorithm finds a maximum flow and a minimum source/sink cut. Proof. 1. We need to prove val(f)=cap(S,T) when the algorithm terminates. 2. When the algorithm terminates: 2-1. sS and tR=S. 2-2. No edge from S to T has excess capability, and no edge from T to S has nonzero flow in f. val(f)=f+(S)-f-(S)=cap(S,T).