运筹学课件第四节最大流问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
v1
2
4 3
1 v3 2
2
vs
2
3
4 3
v4
v2 4 vt
边集{(vs,v1),(vs,v3),(vs,v4)} 边集{(vs,v1),(v1,v3),(v2,v3),(v3,vt)} 为图的割集,割集容量分别为11,9
二、最大流-最小割定理
定理10:设f为网络G=(V,E,C)的任一个可行流,流量
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
v1
5
v3
Cij
一、最大10流有关概念3
11
vs 连通网络4G(V, E) 有 m 个节3点, n条弧, v弧t eij 上
的流量上界为
量。 8
cij,
求5从起始节点 vs 到终点 vt 的最大流 17
v2
6
v4
图是联结某个起始地vs和目的地vt的交通运输网,每
一条弧vi 旁边的权cij表示这段运输线的最大通过能力,
在μ +上 在μ +上 在μ +上 在μ +上 在μ -上
v1 (5,4)
v4
(5,5)
(3,1)
(4,4)
vs
( ∆ ,+∞)
(4,4) v2 (3,2) v5 (3,3)
vt
(3,2)
(2,2)
(5,4)
v3 (2,2) v6
( +vs ,1)
重新开始标号,寻找可增广链,当标到V3,与VS,V3相连的 V1,V2,V6不满足标号条件,标号无法进行,vt得不到标号。 流量:w=fs1+ fs2+ fs3= f4t+ f5t+ f6t=11 得到一个最小割,标点号集合:S={vs,v3} 非标点号集合:/S={v1,v2, v4,v5 , v6,vt} 此时割集(s,/s)={(vs,v1),(vs,v2),(v3,v6)}, 割集容量C(s,/s)=Cs1+ Cs2+ C36=5+4+2=11
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
(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)
网络系统中最大流问题就是在给定的网络上寻
求一个可行流f,其流量w(f)达到最大值。
设流f ={fij}是网络G上的一个可行流。我们把G 中fij=cij的弧叫做饱和弧,fij<cij的弧叫做不饱和弧, fij>0的弧为非零流弧,fij=0的弧叫做零流弧 .
最大流问题实际是个线性规划问题。
v1
(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)
(3)检查v2邻接点v5,v6: v5点满足( v2,v5) ∈E,且f25=0<c25=3, δv5=min[3,2]=2,给v5以标 号(+ v2,2);
货物从vs运送到vt.要求指定一个运输方案,使得从vs到vt
的货运量最大,这个问题就是寻求网络系统的最大流问
题。
定义20 设一个赋权有向图G=(V,E),对于G中的
每一个边(弧)(vi ,vj)∈E,都有一个非负数cij叫 做边的容量。在V 中一个入次为零的点称为发点vs, 一个出次为零的点称为收点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);
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)
第四节 最大流问题
理解最大流问题的概念、最大流-最小 割定理。 掌握求最大流问题的标号算法。
引言
在许多实际的网络系统中都存在着流量 和最大流问题。例如铁路运输系统中的车辆 流,城市给排水系统的水流问题等等。而网 络系统流最大流问题是图与网络流理论中十 分重要的最优化问题,它对于解决生产实际 问题起着十分重要的作用。
如果链μ满足以下条件:
1.在边(vi ,vj)∈μ+上,有0fij<cij。
2.在边(vi,vj)∈μ–上,有0<fijcij,。
则称μ为从νs到 vt可增广链。
在链(vs,v1,v2,v3,v4,vt)中,μ+ = {(vs,v1 ),(v1,v2),(v2,v3),(v4,vt)}, μ – =
流量:f=11
无可增广链
最大流=14
割集={(vs,v1),(vs,v2),(v3,v6)}
• 求最大流的标号算法可以解决多发点多 收点网络的最大流问题
X1
+∞
X2
X3
vs
…
xm
Y1 Y2
+∞
Y3
vt
…
yn
• 小结 • 1、最大流问题的概念、最大流-最小割
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 其它的不变
我们把这样的图G叫做一个容量网络,记做G=(V,
E,C)。
网络G上的流,是指定义在边(vi ,vj)上有流量fij, 称集合f={fij} 为网络G上的一个流, f为可行流。
网络上的一个流f 叫做可行流,如果f 满足以下条件:
(1)容量条件:对于每一个弧(vi ,vj)∈E,有 0 fij cij .
(- v5,2)
v1
(5,2)
(+ v1,2)
v4
(5,5) (+ vs,2) (3,3) (+ v2,2) (4,2)
vs
(∆ ,+∞)
(4,2) v2 (3,2)
v5 (3,3) (2,2)
vt (+ v4,2)
(5,4)
v3 (2,2)
v6
(+ vs,1) (6)检查v4邻接点vt:
vt点满足( v4,vt) ∈E,且f4t=2<c4t=4, δvt=min[2,2]=2,给vt以标号 (+ v4,2);
(- v5,2)
v1
(5,2)
(+ v1,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)
(5)检查v1邻接点v4: v4点满足( v1,v4) ∈E,且f14=2<c14=5, δv4=min[3,2]=2,给v4以 标号(+ v1,2);
2.调整过程
令
fij
Байду номын сангаас
fi j t , (vi , vj ) fi j t , (vi , vj )
fi
j
,
(vi
,
vj
)不在可增广链
3.再去掉所有的标号,对新的可行流f ’={f ’ij},重新
进行标号过程,直到找到网络G的最大流为止。
例 求图的网络最大流,弧旁的权 数表示(cij , fij)。
为: 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 ) 。
{(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中的一个最大流。
三、标号法
从网络中的一个可行流f 出发(如果G中没有 f, 可以令f 是零流),运用标号法,经过标号过程和
调整过程,可以得到网络中的一个最大流。
如果vt有了标号,表示存在一条关于f 的增广链。 如果标号过程无法进行下去,并且vt未被标号,则 表示不存在关于f 的增广链。这样,就得到了网络
中的一个最大流和最小割集。
(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; 其 顶 点 集 合 分 别
(2)如果在弧(vj ,vi)上,fji > 0,那么给vj标号 (-vi , δ(vj) ).其中δ (vj)=min[fji , δ(vi)] 。
重复以上步骤,如果收点Vt被标号或不再有顶点 可标号为止,则标号法结束。这时的可行流就是最 大流。
但是,如果vt 被标上号,表示得到一条增广 链μ,转入下一步调整过程。
为W, (S, S )是分离vs vt的任一个割集,则有W C(S,S ) .
定理11:最大流-最小割定理:任一个网络G=(V,E,C),
从vs到vt的最大流的流量等于分离vs vt的最小割的容量。
定义22:设μ是网络G中连接发点νs和收点vt的一条链。定义链 的方向是从νs到 vt ,于是链μ上的边被分为两类:一类是边的 方向与链的方向相同,叫做前向边,前向边的集合记做μ+。二 类是边的方向与链的方向相反,叫做后向边,后向边的集合记 做μ–。
1. 标号过程
在标号过程中,网络中的每个标号点的标号包 含两部分:第一个标号表示这个标号是从那一点得 到的,以便找出增广链;第二个标号是为了用来确 定增广链上的调整量δ 。
标号过程开始,先给vs 标号( ∆ ,+∞),一般
地,取一个标号顶点vi,对vi所有未标号的邻接点vj
按照下面条件进行处理:
(1)如果在弧(vi ,vj)上,fij<cij,那么给vj 标号 (+vi , δ(vj) ).其中 δ(vj) = min[cij – fij , δ(vi) ]。
(2)平衡条件:
对于发点vs,收点vt有 对于中间点,有
fsi fjt W
i
j
fij fji 0
(vi,vj)E
(vj ,vi)E
其中发点的总流量(或收点的总流量) w 叫做这个可行流的总流量。
任意一个网络上的可行流总是存在的。例如零 流w(f)=0,就是满足以上条件的可行流。