Algorytm Bellmana-Forda rozwiązuje problem najkrótszej ścieżki, tj. pozwala znaleźć ścieżkę o najmniejszej wadze pomiędzy dwoma wierzchołkami w graf ważonym. Idea algorytmu opiera się na metodzie relaksacji (dokładniej następuje relaksacja \[V-1 \] razy każdej z krawędzi).
W odróznieniu od algorytmu Dijkstry, poprawność algorytmu Ballmana-Forda nie opiera się na założeniu, że wagi w grafie są nieujemne.

Zapis w pseudokodzie

Dla grafu G, funkcji wagowej w i wierzchołka s otrzymamy tablicę d[1] odległości każdego wierzchołka grafu od wierzchołka s.
Bellman-Ford(''G'',''w'',''s''):


'''dla każdego''' wierzchołka v w V[G] '''wykonaj'''

  d[v] = nieskończone

  poprzednik[v] = niezdefiniowane

d[s] = 0

'''dla''' i '''od''' 1 '''do''' |V[G]| - 1 '''wykonaj'''

  '''dla każdej''' krawędzi (u,v) w E[G] '''wykonaj'''

    '''jeżeli''' d[v] > d[u] + w(u,v) '''to'''

      d[v] = d[u] + w(u,v)

      poprzednik[v] = u


Publikacja wraz ze zdjęciami jest udostępniona w Encyklopedii "Zgapedia" części portalu zgapa.pl. Treść objęta jest licencją GNU FDL Wolnej Dokumentacji w wersji 1.3 lub dowolnej pózniejszej opublikowanej przez Free Software Foundation i została ona opracowana na podstawie Wikipedii, tutaj możesz znaleźć artykuł źródłowy oraz autorów. Warunki użytkowania Encyklopedii znajdziesz na tej stronie.