最短路径.ppt
《最短路径.ppt》由会员分享,可在线阅读,更多相关《最短路径.ppt(17页珍藏版)》请在三一办公上搜索。
1、,1,7.6 最短路径,应用背景:交通咨询、导航约定 有向图 设V0,1,n-1,边上的权值非负(长度)分类单源最短路径:1个源点到其余顶点的最短路径单目标最短路径:将各边反向,即为问题1单点对间最短路径:可用来解,但二者渐近时间相同所有点对间最短路径:亦可用来解,即每个顶点作为源点调用,2,7.6.1 单源最短路径问题,观察,上表是按路径长度递增序产生的从源点到其余顶点的最短路径0到4的路径:,长度:100,90,70,60规律:当按长度增序生成从源s到其它顶点的最短路径时,则当前正在生成的最短路径上除终点外,其余顶点的最短路径均已生成例子:当求0到2的最短路径时,则该路径上顶点0,3的最短
2、路径在此前已生成,3,7.6.1 单源最短路径问题,约定 从源s到终点v的最短路径简称为v的最短路径,SP(v)s到v的最短路径长度简称为v的最短距离,SD(v)红点集S:最短距离已确定的顶点集合 白点集V-S:最短距离尚未确定的顶点集合算法思想-Dijkstra(1972图灵奖得主)基于上述观察初始化:仅已知源s的最短距离SD(s)=0,故红点集S=s;扩充红点集:算法的每一步均是在当前白点集中选一最短距离最小的白点来扩充红点集,以保证算法是按长度增序来产生各顶点的最短路径;结束:当前白点集空或仅剩下最短距离为的白点为止。注:若s到某白点的路径不存在,可假设该白点的最短路径是一条长度为的虚拟
3、路径。,4,7.6.1 单源最短路径问题,如何扩充红点集?白点k的最短路径上除终点外,其余顶点的最短路径均已生成,故它们均为红点设置向量D0.n-1,对每一个白点vV-S,用Dv记录从源点s到达v,且除v外中间不经过任何白点的“最短”路径长度。初始时每个白点v的Dv值是边上的权。Note:从s到v的中间不经过其他白点的路径可能不止1条,但只需将其中最短的那条的长度记录在Dv中。Dv=SDv?即Dv是v最终的最短距离吗?不一定,因为s到v可能存在包含其它白点作为中间点的更短路径。Dv只是v当前估计的最短距离(简称估计距离),即:DvSDv如何在当前白点集中选一最短距离最小的白点k来扩充红点集?,
4、5,如何扩充红点集?(续)Th.7.6.1 若k是白点集中估计距离最小的顶点,则k的估计距离就是最短距离。即:若Dk=min Di:iV-S,则Dk=SDkPf(反证法):设Dk不是k的最短距离,则必存在一条路径P:s k,其长度:length(p)length(P)Dx,这与k是当前白点集中估计距离最小的顶点矛盾!k是最短距离最小的白点吗?定理保证了k加入红点集的正确性 贪心策略:每次选离源点“最近”的白点来扩充红点集,6,7.6.1 单源最短路径问题,如何调整白点集中白点的估计距离?由于新红点k可能导致剩余白点的估计距离变小,使之离源点更近,故需调整。设jV-S,若Dj由于k加入红点集而变
5、小,则新路径P必是s k j,且P1中只有红点,P2必是边,即:Length(p)=Dk+w.证明:略调整方法 若length(P)Dj,则用length(P)来修正Dj。,7,7.6.1 单源最短路径问题,例子,最短距离:红色估计距离:白色依次求出的最短距离为:D0=0D1=10,调整顶点2D3=30,调整顶点2,4D2=50,调整顶点4D4=60,最短路径树:各顶点的最短路径(实线)总是一棵以源点为根的树,称之为。,8,7.6.1 单源最短路径问题,如何构造最优解 因为D向量只记录了最优解的值,但不能得到最优解。因此,要记录最优解则须引入附加信息。因为最优解是最短路径树,故只需增加一个向量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路径

链接地址:https://www.31ppt.com/p-5819552.html