Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Антонов. Системный анализ. Учебник для вузов.doc
Скачиваний:
450
Добавлен:
19.02.2016
Размер:
3.82 Mб
Скачать
  1. Метод искусственных переменных

Рассмотрим задачу линейного программирования, в которой огра­ничения имеют вид AX < P0. Если все Ь.> 0, /= 1,2,...,т, то свободные векторы, образующие единичную подматрицу, составляют начальный базис, а соответствующие им переменные - начальное базисное реше­ние.

В более общем случае, когда ряд неравенств имеет знак «больше или равно», например, anx+aj7x+...+ап> Ь., і- 1, 2,..., т, для приве­дения их к стандартной канонической форме свободные переменные надо вычесть. Тогда расширенная форма задачи имеет вид

O11X1 12х2ихп-1хп+1+0хп+2+...+0хя+т= ЬХ\

O21X1 +O22X2 +... + O2nXn + 0х„+1 -1хп+2+...+0хп+т= Ь2; (10.9)

aMixIшгхг +■■■ + атпхп + 0*„+1 +--IJvfraт.

Свободные переменные {хп+1п+2,...п+т} уже нельзя использовать в качестве начального базиса, так как х ^ < 0, х , < 0,..х <0.

? л+1 ’ п+2 ’ ’ п+т

С целью формирования начального базиса в уравнения (10.9) допол­нительно ВВОДЯТ искусственные переменные JC + , хп+т+2JC„+m+t, которые не имеют ничего общего с реальной задачей, и должны быть выведены из базиса как можно скорее. Чтобы гарантировать их быст­рое выведение после начала итераций для задач максимизации, искус­ственным переменным в целевой функции приписывают очень большие по величине отрицательные коэффициенты (-A/), где М»с, (/=1,2,..., п). В случае решения задач минимизации искусственные переменные вво­дят в целевую функцию с большими по величине положительными ко­эффициентами (+AT).

Первая итерация. Элементы индексной строки вычисляем еле-

Знаки вводимых в ограничения искусственных переменных х , *n+m+2’ ■ • • ’ хп+т+к должны совпадать со знаками соответствующих сво­бодных членов. Искусственные переменные образуют начальное ба­зисное решение. Применив симплекс-метод, решают задачу по выве­дению из базиса всех искусственных переменных. Если доказано, что от искусственных переменных избавиться нельзя, то это означает, что задача не имеет решения, т.е. ограничения задачи противоречивы.

дующим образом: аш = JailCi - с,; і=1,2,3 означает номер соответству-

„ /“1 ющеи строки

Рассмотрим пример решения задачи линейного программирования с использованием метода искусственных переменных.

Требуется минимизировать линейную форму вида

Hiin f(X) = min(15jc, + 33х2) при ограничениях

3*1 + г > 6,

6х, + хг > 6,

X2 >1,

X1, х2 >0.

Вводя свободные переменные JC3, JC4, JC5 приходим к расширенной форме задачи

Зх, +г 3 =6,

бх, +X2 - х4 =6,

X2-X5=L

Переменные Jc3, jc4, Jc5 образуют недопустимое базисное решение X36= -6 < О, X46= -6 < 0, X5 = - 1 < 0,

поэтому вводим в ограничения и в целевую функцию искусственные пе­ременные jc6, Xv JCg. Получим следующую запись задачи:

min{l5x, + 33х2 + Afx6 + Afx7 + Afx8),

3xj + 2х2 - X3 + х6 = 6,

6х, +X24 +х7 =6,

хг~х5»=1-

Очевидно, начальное базисное решение х6 =6, X7= 6, х8* = 1. Поскольку A6, A7, A8 образуют единичный базис, а все а.0> 0, то для решения применим метод симплекс-таблиц.

Исходная таблица имеет следующий вид (табл. 10.6).

15

33

0

0

0

M

M

M

в,

Ao

Ai

Аг

Аг

Ai

As

At

A1

As

M

Xe

6

3

г

-1

0

0

1

0

0

M

Xl

6

б

1

0

-1

0

0

1

0

M

х»

1

0

1

0

0

-1

0

0

1

13М

9М-15

4М-33

-M

-M

-M

0

0

0

Таблица 10.6


т



aOi=XcZxIi-cI=XcIxI-cI+ 6M + OM-15= 9М -15

‘*h

«02 = Xс.*.2 -C2 = IM + IM + IM -33 = AM - зз;

Js

, вычтем ее из последней строки. Полу-

Я03 - X СХИ С3 ^ ’ «04 ~ * «05 = ^' «06 = «07 = ао* = 0 ’

«00 = Хс/х. = 6М+6М+1М = 13М.

iej*

Поскольку решается задача минимизации, то направляющий стол­бец определяют по наибольшему положительному элементу индексной

строки: a0j =ш{а0101 >0}. Направляющий столбец -^1; направля­ющая строка - вторая. Выполним один шаг преобразования. Разделим направляющую строку на направляющий элемент а7] = 6. Умножив пре­образованную направляющую строку на 3, вычтем ее из первой. Тре­тья строка остается без изменений, поскольку элемент направляюще­го столбца для нее равен нулю. Затем, умножив преобразованную на­правляющую строку на (9Л/-15), вычтем ее из индексной. В результа­те получим табл. 10.7.

Таблица 10.7

Ci

15

33

0

0

0

M

M

M

Bjt

Ao

A1

A2

Aj

Ai

As

Аб

M

Xe

3

0

2

-1

1

2

0

1

1

2

0

15

X1

1

1

1

6

0

1

6

0

0

1

6

0

M

Xe

1

0

1

0

0

-1

0

0

1

4М+15

0

|м-зоі 2 2

-M

М_ 15 2 ~ 6

-M

0

5->м 2 2

0

Вторая итерация. Так как а02 =^M -30> a0j(j *2), т.е. являет­ся максимальным элементом из всех элементов индексной строки, то направляющий столбец - A2; направляющая строка - третья. Направ­ляющий элемент а%2= 1.

Выполним шаг симплекс-преобразования. Умножив направляющую

строку на 1-, вычтем ее из первой строки. Затем, умножив направля-

2

ющую строку на -, вычтем ее из второй и, наконец, умножив направ- 6

ляющую строку на 1_ 3Q.1 чим табл. 10.8

Таблица 10.8

Cl

15

33

0

0

0

M

M

M

Br

Ao

Ax

A2

Ay

A4

As

Аб

Ai

■^8

M

Xb

2

0

0

-1

1

2

2

1

1

2

-j

15

Х\

5

6

1

0

0

1

6

1

6

0

1

6

і

”б

33

X2

1

0

1

0

0

-1

0

О

і

-M+45^ 2 2

0

0

-M

M 15 2 6

3 1

-M-30- 2 2

0

2 2

М+30^ 2 2

  1. 1

Третья итерация. Поскольку аа5=-M -30— > a0/(j * 5), то направ­ляющий столбец - A5. Направляющая строка - первая, направляющий

элемент а65 = І-j. Выполнив очередной шаг симплекс-преобразования, выведем из базиса последнюю искусственную переменную х6 и введем

*5'

Таким образом, приходим к таблице следующего вида (табл. 10.9).

Таблица 10.9

Ci

15

33

0

0

0

M

M

M

Bx

Ao

A1

A1

Аз

A4

As

At

Ai

Ag

0

XS

1

0

0

2

3

1

3

1

2

3

1

3

-1

15

Xx

4

6

1

0

1

9

2

9

0

1

9

2

9

0

33

X2

2

0

1

2

3

1

3

0

2

3

1

3

0

76

0

0

-20І

46

6

0

S

I

46 M 6 2

-M

Четвертая итерация. Обратим внимание, что в этой таблице все искусственные переменные выведены из базиса. Направляющий стол­бец -A4, направляющая строка - первая, направляющий элемент а14 = і. Выполнив еще один шаг симплекс-преобразования, получим табл. 10.10.

Таблица 10.10

Ci

15

33

0

0

0

M

M

M

в,

Ao

Лг

Аг

A4

As

At

Ai

Ag

0

X4

3

0

0

-2

1

3

2

-1

—3

15

Xl

4

3

1

0

1

3

0

2

3

1

3

0

2

3

33

Xl

1

0

1

0

0

-1

0

0

1

53

0

0

-5

0

-23

5-М

M

2

23-M

Поскольку в индексной строке все оценки aQ.< 0, то найдено опти-

4

мальное решение jc, = -,х, =IjXi =3.

* 1 опт ^ ’ 2 от ’ 4 опт

Искомое значение целевой функции O00= min Z = 53.

Проверим это: min( 15^,+33^) = ISx1 опт +33 X2 опт = 53.

при условиях J

Таким образом, рассмотренный метод позволяет решать задачи линейного программирования в общем случае, когда имеются ограниче­ния в виде неравенств с различными знаками: как «больше или равно», так и «меньше или равно».

Х=(хх2,...,хп)е D, (10.12)

где D - некоторое множество R{n).

Если множество D является конечным или счетным, то условие (10.12) - это условие дискретности, и данная задача является задачей дискретного программирования (ЗДП). Чаще всего условие дискретно­сти разделено по отдельным переменным следующим образом:

XjE DjJ = 1,2,..., и,

где Dj- конечное (или счетное) множество.

Если вводится ограничение х. - целые числа (j = 1,2,..., и), то при­ходят к задачам целочисленного программирования (ЦП), которое яв­ляется частным случаем дискретного программирования.

В задачах дискретного программирования область допустимых решений является невыпуклой и несвязной. Поэтому отыскание реше­ния таких задач сопряжено со значительными трудностями. В частно­сти, невозможно применение стандартных приемов, используемых при замене дискретной задачи ее непрерывным аналогом, состоящих в даль­нейшем округлении найденного решения до ближайшего целочисленного. Например, рассмотрим следующую ЗЛП: найти max (*,-Зх2 +Зх3)

Ixl + х2 - х} < 4;

Axx - Зх2 < 2;

[—3jc, + Ix2 + X1 < 3,

где X1, X2 X3 > 0,Xj- целые числа (/' = 1,2, 3). Игнорируя условие цело- численности, находим оптимальный план симплекс-методом: