切割与松弛

参考《算法导论》

在求图的最小生成树是会用到与切割相关的性质,而松弛操作是求单源最短路径中一个必不可少的步骤。

无向图G =V, S)的一个切割(S, V—S是集合V的一个划分,如下图所示,如果一条边u, vE的一个端点位于集合S,另一个端点位于结合V—S,则称该条边横跨切割(S, V—S)。如果结合A中不存在横跨该切割的边,则称该切割尊重集合A。在横跨一个切割的所有边中,权重最小的边称为轻量级边(轻量级边可能不是唯一)。一般的,如果一条边是满足某个性质的所有边中权重最小的,则称该条边是满足给定性质的一条轻量级边。


松弛操作

对于每个结点v来说,我们维持一个属性v.d,用来记录从源结点s到结点v的最短路径权重的上界。我们称v.dsv最短路径估计(shortest-path estimate。下面伪代码对最短路径估计和前驱结点进行初始化:

对一条边(u, v)松弛的过程为:首先测试一下是否可以对从sv的最短路径进行改善。测试的方法是,将从结点s到结点u之间的最短路径距离加上结点uv之间的边权重,并与当前的sv的最短路径估计进行比较,如果前者更小,则对v.dv.π进行更新。松弛操作可能降低最短路径的估计值v.d并更新v的前驱属性v.π。下面伪代码对边(u, v)经行松弛操作:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值