Описание алгоритма Форда-Белмана

Алгоритм Ф.-Б. служит для поиска длин кратчайших путей от одной вершины до всех остальных в графах с весами ребер (в том числе алгоритм правильно работает если есть ребра отрицательного веса).

Для работы алгоритма понадобится массив B расстояний от начальной вершины до всех вершин. В начале расстояние до исходной вершины 0, до остальных - бесконечность.

Описание алгоритма:

N раз (где N - количество вершин графа) повторяем следующий шаг:

Обоснование. После того, как мы выполним первый шаг алгоритма, мы найдем длины путей, которые проходят не более, чем по одному ребру. На втором шаге мы попытаемся к этим путям добавить еще по одному ребру, т.е. найдем кратчайшие пути не более, чем из 2-х ребер. И так далее, после N-ого шага мы получим длины путей, состоящих не более, чем из N ребер.