Учебное пособие 1966
.pdfзначения равны нулю. В этом случае мы имеем дело с вырожденной ситуацией, и базисная точка, полученная на этой итерации, является вырожденной базисной точкой исходной задачи. Она, как и в предыдущем случае, вообще говоря, не является оптимальной. Следовательно, необходимо продолжить поиск, не уменьшая при этом
полученное оптимальное значение |
0 |
0 |
. По оценкам |
|
|
|
j |
0 (если они есть) определяется вектор для введения в |
|
базис на данной итерации. Процесс продолжается до тех пор,
пока не исчезнут такие |
j, что |
j |
0 , |
j |
0 , |
|
|
|
|
||
соответствующий столбец Aj |
имеет элементы aij |
0 . |
|
Итак, сформулируем алгоритм метода искусственного
базиса (модифицированного симплекс метода):
1.Ввести в исходную задачу искусственные переменные так, чтобы среди столбцов полученной матрицы появился единичный базис в пространстве Rm , где m - число ограничений задачи. Ввести искусственные переменные в целевую функцию с коэффициентами, равными – M.
2.Составить исходную таблицу для оформления решения задачи. Фрагмент таблицы завершается двумя строками для оценок
|
j |
j |
M j |
(первая - для чисел j , вторая - для |
j ). |
|
|
|||
3. |
Вычислить оценки всех векторов-ограничений задачи по |
|
|
|||||||
|
формулам |
j |
ci aij c j . При наличии искусственных |
|
|
|||||
|
|
|
|
i I |
|
|
|
|
|
|
|
векторов в базисе получим выражения вида |
j |
M j . |
|
|
|||||
|
Поместить |
j |
в первую оценочную строку, |
j - во вторую |
|
|||||
|
(нижнюю). |
|
|
|
|
|
|
|
||
4. |
При наличии двух оценочных строк проверить, если все |
j |
0 , |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
то перейти к п. 11, иначе к п.6 с числами j |
. Если осталась одна |
||||||||
|
оценочная строка, то проверить условие |
j |
0 . Если это условие |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
выполняется, то перейти к п.9. |
|
|
|
|
|
|
|||
5. |
Просмотреть векторы-столбцы Aj , для которых |
j |
0 . Если |
|
103
среди них существует такой, что все его координаты |
ij |
0 , то |
|
|
|
|
|
перейти к п. 10, иначе - к п.9 с числами j |
j . |
|
|
6.Определить направляющий элемент для выполнения преобразований Жордана-Гаусса. Номер столбца k может быть
выбран любым среди тех j, для которых |
j |
0 . Номер строки l |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
определяется следующим образом: |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
xl |
|
xi |
|
|
|
|||||
|
|
min |
, где xi - базисные координаты проверяемой |
|||||||||
|
alk |
|
||||||||||
|
aik 0 |
aik |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
базисной точки, alk - направляющий элемент.
7.Перейти к новой базисной точке. Осуществить преобразования Жордана-Гаусса с направляющим элементом alk . Выбросить из
рассмотрения искусственный вектор, если он на данной итерации стал небазисным. Перейти к п.3.
8 .Проанализировать значение целевой функции в данной базисной
точке z(xB ) |
0 M 0 . Если 0 0 , то проверить наличие |
искусственных векторов в базисе. Если искусственных векторов в базисе нет, то вычеркнуть вторую оценочную строку и перейти к выполнению п.4. Если искусственные переменные имеются среди базисных (они при этом равны нулю), то проверить неравенство
j |
0 для тех номеров j, для которых |
j |
0 . Если неравенства |
|
|
выполняются, то получено решение задачи. Перейти к п.12. Если среди j таких, что j 0 , существуют такие, что j 0 , то перейти к п.5, где проверке будут подвергаться только те векторы
Aj , для которых j 0 , j
имеет место неравенство |
0 |
|
0 . Если в выражении 0 M 0
0 , то перейти к п. 11.
9. Проверка единственности решения. |
|
|
Если среди небазисных векторов есть такие, что |
j |
0 , то в |
|
|
задаче имеется бесчисленное множество решений. Исключение составляет случай, когда была сделана замена переменных
x |
x' |
x'' . B этом случае, если одна из переменных |
x' |
или x'' |
s |
s |
s |
s |
s |
является базисной, то оценка второй обязательно равна нулю. Этот факт означает бесчисленное множество пар, с помощью
104
которых может быть получено значение переменной xs . Если
среди небазисных векторов, кроме тех, о которых сказано выше, нет таких, которые имеют нулевые оценки, то в задаче существует единственное решение. Если имеет место случай, когда для всех
небазисных векторов |
j |
0 , то задача имеет единственное |
|
|
решение. Перейти к п.15.
10.СТОП. Задача не имеет решения из-за неограниченности целевой функции на допустимом множестве. Перейти к п. 12.
11.СТОП. Задача не имеет решения из-за пустоты исходного допустимого множества.
12.Выписать ответ.
Пример 1. Решить ЗЛП:
x1 |
2x2 |
3x3 |
x4 |
min |
|
x1 |
2x2 |
3x3 |
|
15, |
|
2x1 |
x2 |
5x3 |
|
20, |
|
x1 |
2x2 |
|
x3 |
x4 |
10, |
x j |
0, j |
1, 4. |
|
Решение.
Так как в задаче нет начального базиса, введѐм дополнительные переменные z5 и z6:
x1 |
2x2 |
3x3 |
x4 |
Mz5 Mz6 |
min |
|
x1 |
2x2 |
3x3 |
|
z5 |
15, |
|
2x1 |
x2 |
5x3 |
|
z6 |
20, |
|
x1 |
2x2 |
x3 |
x4 |
|
10, |
|
|
|
|
|
|
|
|
x j |
0, |
j 1, 4. |
|
|
Запишем данные в таблицу:
105
|
|
|
|
|
|
-1 |
-2 |
-3 |
1 |
M |
|
M |
|
|
|
B |
CB |
|
x |
|
|
|
|||||||
|
|
|
|
A1 |
A2 |
A3 |
A4 |
z1 |
|
z2 |
|
|
||
|
|
|
|
|
|
|
|
|
||||||
|
z1 |
M |
15 |
1 |
2 |
3 |
0 |
1 |
|
0 |
5 |
|
||
|
z2 |
M |
20 |
2 |
1 |
5 |
0 |
0 |
|
1 |
4 |
|
||
|
x4 |
1 |
10 |
1 |
2 |
1 |
1 |
0 |
|
0 |
10 |
|
||
|
|
|
10 |
2 |
4 |
4 |
0 |
0 |
|
0 |
|
|
||
|
|
|
35 |
3 |
3 |
8 |
0 |
0 |
|
0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
На первой итерации вектор |
z2 выводится из базиса, |
следовательно |
||||||||||||
его столбец вычѐркиваем. В базис вводится вектор A3 . |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
B |
CB |
|
x |
-1 |
-2 |
-3 |
1 |
M |
|
|
|
|
|
|
|
|
|
A1 |
A2 |
A3 |
A4 |
z1 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||||
|
z1 |
M |
3 |
|
-1/5 |
7/5 |
0 |
0 |
1 |
|
|
15/7 |
|
|
|
x3 |
-3 |
4 |
|
2/5 |
1/5 |
1 |
0 |
0 |
|
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x4 |
1 |
6 |
|
3/5 |
9/5 |
0 |
1 |
0 |
|
|
30/9 |
|
|
|
|
|
10 |
2 |
4 |
0 |
0 |
0 |
|
|
|
|
||
|
|
|
3 |
|
-1/5 |
7/5 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
На второй итерации из базиса выводится вектор z2 , и
дополнительные переменные исчезают. Продолжаем решать исходную задачу по стандартной схеме.
|
|
|
|
|
-1 |
-2 |
-3 |
1 |
|
B |
CB |
|
x |
|
|||||
|
|
|
A1 |
A2 |
A3 |
A4 |
|
||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
||
x2 |
-2 |
15/7 |
-1/7 |
1 |
0 |
0 |
-15 |
||
x3 |
-3 |
25/7 |
3/7 |
0 |
1 |
0 |
25/3 |
||
|
|
|
|
|
|
|
|
||
x4 |
1 |
15/7 |
6/7 |
0 |
0 |
1 |
15/6 |
||
|
|
-90/7 |
6/7 |
0 |
0 |
0 |
|
||
|
|
|
|
|
|
|
|
||
x2 |
-2 |
5/2 |
0 |
1 |
0 |
1/6 |
|
||
x3 |
-3 |
5/2 |
0 |
0 |
1 |
-3/6 |
|
||
|
|
|
|
|
|
|
|
||
x1 |
-1 |
5/2 |
1 |
0 |
0 |
7/6 |
|
||
|
|
-15 |
0 |
0 |
0 |
-1 |
|
106
Итак, |
задача решена. Найдена оптимальная точка x* ( |
5 |
, |
5 |
, |
5 |
,0) , |
|
2 |
2 |
2 |
||||||
|
|
|
|
|
||||
L(x* ) |
15 . |
|
|
|
|
|
|
Пример 2. Решить ЗЛП:
x1 |
|
3x3 |
x4 |
max |
||
2x1 |
4x2 |
|
|
|
x4 |
9, |
3x1 |
2x2 |
|
|
|
3x4 |
3, |
x1 |
5x2 |
|
x3 |
2x4 |
4, |
|
x j |
0, j |
|
|
|
|
|
1, 4. |
|
|
Так как в задаче присутствует только один базисный вектор A3 , добавим искусственные переменные в 1-е и 2-е ограничение.
|
|
|
|
|
x1 |
|
|
3x3 |
x4 |
Mz1 |
Mz2 |
max |
|
|||||
|
|
|
|
|
2x1 |
4x2 |
|
|
|
x4 |
|
z1 |
|
|
9, |
|
||
|
|
|
|
|
3x1 |
2x2 |
|
|
|
3x4 |
|
|
|
z2 |
3, |
|
|
|
|
|
|
|
|
x1 |
|
5x2 |
x3 |
2x4 |
|
|
|
|
4, |
|
|||
|
|
|
|
|
x j |
0, j |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1, 4. |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
CB |
|
|
|
1 |
|
0 |
|
3 |
|
|
|
-1 |
|
-M |
|
-M |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
A1 |
|
A2 |
|
A3 |
|
A4 |
|
z1 |
|
z2 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||
z1 |
-M |
9 |
|
2 |
|
4 |
|
0 |
|
|
|
-1 |
|
1 |
|
0 |
9/4 |
|
z2 |
-M |
3 |
|
-3 |
|
2 |
|
0 |
|
|
|
3 |
|
0 |
|
1 |
3/2 |
|
x3 |
-M |
4 |
|
1 |
|
5 |
|
1 |
|
|
|
2 |
|
0 |
|
0 |
4/5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
12 |
2 |
|
15 |
|
0 |
|
|
|
7 |
|
0 |
|
0 |
|
||
|
|
-12 |
1 |
|
-6 |
|
0 |
|
|
|
-2 |
|
0 |
|
0 |
|
||
z1 |
-M |
4 |
|
1 |
|
0 |
|
2 |
|
|
|
1 |
|
1 |
|
0 |
|
|
z2 |
-M |
7/5 |
-17/5 |
|
0 |
|
-2/5 |
|
11/5 |
|
0 |
|
1 |
|
||||
x2 |
0 |
4/5 |
1/5 |
|
1 |
|
1/5 |
|
2/5 |
|
0 |
|
0 |
|
||||
|
|
0 |
|
-1 |
|
0 |
|
-3 |
|
|
1 |
|
0 |
|
0 |
|
||
|
|
-36/5 |
11/5 |
|
0 |
|
6/5 |
|
2/5 |
|
0 |
|
0 |
|
107
Как видно из таблицы, дальнейшее улучшение решения невозможно, так как во 2-й оценочной строке нет отрицательных элементов. Следовательно, достигнуто оптимальное решение задачи. Но
искусственные переменные z1 , z2 не выведены из базиса и не равны
нулю, следовательно, исходная задача не имеет решения, так как ее допустимое множество пусто.
Задачи для самостоятельного решения
Решить методом исскуственного базиса:
4.4.1 |
x1 |
– |
x2 |
+ 3x4 |
+ |
x5 |
min, |
|
x1 |
+ 2x2 + 3x3 + 3x4 + |
x5 = 15, |
||||
|
2 x1 – |
x2 – 3x3 + x4 – x5 = |
4, |
||||
|
2 x1 – 2x2 – x3 |
+ 2x5 = |
8; |
||||
4.4.2 |
3 x1 |
+ x2 |
+ x4 + x5 |
|
min, |
|
2 x1 – x2 + x4 – x5 = 9, |
|
|||
4 x1 – x2 – x3 |
– x5 = 4, |
|
||
x1 – x2 – x3 |
|
– x5 = 6; |
|
|
4.4.3 x1 – 2x2 + 2x3 + |
x4 + 2x5 |
max, |
||
–x1 + x2 – 2x3 + 3x4 + x5 = 2, |
||||
–x1 + 2x2 – x3 + 2x4 |
|
= 3, |
||
2x1 + 3x2 |
+ x4 – x5 = 6; |
|||
4.4.4 x1 + 2x2 + x3 – |
x4 |
min, |
|
|
–x1 + 5x2 + x3 + |
x4 + |
x5 = 10, |
||
2x1 – x2 + x3 – 3x4 |
= 6, |
|||
10x2 + x3 + 2x4 + 3x5 = 25; |
||||
4.4.5 x1 – x2 + |
x3 + x4 – |
x5 |
min, |
|
x1 |
+ x4 + 6 x5 = 9, |
|||
3 x1 + x2 – 4 x3 |
+ 2 x5 = 2, |
|||
x1 + 2 x2 |
|
+ 2 x5 = 6; |
108
4.4.6 |
x1 |
– x2 + x3 + 2x4 |
max, |
|
x1 + x2 + x3 + 2x4 + 3x5 = 7, |
||
|
x1 |
+ 2x2 + 2x3 + 3x4 |
+ 2x5 = 12, |
|
2x1 |
+ 3x2 + 4x3 + 4x4 |
– x5 = 22; |
4.4.7 |
x1 + 2 x2 – x3 – x4 |
min, |
|
||
|
x1 + x2 + 2 x3 – x4 = 2, |
|
|||
|
x1 + 2 x2 – 3 x3 + x4 = 6, |
|
|||
|
x1 + x2 + x3 + x4 = 7; |
|
|||
4.4.8 |
x1 |
– x2 + x3 |
+ x4 + x5 – |
x6 min, |
|
|
4x1 |
+ x2 – 4x3 |
+ x4 |
+ |
8x6 = 15, |
|
4x1 + x2 – 2x3 |
+ x5 + 4x6 = 8, |
|||
|
5x1 |
+ x2 – 2x3 |
+ x4 + x5 + 10x6 = 21; |
||
4.4.9 |
x1 |
+ 2x2 + 3x3 + x4 + x5 |
max, |
||
|
x1 + x2 + 4x3 – x4 + x5 = 1, |
||||
|
x1 + x2 – 2x3 + x4 + x5 = 1, |
||||
|
–x1 + x2 – 6x3 + x4 + x5 = 1; |
||||
4.4.10 |
x1 |
– x2 + x3 – 3x4 + 2x5 |
min, |
||
|
x1 + 2x2 – x3 + 2x4 + x5 |
8, |
|||
|
–x1 – x2 + x3 – 3x4 – 2x5 = 10, |
||||
|
2x1 – x2 + 3x3 – x4 + 2x5 |
4. |
109
4.5. Двойственные задачи линейного программирования
Рассмотрим задачу линейного программирования, записанную в произвольной форме:
|
n |
|
|
c j x j |
max(min) |
j |
1 |
|
|
n |
|
|
aij x j |
( , )bi , i 1,..., m |
j |
1 |
|
xj 0 ( , неттребованийна знак) , j 1, n .
Данную задачу будем называть исходной. Под двойственной задачей (ДЗ) к исходной понимается задача линейного программирования, которая строится по правилам, приведенным в таблице 4.5.1, при этом в случае, когда целевая функция в исходной задаче минимизируется, таблица прочитывается справа налево.
Таблица 4.5.1
Исходная задача |
Двойственная задача |
|||||
|
n |
|
|
m |
|
|
|
|
c j x j |
max |
|
bi yi |
min |
j |
1 |
|
|
i 1 |
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
aij x j |
bi |
yi |
0 |
|
j |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
aij x j |
bi |
yi |
0 |
|
j |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
aij x j |
bi |
yi |
любого знака |
|
j |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|
|
xj |
0 |
|
|
aij y j |
ci |
|
|
|
|
|
i 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|
|
xj |
0 |
|
|
aij y j |
ci |
|
|
|
|
|
i 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|
|
xj |
любогознака |
|
aij y j |
ci |
||
|
|
|
|
i 1 |
|
|
|
|
|
|
|
|
|
110
Данная таблица позволяет сформулировать несколько общих правил построения двойственных задач:
• каждому i-му ограничению исходной задачи соответствует переменная yi в ДЗ, и, наоборот, каждому k-му
ограничению ДЗ соответствует переменная xk исходной задачи;
•матрицы ограничений в исходной и двойственной задачах взаимно транспонированы;
•правые части ограничений исходной задачи становятся коэффициентами целевой функции в ДЗ, а коэффициенты целевой функции исходной задачи - правыми частями ограничений в ДЗ;
•если целевая функция в исходной задаче максимизировалась (минимизировалась), то в ДЗ целевая функция минимизируется (максимизируется).
Используя данные правила, построим ДЗ к ЗЛП, записанной в симметричной форме. В ДЗ целевая функция минимизируется:
m
bi yi min .
i 1
Все ограничения в симметричной форме задачи имеют вид
n
aij x j bi , поэтому на все переменные ДЗ будет присутствовать
j 1
требование неотрицательности yi 0 , i 1, m . На все переменные в симметричной форме присутствует требование неотрицательности,
|
|
|
|
|
|
|
|
m |
|
|
поэтому ограничения |
ДЗ |
будут |
иметь вид |
aij y j ci , j 1, n . |
||||||
|
|
|
|
|
|
|
i |
1 |
|
|
Итак, получили задачу |
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
|
bi yi |
|
min |
|
|
|
|
|
|
||
i 1 |
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
|
a ij yi |
c j , j |
1, n, |
|
|
|
|||||
i 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
yi |
0, i |
1, m. |
|
|
|
|
|
|
111
Аналогично, нетрудно получить ДЗ для ЗЛП, записанной в канонической форме:
m |
|
|
|
bi yi |
min |
||
i 1 |
|
|
|
m |
|
|
|
a ij yi |
c j , j 1, n. |
||
i 1 |
|
|
|
Заметим, что, прежде чем строить двойственную задачу, удобно исходную вначале привести к симметричной или канонической форме, а затем по шаблону к полученной форме задачи построить двойственную. При этом полученные разными способами двойственные задачи будут эквивалентными.
Выпишем основные свойства, которые справедливы для пары двойственных задач. Рассмотрим, например, в качестве пары двойственных задач симметричную и двойственную к ней. В матричной форме они записываются следующим образом:
cT x |
max |
bT y |
min |
Ax |
b |
AT y |
c |
x |
0 |
y 0 |
|
Свойство 1. Задача двойственная к двойственной является исходной.
Свойство 2. Для любых х допустимых в исходной задаче, и у, допустимых в двойственной, справедливо неравенство
cT x bT y .
Свойство 3. Если исходная задача не имеет решения из-за неограниченности целевой функции на допустимом множестве, то допустимое множество двойственной задачи пусто.
Свойство 4. Возможен вариант, когда допустимые множества исходной и двойственной задач одновременно пусты.
Например:
x1 2x2 |
max |
4 y1 |
y2 |
min |
|||
3y1 |
3y2 |
1, |
|||||
3x1 |
x2 |
4, |
|||||
y1 |
y2 |
2, |
|||||
3x1 |
x2 |
1. |
|||||
y1 |
0, y2 |
0. |
|||||
|
|
|
|||||
Свойство 5. Если существует |
x0 , |
допустимый в исходной |
112