Общее описание
Общая идея метода может быть описана на примере поиска минимума и максимума функции 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) решение является паретооптимальным, в силу чего множество , является подмножеством ПМ . Вычислительная сложность нахождения является полиномиальной, если , где – константа.