一,Bellman-Ford算法的思想
Bellman-Ford算法(以下简称BF算法),用于解决边的权重可以为负值的单源最短路径,它通过对边进行松弛操作逐渐降低从源结点s到各结点v的最短路径估计值v.d,直到该估计值与实际的最短路径权重δ(s,v)相同。
二,Bellman-Ford算法介绍
准备阶段:一副赋值有向图,每个结点有两个属性:d和π,分别表示从源结点到该结点的最短路径和前驱结点
算法过程:初始化各结点,对每条边进行|V|-1次松弛处理,处理完后检查是否存在环路,返回t/f,算法中有两个重要的证明,一个是为何对每条边进行|V|-1次松弛后能够确保v.d=δ(s,v),另一个是为何v.d>u.d+w(u.v)时存在环路
(1)为何对每条边进行|V|-1次松弛后能够确保v.d=δ(s,v)?
最坏的情况下,从源