运筹学实验报告的最大流c语言,运筹学最大流

《运筹学最大流》由会员分享,可在线阅读,更多相关《运筹学最大流(37页珍藏版)》请在装配图网上搜索。

1、网络的最大流,如何制定一个运输计划使生产地到销售地的产品输送量最大。这就是一个网络最大流问题。,网络的最大流,基本概念: 1. 容量网络:队网络上的每条弧(vi,vj)都给出一个最大的通过能力,称为该弧的容量,简记为cij。容量网络中通常规定一个发点(也称源点,记为s)和一个收点(也称汇点,记为t),网络中其他点称为中间点。,s,t,4,8,4,4,1,2,2,6,7,9,网络的最大流,2. 网络的最大流 是指网络中从发点到收点之间允许通过的最大流量。,3. 流与可行流 流是指加在网络各条弧上的实际流量,对加在弧(vi,vj)上的负载量记为fij。若fij=0,称为零流。 满足以下条件的一组流。

2、称为可行流。,容量限制条件。容量网络上所有的弧满足:0fijcij 中间点平衡条件。,若以v(f)表示网络中从st的流量,则有:,网络的最大流,结论:任何网络上一定存在可行流。(零流即是可行流),网络最大流问题: 指满足容量限制条件和中间点平衡的条件下,使v(f)值达到最大。,网络的最大流,割与割集,割是指容量网络中的发点和收点分割开,并使st的流中断的一组弧的集合。割容量是组成割集合中的各条弧的容量之和,用 表示。,如下图中,AA将网络上的点分割成 两个集合。并有 ,称弧的集合(v1,v3),(v2,v4)是一个割,且 的流量为18。,网络的最大流,s,t,v1,v3,v2,v4,8(8),。

3、9(5),5(5),10(9),6(0),2(0),9(9),5(3),7(6),A,A,B,B,网络的最大流,定理1 设网络N中一个从 s 到 t 的流 f 的流量为v(f ), (V, V)为任意一个割集,则 v(f ) = f(V, V) f(V, V),推论1 对网络 N中任意流量v(f )和割集 (V, V),有 v(f ) c(V, V),证明 w= f(V, V) f(V, V) f(V, V) c(V, V),推论2 最大流量v (f )不大于最小割集的容量,即: v (f ) minc(V, V),定理2 在网络中st的最大流量等于它的最小割集的容量, 即: v (f ) =。

4、 c (V, V),网络的最大流,增广链 在网络的发点和收点之间能找到一条链,在该链上所有指向为st的弧,称为前向弧,记作+,存在f0,则称这样的链为增广链。例如下图中,sv2v1v3v4t。,定理3 网络N中的流 f 是最大流当且仅当N中不包含任何增广链,网络的最大流,s,t,v1,v3,v2,v4,8(8),9(4),5(5),10(8),6(1),2(0),9(9),5(4),7(5),网络的最大流,求网络最大流的标号算法: 基本思想 由一个流开始,系统地搜寻增广链,然后在此链上增流,继续这个增流过程,直至不存在增广链。,基本方法,找出第一个可行流,(例如所有弧的流量fij =0。) 用。

5、标号的方法找一条增广链,首先给发点s标号(),标号中的数字表示允许的最大调整量。 选择一个点 vi 已标号并且另一端未标号的弧沿着某条链向收点检查:,网络的最大流,如果弧的起点为vi,并且有fij0,则vj标号(fji),(3) 重复第(2)步,可能出现两种结局:,标号过程中断,t无法标号,说明网络中不存在增广链,目前流量为最大流。同时可以确定最小割集,记已标号的点集为V,未标号的点集合为V,(V,V)为网络的最小割。 t得到标号,反向追踪在网络中找到一条从s到t得由标号点及相应的弧连接而成的增广链。继续第(4)步,网络的最大流,(4) 修改流量。设原图可行流为f,令,得到网络上一个新的可行流。

6、f。,(5) 擦除图上所有标号,重复(1)-(4)步,直到图中找不到任何增广链,计算结束。,网络的最大流,例6.10 用标号算法求下图中st的最大流量,并找出最小割。,s,t,v1,v3,v2,v4,8(7),9(3),5(4),10(8),6(1),2(0),9(9),5(4),7(5),网络的最大流,解:(1) 先给s标号(),s,t,v1,v3,v2,v4,8(7),9(3),5(4),10(8),6(1),2(0),9(9),5(4),7(5),(),网络的最大流,s,t,v1,v3,v2,v4,8(7),9(3),5(4),10(8),6(1),2(0),9(9),5(4),7(5)。

7、,(),(2) 检查与s点相邻的未标号的点,因fs1cs1,故对v1标号=min, cs1-fs1=1,(1),网络的最大流,s,t,v1,v3,v2,v4,8(7),9(3),5(4),10(8),6(1),2(0),9(9),5(4),7(6),(),(1),(2) 检查与v1点相邻的未标号的点,因f13c13,故对v3标号=min1, c13-f13= min1, 6= 1,(1),网络的最大流,s,t,v1,v3,v2,v4,8(7),9(3),5(4),10(8),6(1),2(0),9(9),5(4),7(5),(),(1),(1),(3) 检查与v3点相邻的未标号的点,因f3tc。

8、3t,故对vt标号=min1, c3t-f3t= min1, 1= 1,(1),找到一条增广链sv1v3t,网络的最大流,(4) 修改增广链上的流量,非增广链上的流量不变,得到新的可行流。,s,t,v1,v3,v2,v4,8(7),9(3),5(4),10(8),6(1),2(0),9(9),5(3),7(5),(),(1),(1),(1),网络的最大流,(5) 擦除所有标号,重复上述标号过程,寻找另外的增广链。,s,t,v1,v3,v2,v4,8(8),9(4),5(5),10(8),6(0),2(0),9(9),5(3),7(5),(),(1),(1),(1),网络的最大流,(5) 擦除所。

9、有标号,重复上述标号过程,寻找另外的增广链。,s,t,v1,v3,v2,v4,8(8),9(4),5(5),10(8),6(1),2(0),9(9),5(3),7(5),(),(2),(2)=min,2=2,(2),(1)=min2,3=2,(3)=min2,5=2,(2),(1),(4)=min2,1=1,(1),(t)=min1,2=1,网络的最大流,(6) 修改增广链上的流量,非增广链上的流量不变,得到新的可行流。,s,t,v1,v3,v2,v4,8(8),9(4),5(5),10(8),6(1),2(0),9(9),5(3),7(5),(),(2),(2),(2),(1),(1),网络。

10、的最大流,s,t,v1,v3,v2,v4,8(8),9(5),5(5),10(9),6(0),2(0),9(9),5(2),7(6),(),(2),(2),(2),(1),(1),(7) 擦除所有标号,重复上述标号过程,寻找另外的增广链。,网络的最大流,s,t,v1,v3,v2,v4,8(8),9(5),5(5),10(9),6(0),2(0),9(9),5(2),7(6),(),(1),(1),(1),(7) 擦除所有标号,重复上述标号过程,寻找另外的增广链。,(2)=min,1=1,(1)=min1,2=1,(3)=min1,4=1,网络的最大流,例6.9 求下图st的最大流,并找出最小割。

11、,网络的最大流,解: (1) 在已知可行流的基础上,通过标号寻找增广链。,(),(2)=min,6=6,(6),(3)=min6,2=2,(2),(t)=min2,5=2,(2),存在增广链sv2v3 t,网络的最大流,(2) 修改增广链上的流量,非增广链上的流量不变,得到新的可行流。,(),(6),(2),(2),网络的最大流,(3) 擦除原标号,重新搜寻增广链。,(),(6),(2),(2),网络的最大流,(4) 重新搜寻增广链。,(),(2)=min,4=4,(4),(1),(5)=min4,1=1,(3)=min1,2=1,(1),(1),(t)=min1,3=1,存在增广链:sv2v。

12、5v3 t,网络的最大流,(5) 修改增广链上的流量,非增广链上的流量不变,得到新的可行流。,(),(4),(1),(1),(1),网络的最大流,(6) 擦除原标号,(),(4),(1),(1),(1),网络的最大流,(),(1),(1),(1),(5)=min,1=1,(5)=min1,1=1,(5)=min1,2=1,(7) 重新搜寻增广链。,存在增广链:sv5v3 t,网络的最大流,(8) 调整增广链上的流量,非增广链流量不变,得到新的可行流,(),(1),(1),(1),网络的最大流,(),(1),(1),(1),(9) 擦除原标号,网络的最大流,(10) 重新标号,搜索增广链,(),(1)=min,1=1,(1),(5)=min1,1=1,(1),(4)=min1,1=1,(1),(t)=min1,1=1,(1),存在增广链:sv1v5v4t,网络的最大流,(),(1),(1),(1),(1),(11) 调整增广链上的流量,非增广链流量不变,得到新的可行流,网络的最大流,(),(1),(1),(1),(1),(11) 擦除标号,在新的可行流上重新标号。,网络的最大流,(),(11) 擦除标号,在新的可行流上重新标号。,(3),(1)=min,3=1,无法标号,不存在增广链,此可行流已为最大流。最大流量为14。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值