- •Раздел 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)
Получим целочисленный причем
Поэтому план оптимальный.
Главный недостаток алгоритма метода ветвей и границ заключается в необходимости полностью решать задачи линейного программирования, ассоциированные с каждой из вершин многогранника допустимых решений. Для задач большой размерности это требует значительных и, в известной степени, неоправданных с практической точки зрения затрат времени.
Таким образом, несмотря на отмеченные недостатки данного метода, можно утверждать, что в настоящее время алгоритмы метода являются наиболее надежным средством решения целочисленных задач, встречающихся в практических исследованиях. Это не означает, однако, что любая целочисленная задача может быть решена с помощью рассматриваемого метода. Тем не менее проблема выбора между методом отсечений и методом ветвей и границ в подавляющем большинстве случаев обоснованно разрешается в пользу последнего.