Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Bellmanford Algorithm
BellmanFord algorithm is an algorithm that solves the shortest path from a single source vertex to all of the
other vertices in a weighted digraph.
BellmanFord algorithm returns a boolean value indicating whether or not there is a negativeweight cycle that is
reachable from the source. If there is such a cycle, the algorithm indicates that no solution exists. If there is no
such cycle, the algorithm produces the shortest paths and their weights.
This algorithm returns TRUE if and only if the graph contains no negativeweight cycles that are reachable from
the source.
Bellmanford Algorithm
BELLMANFORD(G,w,s)
1INITIALIZESINGLESOURCE(G,s)
2fori1to|V[G]|1
3 doforeachedge(u,v) E[G]
4 doRELAX(u,v,w)
5foreachedge(u,v) E[G]
6 doifd[v]>d[u]+w(u,v)
7 thenreturnFALSE
8returnTRUE
Example
http://scanftree.com/Data_Structure/bellmanfordalgorithm 1/6
6/6/2017 BellmanfordAlgorithm
Step2
Distance From A AA B B
Step3
Step4
Distance 0 6 7 4 2
Distance FromA AA C B
Step5
Step6
http://scanftree.com/Data_Structure/bellmanfordalgorithm 4/6
6/6/2017 BellmanfordAlgorithm
Distance From AD A C B
Step7
E 2
http://scanftree.com/Data_Structure/bellmanfordalgorithm 6/6