第K条最短路的一个具体例子.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第K条最短路的一个具体例子.doc

第K条最短路的一个具体例子 例: 给定有向图如下图所示,用二重扫除算法求出从顶点1到所有其它三个顶点三条最短路的长度。 弧的长度矩阵D0 , L 及U 如下: D0 = L = U = 后向扫除: 由 d1(2r+1) = d1(2r+1) L + d1(2r) 得: d1 4(2r+1) = d1 (2r+1) L*4 +d1 4(2r) (说明:L*4表示L的第四个列向量) = d1 (2r+1) +d1 4(2r) =(,,)×d1 (2r+1) +(,,)×d1 (2r+1) +(,,)×d1 (2r+1) +d1 4(2r) = d1 4(2r) d1 3(2r+1) = d1 (2r+1) L*3 +d1 3(2r) = d1 (2r+1) +d1 3(2r) =(,,)×d1 (2r+1) +(,,)×d1 (2r+1) +(2,,)×d1 (2r+1) +d1 3(2r) =(2,,)×d1 4(2r+1) +d1 3(2r) 同理可得: d1 2(2r+1) = d1(2r+1) L*2 +d1 2(2r) =(3,,)×d1 4(2r+1) +d1 2(2r) d1 1(2r+1) = d1(2r+1) L*1 +d1 1(2r) =(2,4,)×d1 2(2r+1) +(2,,)×d1 3(2r+1)+d1 1(2r) 前向扫除: 由 d1(2r+2) = d1(2r+2) U + d1(2r+1) 得: d1 1(2r+2) = d1 (2r+2) U1 +d1 1(2r+1) (说明:U1表示U的第一个列向量) = d1 (2r+2) +d1 1(2r+1) = d1 1(2r+1) 同理可得: d1 2(2r+2) = d1 (2r+2) U1 +d1 2(2r+1) =(1,)×d1 1(2r+2) +d1 2(2r+1) d1 3(2r+2) = d1(2r+2) U1 +d1 3(2r+1) =(—1,,)×d1 2(2r+2) +d1 3(2r+1) d1 4(2r+2) = d1(2r+2) U1 +d1 4(2r+1) =(—1,,)×d1 3(2r+2)+d1 4(2r+1) 将数值带入其中,即可求出相应的扫除结果。 引理1。若Vi是Vs 到Vj的第m条最短路P m 的倒数第二个顶点,则Vs到Vi = P’ P m 是Vs到Vi的m条最短路之一。 引理2。若Vs到所有其他顶点的m条最短路长度为已知,设E*j(m) 表示Vs-Vj(Vj=2, ------p) m 条最短路的最优解向量,向量维数维m。若迭代到第2r步得E*j 为最优,则向量维数为m+1 得 E*j(m+1)中,向量E*1(m+1)=[E*1,1 , E*1,2 , E*1,3 ------------- E*1,m E*1,m+1 ]的第m+1个元素,E*1,m+1可以在第2r+1次扫描中确定。 定理 1。每次双向扫视中,至少可以增加一个最优值。 二重扫除算法 最多需要(1/2)*K *N3 次推广的加法和推广的求极小值。 当K=1时,变成求最短路了,比福特算法O((3/2)*N3) 好,但比狄克斯特拉算法 O((3/2)*N2)要差。 1 2 4 3 4 2 1 -1 2 -1 3 2

文档评论(0)

snj01 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档