- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
8.6最短通路问题
8.6.1引言
许多问题可以用边上赋权的图来建模。考虑一下航线系统如何建模。如果用顶点
表示城市,用边表示航线。给边赋上城市之间的距离,就可以为涉及距离的问
题建模;给边赋上飞行时间,就可以为涉及飞行时间的问题建模;给边赋上票价,
就可以为涉及票价的问题建模。图8—61显示了给一个图的边赋权的三种不同
方式,分别表示距离,飞行时间和票价。
密
波士顿波士顿
第2/19页
黄河科技学院毕业论文(文献翻译)第2页
波士顿
图8-61为航线系统建模的带权图
给每条边赋上一个数的图称为带权图。带权图用来为计算机网络建模。通信成本
(比如租用电话线的月租费)、计算机在这些线路上的响应时间或是计算机之
间的距离等都可以用带权图来研究。图8—62显示一些带权图,它们表示给计算
机的图的边赋权的三种方式,分别对应成本、响应时间和距离。
距离
达拉斯
与带权图有关的几种类型的问题出现得很多。确定网络里两个顶点之间长度最短
的通路就是一个这样的问题。说的更具体些,设带权图里一条通路的长度是这
条通路上各边的权的总和。(读者应当注意,对术语长度的这种用法,与表示不
带权的图的通路里边数的长度的用法,这两者是不同的。)问题是:什么是最
短通路,即什么是在两个给定顶点之间长度最短的通路?例如,在图8—61所示
带权图表示的航线系统里,在波士顿与洛杉矶之间以空中距离计算的最短通路
是什么?在波士顿与洛杉矶之间什么样的航班组合的总飞行时间(即在空中的总
时间,不包括航班之间的时间)最短?在这两个城市之间的最低费用是多少?
第3
黄河科技学院毕业论文(文献翻译)第3页
响应时间
达拉斯
秒
月租费
达拉斯
图8-62为计算机网络建模的带权图
在图8—62所示的计算机网络里,连接旧金山的计算机与纽约的计算机所需要的
最便宜的一组电话线是什么?哪一组电话线给出旧金山与纽约之间的通信的最
短响应时间?哪一组电话线有最短的总距离?
与带权图有关的另外的一个重要问题是:求访问完全图每个顶点恰好一次的、总
长度最短的回路。这就是著名的旅行商问题,它求一位推销商应当以什么样的顺
序来访问其路程上的每个城市恰好一次,使得他旅行的总距离最短。本节后面将
讨论旅行商问题。8.6.2最短通路算法
求带权图里两个顶点之间的最短通路有几个不同的算法。下面将给出荷兰数学家
E·迪克斯特拉在1959年所发现的一个解决无向带权图中最短通路问题的算法,
其中所有的权都是正数。可以很容易地将它修改后来解决有向图里的最短通路问
题。
黄河科技学院毕业论文(文献翻译)第4页
在给出这个算法的形式化表示之前将给出一个启发性的例子。
例1在图8—63所示的带权图里,a和z之间的最短通路的长度是多少?
az图8—63
解虽然通过观察就容易求出最短通路,但是需要想出一些有助于理解迪克施特
拉算法的办法。要解决的问题就是:求从a到各个相继的顶点的最短通路,直到
到达z为止。
从a开始、(直到到达终点为止)不包括除a以外的顶点的唯一通路是a,b和
a,d。因为a,b和a,d的长度分别是4和2,所以d是与a最近的顶点。
可以通过查看(直到到达终点为止)只经过a和d的所有通路,来求出下一个最
靠近a的顶点。到b的最短通路仍然是a,b,长度为4,而到e的最短通路是
a,d,e,长度为5。所以,下一个与a最靠近的顶点是b。
为了找出第三个与a最近的顶点,只需要检查(直到到达终点为止)只经过了
a,d和
存在长度为7到c的通路,即a,b,c,以及长度为6到z的通路,即a,d,e,z。b
的那些通路。
所以,z是下一个与a最靠近的顶点,而且到z的最短通路的长度为6。
例1说明了在迪克斯特拉算法里使用的一般原理。注意通过检查就可能求出从
a到z最短通路。不过,无论对人还是对计算机来说,检查边数很多的图都是不
切实际的。现在将考虑一般问题:在无向联通简单带权图里,求出a与z之间
的最短通路的长度。迪克斯特拉算法如下进行:求出从a到第一个顶点的最短通
路的长度,从a到第二个顶点最短通路的长度,以此类推,直到求出a到z的
最短通路长度为止。
这个算法依赖于一系列的迭代。通过在每次跌代里添加一个顶点来构造出特殊顶
点的集合。在每次跌代里完成一个标记过程。在这个标记过程,只包括特殊顶点
的从a到w的最短通路的长度来标记w。
添加到特殊顶点集里的顶点是尚在集合之外的那些顶点
第5/19页
专注于文案的个性定制,修改,润色等。本人已有16年相关工作经验,具有扎实的文案功底,可承接演讲稿,读后感,任务计划书,营销方案等方面的工作。欢迎您的咨询~~
文档评论(0)