Floyd-Warshall算法在可能存在负圆的情况下

时间:2013-06-03 14:04:17

标签: algorithm graph-theory floyd-warshall bellman-ford

我在看Floyd-Warshall algorithm

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无效吗?

1 个答案:

答案 0 :(得分:0)

Floyd-Warshall算法用于寻找最短路径。如果存在负圆,则没有最短路径(您可以找到无限小(负)路径。)

如果存在负面圈,那会发生什么?我会说Floyd的输出没什么意思,也就是说,算法不起作用(因为没有最短的路径,它是如何工作的?)。