Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000478.doc
Скачиваний:
42
Добавлен:
30.04.2022
Размер:
6.21 Mб
Скачать
  1. Алгоритм нахождения максимального пути

.

Для нахождения максимального пути граф G (сеть) должен быть ациклическим, ибо в противном случае может оказаться, что длины некоторых путей не ограничены сверху. Если Gn – ациклический граф, то для любых двух его вершин выполняется одно из трёх условий:

  1. хi предшествует хj,

  2. хi следует за хj,

  3. нет пути между хi и хj.

1-ое и 2-ое условия одновременно не выполнимы из-за требуемой ацикличности графа.

Перед вычислением максимального пути в орграфе необходимо упорядочить вершины графа по алгоритму Фалкерсона. Сам алгоритм вычисления максимального пути чисто перечислительный. Он перебирает все возможные пути от текущей вершины до всех последующих, достижимых из текущей вершины.

Пусть dj – длина максимального пути от вершины х1 до вершины хj, тогда удовлетворяет следующим рекуррентным соотношениям:

(*)

Соотношения (*) позволяют легко вычислить длины максимальных путей от S = х1 до вершин, достижимых из вершины S. Сами пути могут быть построены методом последовательного возвращения (2-ой этап в алгоритме Дейкстры).

Пример. Граф (сеть, рис. 34) задан весовой матрицей Ω:

Рис. 36

Найти длину максимального пути из вершины х1 в х6 и сам этот путь.

Решение. Этот граф ациклический, поэтому возможно упорядочение его вершин по алгоритму Фалкерсона. Сделаем это графическим способом, переобозначив 2 вершины: х4 назовём , а и применим рекуррентные формулы (*).

Р ис. 37

Этап 1.

Итак, длина максимального пути из х1 в х6 равна 30.

Этап 2.

- включаем дугу (x5, x6) в максимальный путь,

- включаем дугу ( , x5) в максимальный путь,

- включаем дугу ( , ) в максимальный путь,

- включаем дугу (x2, ) в максимальный путь,

- включаем дугу (x1, x2) в максимальный путь.

Итак, искомый путь таков: (x1,x2)- (x2, ) - ( , )-

- ( ,x5) - (x5,x6) или в первоначальных обозначениях

(x1, x2) - (x2, x4) - (x4, x3) - (x3, x5) - (x5, x6).

4. Особенности алгоритмов теории графов

  1. Каждый алгоритм состоит из совокупности конечного числа правил и предписаний. Действия над графами (матрицей), производимые в соответствии с правилами, должны быть достаточно просты.

  2. Алгоритм применяется в дискретном времени, правила алгоритма – по шагам, число шагов конечно.

  3. Какое из правил будет применено на данном шаге или какое действие будет совершено в соответствии с некоторым правилом, зависит только от результатов предыдущих шагов.

  4. Алгоритмы обладают свойством локальности: действие в соответствии с правилами или установление непротиворечивости некоторого действия правилам алгоритма происходит на основе анализа дуг, инцидентных данной вершине, или вершин, смежных с данной.

  5. Алгоритмы обладают свойством массовости: применяются либо для всех, либо для некоторого бесконечного множества графов.

Вопросы для повторения.

  1. Нахождение кратчайших путей с помощью алгоритма Дейкстры.

  2. Нахождение кратчайших путей с помощью алгоритма Беллмана-Мура.

  3. Алгоритм нахождения максимального пути.

  4. Особенности алгоритмов теории графов.