Bellman–Ford algorithm

This is an old revision of this page, as edited by Poor Yorick (talk | contribs) at 05:22, 19 June 2003. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Bellman-Ford algorithm computes single-source shortest paths in a weighted graph (where some of the edge weights may be negative). Dijkstra's algorithm accomplishes the same problem with a lower running time, but requires edges to be non-negative. Thus, Bellman-Ford is usually used only when there are negative edge weights.

Bellman Ford runs in O(VE) time, where V and E are the number of vertices and edges.

Here is a sample algorithm of Bellman-Ford

BF(G,w,s) // G = Graph, w = weight, s=source
Determine Single Source(G,s)
for i <- 1 to |V(G)| - 1    //|V(G)| Number of Vertices in the graph
   do for each edge in G
       do Relax edge
for each edge in G
   do if Cost of Vertice r > Cost to Vertice r from Vertice u
      return false
return true


Proof of the Algorithm

  • TODO


See also: List of algorithms