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

optBook1

.pdf
Скачиваний:
26
Добавлен:
27.03.2015
Размер:
574.28 Кб
Скачать

2.4. Получение начального допустимого базисного решения

51

а) Если qrj = 0 (j = 1; 2; : : : ; n), то исходная система Ax = b избыточна, так как ее r-ая строка является линейной ком-

бинацией остальных строк. Следовательно, r-ая строка из таблицы Q и из исходной системы может быть удалена.

б) Если qrj =60 для некоторого j 2 f1; 2; : : : ; ng, то в таблице Q выполним один шаг гауссова исключения с направля-

ющим элементом qrj. В результате s будет исключен из B. После этого s-ый столбец из Q можно вычеркнуть.

После операций удаления строк и столбцов, описанных в пп. 2а) и 2б), придем к ситуации п. 1).

Описанная выше схема называется методом искусственного базиса, или первым этапом (фазой) симплекс-метода. Метод искусственного базиса либо устанавливает, что исходная система ограничений несовместна, либо находит начальную допустимую базу, отыскивая в исходной системе все уравнения-следствия (если они есть) и тем самым сводя задачу к случаю rank A = m. После этого к исходной задаче применяется алгоритм 1, называемый в данном случае вторым этапом (фазой) симплекс-метода.

Пример 2.28. Продемонстрируем метод искусственного базиса на ЗЛП

 

max(¡x1 ¡ x2 ¡ 5x4)

 

x1

+ x2 ¡ x3

+ 3x4 = 1;

8 x1 ¡ 2x2

+ 3x3 ¡ x4 = 1;

>

5x1

 

4x2

+ 7x3

+ 3x4 = 5;

>

 

 

 

 

 

<

 

¡

 

 

 

>

>

:xj ¸ 0 (j = 1; 2; 3; 4):

Первый этап. По исходной задаче строим вспомогательную ЗЛП:

 

 

 

max(¡x5 ¡ x6 ¡ x7)

 

 

x1

+ x2 ¡ x3 + 3x4 + x5

 

= 1;

8 x1 ¡ 2x2

+ 3x3 ¡ x4

+ x6

= 1;

>

5x1

4x2

+ 7x3 + 3x4

 

+ x7 = 5;

>

 

 

 

 

 

<

 

¡

 

 

 

>xj ¸ 0 (j = 1; 2; 3; 4):

 

 

>

 

 

 

 

 

:

 

 

 

 

 

52

 

 

 

 

 

 

 

 

Глава 2.

 

Симплекс-метод

Получим следующие симплекс-таблицы:

 

 

 

 

 

 

 

 

0

 

 

B(0) = h1; 2; 3i ;

 

 

 

 

1

 

Q(0) =

¡7

¡7

5

¡9

¡5

0

0

0

;

B

1

1

1

¡1

3

1

0

0

C

 

B

 

 

 

 

 

 

 

 

 

 

C

 

 

B

1

1

2

3

 

1

0

1

0

C

 

 

B

 

 

¡

 

¡

 

 

 

 

C

 

 

B

5

5

4

7

3

0

0

1

C

 

 

B

C

 

 

B

 

 

¡

 

 

 

 

 

 

 

C

 

 

@

 

 

 

 

 

 

 

 

 

 

A

 

 

0

0

 

B(1) = h1; 2; 4i ;

0

0

 

 

1

 

 

0

¡3=5

4=5

¡4=5

7=5

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q(1) =

B

0

0

9=5

¡12=5

12=5

1

0

¡1=5

C

;

 

B

 

 

¡

 

¡

 

 

 

¡

 

C

 

 

B

 

 

 

 

 

 

 

 

 

 

C

 

 

B

1

1

4

7

3

0

0

1

C

 

 

B

¡ =5

=5

=5

=5

C

 

 

B

0

0

6=5

8=5

 

8=5

0

1

 

1=5

C

 

 

B

 

 

 

 

 

 

 

 

 

 

C

 

 

@

 

 

 

 

 

 

 

 

 

 

A

 

Заметим, что после второй итерации значение целевой функции равно 0, хотя симплекс-таблица не оптимальна8.

 

0

 

 

B(2) = h2; 4; 5i ;

 

 

 

1

 

 

0

0

0

0

0

1=3

0

4=3

 

 

B

 

 

 

 

 

 

 

 

 

 

C

 

Q(2) =

 

0

0

1

¡4=3

4=3

5=9

0

¡1=9

 

:

 

B

0

0

0

0

0

2

1

1

C

 

 

B

=3

¡ =3

C

 

 

B

 

 

 

 

 

 

 

 

C

 

 

B

1

1

0

1

5

4

0

1

C

 

 

B

=3

=3

=9

=9

C

 

 

B

 

 

 

 

 

 

 

 

C

 

 

@

 

 

 

 

 

 

 

 

A

 

Таблица Q(2) оптимальна. Так как q00 = 0, то исходная система совместна. Так как q2j = 0 (j = 1; 2; 3; 4), то вторая строка избыточна. Вычеркивая вторую строку и столбцы, соответствующие искусственным переменным, и приписывая коэффициенты целевой функции исходной

8Дальнейшую оптимизацию можно прекратить и приступить к исключению из базы столбцов с номерами меньшими чем m.

2.5. Матричное описание симплекс-метода

 

 

53

задачи, получим таблицу:

 

 

 

 

 

 

0

0

 

1

0

5

1

:

1

B

0

0

1

¡4=3

4=3

C

B

 

 

 

 

 

C

 

B

1

1

0

1

5

C

 

B

=3

=3

C

 

B

 

 

 

 

 

C

 

@

 

 

 

 

 

A

 

В нулевой строке избавимся от базисных переменных. Для этого вычтем из нулевой строки первую и вторую:

0

¡1

 

0

1

2

1

 

0

 

B

 

 

 

 

 

 

 

C

 

 

 

 

 

1

5

 

 

B

 

 

 

C

 

B

0

0

1

¡4=3

4=3

C

:

B

1

1

0

=3

=3

C

 

B

 

 

 

 

 

C

 

@

 

 

 

 

 

A

 

Таблица уже оптимальна. Получено оптимальное решение (1; 0; 0; 0)> и значение целевой функции ¡1.

2.5. Матричное описание симплекс-метода

 

Рассмотрим каноническую ЗЛП (9) в матричной форме:

 

max cx

 

Ax = b;

(33)

 

½ x ¸ 0:

 

Рассмотрим сначала случай, когда строки матрицы A линейно независимые. Пусть B — некоторая база матрицы A, а B — соответствующая базисная подматрица и пусть9

A = (B; N); x =

µ xN

; c = (cB; cN );

 

xB

 

9Для простоты обозначений мы считаем, что B составлена из первых m столбцов матрицы A.

54

Глава 2. Симплекс-метод

где через xB, cB обозначены векторы, составленные из базисных компонент векторов x и c соответственно, а через xN , cN обозначены векторы, составленные из небазисных компонент векторов x и c соответственно. Тогда ЗЛП (33) примет вид:

max(cBxB + cN xN )

 

½ xB ¸ 0; xN ¸ 0:

(34)

BxB + NxN = b;

 

Шаг исключения Гаусса на каждой итерации симплекс-метода заключается в умножении слева текущей симплексной таблицы на матрицу

 

0 1 ...

 

¡q0s...=qrs

 

 

1

 

 

E(r; s) =

B

 

¡

1=q

 

 

 

 

C

;

(35)

 

B

 

q

rs

 

1

 

C

 

 

 

B

1

1

=q

 

 

C

 

 

 

B

q1;s

=qrs

 

 

C

 

 

 

B

 

¡ .

 

 

.

..

C

 

 

 

B

 

 

..

 

 

 

C

 

 

 

B

 

q

 

=q

 

 

1

C

 

 

 

B

 

r¡ ;s

rs

 

C

 

 

 

B

 

 

 

 

 

C

 

 

 

@

 

¡

1;s

 

rs

 

 

A

 

 

 

B

 

 

 

 

 

C

 

 

где r ==60, s ==60. Следовательно, серия шагов исключения Гаусса эквивалентна домножению симплексной таблицы на произведение

 

M = Et ¢ E1 ¢ : : : ¢ E1

(36)

матриц вида (35). Нетрудно видеть, что M имеет следующее блочное

строение:

µ

0

F

 

 

 

1

¡u

:

 

Пусть на некоторой итерации симплекс-метода получена симплекс-таб-

лица

 

¢

µ b

¡B

¡N

=

µ F b

¡ F B

¡

 

;

µ 0

F

F N

1

u

 

0

cB

cN

 

ub

cB + uB

 

cN + uN

 

соответствующая базе B. Тогда uB¡cB = 0 и F B = E, откуда u = cBB¡1, F = B¡1. Итак, симплекс-таблица, соответствующая базе B, имеет вид

Q = (qij) = µ

B¡1b E

¡

B¡1N

:

(37)

 

cBB¡1b 0

 

cN + cBB¡1N

 

 

2.5. Матричное описание симплекс-метода

55

Определение 2.29. Cтрока u = cBB¡1 называется вектором цен, соответствующим базе B. Компоненты вектора u называются ценами, или

симплекс-множителями.

Обозначим aj = (a1j; : : : ; amj)>, baj = (q1j; : : : ; qmj)> (j = 0; 1; : : : ; n),

b = ba0, ba = bas, bc = ¡(q01; q02; : : : ; q0m). Пусть bcN = (q0;i1 ; : : : ; q0;im¡n ), где N = fi1; i2; : : : ; im¡ng. Из (37), в частности, получаются следующие

формулы для вычисления элементов симплексной таблицы, соответствующей базе B.

Утверждение 2.30. Справедливы следующие равенства, выражающие элементы симплексной таблицы через коэффициенты ограничений и вектор цен:

q = cx = ub;

b

= B¡1b;

c = c

¡

uA; a = B¡1a :

(38)

00

 

b

b

s

 

Замечание 2.31. Интерпретируя коэффициенты симплекс-таблицы (37), получим следующую эквивалентную формулировку задачи (33):

max(cBB¡1b + (cN ¡ cBB¡1N)xN )

(39)

xB = B¡1b ¡ B¡1NxN ;

½ xB ¸ 0; xN ¸ 0:

 

Заметим, что те же условия можно получить другим способом, выражая в (34) базисные переменные xB через небазисные:

xB = B¡1b ¡ B¡1NxN

и подставляя их в выражение целевой функции.

Замечание 2.32. Формула bc = c ¡ uA из (38) показывает, что для того, чтобы вычислить текущие относительные оценки (нулевую строку сим- плекс-таблицы) необхдимо из строки c вычесть все строки матрицы A, домноженные на соответствующие цены u.

Замечание 2.33. Решение xe системы Ax = b базисное, если xeN = 0 и, следовательно, xeB = B¡1b. Базисное решение xe допустимо, если xe ¸ 0 и, так как xeN = 0, то достаточно потребовать xeB ¸ 0. Значение целевой функции cx на базисном решении xe есть cxe = ub. Базисное решение оптимально, если bc = c ¡ uA ¸ 0, или bcN = cN ¡ uN ¸ 0.

56 Глава 2. Симплекс-метод

Замечание 2.34. Предполжим, что ограничения ЗЛП совместны, но ранг матрицы A меньше числа m ее строк. В этом случае, удалив из системы ограничений избыточные уравнения (например, воспользовавшись методом искусственного базиса), приходим к эквивалентной ЗЛП с матрицей ограничений полного ранга. Для этой ЗЛП, в частности, справедливо утверждение 2.30. Покажем, как нулевую строку этой ЗЛП выразить через элементыв исходной ЗЛП. Пусть A = (B; N), где B — подматрица, составленная из столбцов с номерами из B, а N — подматрица, состав-

ленная из столбцов с номерами из N . В

качестве вектора цен

 

возьмем

 

e

e

e

u

=

 

 

 

произвольное решение системы uB = c

 

.

Очевидно, формула

 

 

 

 

 

 

e

 

c

 

c

¡

uA

останется справедливой.

e

B

 

 

 

 

b

 

 

 

2.6. Модифицированный симплекс-метод

Сделаем два замечания, касающиеся алгоритма 1:

1)Для выбора номера s направляющего столбца достаточно знать только нулевую строку.

2)Если s найдено, то для выбора номера r направляющей строки достаточно знать только нулевой и s-ый столбцы.

Если m много меньше n, то вместо того, чтобы на каждой итерации пересчитывать всю симплексную таблицу Q, выгоднее использовать следующую процедуру.

1)Вычислить вектор цен u.

2)По формулам (38) вычислить нулевой столбец b и элементы bcN нулевой строки, соответствующие небазисным переменным.

3)Выбрать номер s направляющего столбца.

4)По формулам (38) вычислить направляющий столбец ba.

5)Выбрать номер r направляющей строки.

6)В B = hj1; j2; : : : ; jmi в качестве jr взять s и перейти к следующей итерации.

2.6. Модифицированный симплекс-метод

57

Определение 2.35. Приведенная схема вычислений называется модифицированным симплекс-методом.

Для предотвращения зацикливания в модифицированном симплексметоде удобно применять правило Бленда.

Пример 2.36. Решим ЗЛП

max(¡x1 + 2x2 + x3 + x4)

½3x1 ¡ 3x2 + 4x3 + 2x4 = 0; x1 + x2 + x3 + 3x4 = 2

модифицированным симплекс-методом.

Для нахождения начальной допустимой базы воспользуемся методом искусственного базиса. Имеем:

A =

µ 1

 

¡1 1 3 0 1

;

b =

µ 2 ;

 

c = (0; 0; 0; 0; 1; 1):

 

 

3

 

 

3

4

 

2

1

0

 

 

 

0

 

 

 

 

 

На первой итерации вычисляем:

 

 

 

 

 

 

 

B = h5; 6i ;

 

 

 

1

0

 

 

 

 

 

 

 

 

 

B = µ 0 1 ;

cB = (1; 1);

 

cN = (0; 0; 0; 0);

 

 

 

 

 

u = cBB¡1 = (1; 1);

= B¡1b = (0; 2)>;

 

 

cN

=

cN

 

 

 

 

 

 

5

5)

откуда

s = 1;

 

 

 

 

¡ uN = (¡4; 2; ¡b; ¡ ;

На

 

ab

= B¡1(a1s; : : : ; ams)> = ( 3 ; 1)>;

 

откуда

r = 1:

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

второй итерации:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B = h1; 6i

; B = µ

3

0

; u = (¡4=3 ; 0);

 

 

 

 

1 1

 

b

= (0; 2)>;

 

cN = (¡2; 1=3 ; ¡7=3 ; 4=3 );

 

откуда

s = 1;

 

 

 

 

 

 

a b

¡ ;

2 )

>;

откуда

r

= 2

:

 

 

 

 

 

 

 

 

 

= ( 1

 

 

 

 

 

На третьей

итерации:

 

 

 

 

 

 

 

 

 

 

 

 

b

3

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

B = h1; 2i ;

 

B = µ 1

¡1 ;

 

u = (¡1; ¡1);

 

 

 

 

cN = (0; 0; 0; 0; 1; 1):

58 Глава 2. Симплекс-метод

Нулевая строка симплексной таблицы неотрицательна. Первый этап сим- плекс-метода завершен. Найдена допустимая база B = h1; 2i.

На втором этапе имеем:

 

 

 

 

 

 

 

 

3

3

4

2

 

1

0

 

 

 

 

0

 

A = µ 1

¡1 1 3 0 1 ;

 

b = µ 2 ; c = (1; ¡2; ¡1; ¡1):

На первой итерации второго этапа:

 

 

 

B = h1; 2i ; B = µ

3

 

 

3

; u = (1=2 ; ¡1=2 );

 

1

¡1

b

= (1; 1)>;

cN = (0; 0; ¡5=2 ; ¡1=2 );

откуда s = 3;

 

a = (b

7=6

 

 

 

откуда

r = 1:

 

 

; ¡1=6 )>;

 

На второй итерации:

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

B = h3; 2i ; B = µ

4

 

 

3

; u = (1=7 ; ¡11=7 );

 

1

¡1

 

 

b

= (6= ; 8= )>;

 

c

 

= (15= ; 0; 0; 24= )

 

 

 

7

7

 

bN

 

7

7

Нулевая строка симплексной таблицы неотрицательна. Найдено оптимальное решение xb = (0; 8=7 ; 6=7 ; 0)>. Значение целевой функции xb0 = ub = ¡22=7 .

В разобранном примере мы явно вычисляли все элементы матрицы B¡1. Заметим, однако, что этого можно было избежать. Действительно, из (38) следует, что вектор цен, нулевой и s-ый столбцы можно находить, решая следующие системы линейных уравнений:

uB = cB; Bb = b;

Bba = (a1s; : : : ; ams)>:

Опишем другой способ избежать явного вычисления матрицы B¡1. Пусть F — матрица, полученная из матрицы Ei в произведении (36) вычеркиванием нулевой строки и нулевого столбца (строки и столбцы в Ei нумеруются с нуля). Тогда B¡1 = Ft ¢ F1 ¢ : : : ¢ F1 и поэтому

u = cB ¢ Ft ¢ F1 ¢ : : : ¢ F1;

(40)

2.7. Столбцовая форма симплекс-метода

 

59

b

= Ft ¢ F1 ¢ : : : ¢ F1 ¢ b;

ms >

(41)

t ¢ 1 ¢

¢ 1 ¢ 1s

 

b

 

: : : F (a ; : : : ; a ) :

 

a = F F

 

Умножение в (40) следует выполнять слева направо, а в (41) — справа налево. Матрицы Fi вычисляются на каждой итерации. Так как они имеют специальный вид, то для их представления используют специальную форму хранения.

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

В литературе рассматриваются и другие варианты модифицированного симплекс-метода.

2.7. Столбцовая форма симплекс-метода

Пример 2.37. Рассмотрим задачу

 

max(x1 + x2)

2x1 + x2 + x3

= 6;

8 x1 + 2x2

+ x4 = 6;

:

¸

0; (j = 1; 2; 3; 4):

< xj

 

В качестве начальной допустимой базы возьмем B(0) = h3; 4i. Выразим каждую переменную через небазисные:

 

x0 =

¡

( x1)

( x2);

 

8x1 =

(¡x1),¡

¡

 

>

 

 

 

 

 

 

 

>

 

 

¡

¡

¡

¡

 

<

 

 

 

¡

(42)

>x2 =

¡

 

( x2);

>

 

= 6 + 2( x1) + ( x2);

 

>x3

 

>

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

:

 

= 6 + (¡x1) + 2(¡x2);

 

>x4

 

Рассмотрим соседнюю базу B(1) = h1; 4i. Чтобы теперь выразить все переменные через небазисные, в (42) в формуле для x3 выразим x1 и подставим полученное выражение во все остальные равенства. После

60

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Глава 2.

Симплекс-метод

приведения подобных, получим:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0 = 3 + 1=2 ( x3)

¡

1=2 ( x2);

 

 

 

 

 

 

 

 

 

 

 

 

8x1 = 3 + 1=2 (¡x3)

1=2 (¡x2);

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

¡

¡

¡

 

¡

 

 

 

 

 

 

 

 

 

 

 

 

 

<

 

 

 

 

(¡x2);

 

 

 

 

 

(43)

 

 

 

 

 

 

>x2 =

 

 

¡

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

=

 

 

( x3),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

:

 

= 3 ¡ 1=2

(¡x3) + 3=2 (¡x2);

 

 

 

 

 

 

 

 

 

 

 

 

>x4

 

 

 

 

 

 

Все

коэффициенты формул (42) и (43) соберем в таблицы:

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

0

3

 

1=2 ¡1=2

1

 

 

 

 

0

¡1 ¡1

 

 

 

 

 

 

 

B

 

 

 

C

 

 

B

 

 

 

 

 

C

 

 

 

 

 

0

¡1 0

 

 

3

 

1=2

1=2

 

 

 

 

 

B

 

 

 

 

¡

C

 

 

B

 

 

 

 

¡

C

 

 

 

 

B

 

 

 

 

C

 

 

B

 

 

 

 

C

 

T (0)

 

B

6

 

 

2

 

C

T (1) =

B

0

 

 

1

0

C

 

=

B

 

 

1 C

B

 

 

C

:

B

0

 

 

0

1 C;

B

0

 

0

1

C

 

 

 

B

 

 

 

 

 

C

 

 

B

 

 

¡

 

C

 

 

 

 

B

6

 

 

 

 

C

 

 

B

3

 

 

1=2

3=2

C

 

 

 

 

B

 

 

1 2 C

 

 

B

¡

C

 

 

 

 

B

 

 

 

 

 

C

 

 

B

 

 

 

C

 

 

 

 

@

 

 

 

 

 

A

 

 

@

 

 

 

 

 

A

 

В матричном виде равенства (42) и (43) можно записать следующим образом: (x0; x)> = T (0) ¢ (1; ¡x1; ¡x2)>, (x0; x)> = T (1) ¢ (1; ¡x3; ¡x2)> соответственно.

Заметим, что переход от T (0) к T (1) можно получить с помощью шага столбцовых преобразований с элементом, обведенным в рамку: первый столбец10 разделим на ¡2 и прибавим полученный столбец ко второму, а затем, умноженный на 6, — к нулевому.

Рассмотрим ЗЛП в каноническом виде:

max cx

½Ax = b; x ¸ 0:

Пусть B = hj1; j2; : : : ; jmi — некоторая база, а N = hk1; k2; : : : ; kn¡mi

— некоторая перестановка номеров небазисных столбцов. Выразим все переменные через небазисные:

n¡m

 

 

xi = ti0 + å tij(¡xkj )

(i = 0; 1; : : : ; n):

(44)

j=1

 

 

 

 

 

 

10Нумерация строк и столбцов в матрицах T (0)

и T (1) начинается с нуля.

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]