-. , :
https://class.coursera.org/algo2-2012-001/lecture/preview
Bellman-Ford :
, , s t, s t, 1 , .
k, k , s t
, k:
d [k] [t] - s a node t, k . :
d[ k ][ t ] = min{
d[k - 1][ t ], # Case 2
for all edges (u, t) in graph min d[k - 1][ u ] + c[ u ][ t ] # Case 1
}
min {.,.} s u t c [u] [t], u t, k .
, :
d[s][0] = 0 # The cost from s to itself requiring zero edges is 0.
d[u][0] = INFINITY for all other nodes other than s (i.e. you cannot reach them with no edges).
Let n = number of nodes in graph
for k = 1 to n - 1: # Allow one more edge in path in each iteration
for every edge (u, v) in edges of graph: # Check whether can get a better cost to v using k edges by going through node u or k - 1 edges is enough.
d[ v ][ k ] = min{ d[k - 1][ v ], d[k - 1][ u ] + c[ u ][ v ] }
1 , , . 1 n - 1, n - . , n - 1, , , , (n - 1) (.. n , s t, n - 1 ).
2 , node , k - 1 PLUS node node , , .
, ( wiki), . , n - 1 . . , , 1 , , . , .
. , , .