最大网络流

来源:互联网 发布:大数据应用技术方向 编辑:程序博客网 时间:2024/05/17 07:30

1 基本概念和术语

1网络

G是一个简单有向图,G=(V,E)V={12n}。在V中指定一个顶点s,称为和另一个顶点t,称为。有向图G的每一条边(v,w)E,对应有一个值cap(v,w)≥0,称为边的容量。这样的有向图G称作一个网络

2网络流

网络上的是定义在网络的边集合E上的一个非负函数flow={flow(v,w)},并称flow(v,w)为边(v,w)上的流量

3可行流

满足下述条件的流flow称为可行流
容量约束对每一条边(v,w)E0≤flow(v,w)≤cap(v,w)
平衡约束
对于中间顶点:流出量
=流入量。
即对每个
vV(v≠s,t)有:顶点v的流出量-顶点v的流入量=0,即

对于源ss的流出量-s的流入量=源的净输出量f,即

对于汇tt的流入量-t的流出量的=汇的净输入量f,即

式中f 称为这个可行流的流量,即源的净输出量(或汇的净输入量)。可行流总是存在的。
例如,让所有边的流量
flow(v,w)=0,就得到一个其流量f=0的可行流(称为0)

4边流

对于网络G的一个给定的可行流flow,将网络中满足flow(v,w)=cap(v,w)的边称为饱和边flow(v,w)<cap(v,w)的边称为非饱和边flow(v,w)=0的边称为零流边flow(v,w)>0的边称为非零流边。当边(v,w)既不是一条零流边也不是一条饱和边时,称为弱流边

5最大流

最大流问题即求网络G的一个可行流flow,使其流量f达到最大。即flow满足:0≤flow(v,w)≤cap(v,w)(v,w)E;且

 

6流的费用

实际应用中,与网络流有关的问题,不仅涉及流量,而且还有费用的因素。此时网络的每一条边(v,w)除了给定容量cap(v,w)外,还定义了一个单位流量费用cost(v,w)。对于网络中一个给定的流flow,其费用定义为:

 

7残流网络

对于给定的一个流网络G及其上的一个流flow,网络G关于流flow的残流网络G*G有相同的顶点集V,而网络G中的每一条边对应于G*中的1条边或2条边。
(v,w)G的一条边。
flow(v,w)>0时,(w,v)是G*中的一条边,该边的容量为cap*(w,v)=flow(v,w)
flow(v,w)<cap(v,w)时,(v,w)G*中的一条边,该边的容量为cap*(v,w)=cap(v,w)-flow(v,w)
按照残流网络的定义,当原网络
G中的边(v,w)是一条零流边时,残流网络G*中有唯一的一条边(v,w)与之对应,且该边的容量为cap(v,w)
当原网络
G中的边(v,w)是一条饱和边时,残流网络G*中有唯一的一条边(w,v)与之对应,且该边的容量为cap(v,w)
当原网络
G中的边(v,w)是一条弱流边时,残流网络G*中有2条边(v,w)(w,v)与之对应,这2条边的容量分别为cap(v,w) -flow(v,w)flow(v,w)
残流网络是设计与网络流有关算法的重要工具。

增广路算法

 1 算法基本思想
设P是网络G中联结源s和汇t的一条路。定义路的方向是从s到t。将路P上的边分成2类:一类边的方向与路的方向一致,称为向前边。向前边的全体记为P+。另一类边的方向与路的方向相反,称为向后边。向后边的全体记为P-。
设flow是一个可行流,P是从s到t的一条路,若P满足下列条件:
(1)在P的所有向前边(v,w)上,flow(v,w)<cap(v,w),即P+中的每一条边都是非饱和边;
(2)在P的所有向后边(v,w)上,flow(v,w)>0,即P-中的每一条边都是非零流边。
则称P为关于可行流flow的一条可增广路
可增广路是残流网络中一条容量大于0的路。
将具有上述特征的路P称为可增广路是因为可以通过修正路P上所有边流量flow(v,w)将当前可行流改进成一个流值更大的可行流。
增流的具体做法是:
(1)不属于可增广路P的边(v,w)上的流量保持不变;
(2)可增广路P上的所有边(v,w)上的流量按下述规则变化:
· 在向前边(v,w)上,flow(v,w)+d;
· 在向后边(v,w)上,flow(v,w)-d。
按下面的公式修改当前的流。




其中d称为可增广量,可按下述原则确定:d取得尽量大,又要使变化后的流仍为可行流。按照这个原则,d既不能超过每条向前边(v,w)的cap(v,w)-flow(v,w),也不能超过每条向后边(v,w)的flow(v,w)。因此d应该等于向前边上的cap(v,w)-flow(v,w)与向后边上的flow(v,w)的最小值。也就是残流网络中P的最大容量。
增广路定理:设flow是网络G的一个可行流,如果不存在从s到t关于flow的可增广路P,则flow是G的一个最大流。

 

 

 

 

 

 

动画演示一:

 

动画演示二:

 

 

原创粉丝点击