Файл: Сирл, С. Матричная алгебра в экономике.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.10.2024

Просмотров: 172

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

линейного программирования; эта форма приспособлена для решения задачи с помощью модифицированного симплекс-метода.

Как отмечалось, мы получаем первоначальное решение, полагая, что переменные, соответствующие единичной матрице, равны соответ­ ствующим компонентам вектора Ь. В примере, приведенном на стр. 224,

xs 1 = 8;

X S 2 = 7.

Те столбцы Л*, которые порождают это решение, могут быть найдены из следующих уравнений:

'1

0

' *si'

" 8 '

(17)

0

1

Xs 2_

7

 

Первый шаг в таких задачах всегда начинают с базиса В = /, кото­ рому соответствует решение Хв = В~гЬ = I^ b = b. Поскольку b не­ отрицателен, а все остальные (небазисные) переменные равны нулю, это решение удовлетворяет ограничениям на неотрицательность.

Прежде чем продолжить описание, введем некоторые важные для модифицированного симплекс-метода обозначения. Рассмотрим по­ полнение матрицы В: поместим взятые с обратным знаком коэффициен­ ты целевой функции, связанные с базисными переменными, над соот­ ветствующими столбцами матрицы В и добавим первый столбец, у ко­ торого первый элемент равен 1 , а остальные т элементов равны нулю. Обозначим эту пополненную матрицу через В*, здесь звездочка ука­ зывает, что соответствующая матрица расширена. Таким образом,

 

В*'г-

— с'в

 

( 18)

 

В

*

 

 

 

где св — вектор

коэффициентов

целевой функции для| переменных

текущего базиса.

Например,

 

 

 

1

В* = 0

: о

о

I О

1

0

 

1

 

_

 

 

0

и для первого базиса также В*~х — 0

1

0

1

0

1 _

„0

0

L

Этот расширенный базис теперь дает нам возможность вычислить те­ кущее значение целевой функции z : z —c'BxB. Таким образом, мы можем получить это значение на каждом шаге модифицированной симплекспроцедуры. По-прежнему с помощью обозначений со звездочкой для расширенных матриц (и векторов) можно показать, что

Х в

Z

В*~ 1 ' О = В* - 1 ь*\

(19)

 

Хв

ь

 

245


в нашем примере на первом шаге

 

 

 

 

 

 

 

л

0

о-

' 0

"

' 0 '

 

 

Хв =

0

1

0

8

=

8

 

 

 

 

0

0

1

_ 7

 

_ 7

 

Формула (19) вытекает из следующего результата1:

 

если

 

1 св

 

 

 

 

1 с'в В -^

 

В*

=

, то В* - 1

=

 

0

В

о в -1

( 2 0 )

б) ЭТАПЫ МОДИФИЦИРОВАННОГО СИМПЛЕКС-МЕТОДА

 

Модифицированный

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

сводится к следующим шести

этапам:

 

 

 

 

 

 

 

 

 

1. Выберите единичную матрицу, чтобы образовать первый базис.

Тогда В-1 — / и хв =

Ь.

 

 

 

 

 

 

2. Используя

по очереди все столбцы а* матрицы Л*, не входящие

в базис, вычислите

набор скалярных

величин с'вВ~ха* — Cj (вспом­

ните, что сЬВ^1 получается

в первой строке матрицы В*-1).

Выбери­

те наибольшее

отрицательное

значение

свВ~га* — с,- и

пометьте

соответствующий столбец индексом k; именно этот столбец (перемен­

ная) войдет

в базис.

Если среди найденных значений нет отрицатель­

ных, значит текущее решение оптимально.

3. Для

столбца k,

выбранного на этапе 2, вычислите вектор a* fe:

 

 

 

~ c k+ c'BB —1a%

 

 

ch

a2,k

a | = В*->

at

®m+ l,~_k

4. Тот из столбцов (переменных) текущего базиса, который должен быть изъят из него, определяется при нахождении такого значения г, при котором достигается минимизация:

mm

1

( - Д — ' ПРИ а г ь >° ) .

i = 2 ........... т-у

I

aik

где хв/ — /-я переменная текущего базиса. Пометим столбец, найден­ ный с помощью этой минимизации, индексом I.

5. Матрицу, обратную к расширенной матрице нового базиса, и расширенный вектор решения (обозначаемые через Btoi и хв , н ов) вы­ числяют, используя результаты для предыдущего базиса, а именно:

нов = F x B~,

(21)

Вн*шЛ=ЕВ*-\

(22)

Расчлененная форма обратной матрицы рассмотрена

в параграфе 7 гла­

вы V.

2 4 6


где матрица F, приведенная далее, получена из единичной матрицы путем замены l-то столбца на столбец, состоящий из элементов вида

aih ( , „ 1 \

— |^за исключением 1-то элемента, который имеет вид — j

-

1

0

0

0 . . 0

(ск— с'в В -1а%)/а1к 0

0 ..

о-

 

 

0

1

0

0 . . 0

а2h l a lk

0

0 .. 0

 

 

0

0

1

0 . . 0

a 3 k /a lh

0

0 .. 0

 

 

0

0

0

0 . .

1

Ct-l— l , kl*Xlti

0

0 ..

0

 

F =

0

0

0

0 . . 0

( +

0

0 ..

0

(23)

 

0

0

0

0 ...

0

1, к ! щ к

1

0 ..

0

 

 

0

0

0

0 ...

0

a l + 2. k l& lk

0

1 .. . 0

 

 

0

0

0

0 ...

0

a l + 3, kl<Xlh

0

0 .. . 0

 

_0

0

0

0 ...

0

1,kl k

0

0 .. . 1 _

 

После получения х%. нов и В нов1 вернуться к этапу 2.

Сейчас мы кратко прокомментируем перечисленные этапы. Этап 1 дает нам допустимое решение (х = 0), с которого мы начинаем. Этап 2 проверяет предельные вклады*, связанные с единицей каждой из не­ базисных переменных. Если затраты на те ресурсы, которые такая единица забирает от других переменных (с'вВ^а*), меньше, чем прибыль (cj), то выражение свВ~га* cj будет отрицательным, и переменную следует ввести в базис. Если таких переменных нет, то мы не можем улучшить значение целевой функции и процедура заканчивается.

После того, как на этапе 2 найден новый столбец (переменная), который должен войти в базис, нам нужно выяснить, какой из столб­ цов следует из базиса удалить. Поскольку предельная прибыль, свя­ занная с единичным приращением переменной, которую вводят в ба­ зис, положительна, она должна получить наибольшее возможное зна­ чение. Этот уровень определяется величинами смещения каждого из элементов существующего решения х% (в сторону отрицательных зна­ чений) при вхождении в базис новой переменной, которая принимает

теперь

положительные

значения (напоминаем,

что А*х%, нов =

Ъ).

k-YL столбец матрицы А*

(входящий в базис столбец) может быть запи­

сан в виде линейной комбинации столбцов существующего базиса,

т. е

поскольку

 

 

 

 

 

 

а 2, к

 

 

a 2_, к

 

« 2 , k

 

 

= B ~ l a t ,

a % =

В

= [Pl-

 

 

 

• P m !

 

_ ^ п г

-f- 1, k

 

 

. a m + 1, k .

 

C l m -f- I, k

 

 

 

 

 

 

 

 

 

.

 

аи к P i- I.

 

 

 

*В значение целевой функции. — Прим, перев.

247


где р; ■— i-й столбец В. Следовательно, из последних т элементов a k на третьем этапе мы получаем нормы замещения входящей переменной каждого из элементов в текущем решении х%, т. е. вектор, состоя­ щий из элементов а к, показывает, насколько надо сдвинуть каждую из базисных переменных, чтобы ввести в решение единицу новой пе­ ременной. На этапе 4 сохраняется положительность всех перемен­ ных хв', это достигается выбором такой переменной, уходящей из ба­ зиса, которая первой достигает нуля, когда вводимая переменная на­ чинает принимать положительные значения. Для этого проверяют зна­ чения базисных переменных, поделенные на соответствующие элемен­ ты a k, которые тем самым показывают, как быстро каждая из базис­ ных переменных смещается к нулю при введении новой переменной.

На этапе 5 вычисляют с помощью разложения на множители матри­ цу, обратную к расширенной матрице нового базиса, Внов1 и новое решение х%, пов. Этап 6 возвращает процесс к этапу 2, и таким путем достигают оптимального решения.

Пример. Мы продемонстрируем сейчас применительно к примеру, приведенному на стр. 228, ход реальных вычислений и таблицы, ис­ пользуемые в модифицированном симплекс-методе:

максимизировать z = 20лу + 20ха

при условии, что Злу + 2лу + jcsi = 8,

2лу + Зха + Xsi = 7,

лу, х2, xSl, xS2 > 0.

3 2 1 0

Этап 1. Выбор единичной матрицы из Л*

.2 3 0 1.

достигается при x;si = 8, xSa 7.

Перем енны е в текущ ем расш иренном бази се

Z

1

0

0

xSl

0

1

0

XS2

0

0

1

Этап 2. По столбцам 1 и 2 матрицы Л* мы вычисляем с'вВ~1а*

с}, где свД-1 = [0 0] указаны в приведенной таблице. Таким обра­ зом, свВ^а*сг = —20 и chB^al — са = —20. Получилось совпадение. Мы выбираем для нового базиса переменную лу (можно было выбрать любую из этих двух переменных).

2 4 8


Этап 3.

 

 

 

 

 

 

 

 

 

 

ах = В*- 1

 

 

 

1

0

0

-20

 

 

 

0

1

0

3

 

 

 

 

 

 

 

 

 

 

 

 

а!

 

0

0

1

1

 

 

 

 

 

 

 

 

^—20"

“ — сг~\-СвВ-г а\ ~

 

 

 

3

=

 

«2,1

 

 

Этап 4.

 

 

2

 

 

«зд

 

 

 

 

 

 

 

 

 

 

 

Х г

ЛВ2

 

f

8

у

1

g

для

хВи что дает / = 2,

min '-в 1

min

— ,

= —

« 2,1

« 3 , 1

 

I 3

2

)

3

 

 

где хви Хв2

берутся из таблицы,

а а 21,

а зл, были вычислены на этапе

3. Таким образом, мы должны вывести из базиса первую базисную пе­ ременную, а именно xsi и соответствующий ей второй столбец матри­ цы В*-, alk = а 21 = 3.

Этап 5. Подставляя соответствующие величины вместо элементов столбца 2 единичной матрицы, получаем следующую матрицу F:

Тогда

и

Внов*-1

 

 

1

Щ-

0

 

 

 

 

3

 

 

 

 

0

4 -

о

 

 

 

 

3

 

 

 

 

0

— L

1

 

 

 

 

3

 

 

 

 

' i

щ.

о~

 

 

 

 

3

 

"0 "

Хв, нов = Fx*B =

 

 

 

о

 

о

8

 

 

о

— *

1

J

_

 

 

 

 

 

 

 

3

 

 

 

 

“ i

ц .

о '

 

О

О

 

 

3

 

 

 

 

 

 

 

 

1 __

О

 

О

о

 

о

 

_о -

о

 

о

о

 

 

 

 

 

 

 

4 - 1

 

 

 

- 1 6 0 -

3

8

3

_5_

3 _

1

20

0

3

0

_ 1_

0 .

тг

0

_2_

1

 

3

 

Сейчас мы получили решение задачи, использовав в базисе пере­ менные хх и Xsi, переменная xsi была выведена из базиса. При усло­

вии, что хх =

а прибыль равна 20 за единицу, целевая функция

 

о

249