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

книги из ГПНТБ / Арутюнян А.Г. Применение математических методов и ЭВМ в народном хозяйстве

.pdf
Скачиваний:
39
Добавлен:
23.10.2023
Размер:
5.54 Mб
Скачать

Тогда задача (33.1)—(33.3) принимает следующий вид. Найти максимальное значение линейной функции

 

Л ( Н = Х

с /у ,,

 

(ззл ')

при условиях

 

j-1

 

 

 

 

 

 

 

 

 

 

 

v

а ц у^ = Ь{', /= 1 ,

2..... т,

 

(33.2')

j-i

 

 

 

 

 

 

 

 

у ^ 0 , у = 1 ,

2

п.

 

(33.3')

Задача (33.1') — (33.3')

уже

является общей задачей

линейного программирования.

 

 

 

 

Наличие ограничений вида (За) в (33.3) придает основ­

ной задаче особый характер.

В этом случае

при сведении

задачи (33.1) — (33.3)

к общей

задаче линейного програм­

мирования количество

векторов

условий

(т.

е. количество

столбцов матрицы условий) увеличивается

на л,1. Ясно,

что при больших

значениях

пл сведение

основной задачи

к общей задаче линейного программирования будет не­ эффективным, так как размеры матрицы условий будут зна­ чительно увеличиваться, а при машинном решении задач линейного программирования увеличение размеров матрицы сильно влияет не только на необходимое время для реше­ ния задачи, но и на точность результатов. Во многих же случаях такое увеличение размеров матрицы условий прак­ тически может привести к неразрешимости поставленной за­ дачи. Во избежание увеличения размеров матрицы условий можно поставленную основную задачу решать специаль­ ным методом, являющимся несущественным видоизмене­ нием (в смысле усложнения) общеизвестного симплексного метода. В книге [92] изложен метод решения основной задачи при следующих предположениях:

 

а) имеется исходное базисное решение2 и соответст­

вующая ему симплексная таблица;

 

б) п3 = п, т. е. каждая переменная ограничена хотя бы

с

одной стороны.

 

1 При этом в матрице условий задачи добавляются пi строк.

ft

J Определения всех понятий, используемых здесь, можно найти

цитированной литературе.

121

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

б) является принципиально сужающим, так как при п3<^п

взадаче существуют переменные, на которые нет ограни­ чения ни снизу и ни сверху (такие переменные будем на­ зывать свободными). Следовательно, для применения изло­ женного в [92] алгоритма необходимо в матрице условий добавить еще п — п3 столбцов. Однако, как указывалось ранее, увеличение размеров матрицы условий не жела­

тельно с точки зрения практической реализации решения задачи.

Оказывается, что путем незначительного усложнения вычислительной схемы алгоритма можно основную задачу решить и при п3< п без увеличения размеров матрицы условий. Для этого достаточно воспользоваться идеями, предложенными Зойтендейком (см. [34]).

Если исходное

базисное решение

заранее не задано,

то можно поставить

так называемую

расширенную задачу

и применить изложенный в [92] алгоритм с учетом пред­ лагаемой корректировки.

Определим величины:

oj, при у = 1, 2 ,..., п2,

Pi, при j = n2 + 1, л2-[-2 ,..., п3,

О, при у = л3 -|-1, я3 + 2 ,..., п,

0, если Ь, — £ ац х ? О,

ь- 1

1, если b; — X Лцjc°j < 0 .

(33.4)

(33.5)

Для удобства записи предполагается, что строки усло­ вий пронумерованы так, что подмножество индексов г, при которых величины -v, принимают одинаковые значения, чет­

ко разделены. Пусть

Vj = 0

при t**l, 2,..., т и vj = 1 при

i = т3—|—1, т1~\- 2 ,...,

т.

 

Рассматривается

задача:

найти максимальное значение

линейной функции

 

 

122

 

F ( * } = v C j X j - ^ V ( _ 1 ) ^ п + ,

 

( 3 3 .6 )

 

 

 

 

 

 

 

 

 

при условиях

 

 

 

 

 

 

 

 

 

X

«ij*j+ .*n +i=

&i, i' = l,

2,..., m,

 

(33.7)

 

 

y = l ,

2 .....

я „

 

 

 

(8 a)'

 

^ ^ x jt j = n1-\-\,

nj +

2 .....

я2;

я + 1,

ч

 

 

 

 

 

« + 2,... л 4- ttiy,

(86)

(33.8)

JCj^pj, у««*я2+1,

я2+2,..., я3; л-fOTj-fl,

 

 

 

 

« + /«1 + 2 ,...,

я + m.

(8 в)

 

Здесь M пока произвольная, достаточно большая ве­

личина,

<*j — 0

при у =

я + 1 , я +

2.....

я +

и Pj = 0 при

/ = « +

1 + 1,

п + яг, + 2,..., Я +

/П,

а

остальные

величи­

ны — прежние.

 

 

 

 

 

 

 

 

Связь между задачами

(33.1) — (33.3) и

(33.6) — (33.8)

совершенно аналогична связи между общей задачей линей­ ного программирования и соответствующей расширенной задачей. Так, например, если в оптимальном решении зада­ чи (33.6)—(33.8) с ненулевым значением участвует хотя бы одна искусственная переменная х п+\, то основная задача (33.1)—(33.3) неразрешима; если же в оптимальном решении задачи (33.6)—(33.8) значения всех искусственных перемен­ ных нули, то первые я компонентов этого решения обра­ зуют оптимальное решение основной задачи. Исходя из это­ го, естественно задачу (33.6) — (33.8) назвать расширенной относительно основной задачи (33.1)—(33.3). Таким обра­ зом, в результате решения расширенной задачи либо по­ лучим решение (оптимальное) основной задачи, либо обна­ ружим ее неразрешимость (несовместность условий или неограниченность сверху целевой функции на множестве допустимых решений).

Приведем теперь краткое описание алгоритма реше­ ния расширенной задачи, направив особое внимание на возможность машинной реализации вычислительной схемы,

атакже на отклонения от алгоритма, предложенного в

[92].Теоретическое обоснование и доказательство сходи­ мости алгоритма здесь не приводятся, так как они почти

123

не отличаются от соответствующих

положений,

относя­

щихся к алгоритму, изложенному в [92].

 

Выбираем вектор Л"0 — (х0,, х°2,...,

х°п, х°п+].....

Л + т ),

первые п компоненты которого определяются соотноше­ нием (33.4), а остальные — формулой

x°„+l= bi — г = 1 , 2,..., т. (33.9)

Непосредственной подстановкой можно убедиться, что выбранный вектор Х° удовлетворяет всем ограничениям расширенной задачи. Очевидно, что векторы-столбцы, со ­ ответствующие искусственным переменным х п+ь образуют линейно-независимую систему (эти столбцы образуют еди­ ничную подматрицу т -го порядка). При построении вектора Х° в качестве исходных значений свободных переменных задачи выбраны нули. Согласно определению базисного решения задачи линейного программирования с двухсто­ ронними ограничениями на переменные векторы условий, соответствующие переменным, текущее значение которых не совпадает с граничными значениями их изменения, долж­ ны образовать линейно-независимую систему. С первого взгляда может показаться, что построенный вектор Х ° не удовлетворяет условию базисности, так как искусственные векторы уже образуют базис m-мерного векторного прост­ ранства, а добавление к ним любого вектора (соответст­ вующего свободной переменной) уже нарушает условие линейной независимости. С другой стороны, векторы, соот­ ветствующие свободным переменным, должны быть вклю­ чены в базис (напомним, что исходное значение каждой свободной переменной равно нулю, т. е. строго больше левой границы ( — оо) и строго меньше правой границы (-|-оо) интервала своего изменения). Этот кажущийся па­ радокс сразу выяснится, если точно представить специфику изменения свободных переменных. Каждую свободную пе­ ременную можно представить в виде суммы двух перемен­ ных, ограниченных с одной стороны:

Xj = Xj+ -J- х ~ ,

x f гг О, X j-ssO, j = ni -\-\, + 2

n.

(33.10)

124

Элементарными рассуждениями можно убедиться, чго в любом плане задачи (основной или расширенной) только одна из переменных х-+ и х ~ может принимать ненулевое значение, т. е. только одна из них может стать базисной переменной. Поэтому в процессе решения задачи будем принимать jCj = ^j+ или x^ — Xj- в зависимости от того, какая из этих переменных является базисной. Отметим, что на первых шагах может быть принято первое равенство, а на последующих — второе.

Из приведенного видно, что при п3<^п понятие ба­ зисного решения задачи линейного программирования с

двухсторонними ограничениями

на переменные

нуждается

в уточнении.

 

 

Определение. Допустимое

решение задачи

линейного

программирования с двухсторонними ограничениями на пе­ ременные называется базисным, если векторы условий зада­ чи, соответствующих компонентам x jt для которых выпол­ няются условия:

а) значение х j не совпадает ни с одним граничным зна­ чением ее изменения, если эта переменная ограничена хотя бы с одной стороны;

б) значение x i отлично от нуля, если эта перемен­ ная свободна,

образуют'линейно независимую систему векторов. Отметим, что это определение относится как к основ­

ной, так и к расширенной задаче.

Определим относительные оценки векторов условий

основной задачи;

 

 

 

 

I Zj — Cj,

если

У = 1 ,

2,...,

 

C j— Zj,

если jcj ==s рj, у = 1 ,

2,..., п3,

(33.11)

— [Zj — Cj|, е сл и / =

я34 -1,

п3+ 2 .....

п.

Аналогично доказательству, изложенному в [92], мож­ но показать, что признаком оптимальности базисного ре­ шения задачи (как основной, так и расширенной) является неотрицательность относительных оценок внебазисных век­ торов условий. Так как относительные оценки внебазисных векторов условий расширенной задачи являются линейными

125

функциями от произвольно большой величины

М (входя­

щей в выражение целевой функции):

 

Aj = Sj Ж 3/, у = 1 , 2,..., п,

(33.12)

то знак этих величин (Aj) определяется знаком коэффи­ циента 8/ , а при 8/ = 0 — знаком величины 8j. Текущее значение линейной функции (33.6) представится в следую­

щем виде:

 

/=*<,„ + М о0'.

 

 

(33.12')

 

 

 

 

Имея исходное базисное решение расширенной задачи,

построенное указанным выше способом, легко

 

вычислить

соответствующие

величины:

 

 

 

8„ ° = V

Cjjc,»;

8о,0= £ ( - 1 ) 4 + 'Л . ;

I

 

' - 1

 

 

 

\

(33.13)

8,•= — с,; 8/"= .V (-1)4+1 а„;

2,..., я.

 

 

Введем величины ejt характеризующие значения пере­

менных текущего

решения:

 

 

 

 

1,

если Xj = aj (xj — внебазисная);

 

1,

если Xj = pj (xj — внебазисная);

 

(33.14)

О,

если Xj — базисная переменная;

 

О,

если Xj — свободная (внебазисная)

 

 

 

 

переменная.

 

 

Тогда относительные оценки Ai будут выражаться фор­

мулой

 

 

 

 

 

A, = [ ( * j - i ) I Y I - ej V I ж + (Y -

1) ei 8j

V м + д/',

 

 

1,

2..... п.

 

(33.15)

Отсюда ясно, что признак оптимальности текущего базиса определяется при помощи величин А/ и Д;".

Пусть A' — min А/.

1<j<n

Если Д' = 0, определим

Д" — min А-.", jet

где через 1 обозначено множество индексов у, для ко­ торых Aj' = 0. Значит, текущее базисное решение расши-

126

репной задачи будет оптимальным,

если будет выполнено

условие Д'> 0 , а при Д '= 0 —

условие Д "^ 0 .

 

При выполнении условия

Д '^ 0

необходимо

анализи­

ровать значение коэффициента 80'.

Если 8о'= £0,

то основ­

ная задача неразрешима,

так как в этом случае, продол­

жив процесс оптимизации,

получим

оптимальное решение

расширеннной задачи, в котором хотя бы одна искусст­

венная

переменная

принимает

ненулевое

значение.

Если

Д '< 0

(или при Д ' = 0 , Д " < 0 ) ,

то вектор,

значение

отно-

•сительной оценки которого совпадает с

Д'

(или Д"), под­

лежит вводу в базис. Пусть этот вектор

имеет индекс

А.

Для определения

вектора, подлежащего

 

исключению

из

базиса, строится дополнительный вектор — столбец А* (см., например, [92]). Поскольку вектор А* строится в соответст­ вии со знаком 8/ (или 8к), то при е= * 0 (т. е. когда вводу в базис подлежит вектор, соответствующий свободной пе­

ременной)

подбирается или

х к = х к+ (при Sk' <

0 )

или

лгк= х к- (при V > 0 ) .

Далее

заполняется столбец

f.

Для

определения элемента

пользуются Л/-шкалой, v-шкалой

и s-шкалой.

Начиная с первого элемента столбца Ак анали­

зируется знак x ik. В зависимости от знака элемента

;cik в

/-ую позицию столбца ? заполняется либо верхний предел, либо нижний предел соответствующей переменной, или же неограниченно большую величину. Рассмотрим более под­ робно этот процесс. Пусть *ik]>0. С помощью iV-шкалы определяется номер вектора, занимающего /-ую позицию базиса. Если основной вектор занимает /-ую позицию, то при наличии ограничения на соответствующую переменную снизу нижняя граница ctj заполняется на месте элемента -ft, а при отсутствии ограничения снизу принимается -fi*=М . Если же /-ую позицию базиса занимает искусственный век­ тор, то принимается

1

О, если >i=

0,

М, если v, =

1 .

Вслучае .Xjk< 0 поступаем следующим образом. Если /-ую позицию базиса занимает основной вектор, то при на-

.личии ограничения на соответствующую переменную сверху принимается fj — Рн» а ПРИотсутствии ограничения сверху—

127

-r,= Af. Если же г'-ую позицию базиса занимает искусствен­ ный вектор, то принимается

1 —vi

(0,

если V j= 1,

Ь = ~ ^ Г ’

Т' 6' T l _ U ,

если Vi= 0.

В случае x ik = 0,

независимо от вектора, занимающего

*-ую позицию базиса,

принимается

= М. Указанной про­

цедурой заполняются первые т позиции столбца

Для заполнения

(/л 4-1)-ой позиции столбца ? поль­

зуются е-шкалой. Принимается

= M в следующих слу­

чаях:

а) бк = 0 ; б) ек= 1, и на соответствующую переменную нет огра­

ничения снизу;

в) gk= —1, и на соответствующую переменную нет ограничения сверху. В остальных случаях принимается:

Отметим, что при ti = M принимается %{ = М. Остальная часть вычислений полностью совпадаете про­

цедурой, изложенной в [92].

Отметим теперь некоторые особенности машинной реа­ лизации вычислительной схемы приведенного алгоритма. В алгоритме, предложенном в [92], для определения ге­ неральной строки используется дополнительная {т-\- 1)-ая строка, в которой заполняются всего два элемента. Оче­ видно, при больших значениях п (а в практических зада­ чах п достигает до нескольких сотен) для дополнительной строки теряется большой объем памяти машины. Поэтому целесообразно в отдельности запоминать указанные два элемента, исключив из текущей симплексной таблицы до­ полнительную строку. Текущая симплексная таблица пред­ ставлена на стр. 129.

Таким

образом,

общий

шаг алгоритма заключается

в осуществлении следующей

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

1. Определение

вектора

условий, подлежащего вводу

в базис, т.

е. определение генерального столбца. Для этого

необходимо выполнить следующее:

128

Д = уи+2.к =

min уго+2,j,

 

где

 

 

 

| д:т+2, j ,

если

=

— 1,

Хт+2, j ,

если

Sj =

1,

\ Хт*г, j 1, если «5=

0.

1.2°. Анализ знака Д:

а) если Д < 0 , то вектор Ак подлежит вводу в'базис; переход к выполнению пункта 2 ;

б) если Д5»0, то переход к подпункту 1.3°. 1.3°. Анализ значения элемента хга+2, о :

а)

если Хпц-2ф 0,

то переход к подпункту 1.4°;

б)

если х т+2,о= 0,

то переход к подпункту 1.5°.

1.4°. Вычисления прекращаются; исходная задача не­

разрешима.

 

 

1.5°. Нахождение*= Ут И, к —

л У т + ],Ь

где

(

ЛтЦ-1, j ,

если gj = —1,

 

x m+it i , если gj = 1,

I^m+l, ] ,| если gj = 0 .

9—644

129

1.6°. Анализ знака

4*

 

 

а) если Д < 0 ,

то

вектор

Ак подлежит

вводу в базис;

переход к выполнению пункта 2 ;

 

б) если д > 0 ,

то

переход

к подпункту

1.7°.

1.7°. Найдено

оптимальное решение.

С помощью

А-шкалы определяются значения базисных переменных, а по e-шкале — значения внебазисных переменных. Элемент лгппл.о показывает оптимальное значение целевой функции.

2.

 

Определение генеральной строки, т. е. определен

исключаемого из базиса вектора или обнаружение

неиз­

менности

базиса.

 

 

 

 

 

 

 

2.1°.

Заполнение элемента р0 {граничное значение

пе­

ременной, соответствующей генеральному

столбцу)

и

р*

(дополнительный элемент

генерального столбца):

 

 

 

 

 

 

Рк= -1 .

 

 

 

 

2.2П. Анализ величины

 

 

 

 

 

а)

если A'ma-2.k =

0,

то

переход

к подпункту 2.3°;

 

 

б)

если х 1Гн 2,кУ

0.

то

переход

к подпункту 2.5°.

 

 

2.3°. Анализ величины Am^i.k;

 

 

 

 

а)

если Am+i,k г-0, то переход к подпункту 2.6°;

 

 

б)

если A.n+i.k — 0 , то допущена ошибка

при определе­

нии генерального столбца. В этом случае необходимо прове­ рить текущую симплексную таблицу и обнаружить ошибку.

2.4Л. Заполнение вспомогательного столбца Дк но соот­

ношениям

 

 

 

 

 

_ ( —

если

Ат+2,к > 0 ,

, 2

..... т + 2

;

1 AiK,

если

* = 1

лгт+2,к < 0 ,

 

 

 

переход

к подпункту 2 .6 °.

 

 

2.5°.

Заполнение вспомогательного столбца Дк по соот­

ношениям

 

 

 

2.6°.

Заполнение элемента рк:

 

 

рк,

если х т+2.к > 0

или х т+2.к = 0,

a .W i,k > 0 ,

 

рк,

еслчи ^ir+2,k< 0

или АВ)Н2. к = 0 ,

а х т+1,к < 0 .

 

 

 

130

 

Соседние файлы в папке книги из ГПНТБ