ЭмблемаGraphTheory

Теория графов. Определения. Алгоритмы. Исходники
Главная
Общие сведения
Глоссарий
Алгоритмы
Программы
Литература
Ссылки
Гостевая книга
Связь

Алгоритмы\Алгоритм Форда-Беллмана

Кратчайшие пути из одной вершины во все вершины графа. Алгоритм Форда-Беллмана

Итак, дан граф G=(V,E), каждому ребру [i,j] которого присвоен вес C[i,j] (если ребро [i,j] не существует, то C[i,j]=∞). Требуется найти кратчайшие пути от вершины v до всех вершин графа.
Обозначим через Distk[u] наименьшую длину пути из v в u, проходящего менее чем через k вершин, тогда

Dist0[u]=C[v,u]
Distk+1[v]=min(Distk[v],min(Distk[i]+C[i,v]) для всех i=1..n)

Distn - массив искомых расстояний. Сложность этого алгоритма O(n3), но время можно сократить до O(n2), если все веса C[i,j] неотрицательны (см. алгоритм Дейкстры).

Скачать исходник (Pascal)

| Главная | Общие сведения | Глоссарий | Алгоритмы | Программы | Литература | Ссылки |

© JlC, 2005

Hosted by uCoz