- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)