- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
湖州师范学院 电线总长 2+2+1+3+1+5 14 二、最短路问题 第八讲 图与网络优化 引例 已知如下图所示的单行线交通网,每弧旁的数字表示通过这条单行线所需要的费用。现在某人要从v1出发,通过这个交通网到v8去,求总费用最小的旅行路线。 二、最短路问题 第八讲 图与网络优化 引例 结论1:由上例可见,从v1到v8的旅行路线有很多; 结论2:不同的路线所需总费用是不同的; 结论3:用图的语言来描述,从v1到v8的一条旅行路线就是图中从v1到v8的一条路;一条旅行路线的总费用就是相应的从v1到v8的路中所有弧旁数字之和。 二、最短路问题 第八讲 图与网络优化 一般意义的最短路问题 给定一个赋权有向图,即给了一个有向图D V,A ,对每一个弧a vi,vj ,相应地赋予了权数;又给定D中的两个顶点vs,vt。设P是D中从vs到vt的一条路,定义路P的权是P中所有弧的权之和,记为w P 。最短路问题就是要在所有从vs到vt的路中,求一条权最小的路,即求一条从vs到vt的路P0,使: 上式中对D中所有从vs到vt的路P取最小,称P0是从vs到vt的最短路。路P0的权称为从vs到vt的距离,记为d vs,vt 。显然,d vs,vt 与d vt,vs 不一定相等。 二、最短路问题 第八讲 图与网络优化 最短路算法 Dijkstra算法的基本思想:从vs出发,逐步向外探寻最短路。执行过程中,与每个点对应,记录下一个数 称为这个点的标号 ,它或者表示从vs到该点的最短路的权 称为P标号 ,或者是从vs到该点的最短路的权的上界 称为T标号 ,方法的每一步是去修改T标号,并且把某一个具T标号的点改变为具P标号的点,从而使D中具P标号的顶点数多一个,这样,至多经过p?1步,就可以求出从vs到各点的最短路。 二、最短路问题 第八讲 图与网络优化 Dijkstra算法 P,T分别表示某个点的P标号、T标号, 为了在求出从vs到各点的距离的同时,也求出从vs到各点的最短路,给每个点v以一个λ值。算法终止时,如果λ v vm,表示在从vs到v的最短路上,v的前一个点是vm;λ v 0表示v vs。 二、最短路问题 第八讲 图与网络优化 例题 用Dijkstra方法求前例中从v1 到各个顶点的最短路? 标P v1 0。其余点标T vi +∞,i=2,3,…,9; T v2 =min{ +∞ ,0+6}=6,λ v2 v1; T v3 =min{ +∞ ,0+3}=3,λ v3 v1; T v4 =min{ +∞ ,0+1}=1,λ v4 v1; 将具有最小T标号的v4点的标号改为P标号:P v4 =1; T v6 =min{ +∞ ,1+10}=11,λ v6 v4; 将具有最小T标号的v3点的标号改为P标号:P v3 =3; T v2 =min{ 6 ,3+2}=5,λ v2 v3; 将具有最小T标号的v2点的标号改为P标号:P v2 =5; 例题 用Dijkstra方法求前例中从v1 到各个顶点的最短路? T v5 =min{ +∞ ,5+1}=6,λ v5 v2; 将具有最小T标号的v5点的标号改为P标号:P v5 =6; T v6 =min{ 11 ,6+4}=10,λ v6 v5; T v7 =min{ +∞ ,6+3}=9,λ v7 v5; T v8 =min{ +∞ ,6+6}=12,λ v8 v5; 将具有最小T标号的v7点的标号改为P标号:P v7 =9; T v8 =min{ 12 ,9+4}=12,λ v8 v5; 将具有最小T标号v6点的标号改为P标号:P v6 =11; 将具有最小T标号v8点的标号改为P标号:P v8 =12; 二、最短路问题 第八讲 图与网络优化 Dijkstra算法缺陷 Dijkstra算法只适用于所有wij≥0的情形,当赋权有向图中存在负权时,则算法失效。例如在下图所示的赋权有向图中,如果用Dijkstra方法,可得出从v1到v2的最短路的权是1,但这显然是不对的,因为从v1到v2的最短路是 v1,v3,v2 ,权是-1。 二、最短路问题 第八讲 图与网络优化 练习题 V1 V2 V3 V4 V5 V6 V7 9 8 5 2 8 7 3 7 1 4 3 10 二、最短路问题 第八讲 图与网络优化 Dijkstra算法另一种写法 第四次 第三次 第二次 第一次 初始值 T() 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ P()+wij T() P()+wij T() P()+wij T() P()+wij T() 0+6 0+ 3 0+ 1 0+ ∞ 0+ ∞ 0+ ∞ 0+ ∞ 0+ ∞ 1 3 6 ∞ ∞ ∞ ∞ ∞
原创力文档


文档评论(0)