6-22最短路问题.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6-22最短路问题

§4 最短路问题 最短路问题是指从给定的网络图中找出任意两点之间距离最短(权值和最小)的一条路。 能解决的实际问题 如选址问题、管道铺设、选线问题、厂区布局等问题。 最短路的求法 从某一点至另一点之间最短距离的狄克斯屈拉( Dijkstra )算法 求网络图中任意两点之间的最短距离的矩阵算法 一. Dijkstra 算法 如果 v1→ v2→ v3→ v4 是 v1→ v4 的最短路径,则 v1→ v2→ v3 一定是 v1→ v3 的最短路径。 (1)求解思路——从始点出发,逐步顺序地向外探寻,每向外延伸一步都要求是最短的。 (2)使用条件——网络中所有的弧权均非负 (3) D氏算法(Dijkstra)的特点 能得到从 VS (起点)到各点的最短路线和最短路长。 (4)准备工作: 将网络中所有顶点分为两个集合S和T,已求出最短路的点位于S中,其他点置于T中; 给集合S中的点赋予标号,(d,i) 当前被标号顶点到起始点的最短路长 最短路径上的前点标号 最短路径问题(有向图) 2 3 7 1 8 4 5 6 6 1 3 4 10 5 2 7 5 9 3 4 6 8 2 求从1到8的最短路径 2 3 7 1 8 4 5 6 6 1 3 4 10 5 2 7 5 9 3 4 6 8 2 S = { 1 } min {c12,c14,c16}=min {2,1,3}=1 S = {1,4} (0,S) (1,1) 2 3 7 1 8 4 5 6 6 1 3 4 10 5 2 7 5 9 3 4 6 8 2 S = { 1,4 }, T = { 2,3,5,6,7,8 } min {c12,c16,c42,c47}=min {0+2,0+3,1+10,1+2} =min {2,3,11,3}=2 S = {1,2,4} (1,1) (2,1) (0,S) 2 3 7 1 8 4 5 6 6 1 3 4 10 5 2 7 5 9 3 4 6 8 2 S = { 1,2,4 },T = { 3,5,6,7,8 } min {c16,c23,c25,c47}=min {0+3,2+6,2+5,1+2} =min {3,8,7,3}=3 S = {1,2,4,6,7} (2,1) (3,1) (3,4) (0,S) (1,1) 2 3 7 1 8 4 5 6 6 1 3 4 10 5 2 7 5 9 3 4 6 8 2 S = { 1,2,4,6,7 } , T = { 3,5,8 } min {c23,c25,c75,c78}=min {2+6,2+5,3+3,3+8} =min {8,7,6,11}=6 S = {1,2,4,5,6,7}, w5=6 (2,1) (3,1) (3,4) (6,7) (0,S) (1,1) 2 3 7 1 8 4 5 6 6 1 3 4 10 5 2 7 5 9 3 4 6 8 2 S = { 1,2,4, 5,6,7 } , T = { 3 , 8 } min {c23,c53,c58,c78} = min { 2+6,6+9,6+4,3+8 } = min {8,15,10,11}=8 S = {1,2,3,4,5,6,7} (2,1) (3,1) (3,4) (6,7) (8,2) (0,S) (1,1) 2 3 7 1 8 4 5 6 6 1 3 4 10 5 2 7 5 9 3 4 6 8 2 S = { 1,2,3,4,5,6,7 }, T = { 8 } min {c38,c58,c78}=min {8+6,6+4,3+8} =min {14,10,11}=10 S = { 1,2,3,4,5,6,7,8 } (2,1) (3,1) (3,4) (6,7) (8,2) (10,5) (0,S) (1,1) 2 3 7 1 8 4 5 6 6 1 3 4 10 5 2 7 5 9 3 4 6 8 2 S = {1,2,3,4,6,7,8} 1到8的最短路径为{1,4,7,5,8},长度为10。 w2=2 w6=3 w7=3 w5=6 w3=8 w8=10 (0,S) (1,1) Dijkstra 算法(标号法)步骤: 1. 对起始点 s ,赋予标号(0,S), Lss =0,并置于集合S中,其它顶点位于T中。 2. 从点 s 出发,找出与 s 相

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档