AI的回答没那么清楚:
通常情况下,再次运行该函数不会使部分节点间计算出来的最短路径更短。原因如下:
算法收敛性:弗洛伊德算法经过一次完整的三重循环后,已经考虑了所有可能的中间节点组合,从而得到了所有节点对之间的最短路径。也就是说,在第一次运行结束后,dist 数组中存储的已经是最终的最短路径长度。
无负权环假设:弗洛伊德算法在没有负权环的图中是收敛的。如果图中存在负权环,那么最短路径的概念就变得没有意义,因为可以沿着负权环不断循环,使得路径长度不断减小。但在正常情况下,假设图中不存在负权环,再次运行函数不会改变已经得到的最短路径长度。
--
FROM 218.108.223.*