松弛操作的性质

在单源最短路径的求解算法中,往往涉及松弛操作,而松弛操作是证明单源最短路径算法的基石。

  • 相关概念
    最短路径:假设从结点u到结点v的最短路径权重为 δ(u,v) ,那么从结点u到结点v的最短路径定义为任何一条权重 ω(p)=δ(u,v) 的从u到v的路径p。
    最短路径估计:对于每个结点v来说,我们维持一个属性v.d,用来记录从源结点s到结点v的最短路径权重的上界,称v.d为s到v的最短路径估计。
    前驱结点:对于每个结点v,我们维持一个前驱结点 v.π ,它表示扫描 v.π 结点时发现结点v。
    单源最短路径算法进行之前,都必须对最短路径估计和前驱结点进行初始化,伪代码如下:
    INITIALIZE-SINGLE-SOURCE(G,s)
for each vertex v \in G.V
  v.d=INFTY
  v.pi=NIL
s.d=0

结点的v.d属性和 v.π 属性发生变化是通过松弛操作完成的,对边(u,v)在O(1)时间内进行松弛操作的伪代码如下:
RELAX(u,v,w)

if v.d>u.d+w(u,v)
  v.d=u.d+w(u,v)
  v.pi=u
  • 松弛操作的性质
    1 三角不等式性质:对于任何边 (u,v)E ,有 δ(s,v)δ(s,u)+ω(u,v)
    2 上界性质:对于所有结点 vV ,我们有 v.dδ(s,v) 。一旦 v.d 的取值达到 δ(s,v) ,其值将不再变化。
    3 非路径性质:若从结点s到结点v之间不存在路径,有 v.d=δ(s,v)=
    4 收敛性质:设结点 u,vV ,如果 suv 是图G中的一条最短路径,且在对边(u,v)进行松弛前的任意时间有 u.d=δ(s,u) ,则在之后的所有时间有 v.d=δ(s,v)
    5 路径松弛性质:若 p=<v0,v1,...,vk> 是从源结点 s=v0 到结点 vk 的一条路径,且我们对 p 中所进行松弛的次序为(v0,v1),(v1,v2),...,(vk1,vk),则 vk.d=δ(s,vk)
    6 前驱子图性质:对于所有结点 vV ,一旦 v.d=δ(s,v) ,则前驱子图是一棵根结点为 s <script type="math/tex" id="MathJax-Element-5295">s</script>的最短路径树。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值