- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第21讲最短路径与图的小结
数 据 结 构
主讲:信息工程大学电子技术学院
402教研室;第7章 图
7.1 图的定义和术语
7.2 图的存储结构
7.3 图的遍历
7.4 图的连通性问题
7.5 有向无环图及其应用
7.6 最短路径;7.6 最短路径 ;7.6.1 单源点最短路径;如何在计算机中求得最短路径?; Dijkstra提出了一个按路径“长度”递增的次序,逐步得到由给定源点到图的其余各点间的最短路径的算法:
假设我们以邻接矩阵cost表示所研究的有向网。
迪杰斯特拉算法需要一个顶点集合,初始时集合内只有一个源点V0 ,以后陆续将已求得最短路径的顶点加入到集合中,到全部顶点都进入集合了,过程就结束了。集合可用一维数组来表示,设此数组为S,凡在集合S以外的顶点,其相应的数组元素S[i] 为 0 ,否则为 1 。;另需一个一维数组D,每个顶点对应数组的一个单元,记录从源点到其他各顶点当前的最短路径长度,其初值为D[i]=cost[V0][i],i=1…n。数组D中的数据随着算法的逐步进行要不断地修改
定义了S集合和D数组并对其初始化后,迪杰斯特拉算法在进行中,都是从S之外的顶点集合中选出一个顶点w,使D[w]的值最小。于是从源点到达w只通过S中的顶点,把 w 加入集合S中,并调整D中记录的从源点到集合中每个顶点v的距离:
取D[v]和D[w]+cost[w][v]中值较小的作为新的D[v]
重复上述,直到S中包含V中其余各顶点的最短路径。; V0 V1 V2 V3 V4 V5
V0 ∞ ∞ 10 ∞ 30 100
V1 ∞ ∞ 5 ∞ ∞ ∞
V2 ∞ ∞ ∞ 50 ∞ ∞
V3 ∞ ∞ ∞ ∞ ∞ 10
V4 ∞ ∞ ∞ 20 ∞ 60
V5 ∞ ∞ ∞ ∞ ∞ ∞ ;7.6 最短路径 ;问题描述:???? 已知一个各边权值均大于 0 的带权有向图,对每对顶点 vi≠vj,要求求出每一对顶点之间的最短路径和最短路径长度。
解决方案:
1. 每次以一个顶点为源点,重复执行迪杰斯特拉算法n次。这样,便可求得每一对顶点之间的最短路径。总的执行时间为O(n3)。
2. 形式更直接的弗洛伊德(Floyd)算法。时间复杂度也为O(n3)。;弗洛伊德算法思想:
假设求从顶点Vi到Vj的最短路径。如果从Vi到Vj有弧,则从Vi到Vj存在一条长度为arcs[i][j]的路径,该路径不一定是最短路径,尚需进???n次试探。
首先考虑路径(Vi,V0,Vj)是否存在(即判别(Vi,V0)、(V0,Vj)是否存在)。如存在,则比较(Vi,Vj)和(Vi,V0,Vj)的路径长度,取长度较短者为从 Vi到Vj 的中间顶点的序号不大于0 的最短路径。假如在路径上再增加一个顶点 V1,…依次类推。可同时求得各对顶点间的最短路径。;定义一个n阶方阵序列
D(-1),D(0),D(1),D(2),…,D(k),…,D(n-1)
其中:
D(-1)[i][j]= arcs[i][j]
D(k)[i][j]=Min { D(k-1)[i][j], D(k-1)[i][k]+ D(k-1)[k][j] }
0≤k≤n-1
可见,D(1)[i][j]就是从vi到vj的中间顶点的序号不大于1的
最短路径的长度;
D(k)[i][j]就是从vi到vj的中间顶点的序号不大于k的
最短路径的长度;
D(n-1)[i][j]就是从vi到vj的最短路径的长度。; 各顶点间的最短路径及其路径长度 ;本章小结
1.熟练图的各种存储结构及构造算法,了解实际问题的求解效率与采用何种存储结构和算法有密切联系。
2.熟练掌握图的两种搜索路径的遍历及算法。
3.掌握以下内容:
图的最小生成树和求最小生成树算法的思想;
利用AOV网络的拓扑排序问题;
利用AOE网络的关键路径法;
带权有向图的最短路径问题。
文档评论(0)