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