bon

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  46 Posts :: 0 Stories :: 12 Comments :: 0 Trackbacks

常用链接

留言簿(2)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

本篇主要是证明一些单源最短路的性质。

开始说明性质之前,给出如下的定义:
表示源s到v的最短距离,也是最短路解的结果。
表示在求解过程中对的估计。
表示节点v在最短路中的前驱。

做如下操作:


做如下操作:


下面若无特殊说明,则默认以下条件:
是一个有向带权图,源为s,权函数

(Property Triangle inequality)对所有的边

Proof
  是源s到v的最短距离,那么它当然小于这么一条特殊的路线:从s出发走最短路到u(此时距离为)接着直接由u到v(再加上距离),证毕。


(Upper-Bound Property)INITIALIZE-SINGLE-SOURCE(G,s)后,有不等式成立,且该不等式在往后的任何顺序的松驰(Relaxation)操作都保持不变。一旦则d(v)就保持不变。

Proof
    用数学归纳法对relax操作步数进行归纳证明。当初始化后,(若s处于一个带负权的环中,则;否则)。而
    现在看第k步Relax操作,在此之前,由归纳假设有。不失一般性,假设第k步Relax是对边(u,v)进行操作,若,则不变,由归纳假设有,;若,,则Relax之后有不等式
    
每次对边(u,v)进行Relaxation操作时,只会减少,当减到时,它无法再减少了,但它也无法增加,所以就保持不变。


(No-path Property)若源s无法到达点v,则 总成立。

Proof
    由上面的Upper-Bound Property知,,所以。证毕。



引理1:在Relax(u,v)完后立即有

Proof    若,引理成立;若,则Relax(u,v)后,有



(Convergence Property)假设路径从s到u再直接到v是一条最短路,若在Relax(u,v)之前的任何时刻,只要则Relax(u,v)之后有

Proof    由条件知在Relax(u,v)之前有,则Relax(u,v)之后,有。第一个不等号用到引理1,第一个等号用到定理的假设,第二个等号用到最短路的最优子结构:最短路的子路径也是最短路,不可能大于,否则违反了是s到u的最短距离的假设。
再由Upper-Bound Property有。由上面两式有。证毕。



(Path-relaxation Property)是一条最短路。若ININITIALIZE-SINGLE-SOURCE(G,s)后有一系列的Relax操作,依次作用在边上,则最后有且之后都不变。这些Relax操作之间可以加入任何其它的Relax操作,包括Relax该最短路上的边。

Proof    用数学归纳法对Relax边的次序进行归纳。首先INITIALIZE-SINGLE-SOURCE(G,s)后,有。设第i-1条边被Relax后有。由Upper-Bound Property知这个等式之后都保持不变。特别的在时有,由Convergence Property知Relax操作后有且该等式之后保持不变。证毕。
posted on 2008-02-10 22:44 bon 阅读(337) 评论(0)  编辑 收藏 引用 所属分类: Notes on Introduction to Algorithms

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


Google PageRank 
Checker - Page Rank Calculator