Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по математике для магистров.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
9.51 Mб
Скачать

24.4 Метод ветвей и границ для задачи целочисленного программирования

Рассмотрим частично целочисленную задачу ЛП:

минимизировать  z = f (x) =              (24.3.4)

при условиях

                             (24.3.5)

0 £ xj £ dj,   ;                               (24.3.6)

xj — целое,      (n1 < n).               (24.3.7)

Как и в методе отсекающих плоскостей, процесс начинают с решения непрерывной задачи ЛП. Если полученный при этом оптимальный план x0 не удовлетворяет условию целочисленности (24.3.7), то значение целевой функции x0 = (x0) дает нижнюю оценку (границу) для искомого решения, т.е.  z = x0.

Пусть некоторая переменная  не получила в плане x0 целочисленного значения. В целочисленном плане значение  следует либо уменьшить, по крайней мере, до [ ], либо увеличить, по крайней мере, до [ ] + 1.

Если границы изменения  заранее не заданы, то их можно вычислить, решив для этого две вспомогательных задачи ЛП. Эти задачи состоят в минимизации и максимизации  при условиях (24.3.5) и (24.3.6).

Далее решают задачу ЛП (24.3.4) — (24.3.6) с дополнительным ограничением  или , где [ ] означает целую часть . Найденное оптимальное решение  снова анализируют относительно выполнения условия целочисленности (24.3.7).

Этот процесс решения можно представить в виде дерева, в котором вершина 0 отвечает плану x0, а каждая из соединенных с ней ветвью вершин отвечает оптимальному плану следующей задачи: минимизировать  z  при условиях (24.3.5), (24.3.6) и дополнительном условии, что переменной  дано значение  или , где  — целое число. Каждой из таких вершин приписывают оценку x = x( i0, k), которая равна  min z  при указанных выше ограничениях. Очевидно, x0 = x( i0, k) для всех k.

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

Описание алгоритма

Нулевая итерация. 1. Определение множества G0. Множество определяется условиями (4.3.5), (4.3.6).

2. Находим оптимальный план x0 задачи (4.3.4) при условиях (4.3.5), (4.3.6).

3. Вычисляем оценку x (G0) = f (x0).

Если план x0 удовлетворяет условиям целочисленности, то он является искомым. В противном случае переходим к первой итерации.

Первая итерация. 1. Выбираем некоторую нецелочисленную компоненту . Множество G0 разбиваем на два непересекающегося подмножества ,  следующим образом:

                        (24.3.8)

                    (24.3.9)

2. Решаем задачу ЛП (24.3.4) на множестве  и находим оптимальный план . Соответственно решаем задачу ЛП (4.3.4) на множестве  и находим план .

3. Вычисляем оценки  и .

Проверяем признак оптимальности.

Если  — целочисленный и , то  — искомый план. В противном случае переходим к следующей итерации и выполняем процедуру ветвления.

(k+1)-я итерация. Пусть проведено  k  итераций, в результате которых построены подмножества , определены оценки  и еще не найдено оптимальное решение. Тогда выбираем наиболее перспективное подмнoжество  такое, что

 .

1. Разбиваем множество  на подмножества ,  так, что  =        и  . С этой целью выберем некоторую нецелочиселенную компоненту плана , например .

Тогда подмножества  и  определяются из условий

;                 (24.3.10)

.

2. Решаем задачу ЛП (4.3.4) на подмножествах ,  и находим оптимальные планы ,  и соответствующие им оценки x( ) = ( );  x( ) = f ( ).

3. Если  удовлетворяет условию целочисленности, то вершина  — концевая и дальнейшему разбиению не подвергается. Если при этом также x ( ) =  ,  где { } — множество всех висячих вершин, то  — искомый целочисленный план (это признак оптимальности). В противном случае необходимо продолжить процесс ветвления и дальше.

Укажем некоторые особенности применения метода ветвей и границ для задачи ЛЦП.

1. Если все коэффициенты cj целевой функции — целые при 1 £ £ n1 и равны нулю при j > n1 , то оценку x ( ) можно заменить на более “сильную” оценку x/ ( ) = , где знаком  обозначено наименьшее целое, но не меньшее, чем a (т.е.  ≥ a).

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

3. Вводимые на каждой итерации новые ограничения вида  или  играют роль правильных отсечений по аналогии с методом отсекающих плоскостей.

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

5. При решении задачи ЛП максимизации методом ветвей и границ используют верхнюю границу/оценку

 .

В этом случае признак оптимальности формулируется противоположным образом по сравнению с задачей min  f (x).