最短路径算法ppt课件.ppt
《最短路径算法ppt课件.ppt》由会员分享,可在线阅读,更多相关《最短路径算法ppt课件.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、8.3 单源最短路径给定带权有向图给定带权有向图G =(V,E)G =(V,E),其中每条边的权是非负实数。,其中每条边的权是非负实数。另外,还给定另外,还给定V V中的一个顶点,称为中的一个顶点,称为源源。现在要计算从源到。现在要计算从源到所有其它各顶点的所有其它各顶点的最短路长度最短路长度。这里路的长度是指路上各边。这里路的长度是指路上各边权之和。这个问题通常称为权之和。这个问题通常称为单源最短路径问题单源最短路径问题。1 1、算法基本思想、算法基本思想DijkstraDijkstra算法是解单源最短路径问题的贪心算法算法是解单源最短路径问题的贪心算法。8.3 单源最短路径其其基本思想基本
2、思想是,设置顶点集合是,设置顶点集合S S并不断地作并不断地作贪心选择贪心选择来来扩充这个集合。一个顶点属于集合扩充这个集合。一个顶点属于集合S S当且仅当从源到该顶点当且仅当从源到该顶点的最短路径长度已知。的最短路径长度已知。初始时,初始时,S S中仅含有源。设中仅含有源。设u u是是G G的某一个顶点,把从源的某一个顶点,把从源到到u u且中间只经过且中间只经过S S中顶点的路称为从源到中顶点的路称为从源到u u的特殊路径,并的特殊路径,并用数组用数组distdist记录当前每个顶点所对应的最短特殊路径长度。记录当前每个顶点所对应的最短特殊路径长度。DijkstraDijkstra算法每次
3、从算法每次从V-SV-S中取出具有最短特殊路长度的顶点中取出具有最短特殊路长度的顶点u u,将将u u添加到添加到S S中,同时对数组中,同时对数组distdist作必要的修改。一旦作必要的修改。一旦S S包含包含了所有了所有V V中顶点,中顶点,distdist就记录了从源到所有其它顶点之间的就记录了从源到所有其它顶点之间的最短路径长度。最短路径长度。8.3 单源最短路径例如例如,对右图中的有向图,应用Dijkstra算法计算从源顶点1到其它顶点间最短路径的过程列在下页的表中。8.3 单源最短路径迭代迭代S Su udist2dist2 dist3dist3 dist4dist4 dist5
4、dist5初始初始1-10maxint301001 11,221060301002 21,2,44105030903 31,2,4,33105030604 41,2,4,3,5510503060Dijkstra算法的迭代过程: 初始状态下,初始状态下,S S中只中只有一个点(源点有一个点(源点v1v1)。)。-11-1110 01010303010010010000s:distance:path:第二步,将第二步,将S S外距离外距离S S最近的点最近的点v2v2加入加入S S。更新。更新相应信息。相应信息。-11-1110 01010303010010010000s:distance:pat
5、h:1602第三步,将第三步,将S S外距离外距离S S最近的点最近的点v4v4加入加入S S。更新。更新相应信息。相应信息。-112110 0101060303010010011000s:distance:path:1504904第四步,将第四步,将S S外距离外距离S S最近的点最近的点v3v3加入加入S S。更新。更新相应信息。相应信息。-114140 01010503030909011010s:distance:path:1603第五步,将第五步,将S S外距离外距离S S最近的点最近的点v5v5加入加入S S。更新。更新相应信息。相应信息。-114130 01010503030606
6、011110s:distance:path:1void Dijkstra ( int GN,int v0,int distance, int path,int n) /源点v0到其他顶点的最短距离distance和最短路径下标path int *s=new intn; int minDis, i, j, u; /初始化三个数组 /逐次将各点加入S /在当前还未找到最短路径的顶点集中 选取具有最短距离的顶点u /标记顶点u已从集合T加入到集合S中 /修改从v0到其他顶点的最短距离和最短路径void Dijkstra ( int GN,int v0,int distance, int path,i
7、nt n) / / 从 源 点 v 0 到 其 他 顶 点 的 最 短 距 离distance和最短路径下标path int *s=new intn; int minDis , i, j, u; /初始化三个数组 for(i=0;in;i+) distancei=Gv0i;si=0;if(I != v0 & distanceiMAX) pathi=v0;else pathi=-1;sv0=1;/标记顶点v0已从集合T加入到集合S中/在当前还未找到最短路径的顶点集中选取具有最短距离的顶点ufor(i=1;in;i+)minDis=MAX;for(j=0;j=n;j+)u到到j有边相连,有边相连,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路径 算法 ppt 课件
限制150内