迪杰斯特拉算法是基于三角不等式的贪心算法。每次更新时选出距离远点最短的点,正确性源于:
距离a,b,c>=0,当a<=b时,有a<=b+c。
而a,b,c取实数时,上述关系不成立,即由a<=b不可得出a<=b+c.
当a,b,c取实数,将各边加一个相同值d,使之>0,若在后续比较时不减去各边的d,显然不正确。但若按照边数减去对应数量的d,则b+c+d>0不一定成立,违背三角不等式。
综上,迪杰斯特拉通过各边加权变正边绝不能处理负权图
(本博客为火车上发呆所得,封面是车站的60元大闸蟹)