let dist be a |V| × |V| array of minimum distances initialized to ∞ (infinity)
// part 1
for each vertex v
dist[v][v] ← 0
// part 2
for each edge (u,v)
dist[u][v] ← w(u,v) // the weight of the edge (u,v)
// part 3
for k from 1 to |V|
for i from 1 to |V|
for j from 1 to |V|
if dist[i][k] + dist[k][j] < dist[i][j] then
dist[i][j] ← dist[i][k] + dist[k][j]
在页面中,它显示the Floyd–Warshall algorithm assumes that there are no negative cycles
。所以我的问题是如果输入图隐藏负面圈会发生什么。输出dist
是否代表隐藏负圆的另一个图? part 1
无效吗?
答案 0 :(得分:0)
Floyd-Warshall算法用于寻找最短路径。如果存在负圆,则没有最短路径(您可以找到无限小(负)路径。)
如果存在负面圈,那会发生什么?我会说Floyd的输出没什么意思,也就是说,算法不起作用(因为没有最短的路径,它是如何工作的?)。