网站大量收购独家精品文档,联系QQ:2885784924

《运筹学》教学课件 最短路和匹配.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三节 最短路问题 最短路问题是网络理论中应用最广的问题之一。许多优化问题可以使这个模型,如设备更新、管道铺设、线路安排、厂区布局等。图论方法比较有效。 最短路问题的一般提法如下:设G=〔V,E〕为连通图,图中各边 为图中任意两点,求一条道路 ,使他是从 的所有道路中总权最小的道路。即: 最小. 有些最短问题也可以使球网络中某指定点到其余所有结点的最短路,过求网络中任意两点间的最短路。下面我们介绍三种算法,可分别用于求解这几种最短路问题。 一、Dijkstra算法 本算法由Dijkstra于1959年提出,可用于求解指定两点 间的最短路,或从指定点 到其余各点的最短路,目前被认为是求无负权网络最短路问题的最好方法。算法的根本思想基于以下原理:假设序列 是从 的最短路,那么序列 必为从 的最短路。 根本步骤: 求出从a到z的最短路的长度是? a c b e d z 5 4 2 10 1 8 2 6 3 解:0次迭代〔初始化〕 L(a)=0,L(b)=L(c)=L(d)=L(e)=L(z)= ,S0= ; 一次迭代:取u1=a,S1={a} L(a)+w(a,b)=0+4=4L(b) L(a)+w(a,c)=0+2=2L(c) L(a)+w(a,d)=0+ = L(a)+w(a,e)=L(a)+w(a,z)=0+ = ; L(b)=4,L(c)=2,L(d)=L(e)=L(z)= 二次迭代:取u2=c, S2={a,c} L(c)+w(c,b)=2+1=3L(b) L(c)+w(c,d)=2+8=10L(d) L(c)+w(c,e)=2+10=12L(e) L(c)+w(c,z)=2+ = L(b)=3,L(d)=10,L(e)=12,L(z)= 三次迭代:取u3=b, S3={a,c,b} L(b)+w(b,d)=3+5=8L(d) L(b)+w(b,e)=3+ = L(b)+w(b,z)=3+ = L(d)=8, L(e)=12, L(z)= 四次迭代:取u4=d, S4={a,c,b,d} L(d)+w(d,e)=8+2=10L(e) L(d)+w(d,z)=8+6=14L(z) L(e)=10, L(z)=14; 五次迭代:取u5=e, S5={a,c,b,d,e} L(e)+w(e,z)=10+3=13L(z) L(z)=13 结束:u6=z, S6={a,c,b,d,e,z} 从a到z 的最短路的长度为13,最短路经为{a,c,b,d,e,z} 同样可以利用Dijkstra算法计算有向网络中最短有向路的长度,根本步骤如下: 求出点1到其余各顶点的最短有向路的长度? 1 5 4 3 2 5 3 2 8 4 7 3 1 Dijkstra算法: 课堂练习1:利用Dijkstra算法,算出图中,v1到v5的最短路的长度? V1 V3 V2 V4 V5 4 3 2 7 5 8 10 1 选址问题:某地区的交通网络如图5-39所示,其中点代表居民区,边表示公路, 为小区间公路距离,问区中心医院建在哪个小区,可使距离医院最远的小区居民就诊时所走的路程最近? 解:实际是要求出图的中心,可以化为一系列求最短路问题。先求出 v1 到其他各顶点的最短路长dj,令D(v1)=max{d1,d2,…,d7},表示假设医院建在v1, 那么离医院最远的小区距离为D(v1),再依次计算v2,v3,…,v7到其余各点的最短路,类似求出D(v2),D(v3),…D(v7), D(vi)(i=1,2,…,7)中最小者即为所求,计算结果见表5-3。

您可能关注的文档

文档评论(0)

qjgyx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档