Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

сиаод / 35-66 / 62. Нахождение кратчайших путей в графе. Алгоритм Форда – Беллмана

.pdf
Скачиваний:
71
Добавлен:
11.05.2015
Размер:
252.3 Кб
Скачать

62. Нахождение кратчайших путей в графе. Алгоритм Форда – Беллмана

Алгоритм Форда-Беллмана.O(n3) При данной матрице весов дуг a[u, v], u, ve V, вычисляем некоторые верхние ограничения d[v] на расстояния от вершины s до всех v е V.

Каждый раз, когда окажется, что D[u]+a[u, v]<D[v] (1), оценку D[v] улучшаем: D[v] := D[u]+a[u, v]. Процесс прерывается, когда дальнейшее улучшение ни одного из ограничений невозможно. Легко показать, что значение каждой из переменных D[v] в этом случае равно кратчайшему пути от s к v.

Таким образом для вычисления расстояния от s до t мы находим расстояние от s до всех вершин графа.

Алгоритм Belman-Ford(G,A,S,t)

1.for each vV do d[v]

2.d[S]<- 0;

3.for k=1 to n-1 do

4.for each v V-{S} do

5.for each w V do if d[v]>d[w]+a[w,v] then d[v] d[w]+a[w,v]

6.end for;

7.end for;

8.end for.