 
                                 
					
Дискретная оптимизация и моделирование в условиях неопределенности данных
Перепелица В. А., Тебуева Ф. Б.,
Алгоритм нахождения кратчайшего пути (кратчайшей цепи) входит в качестве отдельного этапа подзадачи во многие вычислительные схемы оптимизации для экстремальных задач на графах. Поэтому в литературе по этому вопросу можно найти описания алгоритмов, принадлежащих различным авторам: Беллман, Дийкста, Форд и Фалкерсон, Данциг, Ен и др. Мы приведем описание алгоритма «приписывания меток», который состоит из двух этапов. На первом этапе последовательно приписываются метки вершинам исходного графа до тех пор, пока не будет помечена искомая вершина. На втором этапе по приписанным меткам восстанавливается искомый путь.
Пусть задан граф, у которого дуги (рёбра) не взвешены и вершины пронумерованы индексом  . Требуется найти кратчайший путь из вершины
. Требуется найти кратчайший путь из вершины  в вершину
 в вершину  , т.е. путь
, т.е. путь  , состоящий из наименьшего числа дуг. Через
, состоящий из наименьшего числа дуг. Через  обозначим множество всех вершин, в которые исходят дуги из вершины
 обозначим множество всех вершин, в которые исходят дуги из вершины  .
.
Этап 1. На нулевом шаге вершине  приписываем метку
 приписываем метку  . На первом шаге всем вершинам
. На первом шаге всем вершинам  приписываем метки
 приписываем метки  . На каждом последующем шаге
. На каждом последующем шаге  действуем следующим образом: если вершина
 действуем следующим образом: если вершина  помечена меткой
 помечена меткой  , то всем еще непомеченным вершинам
, то всем еще непомеченным вершинам  приписываем метку
 приписываем метку  . Этап 1 заканчивается на некотором шаге
. Этап 1 заканчивается на некотором шаге  , как только вершина
, как только вершина  окажется отмеченной меткой
 окажется отмеченной меткой  .
.
Этап 2. Коль вершина  помечена меткой
 помечена меткой  , то кратчайший путь
, то кратчайший путь  состоит из
 состоит из  дуг, причем, у каждой из этих дуг
 дуг, причем, у каждой из этих дуг  метка начала
 метка начала  на единицу меньше метки конца
 на единицу меньше метки конца  :
:  . Тогда для нахождения
. Тогда для нахождения  достаточно проследовать от вершины
 достаточно проследовать от вершины  к вершине
 к вершине  с меткой
 с меткой  , от вершины
, от вершины  к вершине
 к вершине  с меткой
 с меткой  и т.д., пока не дойдем до вершины
 и т.д., пока не дойдем до вершины  . Если вершин с одинаковой меткой несколько, то выбирается любая.
. Если вершин с одинаковой меткой несколько, то выбирается любая.
Опишем метод решения задачи о кратчайшем пути на взвешенном графе. Пусть задан неориентированный граф  , вершины которого перенумерованы индексом
, вершины которого перенумерованы индексом  .
.
Требуется в графе  выделить кратчайшую цепь
 выделить кратчайшую цепь  , соединяющую вершину
, соединяющую вершину  с вершиной
 с вершиной  . Одним из наиболее экономных алгоритмов решения этой задачи принадлежит Дийкстра. Приведем описание этого алгоритма, работа которого состоит из действий двух видов. Сначала всем вершинам
. Одним из наиболее экономных алгоритмов решения этой задачи принадлежит Дийкстра. Приведем описание этого алгоритма, работа которого состоит из действий двух видов. Сначала всем вершинам  графа
 графа  приписываются пробные метки
 приписываются пробные метки  . Затем пробные метки заменяются на постоянные метки
. Затем пробные метки заменяются на постоянные метки  , где
, где  – длина кратчайшей цепи от
 – длина кратчайшей цепи от  к
 к  . Преобразование пробных меток в постоянные заканчивается, как только пробная метка
. Преобразование пробных меток в постоянные заканчивается, как только пробная метка  у вершины
 у вершины  будет заменена на постоянную
 будет заменена на постоянную  . После этого искомый путь
. После этого искомый путь  выделяется обратным ходом от
 выделяется обратным ходом от  к
 к  .
.
Начало работы алгоритма: вершине  приписывается метка
 приписывается метка  , а всем остальным вершинам
, а всем остальным вершинам  графа
 графа  приписывается пробная метка
 приписывается пробная метка  ,
,  . При этом для каждой пары вершин
. При этом для каждой пары вершин  ,
,  определяется величина
 определяется величина  следующим образом:
 следующим образом:  , если ребро
, если ребро  , и значение
, и значение  в противном случае.
 в противном случае.
Дальнейшая работа алгоритма осуществляется по шагам  . На каждом шаге осуществляется преобразование некоторых пробных меток в постоянные.
. На каждом шаге осуществляется преобразование некоторых пробных меток в постоянные.
Шаг 1. Всем смежным с  вершинам
 вершинам  приписываем новую пробную метку
 приписываем новую пробную метку  и среди всех новых меток
 и среди всех новых меток  выбираем минимальную. Пусть это будет
 выбираем минимальную. Пусть это будет  . Тогда минимальная пробная метка
. Тогда минимальная пробная метка  объявляется постоянной, т.е.
 объявляется постоянной, т.е.  и следует перейти к следующему шагу 2.
 и следует перейти к следующему шагу 2.
В дальнейшем через  будем обозначать множество вершин
 будем обозначать множество вершин  ,
,  , каждая из которых после реализации шага
, каждая из которых после реализации шага  уже имеет постоянную метку
 уже имеет постоянную метку  .
.
Шаг  ,
,  . Всем вершинам
. Всем вершинам  с пробными метками
 с пробными метками  приписываем новые пробные метки
 приписываем новые пробные метки

и выбираем среди них минимальную. Пусть это будет  . Тогда пробную метку оставляем постоянной, т.е.
. Тогда пробную метку оставляем постоянной, т.е.  , и переходим к шагу
, и переходим к шагу  .
.
На некотором шаге  вершина
 вершина  получит постоянную метку
 получит постоянную метку  . Это означает, что длина кратчайшей цепи в данном графе
. Это означает, что длина кратчайшей цепи в данном графе  от вершины
 от вершины  к вершине
 к вершине  равна
 равна  . Искомая кратчайшая цепь
. Искомая кратчайшая цепь  находится движением от
 находится движением от  к
 к  по таким ребрам
 по таким ребрам  , что
, что  . Эти ребра и составляют искомую кратчайшую цепь
. Эти ребра и составляют искомую кратчайшую цепь  .
.
Трудоемкость, т.е. вычислительная сложность алгоритма Дийкстра составляет  элементарных операций.
 элементарных операций.
На конкретном примере алгоритма Дийкстры покажем, что этот инструмент классической дискретной оптимизации (задачи с данными в виде действительных чисел) в определенной степени применим к задаче с интервальными весами [7]. Пусть ребра  данного графа
 данного графа  взвешены интервалами, т.е. отрезками
 взвешены интервалами, т.е. отрезками  ,
,  . В этом случае на множестве допустимых решений
. В этом случае на множестве допустимых решений  целевая функция (3.1) принимает также интервальные значения, то есть, если
 целевая функция (3.1) принимает также интервальные значения, то есть, если  ,
,  ,
,  , то
, то
  ,(3.2)
,(3.2)
где
  ,
,  ,
,  .(3.3)
.(3.3)
В главе 5 мы покажем, что в этом случае для экстремальных задач на графах «оптимальные» допустимые решения, вообще говоря, отсутствуют, т.к. всякая экстремальная задача на графе с интервальными весами эквивалентна (т.е. взаимосводима) к определенной 2-критериальной задаче [7]. В многокритериальных задачах множество допустимых решений делится на две части: паретовское множество (ПМ)  [74] и множество доминируемых решений (
 [74] и множество доминируемых решений ( ), т.е. решений, качество которых можно улучшить хотя бы по одному критерию, в силу чего множество (
), т.е. решений, качество которых можно улучшить хотя бы по одному критерию, в силу чего множество ( ) не содержит оптимумов.
) не содержит оптимумов.
Парето-оптимальные решения являются векторно-несравнимыми в том смысле, что в общем случае среди них отсутствуют элементы, удовлетворяющие понятию «оптимум». Вместе с тем, в смысле теории выбора и принятия решений [49], [92] «наилучшее» решение выбирается из  . Поэтому, в общем случае, термин «решение экстремальной задачи с интервальными данными» подразумевает нахождение ПМ
. Поэтому, в общем случае, термин «решение экстремальной задачи с интервальными данными» подразумевает нахождение ПМ  . Нахождение ПМ
. Нахождение ПМ  иногда обусловлено непреодолимыми вычислительными трудностями [30]. Отсюда возникает важный вопрос о практически реализуемых (т.е. малотрудоёмких) методах вычисления априорных оценок  значений интервальной целевой функции (3.2)-(3.3) на неизвестном «наилучшем» решении
 иногда обусловлено непреодолимыми вычислительными трудностями [30]. Отсюда возникает важный вопрос о практически реализуемых (т.е. малотрудоёмких) методах вычисления априорных оценок  значений интервальной целевой функции (3.2)-(3.3) на неизвестном «наилучшем» решении  . Позитивный конструктивный ответ на этот вопрос можно получить с помощью алгоритма Дийкстры следующим образом.
. Позитивный конструктивный ответ на этот вопрос можно получить с помощью алгоритма Дийкстры следующим образом.
Для заданного графа с интервальными весами рассмотрим два случая нового взвешивания: если ребро  имеет интервальный вес
 имеет интервальный вес  , то в первом (втором) случае интервал
, то в первом (втором) случае интервал  заменяем на нижнее (верхнее) значение
 заменяем на нижнее (верхнее) значение  (
 ( ). С помощью алгоритма Дийкстры для первого (второго) случая находим кратчайший путь
). С помощью алгоритма Дийкстры для первого (второго) случая находим кратчайший путь  длины
 длины  (
 ( длины
 длины  ). Тогда в обозначениях (3.2)-(3.3) для всякого паретовского оптимума
). Тогда в обозначениях (3.2)-(3.3) для всякого паретовского оптимума , выбираемого в качестве «наилучшего» решения, являются справедливыми следующие оценки (значения) интервальной целевой функции
, выбираемого в качестве «наилучшего» решения, являются справедливыми следующие оценки (значения) интервальной целевой функции  :
:
  .(3.4)
.(3.4)
Нетривиальность оценок (3.4) состоит в том, что, вообще говоря, являются несовпадающими пути  ,
,  и
 и  . Более того, если эти пути состоят из дуг, составляющих соответственно множества
. Более того, если эти пути состоят из дуг, составляющих соответственно множества  ,
,  и
 и  , то может быть пустым каждое их попарное пересечение:
, то может быть пустым каждое их попарное пересечение:  ,
,  ,
,  .
.
Наряду с оценками (3.4) с помощью алгоритма Дийкстры представляется возможным ценою полиномиальной вычислительной сложности находить подмножество  представителей ПМ. Для этого достаточно использовать множество векторов
 представителей ПМ. Для этого достаточно использовать множество векторов  ,
, (например
 (например  ,
,  ,
,  ) и применить алгоритм Дийкстры к исходному n-вершинному графу, ребра которого последовательно взвешиваются свёрткой вида
) и применить алгоритм Дийкстры к исходному n-вершинному графу, ребра которого последовательно взвешиваются свёрткой вида
  ,
,  .(3.5)
.(3.5)
Согласно [74] соответствующее r-ому значению свёртки (3.5) решение  является паретооптимальным, в силу чего множество
 является паретооптимальным, в силу чего множество  ,
,  является подмножеством ПМ
 является подмножеством ПМ  . Вычислительная сложность нахождения
. Вычислительная сложность нахождения  является полиномиальной, если
 является полиномиальной, если  , где
, где  – константа.
 – константа.
Примечание 3.1. На примере представленного выше применения алгоритма Дийкстры для получения оценок вида (3.4), а также нахождения «подмножеств представителей» вида  паретовского множества
 паретовского множества  продемонстрирован достаточно общий подход к использованию алгоритмов классической дискретной оптимизации для решения задач с интервальными исходными данными.
 продемонстрирован достаточно общий подход к использованию алгоритмов классической дискретной оптимизации для решения задач с интервальными исходными данными.