Методы оптимизации, технические приложения
.pdf171
4.Решаем задачу линейного программирования с дополнительным ограничением, полученным на третьем шаге.
5.Переходим к пункту 2.
Главное в данном методе – правильно выбрать отсекающую гиперплоскость. Она должна быть линейной, отсекать найденное оптимальное нецелочисленное решение задачи линейного программирования (6.4)–(6.6), и не должна затрагивать ни одной целочисленной точки задачи (6.1)–(6.3).
Рассмотрим предложенный Р. Гомари алгоритм выбора отсекающей гиперплоскости. Обозначим Jб – множество индексов, соответствующих базисным переменным; Jнб – множество индексов, соответствующих небазисным переменным. Тогда после каждой итерации система ограничений задачи будет иметь вид
xi i ij x j ,
|
j J нб |
|
|
|
где i , ij |
– преобразованные величины bi и aij . |
|||
Оптимальное решение, полученное при выполнении условия |
||||
cб j c j 0 , |
|
|
||
имеет вид: |
|
|
|
|
x* 0, |
j J |
нб |
; |
|
j |
|
|
|
|
xi i , |
i Jб . |
|
||
Если хотя бы одно из значений i , |
i Jб , не целое, то полу- |
|||
ченное решение не будет оптимальным для задачи целочисленного программирования. В этом случае строится отсекающая гиперплоскость, и процесс решения повторяется.
Гиперплоскость, согласно правилу отсечения Гомари, определяется по формуле
i ij x j 0 ,
j J нб
где i и ij – дробная положительная часть чисел i и ij соот-
ветственно.
Например, β = 2,7. Тогда {β} = 0,7. Для β = – 8,3 положительная дробная часть будет равна {– 8,3} = 0,7. Целая часть числа обозначается [βi]. Для β = 2,7 целая часть [2,7] = 2. Для β = – 8,3 целая
часть [β] = –9. Очевидно, |
|
[ ] { }; |
(6.7) |
ij [ ij ] { ij } .
Правило Гомари получается путем следующих рассуждений.
172
Пусть в полученном для задачи линейного программирования оптимальном решении некоторое i0 – не целое. Составим условие
оптимальности для строки i0, в которой находится число i0 :
xi |
i |
|
i j x j . |
(6.8) |
0 |
0 |
|
0 |
|
|
|
|
j J нб |
|
Затем находим целую и дробную части его коэффициентов. Со-
гласно формулам (6.7) имеем: |
|
|
|
|
|
|
||||||
i |
[ i |
] { i }; |
|
|
|
|
|
|
|
|
(6.9) |
|
0 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
i |
j [ i j |
] { i j } . |
|
|
|
|
|
|
|
|||
0 |
|
0 |
0 |
|
|
|
|
|
|
|
|
|
Так как по предположению |
i |
|
– не целое и дробная часть числа |
|||||||||
|
|
|
|
|
|
|
|
0 |
|
|
|
|
положительна, то |
|
|
|
|
|
|
|
|
|
|||
0 { i } 1; 0 { i |
0 |
j } 1 . |
|
|
|
|
|
|
||||
|
0 |
|
|
|
|
|
|
|
|
|
|
|
Подставив выражения для i |
|
и i j |
из формулы (6.9) в формулу |
|||||||||
|
|
|
|
|
|
|
0 |
|
0 |
|
|
|
(6.8), получим |
|
|
|
|
|
|
|
|
|
|
||
|
[ i |
] { i } |
|
|
j ](x j ) i |
|
|
|||||
xi |
|
[ i |
j (x j ) . |
|||||||||
0 |
0 |
0 |
|
0 |
|
|
|
0 |
|
|
||
|
|
|
|
|
|
|
j J нб |
|
||||
|
|
|
|
j J нб |
|
|
|
|
||||
Объединим целые и дробные части в последнем равенстве: |
||||||||||||
|
|
|
|
|
|
|
|
|
i |
|
||
xi |
[ i ] |
[ i |
|
j ](x j ) { i } |
j (x j ) . |
|||||||
0 |
|
0 |
0 |
|
|
|
0 |
|
0 |
|
||
|
|
j J нб |
|
|
|
j J нб |
|
|||||
|
|
|
|
|
|
|
|
|
|
|||
Первая скобка представляет собой разность целых чисел. Следовательно, она является целой. Тогда для того чтобы xi0 было це-
лым, необходимо, чтобы целым была разность во второй скобке |
|||||||
i i |
j (x j ). |
|
|
|
|
|
|
0 |
0 |
|
|
|
|
|
|
j J нб |
|
|
|
|
i j x j не может быть отрицатель- |
||
Так как |
0 { i } 1 |
и |
|||||
|
|
0 |
|
|
0 |
|
|
ной, то i |
|
i |
|
|
j J нб |
i |
j (x j ) i . |
|
j (x j ) 0 или |
||||||
0 |
|
0 |
|
|
|
0 |
0 |
|
|
j Jнб |
|
|
|
j J нб |
|
Пример 6.2. Используя метод отсечения, найти максимальное значение целевой функции
f=70x1 + 30x2
при ограничениях:
10х1 + 4х2 40;
6х1 + 4х2 36;
173
х1, х2 0; х1, х2 – целые.
Р е ш е н и е . 1. Вводим базисные переменные х3 и х4:
10х1 + 4х2 + х3 = 40; 6х1 + 4х2 + х4 = 36.
Откуда
х3 = 40 – 10х1 – 4х2; х4 = 36 – 6х1 – 4х2.
2. Составляем исходную симплексную таблицу (табл.1).
Таблица 1
БП |
1 |
СП |
|
|
|
–х1 |
–х2 |
х3 |
40 |
10 |
4 |
х4 |
36 |
6 |
4 |
f |
0 |
–70 |
–30 |
3. Используя табличный симплекс-метод, находим оптимальное решение задачи линейного программирования (табл.2, 3).
Таблица 2
БП |
1 |
|
СП |
|
|
|
|
|
|
–х3 |
|
–х2 |
|
х1 |
4 |
0,1 |
0,4 |
|
||
х4 |
12 |
|
–0,6 |
1,6 |
|
|
|
|
|
|
|
|
|
f |
280 |
7 |
|
–2 |
|
|
Таблица 3 |
|
|
|
|
|
|
Б.П. |
1 |
|
С.П. |
|
|
|
|
|
|
–х3 |
|
–х4 |
|
х1 |
1 |
|
10 |
|
4 |
|
х2 |
15/2 |
|
–3/8 |
|
5/8 |
|
f |
295 |
|
25/4 |
|
5/4 |
|
Оптимальное решение задачи линейного программирования есть
|
15 |
|
X * 1, |
|
, 0, 0 . |
|
||
|
2 |
|
4.Так как в полученном плане не все значения базисных переменных целые, то найденный план не является оптимальным для задачи целочисленного программирования.
5.Составляем уравнение отсекающей гиперплоскости для х2:
174
|
|
|
|
|
|
|
x |
|
j |
0. |
|
|
|
|
||||||||||||||||
|
|
|
|
i2 |
|
|
|
|
|
2 j |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
По полученным данным табл. 3 имеем: |
||||||||||||||||||||||||||||||
15 |
|
|
|
|
|
3 |
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
|
|
0 |
|||||
|
|
|
|
|
|
|
3 |
|
|
4 |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
2 |
|
|
|
|
8 |
|
|
|
|
|
|
|
8 |
|
|
|
|
|
||||||||||||
или |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
1 |
|
|
5 |
|
|
|
|
|
|
5 |
|
|
|
|
|
|
0 |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
x3 |
|
|
|
|
|
x4 |
|
, |
|
|
|
|
|||||||||||
2 |
|
|
8 |
|
|
|
|
|
|
|||||||||||||||||||||
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
т.е. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
5 |
x3 |
|
5 |
x |
4 |
|
|
1 |
. |
|
|
|
|
|
|
|
|
|
|
||||||||||
8 |
8 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Вводим новую базисную переменную х5, обращающую последнее неравенство в равенство:
58 x3 58 x4 x5 21 .
Выражаем базисную переменную х5 через свободные переменные:
x5 21 58 x3 58 x4.
С учетом полученного ограничения составляем новую симплексную таблицу (табл. 4).
Таблица 4
БП |
1 |
СП |
|
|
|
–х3 |
–х4 |
х1 |
1 |
1/4 |
–1/4 |
х2 |
15/2 |
–3/8 |
5/8 |
х5 |
–1/2 |
–5/8 |
5/8 |
|
|
|
|
f |
295 |
25/4 |
5/4 |
|
|
|
|
Эта таблица соответствует расширенной задаче линейного программирования. Содержащийся в ней план не является опорным, так как в столбце свободных членов содержится отрицательный элемент
|
|
1 |
|
|
|
. Фиксируем первый столбец (–х3). Определяем наименьшее |
|
|
|||
|
|
2 |
|
симплексное отношение
|
|
|
|
|
|
|
|
175 |
|
|
|||
|
1 |
|
1 |
|
5 |
|
4 |
|
|
4 |
|
||
min 1: |
|
; |
|
: |
|
|
min 4, |
|
|
|
|
|
. |
|
|
|
|
|
|
||||||||
|
4 |
|
2 |
|
8 |
|
5 |
|
|
5 |
|
||
Оно соответствует элементу 53 85 .
С найденным разрешающим элементом делаем шаг симплексных преобразований (табл. 5).
Таблица 5
БП |
1 |
СП |
|
|
|
–х5 |
–х4 |
х1 |
4/5 |
2/5 |
–1/2 |
х2 |
39/5 |
–3/5 |
1 |
х3 |
4/5 |
–8/5 |
1 |
f |
55 |
10 |
5 |
В полученном плане базисные переменные снова не целые:
x |
4 |
; x |
|
|
39 |
|
; x |
|
|
4 |
. |
|
|
|
|
|
|
|
|
2 |
|
3 |
|
|
|
|
|
|
|
||||||||
1 |
5 |
|
5 |
|
|
|
5 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
39 |
|
4 |
|
Следовательно, |
план |
X |
|
, |
|
, |
|
, 0, 0 не является оптималь- |
||||||||||
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
5 |
|
5 |
|
ным для задачи целочисленного программирования. Строим новую отсекающую гиперплоскость. В качестве компоненты i, i I6, принимаем i с большей дробной частью i. В нашем случае дробная часть { i} одинакова во всех свободных членах, поэтому выбираем любое i, например, i = 3. Уравнение отсекающей гиперплоскости будет иметь вид
|
|
|
|
a |
x |
|
|
|
4 |
|
|
|
8 |
x |
|
|
|
|
|
4 |
|
2 |
|
|
|
x |
|
|
|
|
|
{1}x |
|
|
|
|
x |
|
0. |
||||||||||||
3 |
j |
|
|
5 |
4 |
|
|
5 |
|||||||||||||||||
|
3 |
3 j |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
j J Н .Б |
|
|
|
|
8 |
|
|
|
5 |
|
|
|
|
|
5 5 |
|
|
|
||||
Откуда 52 x5 54 . Вводим новую базисную переменную х6:
52 x5 x6 54 .
Выражаем х6 через свободные переменные:
x6 54 52 x5.
Запишем новую симплексную таблицу (табл. 6).
|
|
176 |
|
Таблица 6 |
|
|
|
БП |
1 |
СП |
|
|
|
–х5 |
–х4 |
х1 |
4/5 |
2/5 |
–1/2 |
х2 |
39/5 |
–3/5 |
1 |
х3 |
4/5 |
–8/5 |
1 |
х6 |
–4/5 |
–2/5 |
0 |
|
|
|
|
f |
55 |
10 |
5 |
Содержащийся в таблице план не является опорным, так как в столбце свободных членов есть отрицательный элемент.
Строим опорный план.
Фиксируем столбец х5. Он будет разрешающим. Находим минимальное отношение
|
|
4 |
: |
2 |
|
4 |
|
2 |
|
min 2,2 2. |
min |
|
|
; |
|
: |
|
|
|||
|
|
|
|
|||||||
|
|
5 |
|
5 |
|
5 |
|
5 |
|
|
|
|
|
2 |
|
В качестве разрешающего берем элемент а65 |
= |
|
. С полу- |
|
|
||||
|
|
|
5 |
|
ченным разрешающим элементом делаем шаг симплексных преобразований (табл. 7).
Таблица 7
Б.П. |
1 |
С.П. |
|
|
|
–х6 |
–х4 |
х1 |
0 |
1 |
–1/2 |
х2 |
0 |
–3/2 |
1 |
х3 |
4 |
–4 |
1 |
х5 |
2 |
–5/2 |
0 |
f |
8 |
25 |
5 |
Получим план X* = (0, 0, 4, 0, 2, 0). Он является оптимальным как для расширенной задачи линейного программирования, так и для задачи целочисленного программирования, так как все элементы хj – целые.
177
Упражнения
1. Решить задачи методом отсечения.
1.1. f x1 4x2 x3 min ; x1 x2 2x3 3;
2x1 x2 1; 2x2 3x3 4;
x j 0, j 1,3; x j целые .
1.2. f 4x1 3x2 max; 8x1 2x2 88;
x1 22; 5x2 90;
|
|
|
|
|
|
|
целые . |
|
x j |
0, |
j 1,2 ; x j |
||||
1.3. |
f |
110x1 90x2 max; |
|||||
|
3x1 4x2 10; |
|
|||||
|
2x1 x2 |
8; |
|
||||
|
x2 5; |
|
|
|
|
|
|
|
x j |
0, |
j 1,2 ; x j |
целые . |
|||
1.4. |
f |
3x1 2x2 x3 |
min; |
||||
|
x1 3x2 x3 10; |
|
|||||
|
2x1 4x2 14; |
|
|||||
|
2x2 x3 7; |
|
|||||
|
|
|
|
|
|
целые . |
|
|
x j |
0, |
j 1,3; x j |
||||
1.5. |
f |
x1 x2 max ; |
|||||
|
x1 2x2 x3 1; |
|
|||||
|
x1 3x2 x4 3; |
|
|||||
|
|
|
|
|
|
целые . |
|
|
x j |
0, |
j 1,4 ; x j |
||||
1.6. |
f |
2x1 x2 x3 max; |
|||||
|
x1 2x2 |
2x3 16; |
|||||
|
x1 x2 7; |
|
|||||
178
3x1 2x3 18;
|
|
|
|
x j 0, |
j 1,3; x j целые . |
||
1.7. f x4 |
x5 min; |
||
x1 4x2 2x5 1;
x2 2x4 2;
x3 3x4 x5 3;
|
|
|
|
|
|
|
|
целые . |
|
x j |
0, j 1,5; |
x j |
|||||
1.8. |
f |
x1 2x2 3x3 |
max; |
|||||
|
6x1 4x2 |
3x3 |
25; |
|||||
5x1 3x2 |
2x3 |
15; |
||||||
|
|
|
|
|
|
|
целые . |
|
|
x j |
0, j 1,3; |
x j |
|||||
1.9. |
f |
70x1 30x2 max; |
||||||
10x1 4x2 40; |
|
|||||||
|
6x1 4x2 |
36; |
|
|
||||
|
|
|
|
|
|
целые . |
||
|
x j |
0, j 1,2 ; |
x j |
|||||
1.10. f 4x1 3x2 |
max; |
|||||||
|
x1 4x2 6; |
|
|
|||||
|
4x1 2x2 |
2; |
|
|
||||
|
|
|
|
|
|
|
целые . |
|
|
x j |
0, j |
1,2 ; |
x j |
||||
179
ЛИТЕРАТУРА
1.Горлаг Б.А., Шахов В.Г. Математическое моделирование. Построение моделей и численная реализация. М.: Высшая школа. 2018. – 280с.
2.Королев А.В. Экономика – математические методы и моделирование. Учебник и практикум для бакалавриата и магистратуры. М.: Высшая школа. 2018 – 280 с.
3.Лебедева Г.И. Прикладная математика. Математические модели в транспортных системах /Г.И. Лебедева, Н.А. Микулик, Минск: Асар, 2009.
