Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1966

.pdf
Скачиваний:
8
Добавлен:
30.04.2022
Размер:
3.23 Mб
Скачать

значения равны нулю. В этом случае мы имеем дело с вырожденной ситуацией, и базисная точка, полученная на этой итерации, является вырожденной базисной точкой исходной задачи. Она, как и в предыдущем случае, вообще говоря, не является оптимальной. Следовательно, необходимо продолжить поиск, не уменьшая при этом

полученное оптимальное значение

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