- •2) Переход от общей (стандартной) формы злп к канонической.
- •Переход от канонической формы к стандартной.
- •1.1.3. Контрольные вопросы:
- •1.1.4. Варианты индивидуальных заданий:
- •1.2 Графический метод решения задач
- •1.2.2. Теоретическая часть:
- •1.2.3. Контрольные вопросы:
- •1.2.4. Варианты индивидуальных заданий:
- •1.3 Симплекс-метод решения задач линейного программиро-вания
- •1.3.2. Теоретическая часть
- •1.3.2.1. Симплекс-метод
- •1.3.2.2. Cимплекс-метод для неполного базиса (м-метод).
- •1.3.3. Контрольные вопросы:
- •1.3.4. Варианты индивидуальных занятий
- •1.4 Двойственность в линейном программировании
- •1.4.2. Теоретическая часть:
- •1.4.2.1. Общая модель задачи
- •1.4.2.2. Решение злп с помощью графического анализа двойственной задачи
- •1.4.3. Контрольные вопросы:
- •1.4.4. Варианты индивидуальных заданий.
- •1.5 Транспортная задача (т-задача)
- •1.5.2. Теоретическая часть:
- •1.5.2.1. Алгоритм решения т-задачи.
- •1.5.2. Примеры решения т-задачи.
- •1.5.3. Контрольные вопросы.
- •1.5.4. Варианты индивидуальных заданий:
- •1.6 Целочисленное программирование
- •1.6.2. Теоретическая часть: Описание метода отсечений (метода Гомори).
- •1.6.3. Контрольные вопросы:
- •1.6.4. Варианты индивидуальных заданий.
- •2.1.2.2. Метод Франка-Вулфа решения задач квадратичного программирова-
- •2.2 Контрольные вопросы.
- •2.3. Индивидуальные задания.
1.6 Целочисленное программирование
1.6.1. Цель: закрепить теоретические и практические навыки решения частично и полностью целочисленных задач линейного программирования.
1.6.2. Теоретическая часть: Описание метода отсечений (метода Гомори).
Многие задачи исследования операций из области экономики и управления, отно-сящиеся к ЗЛП, требуют целочисленного решения, причем условия целочисленности могут относиться не ко всем переменным. Одним из методов решения таких задач яв-ляется метод отсечения или осекающих плоскостей (метод Гомори).
Идея метода состоит в том, что, временно отбросив условия целочисленности, на-ходим оптимальное решение ЗЛП симплекс-методом. Если окажется, что оно удовле-творяет условию целочисленности, то задача решена. В противном случае формируется дополнительное ограничение называемое правильным отсечением, которому заведомо удовлетворяет целочисленное и не удовлетворяет найденное оптимальное решение. Предположим, что симплекс-таблица, соответствующая оптимальному решению, имеет вид табл. 18, где x1 ,..., x m - базисные переменные, а x m1 ,...,x n - свободные переменные.
Пусть хотя бы одно из чисел, например xl , не целое. Составляем для всей l-й строки оптимальной таблицы симплекс-метода дополнительное ограничение, называемое пра-вильным отсечением, вида
n
-
{alj }x j {xl },
-
m1
где {alj } - дробная часть значения коэффициента alj , а {xl } - дробная часть базис-ной переменной xl . Если [alj ] и [xl ] обозначает целую часть этих чисел, т.е. соответст-вующие целые числа, но меньшие, чем alj и xl , то
alj alj [alj ],
xl xl [xl ].
Нецелочисленный план xопт не удовлетворяет правильному отсечению, т.к. xl 0 , а левая часть неравенства равна нулю, т.е. независимые переменные x j - равны нулю. В то же время любой целочисленный план удовлетворяет правильному отсече-нию как строгому равенству, вследствие того, что xl 0 для всех l. Следовательно,
исходная система ограничений дополняется новым условием. В результате решения задачи симплекс-методом получаем новый оптимальный план. Если он целочисленен, то это решение задачи, в противном случае для нецелочисленной базисной переменной
строится новое правильное отсечение и процесс продолжается. Если же очередная сис-тема ограничений окажется противоречивой, значит, исходные условия несовместны, а задача не имеет решения.
В качестве примера рассмотрим решение следующей задачи: найти x1 x2 max
при 6x1 5x2 30;
x2 3;
x1 0; x2 0; x1 , x2 - целые
Отбрасываем условия целочисленности и находим оптимальное решение задачи симплекс-методом (см. табл. 18).
Таблица 18.
i |
|
Сi |
базис |
|
|
-0 |
|
|
1 |
1 |
0 |
0 |
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
ai0 |
|
|
x1 |
x2 |
x3 |
x4 |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
1 |
|
0 |
|
x3 |
|
|
30 |
|
|
6 |
5 |
1 |
0 |
|
||||||||||||||||||
2 |
|
0 |
|
x4 |
|
|
3 |
|
|
0 |
1 |
0 |
1 |
|
||||||||||||||||||
m+1 |
|
|
|
Z |
|
|
0 |
|
|
-1 |
-1 |
0 |
0 |
|
||||||||||||||||||
1 |
|
1 |
|
x1 |
|
|
5 |
|
|
1 |
5 |
1 |
0 |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
6 |
6 |
|
|
|||||||||||||||||
2 |
|
0 |
|
x4 |
|
|
3 |
|
|
0 |
1 |
0 |
1 |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
m+1 |
|
|
|
Z |
|
|
5 |
|
|
0 |
- 1 |
1 |
0 |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
6 |
6 |
|
|
|||||||||||||||||
1 |
|
1 |
|
x1 |
|
|
5 |
|
|
1 |
0 |
1 |
5 |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
2 |
|
|
|
|
6 |
6 |
|
|||||||||||||||||
2 |
|
1 |
|
x2 |
|
|
3 |
|
|
0 |
1 |
0 |
1 |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
m+1 |
|
|
|
Z |
|
|
11 |
|
|
0 |
0 |
1 |
1 |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
2 |
|
|
|
|
6 |
6 |
|
|||||||||||||||||
|
Следовательно, |
x |
опт |
(5 |
,3), |
Z 11 |
. Данное решение не удовлетворяет усло- |
|
||||||||||||||||||||||||
|
|
|
|
|
|
2 |
|
2 |
|
|
|
|
|
вию целочисленности, поэтому формулируем правильное отсечение для переменной х1:
{x1} = x1 - [x1] = 5 2 2 12 ;
{a13} = a13 – [a13] = 16 0 16 ;
{a14} = a14 – [a14] = 56 (1) 16 ;
Запишем правильное отсечение:
16 x1 16 x2 12 .
Теперь задача приобретает вид: найти
x1 x2 max
при 6x1 5x2 x3 30;
x2 x4 3;
16 x3 16 x4 x5 12
x j 0; j 1,5 , x j - целые
Преобразуем полученную задачу к новой форме, для чего в третьем уравнении из-бавимся от базисных переменных х3 и х4.
16 (30 6x1 5x2 ) 16 (3 x2 ) x5 12 ;
5 x1 56 x2 12 16 x2 x5 12;
x1 x2 x5 5;
Умножим обе части уравнения на (-1)
x1 x2 x5 5
Теперь задача приведена к новой форме, решая ее симплекс-методом, получим искомое целочисленное решение xопт (2,3), Z 5.