当前位置:文档之家› 运筹学课件第四节最大流问题

运筹学课件第四节最大流问题


{(v4 ,v3)}.
v1
2
v2
4 3

1 v3 2
2
vs
2
3
4 3
4 vt
v4
推论: 网络中的一个可行流f*是最大流的充分必要条件 是,不存在关于f*的增广链。
在一个网络G中,最大流的流量等于分离vs 和vt 的最小割 集的割量。
定理11提供了一个寻求网络系统最大流的方法。如果网络G 中有一个可行流 f,只要判断网络是否存在关于可行流 f 的增广链 。如果没有增广链,那么f一定是最大流。如有 增广链,那么可以按照定理中必要性,不断改进和增大可 行流f 的流量,最终可以得到网络G中的一个最大流。
v6
(+ vs,1) 解:用标号法。
1.标号过程。
(1)首先给vs标号( ∆ ,+∞) (2)检查vs邻接点v1,v2,v3: v2点满足( vs,v2) ∈E,且fs2=2<cs2=4, δv2=min[2,+ ∞]=2,给v2以 标号(+ vs,2); v3点满足( vs,v3) ∈E,且fs3=2<cs3=3, δv3=min[1,+ ∞]=1,给v3以 标号(+vs,1);
v1 (- v5,2)(5,24) )
v4 (+ v1,2)
(5,5)
(+ vs,2) (3,31)) (+ v2,2)
vs
(4,24)) v2 (3,02)) v5 (3,3)
(∆ ,+∞)
(3,2)
(2,2)
(4,24) )
vt
(5,4) (+ v4,2)
v3
(2,2)
v6
第一条可增广链:(v+s-vvs,21,)v5,v1,v4,vt,调整量为:2
流量:f=11
无可增广链
最大流=14
割集={(vs,v1),(vs,v2),(v3,v6)}
• 求最大流的标号算法可以解决多发点多 收点网络的最大流问题
X1
+∞
X2
X3
vs

xm
Y1 Y2
+∞
Y3
vt

yn
• 小结 • 1、最大流问题的概念、最大流-最小割
(2)平衡条件:
对于发点vs,收点vt有 对于中间点,有
fsi fjt W
i
j
fij fji 0
(vi,vj)E
(vj ,vi)E
其中发点的总流量(或收点的总流量) w 叫做这个可行流的总流量。
任意一个网络上的可行流总是存在的。例如零 流w(f)=0,就是满足以上条件的可行流。
2.调整过程


fij


fi j t , (vi , vj ) fi j t , (vi , vj )

fi
j
,
(vi
,
vj
)不在可增广链
3.再去掉所有的标号,对新的可行流f ’={f ’ij},重新
进行标号过程,直到找到网络G的最大流为止。
例 求图的网络最大流,弧旁的权 数表示(cij , fij)。
我们把这样的图G叫做一个容量网络,记做G=(V,
E,C)。
网络G上的流,是指定义在边(vi ,vj)上有流量fij, 称集合f={fij} 为网络G上的一个流, f为可行流。
网络上的一个流f 叫做可行流,如果f 满足以下条件:
(1)容量条件:对于每一个弧(vi ,vj)∈E,有 0 fij cij .
2.调整过程
从vt开始,按照标号点的第一个标号,用反向追踪 的方法,找出一条从vs到vt的增广链μ ,如图G中虚 线所示。不难看出,μ+={(vs ,v2), (v1 ,v4),(v4 ,vt)}, μ– ={(v5 ,v1) },取δ = δvt = 2 ,在μ 上调整f ,得到
f*=
f4t + δvt =2+2=4 f14 + δvt =2+2=4 f25 + δvt =0+2=2 fs2 + δvt =2+2=4 f15 –δvt =3 – 2=1 其它的不变
为W, (S, S )是分离vs vt的任一个割集,则有W C(S,S ) .
定理11:最大流-最小割定理:任一个网络G=(V,E,C),
从vs到vt的最大流的流量等于分离vs vt的最小割的容量。
定义22:设μ是网络G中连接发点νs和收点vt的一条链。定义链 的方向是从νs到 vt ,于是链μ上的边被分为两类:一类是边的 方向与链的方向相同,叫做前向边,前向边的集合记做μ+。二 类是边的方向与链的方向相反,叫做后向边,后向边的集合记 做μ–。
(- v5,2)
v1
(5,2)
v4
(5,5) (+ vs,2) (3,3) (+ v2,2) (4,2)
vs
(∆ ,+∞)
(4,2) v2 (3,2)
v5 (3,3)
vt
(2,2)
(5,4)
v3 (2,2)
v6
(+ vs,1)
(4)检查v5邻接点v1,vt: v1点满足( v1,v5) ∈E,且f15=3>c15=0, δv1=min[3,2]=2,给v1以 标号(- v5,2);
v1
(5,5)
vs
(4,2) v2
(3,2)
v3
(5,2)
v4
(3,3)
(4,2)
v5 (3,3) (2,2)
(2,2)
v6
vt
(5,4)
v1
(5,2)
v4
(5,5) (+ vs,2) (3,3)
(4,2)
vs
(∆ ,+∞)
(4,2) v2 (3,2)
v5 (3,3)
vt
(2,2)
(5,4)
v3 (2,2)
(5)
(2)
vs
(1)
(1)
v3
fij
(6)
(3) vt
(3)
(2)
v2
(3)
v4
网络上的一个流(运输方案),每一个弧上的流量fij就是运输
量。例如fs1=5 , fs2=3 , f13=2 等等。
定义21 设一个网络G=(V,E,C),vs、vt为发和收点,边集
E' 为 E 的 子 集 , 将 G 分 成 2 个 子 图 G1,G2; 其 顶 点 集 合 分 别
1. 标号过程
在标号过程中,网络中的每个标号点的标号包 含两部分:第一个标号表示这个标号是从那一点得 到的,以便找出增广链;第二个标号是为了用来确 定增广链上的调整量δ 。
标号过程开始,先给vs 标号( ∆ ,+∞),一般
地,取一个标号顶点vi,对vi所有未标号的邻接点vj
按照下面条件进行处理:
(1)如果在弧(vi ,vj)上,fij<cij,那么给vj 标号 (+vi , δ(vj) ).其中 δ(vj) = min[cij – fij , δ(vi) ]。
货物从vs运送到vt.要求指定一个运输方案,使得从vs到vt
的货运量最大,这个问题就是寻求网络系统的最大流问
题。
定义20 设一个赋权有向图G=(V,E),对于G中的
每一个边(弧)(vi ,vj)∈E,都有一个非负数cij叫 做边的容量。在V 中一个入次为零的点称为发点vs, 一个出次为零的点称为收点vt ,其它的点叫做中间点。
(2)如果在弧(vj ,vi)上,fji > 0,那么给vj标号 (-vi , δ(vj) ).其中δ (vj)=min[fji , δ(vi)] 。
重复以上步骤,如果收点Vt被标号或不再有顶点 可标号为止,则标号法结束。这时的可行流就是最 大流。
但是,如果vt 被标上号,表示得到一条增广 链μ,转入下一步调整过程。
三、标号法
从网络中的一个可行流f 出发(如果G中没有 f, 可以令f 是零流),运用标号法,经过标号过程和
调整过程,可以得到网络中的一个最大流。
如果vt有了标号,表示存在一条关于f 的增广链。 如果标号过程无法进行下去,并且vt未被标号,则 表示不存在关于f 的增广链。这样,就得到了网络
中的一个最大流和最小割集。
第四节 最大流问题
理解最大流问题的概念、最大流-最小 割定理。 掌握求最大流问题的标号算法。
引言
在许多实际的网络系统中都存在着流量 和最大流问题。例如铁路运输系统中的车辆 流,城市给排水系统的水流问题等等。而网 络系统流最大流问题是图与网络流理论中十 分重要的最优化问题,它对于解决生产实际 问题起着十分重要的作用。
Vt得到标号,说明已经得到一条可增广链,标号过程结束。
开始调整
(- v5,2)
v1
(5,5) (+ vs,2)
vs
(∆ ,+∞)
(4,2) v2 (3,2)
v3
(+ vs,1)
(+ v1,2)
(5,2)
v4
(3,3) (+ v2,2)
(4,2)
v5 (3,3) (2,2)
(2,2)
v6
vt
(5,4) (+ v4,2)
为: S ,S ,S S V ,S S ,发点vs∈S,收点vt∈ /S ,满足
1.G=(V,E- E')不连通; 2. E' '为 E' 的真子集,而G=(V,E- E')' 连通; 那么 E' 为G的割集,记为 E' =(S,S )。
割集 (S, S )所有始点在S,终点在S 的容量之和,称为(S, S )的 割集容量,记为C(S, S ) 。
相关主题