【发布时间】:2016-01-18 20:58:18
【问题描述】:
我正在实现 Floyd-Warshall 算法,我有一个问题: 如果我的图中有一个循环(我的意思是,从 A 到 A 的成本是 1),算法应该输出什么,0(因为从任何节点到同一个节点的成本是 0),或者 1 (因为从 A 到 A 有一条成本为 1 的边?
我没有包含任何代码,因为这只是那个问题。
【问题讨论】:
-
0 因为这就是答案:)
-
这也要看循环的权重是否为负。如果允许具有负权重的循环,则通过重复该循环,最短路径的长度可以任意小。
-
不,负权重的循环是不允许的,所以答案应该是 0...谢谢!
-
基本上你应该将任意两个不同顶点的距离矩阵初始化为无穷大,在对角线上初始化为零,之后你就不必担心了。
标签: algorithm graph graph-algorithm dijkstra floyd-warshall