1.3 МЕТОДЫ ВЕТВЕЙ И ГРАНИЦ
1.3.1 Схема метода ветвей и границ
1) Итераций K0 . Для расширенной ОДР X (0) полученной из исходной X исключением части ограничений определяется максимальное значение целевой функции задачи: f ( x) max, x X (1). Обозначим максимальное значение f ( x) f ( x0 ) . Это значение одновременно является верхней границей функции цели на исходном множестве допустимых планов: M( X) f ( x0 ), x0 X (0) (2). Если при этом план x(0) удовлетворяет исходному множеству допустимых планов x(0) X , то процесс решения задачи (1) закончен и x(0) - искомое решение. 2) K1,2,... В соответствии с выбранным способом, отвечающим специфике задачи (1) производится разбиение перспективного подмножества допустимых планов (для K 1 такое подмножество одно, это X (0) ) на непересекающиеся подмножества: Xr( k) , r 0,..., rk : Xt( k) Xsr( k) (3)r -индекс подмножества, s - идентификатор множества предыдущего шага.
Причем известно, что в Xs0 оптимальных решений нет.
Помня, что в формуле (3) должен быть двойной индекс для дальнейшего упрощения изложения опустим его.
Тогда оценки M( xr( k) ), r 1, k ищутся как максимумы целевой функции на подмножествах Xr( k) , r 1, rk . Если план xl( k) , приносящий максимум f ( x) на некотором подмножестве Xl( k) одновременно удовлетворяет исходной системе ограничений xl( k) X и является решением на итерации K , то этот план является претендентом на решение исходной задачи.3) В процессе решения задачи подмножество X0 увеличивается за счет включения в него Xt( k) в следующих случаях:
а) если в результате сравнения оценок на разбиениях внутри итерации K хотя бы для одного подмноже-
ства Xr( k) максимум f ( x) на подмножестве Xt( k) меньше максимума f ( x) на подмножестве Xr( k) : X t( k) X 0 : M( Xt( k) ) M( Xr( k) ), t, r R( k) , где R( k) - подмножество индексов разбиений на итерации K . б) если в результате сравнения оценок между итерациями K, P, KP хотя бы для одной итерации Pнайдется такое подмножество Xl( p), что максимум f ( x) на подмножестве Xt( k) меньше максимума f ( x) на подмножестве Xl( p) , т.е. Xtk X 0 : M( Xl( p) ) M( Xtk ), t R( k) , l R( p) , p k 1,...,1Ветви, включенные в X0 являются тупиковыми.
4) Решением задачи (1) является лучшее из решений-претендентов; если в результате разбиения последнее подмножества процесса решения оказалось пустым и решений-претендентов нет, то исходная задача (1) целочисленных решений не имеет.
Процесс решения задачи (1) с использованием методов ветвей и границ иллюстрируется так называемым деревом ветвлений.
Для реализации описанной выше схемы в виде конкретного алгоритма необходимо указать:
- способ расширения ОДР;
- правило ветвления (разбиения на подмножества); - правило вычисления границ (оценок).
1.3.2. Алгоритм Лэнда и Дойга
Алгоритм применяется для решения частично целочисленных задач. Конкретизация алгоритма в соответствии с схемой метода ветвей и границ следующая:
1) способ расширения ОДР.
В качестве расширения X (0) исходной области ограничений X используют область ограничений ЗЛП, соответствующая исходной ЗЦП. 2) правило ветвления.
Пусть Xs( k1) - перспективное подмножества шага k 1 . Разбиение его на подмножества Xsr( k) , r 1, rk производится по правилам:-
из плана xs( k 1) выбирается нецелочисленная компонента x*j ;-
из ОДР, соответствующей этому плану xs( k 1) исключается значения x*j , лежащие в промежутке: ([ x* j ];[ x* j ] 1) . Таким образом, при разбиении Xs( k 1) получаем два подмножества X1( k) , X2( k) , где:X1( k) { x1( k) : x1( k) X s( k 1) , x j [ x* j ]},
. (4) X 2( k) { x2( k) : x2( k) X s( k 1) , x j [ x* j ] 1}Если оценки на некоторых подмножествах предыдущего шага одинаковы, то просматриваются все эти ветви с целью получения альтернативного решения. 3) Правило вычисления границ (оценок).
Способ разбиения множеств на подмножество на каждом шаге K0 генерирует две ЗЛП с целевыми функциями исходной задачи (1) и ОДР X1( k), X2( k) . Границами M( X1( k)), M( X2( k)) являются максимальные значения исходной целевой функции на соответствующих ОДР f ( xr( k) ), r 1, rk . Примечание 1. Если коэффициенты функции цели при переменных, на которые накладываются условия целочисленности целые, а при остальных равны нулю, то оценку можно усилить: Zr( k ) ] f ( xr( k) )[, r 1, rk . Здесь ] [ - наименьшее целое, не меньшее .Примечание 2. При построении дерева ветвлений можно следовать по ветвям, приводящим к скорейшему получению 1-го претендента по решению исходной задачи – схема одностороннего обхода дерева. Ветви, не включенные в обход называются оборванными; их оценка вычисляется после первого рекорда. По другой схеме просматриваются и производятся ветвления одновременно по всем подмножествам итерации K .
Первый способ ветвления предпочтительнее, т.к. он нагляднее в интерпретации и экономичнее при программировании метода.
В вычислительном аспекте алгоритм Л. и Д. сводится к решению серий ЗЛП. Конечность алгоритма обеспечивается тем, что исходное множество дополнительных планов ограничено.
Альтернативные решения ищутся в том случае, если в условии задачи его требовалось найти.
1.3.3 Алгоритм Литтла
Алгоритм Литтла укладывается в схему методов ветвей и границ и предназначен для решения прикладных задач ЦП специальной структуры.
Классической постановкой такой задачи является задача о коммивояжере, алгоритм решения которой в терминах теории графов можно сформулировать так:
Среди множества допустимых гамильтоновых контуров (ГК) выбрать контур минимальной длины. Алгоритм Литтла реализует схему направленного частичного перебора вариантов ГК. Конечность алгоритма следует из конечного числа ГК в допустимой области рассматриваемой задачи.