运筹学4.ppt

上传人:本田雅阁 文档编号:2753404 上传时间:2019-05-11 格式:PPT 页数:84 大小:1.21MB
返回 下载 相关 举报
运筹学4.ppt_第1页
第1页 / 共84页
运筹学4.ppt_第2页
第2页 / 共84页
运筹学4.ppt_第3页
第3页 / 共84页
运筹学4.ppt_第4页
第4页 / 共84页
运筹学4.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《运筹学4.ppt》由会员分享,可在线阅读,更多相关《运筹学4.ppt(84页珍藏版)》请在三一文库上搜索。

1、树与图的最小树,练习:应用破圈法求最小树,树与图的最小树,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,15,9,16,25,3,28,17,4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,15,9,16,25,3,28,17,4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,9,16,25,3,28,17,

2、4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,9,16,25,3,28,17,4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,9,25,3,28,17,4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,9,25,3,28,17,4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,9,3,28,17,4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,9,3,28,17,4,1,23,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,9,3,17,4,1,23,min=1+4+

3、9+3+17+23=57,树与图的最小树,练习:应用避圈法求最小树,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,2

4、0,15,9,16,25,3,28,17,4,1,23,36,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,树与图的最小树,v1,v7,v4,v3,v2,v5,v6,20,15,9,16,25,3,28,17,4,1,23,36,min=1+4+9+3+17+23=57,树与图的最小树,课堂练习:,Min C(T)=12,Min C(T)=15,答案:,树与图的最小树,3,4,1,2,2,3,2,3,2,4,2,Min C(T)=12,Min C(T)=18,最短路问题,如何用最短的线路将三部电话连起来? 此问题可抽象

5、为设ABC为等边三角形,连接三顶点的路线(称为网络)。这种网络有许多个,其中最短路线者显然是二边之和(如ABAC)。,A,B,C,最短路问题,A,B,C,P,但若增加一个周转站(新点P),连接4点的新网络的最短路线为PAPBPC。最短新路径之长N比原来只连三点的最短路径O要短。这样得到的网络不仅比原来节省材料,而且稳定性也更好。,最短路问题,问题描述: 就是从给定的网络图中找出一点到各点或任意两点之间距离最短的一条路 . 有些问题,如选址、管道铺设时的选线、设备更新、投资、某些整数规划和动态规划的问题,也可以归结为求最短路的问题。因此这类问题在生产实际中得到广泛应用。,最短路问题,例6.4 渡

6、河游戏 一老汉带了一只狼、一只羊、一棵白菜想要从南岸过河到北岸,河上只有一条独木舟,每次除了人以外,只能带一样东西;另外,如果人不在,狼就要吃羊,羊就要吃白菜,问应该怎样安排渡河,才能做到既把所有东西都运过河去,并且在河上来回次数最少?这个问题就可以用求最短路方法解决。,最短路问题,定义: 1)人M(Man),狼W(Wolf), 羊G(Goat), 草H(Hay) 2) 点 vi 表示河岸的状态 3) 边 ek 表示由状态 vi 经一次渡河到状态 vj 4) 权边 ek 上的权定为 1,我们可以得到下面的加权有向图,最短路问题,状态说明: v1,u1 =( M,W,G,H ); v2,u2 =

7、(M,W,G); v3,u3 =(M,W,H); v4,u4=(M,G,H); v5,u5 =(M,G),此游戏转化为在下面的二部图中求从 v1 到 u1 的最短路问题。,v1,v2,v3,v4,v5,u5,u4,u3,u2,u1,最短路问题,求最短路有两种算法:,狄克斯屈拉(Dijkstra)标号算法 逐次逼近算法,最短路问题,狄克斯屈拉(Dijkstra)标号算法的基本思路: 若序列 vs,v1vn-1,vn 是从vs到vt间的最短路,则序列 vs,v1vn-1 必为从vs 到vn-1的最短路。,假定v1v2 v3 v4是v1 v4的最短路,则v1 v2 v3一定是v1 v3的最短路,v2

8、 v3 v4也一定是v2 v4的最短路。,最短路问题,求网络图的最短路,设图的起点是vs,终点是vt ,以vi为起点vj为终点的弧记为 (i, j) 距离为dij,P标号(点标号):b(j) 起点vs到点vj的最短路长; T标号(边标号): k(i,j)=b(i)+dij,,步骤:,1. 令起点的标号;b(s)0。,2. 找出所有vi已标号vj未标号的弧集合 B=(i, j) 如果这样的弧不存在或vt已标号则计算结束;,3. 计算集合B中弧k(i,j)=b(i)+dij的标号,4. 选一个点标号 在终点vl处标号b(l), 返回到第2步。,最短路问题,例6.5 求下图v1到v7的最短路长及最短

9、路线,0,8,6,2,2,5,4,4,11,14,7,5,10,7,12,11,v7已标号,计算结束。从v1到v7的最短路长是 11, 最短路线: v1 v4 v6 v7,最短路问题,从上例知,只要某点已标号,说明已找到起点vs到该点的最短路线及最短距离,因此可以将每个点标号,求出vs到任意点的最短路线,如果某个点vj不能标号,说明vs不可达vj 。,注:无向图最短路的求法只将上述步骤2将弧改成边即可。,最短路问题,例6.6 求下图v1到各点的最短距离及最短路线。,0,4,5,2,2,3,10,3,9,6,12,6,4,11,6,6,18,8,12,24,8,24,18,所有点都已标号,点上的

10、标号就是v1到该点的最短距离,最短路线就是红色的链。,最短路问题,课堂练习: 1. 用Dijkstra算法求下图从v1到v6的最短距离及路线。,v3,v5,4,v1到v6的最短路为:,最短路问题,2. 求从v1到v8的最短路径,最短路问题,v1到v8的最短路径为v1v4v7v5v8,最短距离为10,最短路问题,3. 求下图中v1点到另外任意一点的最短路径,v1,v2,v3,v4,v6,v5,3,2,2,7,6,2,1,3,3,最短路问题,v1,V2,V3,V4,V6,V5,3,2,2,7,6,2,1,3,3,0,2,4,7,1,4,最短路问题,v1,V2,V3,V4,V6,V5,3,2,2,7

11、,6,2,1,3,3,0,2,4,7,1,4,最短路问题,算法适用条件: Dijkstra算法只适用于全部权为非负情况,如果某边上权为负的,算法失效。此时可采用逐次逼近算法。,例6.7 如右图所示中按dijkstra算法可得P(v1)=5为从vsv1的最短路长显然是错误的,从vsv2v1路长只有3。,v2,vs,v1,5,-5,8,最短路问题,最短路问题的应用: 例6.7 电信公司准备准备在甲、乙两地沿路架设一条光缆线,问如何架设使其光缆线路最短?下图给出了甲乙两地间的交通图。权数表示两地间公路的长度(单位:公里)。,v1 (甲地),15,17,6,2,4,4,3,10,6,5,v2,v7 (

12、乙地),v3,v4,v5,v6,最短路问题,解:这是一个求无向图的最短路的问题。,最短路问题,例6.8 设备更新问题。某公司使用一台设备,在每年年初,公司就要决定是购买新的设备还是继续使用旧设备。如果购置新设备,就要支付一定的购置费,当然新设备的维修费用就低。如果继续使用旧设备,可以省去购置费,但维修费用就高了。请设计一个五年之内的更新设备的计划,使得五年内购置费用和维修费用总的支付费用最小。已知: 设备每年年初的价格表,最短路问题,设备维修费如下表,解:将问题转化为最短路问题,如下图:用vi表示“第i年年初购进一台新设备”,弧(vi,vj)表示第i年年初购进的设备一直使用到第j年年初。,v1

13、,v2,v3,v4,v5,v6,最短路问题,把所有弧的权数计算如下表,把权数赋到图中,再用Dijkstra算法求最短路。,最短路问题,最终得到下图,可知,v1到v6的距离是53,最短路径有两条: v1v3v6和 v1v4v6,网络的最大流,如何制定一个运输计划使生产地到销售地的产品输送量最大。这就是一个网络最大流问题。,网络的最大流,基本概念: 1. 容量网络:队网络上的每条弧(vi,vj)都给出一个最大的通过能力,称为该弧的容量,简记为cij。容量网络中通常规定一个发点(也称源点,记为s)和一个收点(也称汇点,记为t),网络中其他点称为中间点。,s,t,4,8,4,4,1,2,2,6,7,9

14、,网络的最大流,2. 网络的最大流 是指网络中从发点到收点之间允许通过的最大流量。,3. 流与可行流 流是指加在网络各条弧上的实际流量,对加在弧(vi,vj)上的负载量记为fij。若fij=0,称为零流。 满足以下条件的一组流称为可行流。,容量限制条件。容量网络上所有的弧满足:0fijcij 中间点平衡条件。,若以v(f)表示网络中从st的流量,则有:,网络的最大流,结论:任何网络上一定存在可行流。(零流即是可行流),网络最大流问题: 指满足容量限制条件和中间点平衡的条件下,使v(f)值达到最大。,网络的最大流,割与割集,割是指容量网络中的发点和收点分割开,并使st的流中断的一组弧的集合。割容

15、量是组成割集合中的各条弧的容量之和,用 表示。,如下图中,AA将网络上的点分割成 两个集合。并有 ,称弧的集合(v1,v3),(v2,v4)是一个割,且 的流量为18。,网络的最大流,s,t,v1,v3,v2,v4,8(8),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,

16、 V) f(V, V) f(V, V) c(V, V),推论2 最大流量v (f )不大于最小割集的容量,即: v (f ) minc(V, V),定理2 在网络中st的最大流量等于它的最小割集的容量, 即: v (f ) = 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)

17、,5(4),7(5),网络的最大流,求网络最大流的标号算法: 基本思想 由一个流开始,系统地搜寻增广链,然后在此链上增流,继续这个增流过程,直至不存在增广链。,基本方法,找出第一个可行流,(例如所有弧的流量fij =0。) 用标号的方法找一条增广链,首先给发点s标号(),标号中的数字表示允许的最大调整量。 选择一个点 vi 已标号并且另一端未标号的弧沿着某条链向收点检查:,网络的最大流,如果弧的起点为vi,并且有fij0,则vj标号(fji),(3) 重复第(2)步,可能出现两种结局:,标号过程中断,t无法标号,说明网络中不存在增广链,目前流量为最大流。同时可以确定最小割集,记已标号的点集为V

18、,未标号的点集合为V,(V,V)为网络的最小割。 t得到标号,反向追踪在网络中找到一条从s到t得由标号点及相应的弧连接而成的增广链。继续第(4)步,网络的最大流,(4) 修改流量。设原图可行流为f,令,得到网络上一个新的可行流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)

19、,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),(),(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,

20、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点相邻的未标号的点,因f3tc3t,故对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) 擦除所有

21、标号,重复上述标号过程,寻找另外的增广链。,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) 擦除所有标号,重复上述标号过程,寻找另外的增广链。,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) 修改增广

22、链上的流量,非增广链上的流量不变,得到新的可行流。,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),网络的最大流,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

23、),(),(1),(1),(1),(7) 擦除所有标号,重复上述标号过程,寻找另外的增广链。,(2)=min,1=1,(1)=min1,2=1,(3)=min1,4=1,网络的最大流,例6.9 求下图st的最大流,并找出最小割,网络的最大流,解: (1) 在已知可行流的基础上,通过标号寻找增广链。,(),(2)=min,6=6,(6),(3)=min6,2=2,(2),(t)=min2,5=2,(2),存在增广链sv2v3 t,网络的最大流,(2) 修改增广链上的流量,非增广链上的流量不变,得到新的可行流。,(),(6),(2),(2),网络的最大流,(3) 擦除原标号,重新搜寻增广链。,()

24、,(6),(2),(2),网络的最大流,(4) 重新搜寻增广链。,(),(2)=min,4=4,(4),(1),(5)=min4,1=1,(3)=min1,2=1,(1),(1),(t)=min1,3=1,存在增广链:sv2v5v3 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

25、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。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1