迪克斯特拉算法的正确性

迪克斯特拉算法的正确性

对于第k+1次迭代,s为起点,v是不属于S集合的某一点,x是不属于S集合的任意一点不包括v,y是属于S集合的任意一点

w(s,v)是通过S集合中某些顶点到v的最短路径,w(s,x)是通过S集合中某些顶点到x的最短路径

若有w(s,v)<=w(s,x),无论w(x,v)为何值均有w(s,v)<=w(s,x)+w(x,v), 除非w(x,v)为负数才可能使w(s,v)>w(s,x)+w(x,v),这也是迪克斯特拉算法为什么不适用于权值为负的原因。

S集合加入v点之后,s到v的最短路径即w(s,v)不会因为x点加入S集合而随之变短。

w(s,v)即是s到v的最短路径记为s(s,v),将v加入S集合中,并更新与v相连不在S集合中的路径值,每次加入新顶点到S集合,都会更新顶点到周边顶点(非S集合)的最短路径值,取其小者




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值