- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
狄克斯拉(Dijkstra)算法(3)该算法适用于无负初等回路的赋权连通图(有向图或无向图皆可),但算法本身不能判定图中是否存在负初等回路因此,该算法一般应用于无负权值的赋权连通有向图或无向图0102示例(6.1-1)sabcdt5839149543路线图如下所示,箭头表示通行方向,线上数字表示道路长度,试用Dijkstra算法求s到t的最短路线示例(6.1-2)sabcdt初始值T()第1次P()+lijT()第2次P()+lijT()第3次P()+lijT()第4次P()+lijT()第5次P()+lijT()0∞∞∞∞∞0+50+80+∞0+∞0+∞58∞∞∞5+∞5+35+95+∞8814∞8+∞8+48+∞812∞8+38+9111711+51612345示例(6.1-3)sabcdt5839149543该算法有两个依据海斯算法(1)该算法有两个依据从v1到vn的最短路线也是从vn到v1的最短路线对于无向图必定成立对于有向图而言,vn到v1的最短路线是指将图中弧的方向反过来,但权值不变时的最短路线若从vi到vj的最短路线经过vk,则vi到vk、vk到vj的都是相应的最优路线第一条依据保证了从vi到vj的最短路线也是从vj到vi的最短路线则根据动态规划最优性原理,vk到vj和vk到vi都是相应的最优路线,由此得到上面的结论海斯算法(2)算法步骤已知网络的距离矩阵L=(lij),lij表示vi到vj的弧上的距离权值令dij(0)=lij,i=1~n,j=1~ndij(t)表示从vi到vj的2t步距离当dij(m-1)已知时,令dij(m)=min{dik(m-1)+dkj(m-1)|k=1~n}当对所有的i,j有dij(m)=dij(m-1)时,dij(m)是vi到vj的最短距离。否则,若2m-1<n-1,m=m+1,转上一步;若2m-1≥n-1,说明存在负初等回路,最短路线不存在,算法停止该算法可以判断是否存在负初等回路,适用于任意权值的赋权连通有向图或无向图所得的结果矩阵中包含了图中任意两点之间的最短距离0102海斯算法(3)示例(6.2-1)sabcdt5839149543路线图如下所示,箭头表示通行方向,线上数字表示道路长度,试用海斯算法求s到t的最短路线示例(6.2-2)示例(6.2-3)示例(6.2-4)由于D(3)=D(2),停止计算s到t的最短路线长度为16由D(2)知s到t经过c由D(1)知s到c经过a,c到t经过d则最短路线为sacdtsabcdt5839149543从v1到vn的最短路线也是从vn到v1的最短路线对于无向图必定成立对于有向图而言,vn到v1的最短路线是指将图中弧的方向反过来,但权值不变时的最短路线以vn为起点,v1为终点应用动态规划的最优性原理第一条依据保证了按这种方法求得的结果是从v1到vn的最短路线该算法和Dijkstra算法一样有两个依据福德(Ford)算法(1)福德(Ford)算法(2)算法步骤已知网络的距离矩阵L=(lij),lij表示vi到vj的弧上的距离权值令dj(1)=l1j,j=1~ndj(t)表示从v1到vj的步数不超过t的最短距离当dj(k)已知时,令dj(k+1)=min{di(k)+lij|i=1~n}当对所有的j有dj(k+1)=dj(k)时,dj(k)是v1到vj的最短距离。否则,若k<n-1,k=k+1,转上一步;若k≥n-1,说明存在负初等回路,最短路线不存在,算法停止该算法可以判断是否存在负初等回路,适用于任意权值的赋权连通有向图或无向图01所得的结果中包含了从v1到其他任意点的最短距离02福德(Ford)算法(3)示例(6.3-1)sabcdt5839149543路线图如下所示,箭头表示通行方向,线上数字表示道路长度,试用Ford算法求s到t的最短路线abcdd示例(6.3-2)示例(6.3-3)由于dj(4)=dj(3)(j=s,a,b,c,d,t),停止计算s到t的最短路线长度为16最短路线为sacdtsabcdt5839149543一般针对
文档评论(0)