Шаг 1. Пусть
– рассматриваемая пометка. Пометим признаками все те вершины, для которых . Для вновь помеченных вершин увеличим на 1.Рассмотрим следующую помеченную вершину, и будем повторять помечивания до тех пор, пока не пометим некоторую вершину
так, чтобы для признака пометки этой вершины выполнялось условие или пока нельзя будет сделать дальнейших пометок. В первом случае перейдем к шагу 2. а во втором к шагу 3.Шаг 2. Строим кратчайший допустимый путь от вершины
. Пусть – пометка вершины, для которой . Перейдём к вершине и рассмотрим пометку вершины,для которой
. Далее перейдем к вершине , с пометкой , для которой . Последовательность и является кратчайшим допустимым путем.Шаг 3. Пусть
– множество помеченных вершин. Рассмотрим все возможные числа при . Определим среди этих чисел наименьшее и возьмем его за новое приближение к длине искомого пути. Затем перейдем к шагу 1.Этот алгоритм можно изменить. Если для некоторой пометки
при всех j, для которых или , то путь соответствующий этой пометке, уже продленво все смежные с вершины. Следовательно, для таких пометок признаки можно стирать.3.3 Метод ветвей и границ (МВГ)
Представим, что необходимо обойти все города страны. Так как их много, то определить кратчайший путь затруднительно. Тогда можно выбрать некоторое разбиение множества городов, например, рассматривать республики, области или районы, и определить кратчайший путь, пересекающий каждое из выбранных подмножеств разбиения только один раз. Затем уже в пределах выбранных подмножеств достроить полученный путь до требуемого. Такой подход используется в методе ветвей и границ. Этот метод позволяет опознать бесперспективные частичные решения, в результате чего от дерева поиска на одном шаге отсекается целая ветвь. Тем не менее, удовлетворительных оценок быстродействию алгоритма Литтла, основанного на этом методе, и родственных алгоритмов нет, хотя практика показывает, что на современных ЭВМ они иногда позволяют решить задачу коммивояжера для графов с количеством вершин, меньшим 100.
Впервые метод ветвей и границ был предложен Лендом и Дойгом в 1960 для решения общей задачи целочисленного линейного программирования. Интерес к этому методу и фактически его «второе рождение» связано с работой Литтла, Мурти, Суини и Кэрела, посвященной задаче коммивояжера. Начиная с этого момента, появилось большое число работ, посвященных методу ветвей и границ и различным его модификациям. Столь большой успех объясняется тем, что авторы первыми обратили внимание на широту возможностей метода, отметили важность использования специфики задачи и сами воспользовались спецификой задачи коммивояжера.
Описание метода ветвей и границ
Пусть х1 – центр куба Х. Вычисляем
и присваиваем это значение рекорду . Разбиваем куб Х 1i со стороной ½ и вычисляем значения целевой функции в их центрах: , i= 1,… 2n, обновляя по ходу вычислений значение рекорда . Проверяем выполнение условия для i=1,…, 2n и отбрасываем соответствующие подкубы. Каждый из оставшихся разбиваем на 2n одинаковых подкубов Х2ij со стороной ¼ и поступаем как прежде. На любом шаге у нас формируется множество К «кубиков» со сторонами 2-l, l>=2, целое. Правило выбора очередного кубика для разбиения называется правилом ветвления – возможные варианты приводятся ниже. Кубики со стороной не больше исключаются из множества К – дробление кубика заканчивается. Также исключаются кубики, попавшие в множество (с индексом k – номером кубика) для текущего значения рекорда, – правило отсечения ветвей. Рекорд обновляется при получении меньшего значения целевой функции (правило получения границ, т.е. оценок). Значения целевой функции вычисляются в центре каждого нового подкубика, включаемого в К после разбиения выбранного для этого кубика. Алгоритм останавливается, когда К пусто.Рис. 2. Граф-дерево
Указанная терминология и название метода определяются тем, что визуально данная схема перебора представляется в виде графа-дерева, корневая вершина которого соответствует кубу Х, вершины первого яруса – подкубам Xli, вершины второго яруса – кубикам X2li, подсоединенным к своим порождающим вершинам Xli-го яруса, и т.д. (см. рис. 2). Если кубик исключается из К, его вершина закрывается – из нее не будут идти ветви на следующий ярус. Порядок закрытия вершины определяется правилом отсечения (своим для каждой массовой задачи), порядок раскрытия – правилом ветвления (своим для каждой индивидуальной задачи). Различают два вида правил ветвления по типу построения дерева решений (выбора вершин для раскрытия): «в ширину», когда сначала раскрываются все вершины одного яруса до перехода к следующему, и в «глубину» – всякий раз раскрывается лишь одна (обычно с лучшим значением рекорда) вершина на ярусе до конца ветви. На практике реализуют некоторую смесь, например, первое правило пока хватает машинной памяти (в К не слишком много элементов), затем переключаются на второе. Предпочтительность той или иной стратегии ветвления оценивается каждым вычислителем по-своему, исходя из главной задачи метода ветвей и границ – быстрее получить лучший рекорд, чтобы отсечь больше ветвей. Удачный выбор стратегии ветвления в МВГ (например, на основе имеющейся у вычислителя дополнительной информации или эвристических соображений об объекте) позволяет (хотя и не гарантированно) решать задачи большой размерности.
Отметим, что в худшем случае
– не удается отбросить ни одной точки х – и приходим к полному перебору; т.е. указанная экспоненциальная оценка точна на классе всех липшицевых функций.4. Выбор объекта управления. анализ аспектов его работы
В качестве примера конкретного применения метода может быть предложена прикладная задача, связанная с проблемой размещения и обслуживания оборудования, в которой требуется определить оптимальную траекторию циклического маршрута движения робота-транспортера по траектории цеха с целью периодического обслуживания оборудования.
Для рассмотрения можно представить себе, что робот развозит по цеху некоторый материал, требуемый для работы агрегатов. Предположим, что уже имеется некоторый образец робота, т.е. нет необходимости покупать новый – капитальные затраты отсутствуют. Пусть робот имеет электрический привод и в качестве источника питания – переносные аккумуляторы.
5. Постановка и решение оптимизационной задачи
5.1 Выбор критерия оптимальности
Основным будем считать экономический критерий, т.е. будем стремиться снизить все статьи денежных расходов, связанных с работой данного робота. Отметим, что схема работы робота должна соответствовать технологической схеме работы цеха, т.е. поставка требуемого материала должна осуществляться в поставленные сроки, определяемые видом работ цеха. Условно будем считать это требование удовлетворенным.