容量网络(capacity network):设G(V, A)是一个有向网络,在V 中指定了一个顶点,称为源点(记为Vs),以及另一个顶点,称为汇点(记为Vt);对于每一条弧<u, v>∈A,对应有一个权值c(u, v)>0,称为弧的容量(capacity)。通常把这样的有向网络G 称为容量网络。从源点到汇点的最大可行流叫最大流。
可行流(Valid Flow):可行流f(u,v)表示顶点u到顶点v的流量。
前向弧:原图中的弧。
反向弧:对前向弧取反。
增广路(augmenting path):
设f 是一个容量网络G 中的一个可行流,P 是从Vs 到Vt 的一条路径,若P 满足下列条件:
1) 在P 的所有前向弧<u, v>上,0 ≤ f(u, v) < c(u, v),即每一条弧都是非饱和弧;
2) 在P 的所有后向弧<u, v>上,0 < f(u, v) ≤ c(u, v),即每一条弧是非零流弧。
则称P 为关于可行流f 的一条增广路,简称为增广路。
增广-沿着增广路改进可行流的操作称为增广(augmenting)。
增广路P上的所有弧<u, v>上的流量按下述规则变化:(始终满足可行流的2 个条件)
a) 在前向弧<u, v>上,f(u, v) = f(u, v) +x;
b) 在后向弧<u, v>上,f(u, v) = f(u, v) -x。
x应该等于每条前向弧上的c(u, v)–f(u, v)与每条后向弧上的f(u, v)的最小值。即:
x=min{ min{c(u,v)-f(u,v)}, min{f(u,v)}}。
原文:http://blog.csdn.net/chuchus/article/details/23205283