Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОТС / Часть1 / 13. Расскажите об алгоритме нахождения кратчайшего пути между двумя вершинами графа..doc
Скачиваний:
90
Добавлен:
22.03.2015
Размер:
568.32 Кб
Скачать

Общее описание

Общая идея метода может быть описана на примере поиска минимума и максимума функции f(x) на множестве допустимых значений x. Функция f и x могут быть произвольной природы. Для метода ветвей и границ необходимы две процедуры: ветвление и нахождение оценок (границ).

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

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

В основе метода ветвей и границ лежит следующая идея (для задачи минимизации): если нижняя граница для подобласти A дерева поиска больше, чем верхняя граница какой-либо ранее просмотренной подобласти B, то A может быть исключена из дальнейшего рассмотрения (правило отсева). Обычно, минимальную из полученных верхних оценок записывают в глобальную переменную m; любой узел дерева поиска, нижняя граница которого больше значения m, может быть исключен из дальнейшего рассмотрения.

Если нижняя граница для узла дерева совпадает с верхней границей, то это значение является минимумом функции и достигается на соответствующей подобласти.

Алгоритм Дейкстра

Опишем метод решения задачи о кратчайшем пути на взвешенном графе. Пусть задан неориентированный граф , вершины которого перенумерованы индексом .

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

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

Дальнейшая работа алгоритма осуществляется по шагам . На каждом шаге осуществляется преобразование некоторых пробных меток в постоянные.

Шаг 1. Всем смежным с  вершинам  приписываем новую пробную метку  и среди всех новых меток  выбираем минимальную. Пусть это будет . Тогда минимальная пробная метка  объявляется постоянной, т.е.  и следует перейти к следующему шагу 2.

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

Шаг . Всем вершинам  с пробными метками  приписываем новые пробные метки

и выбираем среди них минимальную. Пусть это будет . Тогда пробную метку оставляем постоянной, т.е. , и переходим к шагу .

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

Трудоемкость, т.е. вычислительная сложность алгоритма Дейкстра составляет  элементарных операций.

На конкретном примере алгоритма Дейкстры покажем, что этот инструмент классической дискретной оптимизации (задачи с данными в виде действительных чисел) в определенной степени применим к задаче с интервальными весами. Пусть ребра  данного графа  взвешены интервалами, т.е. отрезками . В этом случае на множестве допустимых решений  целевая функция (3.1) принимает также интервальные значения, то есть, если , то

 ,(3.2)

где

 .(3.3)

В многокритериальных задачах множество допустимых решений делится на две части: паретовское множество (ПМ)  и множество доминируемых решений (), т.е. решений, качество которых можно улучшить хотя бы по одному критерию, в силу чего множество () не содержит оптимумов.

Парето-оптимальные решения являются векторно-несравнимыми в том смысле, что в общем случае среди них отсутствуют элементы, удовлетворяющие понятию «оптимум». Вместе с тем, в смысле теории выбора и принятия решений, «наилучшее» решение выбирается из . Поэтому, в общем случае, термин «решение экстремальной задачи с интервальными данными» подразумевает нахождение ПМ . Нахождение ПМ  иногда обусловлено непреодолимыми вычислительными трудностями. Отсюда возникает важный вопрос о практически реализуемых (т.е. малотрудоёмких) методах вычисления априорных оценок  значений интервальной целевой функции (3.2)-(3.3) на неизвестном «наилучшем» решении . Позитивный конструктивный ответ на этот вопрос можно получить с помощью алгоритма Дийкстры следующим образом.

Для заданного графа с интервальными весами рассмотрим два случая нового взвешивания: если ребро  имеет интервальный вес , то в первом (втором) случае интервал  заменяем на нижнее (верхнее) значение  (). С помощью алгоритма Дейкстры для первого (второго) случая находим кратчайший путь  длины  ( длины ). Тогда в обозначениях (3.2)-(3.3) для всякого паретовского оптимума, выбираемого в качестве «наилучшего» решения, являются справедливыми следующие оценки (значения) интервальной целевой функции :

 .(3.4)

Нетривиальность оценок (3.4) состоит в том, что, вообще говоря, являются несовпадающими пути  и . Более того, если эти пути состоят из дуг, составляющих соответственно множества  и , то может быть пустым каждое их попарное пересечение: .

Наряду с оценками (3.4) с помощью алгоритма Дейкстры представляется возможным ценою полиномиальной вычислительной сложности находить подмножество  представителей ПМ. Для этого достаточно использовать множество векторов , (например ) и применить алгоритм Дийкстры к исходному n-вершинному графу, ребра которого последовательно взвешиваются свёрткой вида

 .(3.5)

Согласно соответствующее r-ому значению свёртки (3.5) решение  является паретооптимальным, в силу чего множество  является подмножеством ПМ . Вычислительная сложность нахождения  является полиномиальной, если , где  – константа.