Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Предполагается, что ориентированный граф не содержит контуров отрицательной длины



Алгоритм 3.1 (Алгоритм Форда – Беллмана). Основными вычисляемыми величинами этого алгоритма являются величины j (k), где i = 1, 2, …, n (n – число вершин графа); k = 1, 2, …, n – 1. Для фиксированных i и k величина j (k) равна длине минимального пути, ведущего из заданной начальной вершины х 1 в вершину хi и содержащего не более k дуг.

Шаг 1. Установка начальных условий. Ввести число вершин графа n и матрицу весов C = (cij).

Шаг 2. Положить k = 0. Положить i (0) = ¥ для всех вершин, кроме х 1; положить 1(0) = 0.

Шаг 3. В цикле по k, k = 1,..., n – 1, каждой вершине xi на k -ом шаге приписать индекс i (k) по следу­ющему правилу

: i (k) = { j (k – 1) + cji } для всех вершин, кроме х 1, положить 1(k) = 0.

В результате работы алгоритма формируется таблица индексов i (k), i = 1, 2, …, n, k = 0, 1, 2, …, n – 1. При этом i (k) определяет длину минимального пути из первой вершины в i -ую, содержащего не более k дуг. 5. Восстановление минимального пути. Для любой вершины xs предшествующая ей вершина xr определяется из соотношения: r (n – 2) + crs = s (n – 1), xr Î G- 1(xs), где G- 1(xs) - прообраз вершины xs. Для найденной вершины xr предшествующая ей вершина xq определяется из соотношения: q (n – 3) + cqr = r (n – 2), xq Î G- 1(xr), где G- 1(xr) - прообраз вершины xr, и т. д.

Последовательно применяя это соотношение, начиная от последней вершины xi, найдем минимальный путь.






Дата публикования: 2014-12-08; Прочитано: 405 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...