
- •Раздел 13. Целочисленное программирование.
- •13.2. Условие целочисленности многогранных множеств
- •13.3. Методы решения задачи целочисленного линейного программирования
- •13.3.1 Первый алгоритм Гомори решения полностью целочисленных задач
- •Решение задачи :
- •13.3.4. Метод ветвей и границ
- •Пример. Максимизировать
- •13.4. Примеры задач целочисленного программирования
Пример. Максимизировать
(13.31)
при условиях
(13.32)
–
целые. (13.33)
0-й
шаг.
Оптимальный план задачи (13.31) – (13.33)
следующий:
.
Имеем
.
План
не
удовлетворяет условию целочисленности
(13.33). Возьмем его не целочисленный
компонент
и
разобьем
на
два множества:
,
где
,
.
1-й
шаг.
Решим две ЗЛП, состоящие из в максимизации
функции (13.31) по
и
.
Решение
задачи
:
Номер итерации |
Базисные переменные |
|
|
|
|
|
|
|
0 |
|
6 |
-1 |
3 |
1 |
0 |
0 |
2 |
|
35 |
7 |
1 |
0 |
1 |
0 |
35 |
|
|
4 |
1 |
0 |
0 |
0 |
1 |
- |
|
F |
0 |
-7 |
-9 |
0 |
0 |
0 |
|
|
I |
|
2 |
-1/3 |
1 |
1/3 |
0 |
0 |
- |
|
33 |
22/3 |
0 |
-1/3 |
1 |
0 |
9/2 |
|
|
4 |
1 |
0 |
0 |
0 |
1 |
4 |
|
F |
18 |
-10 |
0 |
0 |
3 |
0 |
|
II |
|
10/3 |
|
|
|
|
|
|
|
11/3 |
|
|
|
|
|
|
|
|
4 |
1 |
0 |
0 |
0 |
1 |
|
|
F |
58 |
0 |
0 |
0 |
3 |
10 |
|
Максимум
достигается при
.
Решение
задачи
:
Номер итерации |
Базисные переменные |
|
|
|
|
|
|
|
0 |
|
6 |
-1 |
3 |
1 |
0 |
0 |
- |
|
35 |
7 |
1 |
0 |
1 |
0 |
5 |
|
|
5 |
1 |
0 |
0 |
0 |
-1 |
5 |
|
F |
0 |
-7 |
-9 |
0 |
0 |
0 |
|
|
I |
|
11 |
0 |
3 |
1 |
0 |
-1 |
11/3 |
|
0 |
0 |
1 |
0 |
1 |
7 |
0 |
|
|
5 |
1 |
0 |
0 |
0 |
-1 |
- |
|
F |
35 |
0 |
-9 |
0 |
0 |
7 |
|
|
II |
|
11 |
0 |
0 |
1 |
-3 |
-10 |
|
|
0 |
0 |
1 |
0 |
1 |
7 |
|
|
|
5 |
1 |
0 |
0 |
0 |
-1 |
|
|
F |
35 |
0 |
0 |
0 |
9 |
56 |
|
Максимум
достигается при
,
и
.
Производим разветвление по :
,
где
,
.
Переобозначения:
.
2-й
шаг.
Решаем две задачи линейного программирования,
заключающиеся в максимизации функции
(13.31) по множествам
.
Решение
задачи
Номер итерации |
Базисные переменные |
|
|
|
|
|
|
|
0 |
|
6 |
-1 |
3 |
1 |
0 |
0 |
– |
|
35 |
7 |
1 |
0 |
1 |
0 |
5 |
|
|
3 |
1 |
0 |
0 |
0 |
1 |
– |
|
F |
0 |
-7 |
-9 |
0 |
0 |
0 |
|
|
I |
|
11 |
0 |
22/7 |
1 |
1/7 |
0 |
7/2 |
|
5 |
1 |
1/7 |
0 |
1/7 |
0 |
35 |
|
|
3 |
0 |
1 |
0 |
0 |
1 |
3 |
|
F |
35 |
0 |
-8 |
0 |
1 |
0 |
|
|
II |
|
11/7 |
|
|
|
|
|
|
|
32/7 |
|
|
|
|
|
|
|
|
3 |
0 |
1 |
0 |
0 |
1 |
|
|
F |
59 |
0 |
0 |
0 |
1 |
8 |
|
Максимум
достигается при
.
Рассмотрим следующий шаг решения задачи.
Исходная
система (0-я итерация) оказалась приведенной
к единичному базису
.
Однако свободный член в третьем уравнении
отрицательный. Поэтому данной системе
соответствует исходное базисное, но не
опорное решение
.
Выделенное
уравнение (третью строку) перепишем,
умножив все коэффициенты на –1. Все
свободные члены теперь положительные.
Первое и второе уравнения (кроме
выделенного) разрешены относительно
базисных неизвестных
и
.
Дальнейшие преобразования системы
будем проводить согласно правилам
симплексных преобразований, выбирая
разрешающий столбец из такого условия,
чтобы он имел в выделенной (третьей)
строке положительный элемент. Разрешающая
строка выбирается из условия
.
Решение
задачи
.
Номер итерации |
Базисные переменные |
|
|
|
|
|
|
|
0 |
|
6 |
–1 |
3 |
1 |
0 |
0 |
|
|
35 |
7 |
1 |
0 |
1 |
0 |
|
|
|
–4 |
0 |
–1 |
0 |
0 |
1 |
|
|
F |
0 |
–7 |
–9 |
0 |
0 |
0 |
|
|
I |
|
6 |
–1 |
3 |
1 |
0 |
0 |
2 |
|
35 |
7 |
1 |
0 |
1 |
0 |
35 |
|
|
4 |
0 |
1 |
0 |
0 |
–1 |
4 |
|
F |
0 |
–7 |
–9 |
0 |
0 |
0 |
|
|
II |
|
2 |
–1/3 |
1 |
1/3 |
0 |
0 |
– |
|
33 |
22/3 |
0 |
–1/3 |
1 |
0 |
9/2 |
|
|
2 |
1/3 |
0 |
–1/3 |
0 |
–1 |
6 |
|
F |
18 |
–10 |
0 |
0 |
3 |
0 |
|
|
III |
|
7/2 |
0 |
1 |
7/22 |
1/22 |
0 |
|
|
9/2 |
1 |
0 |
–1/22 |
3/22 |
0 |
|
|
|
1/3 |
0 |
0 |
–7/22 |
–1/22 |
–1 |
|
|
F |
63 |
0 |
0 |
–5/11 |
15/11 |
0 |
|
В
полученной после II
итерации таблице выделенное третье
уравнение снова оказалось не разрешенным
относительно базисного неизвестного
(первое и второе уравнения разрешены
относительно
),
но свободный член в этом уравнении
уменьшился (2 вместо 4). Поэтому выполним
III
итерацию. Разрешающей строкой является
вторая, разрешающим может служить только
один столбец.
После III итерации приходим к таблице, в которой выделенная третья строка не имеет ни одного положительного элемента, кроме свободного члена. В этом случае исходная система уравнений не имеет ни одного решения с неотрицательными значениями неизвестных, в том числе и опорного решения.
Итак,
множество
оказывается
пустым и для него имеем
.
Получаем:
1)
;
2)
;
;
3)
Производим
разветвление из множества
,
где
.
Переобозначения:
.
3
– й шаг.
Решаем две задачи линейного программирования,
заключающиеся в максимизации функции
(13.31) по множествам
и
.
Решение
задачи
:
Номер итерации |
Базисные переменные |
|
|
|
|
|
|
|
|
0 |
|
6 |
-1 |
3 |
1 |
0 |
0 |
0 |
– |
|
35 |
7 |
1 |
0 |
1 |
0 |
0 |
5 |
|
|
3 |
0 |
1 |
0 |
0 |
1 |
0 |
– |
|
|
4 |
1 |
0 |
0 |
0 |
0 |
1 |
4 |
|
F |
0 |
-7 |
-9 |
0 |
0 |
0 |
0 |
|
|
I |
|
10 |
0 |
3 |
1 |
0 |
0 |
1 |
10/3 |
|
7 |
0 |
1 |
0 |
1 |
0 |
-7 |
7 |
|
|
3 |
0 |
1 |
0 |
0 |
1 |
0 |
3 |
|
|
4 |
1 |
0 |
0 |
0 |
0 |
1 |
– |
|
F |
28 |
0 |
-9 |
0 |
0 |
0 |
7 |
|
|
II |
|
1 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
3 |
0 |
1 |
0 |
0 |
1 |
0 |
|
|
|
4 |
|
|
|
|
|
|
|
|
F |
55 |
0 |
0 |
0 |
0 |
9 |
7 |
|
Максимум
достигается при
и
.
Решение
задачи
:
Номер итерации |
Базисные переменные |
|
|
|
|
|
|
|
|
0 |
|
6 |
-1 |
3 |
1 |
0 |
0 |
0 |
– |
|
35 |
7 |
1 |
0 |
1 |
0 |
0 |
5 |
|
|
3 |
0 |
1 |
0 |
0 |
1 |
0 |
– |
|
|
5 |
1 |
0 |
0 |
0 |
0 |
-1 |
5 |
|
F |
0 |
-7 |
-9 |
0 |
0 |
0 |
0 |
|
|
I |
|
11 |
0 |
3 |
1 |
0 |
0 |
-1 |
11/3 |
|
0 |
0 |
1 |
0 |
1 |
0 |
7 |
0 |
|
|
3 |
0 |
1 |
0 |
0 |
1 |
0 |
3 |
|
|
5 |
1 |
0 |
0 |
0 |
0 |
-1 |
– |
|
F |
35 |
0 |
-9 |
0 |
0 |
0 |
-7 |
|
|
II |
|
11 |
0 |
0 |
1 |
–3 |
0 |
-22 |
|
|
0 |
0 |
1 |
0 |
1 |
0 |
7 |
|
|
|
3 |
0 |
0 |
0 |
-1 |
1 |
-7 |
|
|
|
5 |
1 |
0 |
0 |
0 |
0 |
-1 |
|
|
F |
35 |
0 |
0 |
0 |
9 |
0 |
56 |
|
Максимум
достигается при
,
и
.
Итак,
1)
2)
3)
,
4)
Получим
целочисленный
причем
Поэтому
план
оптимальный.
Главный недостаток алгоритма метода ветвей и границ заключается в необходимости полностью решать задачи линейного программирования, ассоциированные с каждой из вершин многогранника допустимых решений. Для задач большой размерности это требует значительных и, в известной степени, неоправданных с практической точки зрения затрат времени.
Таким образом, несмотря на отмеченные недостатки данного метода, можно утверждать, что в настоящее время алгоритмы метода являются наиболее надежным средством решения целочисленных задач, встречающихся в практических исследованиях. Это не означает, однако, что любая целочисленная задача может быть решена с помощью рассматриваемого метода. Тем не менее проблема выбора между методом отсечений и методом ветвей и границ в подавляющем большинстве случаев обоснованно разрешается в пользу последнего.