Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2701

.pdf
Скачиваний:
1
Добавлен:
15.11.2022
Размер:
2.09 Mб
Скачать

или

1

+

1

+

1

≥ 0

 

 

 

2

 

4 x3 + x44 ≥ 3.

(4.18)

Подставляя в (4.18) значение х3, полученное из равенства (4.15), и x4- из равенства (4.16), для дополнительного линейного ограничения получаем неравенство2x1 + x2 ≤ 3.

Текущая расширенная задача ЛП будет иметь теперь следующий вид:

min {–21х1 – 11x2}

 

при условии, что

 

7x1 + 4x2 + x3 = 13;

 

x1 + x4 = l;

(4.19)

2x1 + x2 + x5 = 13;

 

xj ≥ 0, = 1,5.

 

Оптимальное решение х (D3, с) = (0, 3, 1, 1, 0) является целочисленным решением. Следовательно, оптимальным решением исходной задачи ЦЛП (4.5) является вектор ц = (0,3), для которого максимальное значение линейной формы равно 33.

4.2. Вычислительная схема метода ветвей и границ

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

101

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

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

Для задачи параметрической оптимизации

задачи вида:

max ( )

 

(4.20)

подзадачами( ).

 

(4.21)

будем называтьmax

,где

 

Релаксация задачи (подзадачи) — переход к задаче с той же целевой функцией, но с некоторой допустимой областью D’ включающей исходную допустимую область решений D в качестве подмножества (область D’ может и не быть дискретной, например, для задачи ЦЛП релаксацией является отказ от условий целочисленности). Исходная задача параметрической оптимизации должна быть связана со своей релаксацией следующими свойствами:

- если область допустимых решений D исходной для релаксации подзадачи непуста, то max ( ) ≥

max ( );

- если релаксация задачи не имеет решения, то не имеет решения и исходная задача;

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

102

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

Кандидат - подзадача, подлежащая ветвлению. Потомок (для исходной задачи или подзадачи) - подза-

дача, полученная в результате ветвления кандидата. Исходная для потомка задача или подзадача именуется его предком: (Отметим, что, говоря о потомках, мы имеем в виду непосредственных потомков, говоря о предках, имеем в виду непосредственно предков).

Зондирование кандидата - отыскание оптимального решения для релаксации задачи-кандидата.

При реализации метода ветвей и границ строится дерево вариантов, корень которого соответствует задаче (4.20), а остальные вершины - ее подзадачам. Две вершины дерева соединяются ребром, если они связаны отношением "предокпотомок". В процессе построения дерева вариантов вершины, соответствующие подзадачам, для которых пока не производилось ветвление, будем называть текущими финальными вершинами. Текущие финальные вершины, в которых дальнейшее ветвление невозможно или нецелесообразно, будем называть заключительными вершинами.

Предположим, что каждой вершине t дерева вариантов соответствует подзадача k(t). В процессе построения дерева вариантов для каждой новой текущей финальной вершины вычисляются ее нижняя оценка vt и верхняя оценка wt. Оптимальное значение критерия в подзадаче k(t) должно находиться в интервале [vt, wt].

Для получения верхней оценки проводим релаксацию рассматриваемой задачи (подзадачи) k(t).

Верхняя оценка в вершине V(t)- оптимальное значение критерия в релаксации задачи k(t); нижняя оценка Н(t)- значение критерия, обеспечиваемое некоторым допустимым решением задачи k(t).

103

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

Решение методом ветвей и границ начинается с вычисления верхней и нижней оценок в корне дерева вариантов. При несовпадении оценок в корне осуществляется первое ветвление - задача (4.20) разбивается на ряд подзадач, каждой из которых соответствует своя, соединенная с корнем ребром, вершина. Для каждой такой вершины вычисляются ее верхняя и нижняя оценки. Если для двух вершин t1 и t2, t1 t2, имеет место соотношение wt2 <vt1, то вершина t2 считается неперспективной. Эту вершину вместе с возможными из нее ветвями следует исключить из дальнейшего рассмотрения. Не имеет смысла проводить ветвления для подзадач, соответствующих вершинам t таким, что vt = wt, вместе с тем равенство vt = wt само по себе не может быть основанием для изъятия из рассмотрения вершины t. Все оставшиеся текущие финальные вершины соответствуют задачам-претендентам на ветвление. Выбор конкретной подзадачи из списка кандидатов осуществляется в соответствии с принимаемой стратегией. В качестве стратегии, в частности, можно принять следующее правило: для ветвления выбирается претендент с наибольшей верхней оценкой; при наличии нескольких таких претендентов берется тот из них, который имеет наибольшую нижнюю оценку (если их несколько, то выбирается самый правый по дереву). Отметим, что стратегия выбора подзадачи из списка претендентов не единственна, от избираемой стратегии может зависеть быстрота реализации метода ветвей и границ.

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

104

В новой совокупности текущих финальных вершин отбрасываются вершины ti, для которых имеются вершины t такие, что wti<vt выделяются также неперспективные для дальнейшего ветвления вершины = . Все остальные соответствуют подзадачам-претендентам на дальнейшее ветвление.

Процесс завершается в ситуации, когда в дереве вариантов остается только одна неотброшенная вершина t*, на ко-

торой не производилось ветвление и в которой = . Оптимальное решение соответствующей вершине t*

подзадачи является одновременно решением исходной задачи (4.20). Алгоритмы F21 F23 , реализующие метод ветвей

играниц, включают в себя следующие этапы.

1.Для задачи (4.20) вычисляем верхнюю оценку w0 и нижнюю оценку v0 (верхняя оценка определяется релаксаци-

ей; нижняя оценка обеспечивается некоторым решением х0; v0

=A(x0).

2.Полагаем A* = A(х0); х* = (х0) (здесь A* обозначает имеющийся в текущий момент рекорд; х* — рекордное решение).Включаем корень в массив текущих финальных вершин.

3.Проверяем равенство v0= w0.Если оно выполняется, переходим к этапу 4, в противном случае переходим к этапу 5.

4.Исходная задача параметрической оптимизации решена: х*- оптимальное решение, максимальное значение критерия оптимальности A при котором равно рекорду A*.

5.Устанавливаем n = 0 (n- номер вершины, в которой следует произвести ветвление; 0 - номер, присваиваемый корню).

6.Ветвление в вершине n; включение получаемых вершин в массив текущих финальных вершин и исключение из массива вершины n.

7.Получение верхних и нижних оценок в новых текущих финальных вершинах.

105

8.Существует ли новая вершина, в которой нижняя оценка, обеспечиваемая некоторым решением х', больше A*? Если да - переход к этапу 9, если нет - к этапу 10.

9.Полагаем A* = A (х'); х* = х'.

10.Анализ оценок в совокупности текущих финальных вершин:

а) отбрасывание неперспективных; б) выделение вершин с совпадающими верхней и ниж-

ней оценками.

11.Составление массива претендентов на ветвление.

12.Массив претендентов на ветвление пуст? Если да, то переходим к этапу 4, если нет - к этапу 13.

13.Выбор К- номер вершины, в которой будет производиться ветвление.

14.Значение n полагаем равным К и переходим к выполнению всех вычислений, начиная с этапа 6.

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

Основными решающими процедурами метода являются следующие:

а) получение верхних оценок (см. этапы 1 и 7); б) получение нижних оценок (этапы 1 и 7); в) ветвление (этап 6);

г) выбор номера вершины для дальнейшего ветвления

(этап 13).

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

106

Рассмотрим метод ветвей и границ в применении к од-

номерной задаче о ранце (алгоритм

 

):

 

при условиях

max ∑

≤ ;

 

(4.22)

 

.

(4.23)

 

{0,1},

= 1,

(4.24)

Для получения верхних оценок в корне и в следующих вершинах будем использовать теорему Данцига, относящуюся к следующей задаче линейного программирования:

max

при условиях

≤ ;

(4.25)

0 ≤ ≤ 1, = 1, .

Задача (4.25) называется непрерывной задачей о ранце. Эту задачу будем считать приведенной, если выполня-

ются условия:

а) cj, аj = 1, n и b — целые положительные числа;

б) отношения (cj/ aj) не возрастают по мере возрастания индекса i:

(cj/ aj) ≥ (cj + 1 / aj + 1), = 1, −1.

(4.26)

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

Оптимальное решение непрерывной приведенной задачи (4.25) - (4.26) определяется с помощью следующих рекуррентных соотношений:

107

=

( ; ∑

)

, = 1, , (4.27)

где

= 0.

Теорема Данцига позволяет использовать приведенную задачу в качестве релаксации для исходной задачи (4.22) - (4.24). Целая часть максимального значения критерия оптимальности приведенной задачи является верхней оценкой максимального значения критерия в задаче (4.22) - (4.24): V(t) = [F(xn)]. Отметим также, что изложенный в теореме Данцига алгоритм конструирует решение х, в котором значения всех неизвестных, кроме, быть может, одного, являются булевыми (0 или 1). Заменив нецелочисленную координату решения ну-

лем, получаем допустимое для задачи (4.22) - (4.24) решение xц, где

ц

=

ц,если

ц − целое число

 

0,если

ц − нецелое число

Это дает возможность вычислить нижнюю оценку оптимального значения критерия для рассматриваемой задачи: H(t) = Fц). Если осталась неотброшенной одна вершина, в которой верхняя и нижняя оценки совпадают, то решение хц является для рассматриваемой задачи оптимальным решением. Если же оценки не совпадают, то в векторе х имеется нецелочисленная координата xi, 0 < < 1, в направлении которой и реализуется ветвление по следующему принципу: рас-

сматриваются варианты

 

и

; первый из них по-

рождает задачу (4.22)

-

(4.24) с опущенной переменной х

= 0

 

= 1

i

суммах (4.22) и (4.24)

отсутствуют слагаемые сixi

и aixi; соот-

ветственно); второй вариант также порождает задачу с опущенной переменной xi, но, кроме этого, в критерии (4.22) до-

108

бавляется константа ci, а в ограничении (4.23) b надо заменить на (b-аi).

По обеим ветвям (хi = 0 и хi = 1) получаем подзадачи, по-прежнему являющиеся задачами о ранце. Таким образом, для дальнейших ветвлений может использоваться также теорема Данцига.

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

инижней оценками (wl, vl) такими, что vl>wk.

Вкачестве примера, иллюстрирующего метод ветвей и границ, рассмотрим следующую одномерную задачу о ранце:

maxF(x) = max {5x1 +7x2 + 6x3 + Зx4}

(4.28)

при условии, что

 

2x1 + 3x2 + 5х3 + 7x4 ≤ 9;

(4.29)

{0,1}, = 1,4.

(4.30)

Непрерывная приведенная задача эквивалентная задаче (4.28) - (4.29), получается путем замены условия (4.30) ограничениями вида:

0 ≤ xj1, = 1,4.

(4.31)

Тогда оптимальное решение задачи ЛП (4.28), (4.29), (4.31) согласно рекуррентным соотношениям (4.27) имеет следующие значения компонент:

= 1; = 1; = 4⁄5; = 0.

Соответствующее этому решению значение критерия оптимальности ( ) = 16 , следовательно, верхняя оценка для корня дерева w0= V(x) = [F(xn)] = 16. Допустим для рас-

109

сматриваемой задачи (4.28) — (4.30) целочисленное решение хц = (1, 1, 0, 0), для которого Fц) = 12, следовательно, нижняя оценка для корня дерева v0 = H(х) = F(xц) = 12.

Ветвление в корне дерева осуществляется по переменной х3 для двух значений: х3 = 0 (вершина 1) и x3 = 1 (вершина 2). В первом случае решается непрерывная приведенная задача о ранце:

max {5x1 + 7x2 + 3x4}

(4.32)

при условии, что:

2x1 + 3x2 + 7x4 ≤ 9; 0 <хj<1, j =1,2,4.

Аво втором случае - непрерывная приведенная задача

оранце:

max {5x1 + 7x2 + 3x4 + 6}

(4.33)

при условии, что:

2x1 + 3x2 + 7x4 ≤ 4; 0 ≤ хj ≤ 1, j=1,2,4.

Оптимальное решение задачи ЛП (4.32) имеет следующие компоненты:

= = 1, = 4⁄7

Следовательно, F(xn) = 13 , w1 = V(х) = [F(хn)] = 13 и vi

= H(х) = F (1, 1, 0) = 12.

Аналогично для оптимального решения задачи ЛП (4.33) получаем:

= 1; = 2⁄3; = 0.

Следовательно, F(xn) = 15 ,w2 = V(x) = [F(xn)] = 15 и v2 =

H(х) = F (1, 0, 0) = 11.

110

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]