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

Учебник системный анализ - Антонов

.pdf
Скачиваний:
435
Добавлен:
11.06.2015
Размер:
18.19 Mб
Скачать

решения i-й задачи. Таким образом, данная задача представляет собой задачу целочисленного линейного программирования, причем перемен­ ная Х/ может принимать только два значения: О и 1.

Задача определения оптимальной очередности разработки

встает перед проектировщиками на следующем этапе проектирования

после составления титульного списка задач, подлежащих автоматиза­

ции. Суть задачи состоит в распределении ресурсов, выделяемых на разработку системы, между задачами и упорядочении процесса разра­ ботки задач во времени. Формализованная постановка данной задачи

будет вы~лядеть следующим образом: необходимо оптимизировать некоторыи функционал при выполнении ограничений на потребление ре­

сурсов, выделяемых на разработку проекта, не больше заданного объе­

ма в заданном временном интервале.

Будем использовать условия и обозначения, введенные при форму­ лировании предыдущей задачи, Т.е. будем считать заданными требуе­

мые и выделяемые потоки и суммарные величины ресурса. Кроме того,

введем обозначения a.ij и ~ij - моменты начала и окончания использо­

ванияj-го ресурса для i-й задачи. При заданных моментах начала и окончания использованияj-го ресурса для i-й задачи связь между по­ током требуемых ресурсов и его суммарным количеством выражает­

ся в виде

11.

frij(t)dt = Wij'

v Если моменты начала и окончания использованияj-го ресурса для

l-и задачи являются неопределенными, то поток ресурсов и его суммар­

ное количество связаны соотношением

11.

fr/t)dt = Wij' i = 1, i, j = и,

о

где (3; = nmx(3ij - момент окончания разработки i-й задачи. Сформулируем ограничения, которые должны иметь место в данной

задаче:

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

1

L,r/j(t) ~ R/T), j =и,

;=1

ограничение на время выполнения всех задач проекта к установлен­

номусроку

302

тах.(3; ~T.

{i}

При вьmолнении оговоренныхусловий и обозначений задачараспре­

деления ресурсов между операциями проекта обычно формулируется

следующим образом: имеется комплекс операций, для которых опре­

делены отношения частичного порядка, задаваемые в виде графа G.

Необходимо распределить ресурсы, заданные в количестве R/f), меж­

ду операциямИ комплекса таким образом, чтобы некоторая целевая

функция достигла своего экстремального значения.

В качестве критерия оптимальности можно использовать

тах.(3. ~ min,

(10.1)

{i} I

 

что соответствует выполнению проекта за минимальное время.

Более общий критерий для данной задачи может быть записан в виде

(10.2)

i=\

где <p/(~) - неубывающая функция ~/' пре~ставляющая собой HeKOТO~

рый функционал, имеющий экономическии смысл. Чаще всего данныи

функционал представляет собой расходы, связанные с проектировани­

ем. В этом случае функционал необходимо минимизировать.

Задача (10.1) характерна для проектирования технических систем

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

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

становятся моменты окончанияразработокотдельныхфункциональных

задач. Сказываетсяэтапностьразработки ивнедрениясистем. дляэтих

задач целесообразно пользоваться критерием (10.2).

Рассмотрим еще одну постановку задачи, возникающей при орга­

низации деятельности транспортных предприятий, так называемую

транспортную задачу. В некоторых пунктах а\, а2,.. ·, аn находятСЯ

склады, в которых хранятся товары в количествах Х\, Х2,···, ХN соот­

ветственно. В пунктах ы' Ь2,... , Ьm находятся потребители, которым

необходимо поставить эти товары в количествах, не меньших, чем УI'

У2,••• , Уmсоответственно. Обозначимчерез Cij стоимость перевозки еди­ ницы груза из пункта а/ в пунктЬ/ Xij - количество товара, перевозимо­ го из пункта а/в пункт bj' Для того, чтобы удовлетворить запросы по­

требителей, необходимо, чтобы выполнялась система неравенств

L,X/j ~Yj,j=l, т.

303

С другой стороны, необходимо учитывать, что с i-гo склада нельзя вывезти больше продукта, чем там имеется. Следовательно, должна

выполняться еще одна система

! I

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

данной задаче одним из возможных критериев может выступать сто­

имость перевозок, тогда вид функционала будет определяться очевид­ ным образом:

;j

Таким образом, paccMorpeHbl задачи, математическая формули­

ровка которых описывается схожими моделями, а именно, и оптимизи­

руемый функционал, и ограничения представляют собой линейные фор­

мы некоторых переменных. Рассмотрим подходы к решению такого типа

задач.

10.2. Задача линейного программирования

Постановка задачи линейного программирования. Задачи ли­ нейного программирования (ЗЛП) - простейший тип оптимизационных задач. Постановка данной задачи выглядит следующим образом.

Имеется множество переменных Х = (Х\, х2,... , Х). Целевая функ­ ция линейно зависит от управляемых параметров:

;=1

Имеются ограничения, которые представляют собой линейные фор-

мы:

Задача линейного программирования формулируется так: определить максимум линейной формы

(10.3)

304

. ,

при условии, что точка (ХI' х2,••• ,

Хn

)

 

 

 

 

оторому множе-

 

 

п~инадл~жит HeR'

 

 

. ству D, которое определяется системои линеиных неравенств

 

 

 

al\x\ +а\2Х2 +...+

 

 

<ь·

 

 

 

 

 

 

а\.х. -

l'

Х;> О,i = 1, n.

 

 

 

{ ~.~:~:.~.~.~~~~..~""".~.~~~.~~..~.~.~:

(10.4)

 

 

 

 

 

 

 

 

 

 

аm\х\ +аm2Х2 + ... +аmnхn ~bm'

 

 

 

 

 

 

v ( ..

 

• )

,кото

рое удовлетворяет

 

Любое множество значении

х\ ,Х2""'Хn

 

 

 

 

системе неравенств (10.4) задачи линейноГО программирования, явля­

 

ется допустимым решением данной задачи. Если при этом выполняет-

 

ся неравенство

 

 

 

 

 

 

 

 

 

 

C\X~ +C2X~ + ... +CnX~ ~C\X\ +С2Х2 +"'+С.Хn

 

 

 

 

 

 

 

 

 

 

о о

ХО

явля

 

для всего множества значений Хр Х,... , Хn' то значение Х\ 'Х2 , ... ,

-

 

ется оптимальным решением задачи линейнОГО программирования.

ЗадачулинейноГО программированияудобно представлять в вектор­

ной форме, тогда она будет выглядеть следующим образом:

найти тах F(x) = тах (СТх)

при условии АХ$; ро; X~ О,

где с

=

с) представляет собой n-мерный вектор, составлен-

с\'

2"'" n

т

нированная

ный из коэффициентов целевой функции, причемс -транспо

v

вектор-строка; х = (x l , Х2,••• , хn) -

n-мерный вектор переменных решении;

Р.~[ J-т-мерныйвеrropсвободныхчленовОI]>авичений;

матрица А размером (т х n) -vматрица, составленная из коэффициен­

тов всех линейных ограничении:

 

 

а

2\

 

аа\222

.....,

аа,.2• J.

 

А=

г

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

а mn

r

 

а

т

\

а

У2

 

 

 

 

 

 

 

Простые ЗЛП допускают геометрическую интерпретацию, позво-

ляющую непосредственно из граФика получитьрешение и проИЛЛЮСТРИ-

poвarьидеюрешенияболеесложныхзадачлинейноГОпрограммирования.

305

20-4355

Каноническая форма задачи линейного программирования. Любуюзадачулинейногопрограммированияможносвестикнекоторой

стандартной форме с ограничениями, записанными в виде уравнений.

Это достигается путем введения свободных переменных во все огра­

ниче~ия. Свободная переменная учитывает разницу между правой и

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

Пусть

 

Хn+\ -

ДОполнительная переменная, которая численно равна Ь, -

~>,;X;;

 

 

 

 

;=1

i 1,

Хn+2 -

ДОПОлнитеЛьная переменная, которая численноравна Ь2-

~>2;X;>

 

И т.д.;

1='

 

n

m -

ДОполнительная переменная, которая численноравна Ьm-

 

 

Х +

 

!ат;Х;.

 

В результатеполучаем новую систему ограничений:

;=,

 

 

 

allx, +а'2Х2 +... +а,nхn +lx.+l +ОХ.+2 +... +ОХ.+m =Ь,;

 

 

 

 

а2,х, +а22Х2 +... 2nхn +ОХn+' +1Хn+2 +... +ОХn+m 2;

 

 

 

 

...................................

 

аm,Х, +аm2Х2 +... +аm.Х. +Ох.+, +ОХ.+2 +... +1Хn+m m

Х; ~O, i=l, 2, ..., n, n+l, ..., n+т.

Целевая функция будет иметь вид

max:F(x"x2,···,X.) = max:(с,х, +С2Х2 +.. .'СnХ. +ОХn+' +ОХ.+2+...

Или В маtpичной форме:

max:F(x) = тах:(сТх)

;

+Ох.+m) .

(10.5)

при условии АХ\+ ВХ =Р

Х > ОХ> о

 

 

2

О' , - , \ - ,

 

- вектор свободных

где Х, - вектор первоначальных переменных; Х

2

переменных; В - единичная маtpица mхn.

 

1О ... О]

В= [~..~.:.:: О .

О 0 ... 1

ТакуюформузаписиназываюткаНОническойформойзадачилиней­

ного программирования. Вканонической формеограничениязапИсыва­

ются в виде равенств.

306

,,'

При записи задачи линейного программирования в стандартной или канонической форме число линейно независимых уравнений, как прави­ ло, меньше числа переменных (на практике всегда т < n, где т - число уравнений). Orметим некоторые свойства, касающиеся системы огра­ ничений:

1) уравнения линейно независимы, если ни одно из них не м,?жет быть получено из остальных путем алгебраических преобразовании, т.е.

никакие из них не являются следствием остальных;

2) если число независимых уравнений больше числа перемен~ных,

то такая система не имеет решения и называется несовместимои;

3)если число независимых уравнений равно числу переменных, то

такая система имеет единственное решение, которое либо оптималь­

но, если все компоненты положительны, либо недопустимо, если хотя бы одна из компонент Otpицательна;

4)если удается найти множество неOtpицательных~наченийХ= L' Х2'••. ' Х.), которое является решением системы т линеиных уравнении

сn+m неизвестными, то такое решение называют базисным, а ненуле­

вые переменные - базисными переменными.

Пример задачи линейного программирования. Рассмотрим

двухмерную задачу линейного программирования. Пусть tpебуется найти максимум линейной формы

max:F(x"x2) = тах:(х, +2х2)

при условии

Х, +Х2 ~120, O~ Х, ~ 100,

O~ Х2 ~ 75.

Изобразим область, описываемую совокупностью ограничений на плоскости х,ОХ2 (рис. 10.1). Переменныех, ИХ2 неоtpицательные, по­ этому множество точек (Х\' х2), являющихся возможными решениями задачи, находятся в 1 квадранте. Заменим знак в Х\ + Х2 :5: 120 на знак равенства, получим уравнение прямой: Х\ +Х2 = 120. Эта прямая делит плоскость на две полуплоскости. Все точки одной полуплоскости удов­ летворяют неравенству Х, +Х2 > 120, другой - неравенству Х\ + Х2 < 120.

ПоCtpоив аналогичные прямые х, =100 и Х2 = 75, получим много­ угольник, множество точек которого (Х\, Х2) удовлетворяет всем нера­

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

собой область допустимых решений D.

Из множества точек (Х" Х2) многоугольника необходимо выбрать

такую, в которой функция F(x" Х2) = (Х, + 2) принимает максимальное

307

11,

i

I

11

I I

100

120

х,

 

 

Рис. 10.1. Геометрическая иитерпретациязадачилииейногопрограммирования

значен~е. Для некоторого Фиксированного значенияF * линейная функ­

ция F (X 1, Х2) = 1 + 2) представляет собой прямую линию. Задава­

ясьразличными значениями F*, получимсемейство параллельныхпря­

мых. Увеличениезначенийлинейной функциисоответствуетперемеще­

нию прямой параллельно самой себе вверх. Следовательно, как видно

из рис. 10.1, максимальное значение целевой функции на допустимом

множестве точек соответствует прямой, проходящей через точку z пе­

ресечения прямых Х1 + Х2= 120 и Х2=

75.

Решив эту систему, получимХ1= 45. Тогда максимальное значение

функции F = mаХ(Х1 + 2) = 195.

.

10.3. Решение задач линейного программирования

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

Метод полного Исключения. Перейдем к Изложению методов

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

зования сис~мылинейныхуравнени~, а именно, приведения матрицы,

СОCПffiЛенноиизпараметровуравненииограничений, кединичномувиду.

Переобозначим свободные коэффициенты ограничений а =Ь

f

308

Пусть имеется система ограничений в виде

n

_

L,ajjXj =аjO' j =1, т.

;=1

Перепишемданную систему уравнений в матричной форме: АХ=Ао,

и А = [А, Ао], где Ар - расширенная матрица.

Методполногоисключениясостоитизконечногочислаоднотипных

шагов и заключается в приведении матрицы А к единичному виду.

Метод основан на следующих двух операциях.

Одну из строк расширенной матрицы умножают на число, отлич­

ное ОТ нуля.

Из каждой строки расширенной матрицы (Ар) вычитают данную строку. Каждое такое преобразование называется преобразованием Гаусса. В результате получаем новую систему линейных уравнений, эквивалентную исходной.

Рассмотрим более подробно метод полного исключения.

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

разования.

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

вид

{аllХ\ +а\2Х2 + ... +а\nхn =а\о;

~~:~:.+.~~~~.~:::~.~~:~:.;.a w;

аm\х\ +аm2Х2 + ... +аmnхn ·

Возьмем в качестве направляющей строки вторую строку, в каче­

стве направляющего столбца второй столбец, тогда направляющий эле­ мент будет Х2 (коэффициент при нем равен а22). Разделим направляю­ щую строку на этот коэффициент и перепишем вновь полученную сис­

тему ограничений:

309

аl\Х\ +а\2Х2 + ... +а\.х. =а\О;

а2\

а2

а2

-х\ +Х2

+ ... +-х

=_0;

а 22

а 22

а 22

Далее умножаем направляющую строку поочередно на элементы,

стоящие в направляющем столбце преобразуемого уравнения, и резуль­ тат вычитаем из соответствующего уравнения. Иными словами, вна­ чале умножим направляющую строку на а\2 и вычтем полученный ре­

зультат из первого уравнения. Далее направляющую строку умножим

на аЗ2 и вычтем из третьего уравнения и т.д. до последнего т-го урав­

нения. Получим новую систему:

Матрицу, в которую преобразовалась расширенная матрица А пос-

р

ле первого шага, обозначим А~\). В полученной матрице все элементы

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

называют главной частью матрицы А(\) данного преобразования. На­

правляющийэлементвторогошагавыбираютсрединенулевыхэлемен-

тов главной части матрицы A~\>' полученной после проведенного пре­

образования.

Второй и дальнейший шаги метода проводят аналогично первому

шагу. Последовательность действий продолжается до тех пор, пока

имеется возможность выбора направляющего элемента. Если послеk-

го шага главная часть матрицы A~k) не содержит ни одного элемента

или содержит только нулевые элементыI' то процесс исключения пере­

менных заканчивается. После проведения преобразований в системе

можетоказаться[уравнений, [~т. Пустьэтопервыепопорядку[ урав­

нений тогда система уравнений может быть записана в виде

{-а(l)х

=а(1)

(10.6)

" - ' ij J

/0'

 

}=\

Примем, что i-й направляющей строке соответствует i-й направляю-

v

(1)

{О;

i "# j. .

щии столбец, тогда а/.

=

1;

.. ']= 1. 2..... 1.

 

,

 

l = ]

(1) ~ (1)

Следовательно, (10.6) можно записать в виде Х; =а/о - "-'а/} Х)' причем

)=1+\

переменные Х/ являются базисными, а переменные Ха (s = [+ 1, ... , n) -

небазисными.

Пример применения метода полного исключения. Рассмот-

рим пример применения метода полного исключения Гаусса для иссле-

дованиясистемыуравнений

{Х\ +2Х2 +хз 4 =3;

2х\ +Х2 з +3Х4 =3;

4х\ +5Х2 +3хз +5Х4 =9.

Расширенная матрица имеет вид

12113

2 1 1 3 3

Ар = 4 5 3 5 9

~А2 Аз А4 Ао

Первый шаг. В качестве первого направляющегоэлемента возьмем

а11=1. Умножив первую строку матрицы А на 2, вычтем результат из второго уравнения и, умножив на 4, вычтем результат из третьего урав-

нения;получим

311

310

·11

·1' ,

1,11 '1

1:

'.1

111

1:

!!1

!)

1 :

I

11

1

1

1, l'

!I,

I!, '

11

.11.

11"

11'

,··1

1. l'

А(1) =

А\

А2

Аз

А4

A~

1

2

1

1

 

р

О

-3

-1

1

- .

 

о

-3

-1

1 -

Второй шаг. ПОскольку главная часть маtpицы А(\) содержит от­

ЛИчные от нуля элементы, ПРОДОЛЖИМ процесс исклю~ения. Выберем

элемент a~~= -3 в качестве направляющего элемента на втором шаге

преобразования. Разделим вторую С1року на-3, получим

1

2

1

1

3

 

1

уз

-Уз

1

 

-3

-1

1

-3

Далее УМНОжим вторую ctpoкy на 2 и вычтем результат из первой

Сtpоки, УМножим вторую строку на -3, результат вычтем из tpетьей

 

 

 

 

1

о

уз

1%

1

 

 

 

 

 

 

Сtpоки, В итоге А(2) =

О

1

уз

-Уз

1

 

 

 

 

р

 

 

 

 

 

 

о

О

о

О

о

 

 

 

 

 

 

 

 

 

 

 

Как видим, главная часть маtpицы

A~2), состоящая из элементов

(2)

и

(2)

, содержиттолько нули. Следовательно, процесс исКЛючения

азз

 

а34

заканчивается. Исследуем матрицу А(2). Поскольку tpетья ctpoKa со-

держит только нулевые элементы, это свидетельствует о том, что на­

чальныIe уравнения были зависимыми, и, следовательно, она может

быть отброшена. Тогда Эквивалентная маtpица системы уравнений

будет Выглядеть следующим образом:

А(З) =

1

о

уз

1

 

 

 

 

р

 

1

уз

 

 

О

1

Теперь можно записать базисное решение

Х\ =1; Х2 =1; Хз =О; Х4 =О, а также соответствующее общее решение

312

1

5

1

1

 

Х\ =l- з

аз -з0.4; Х2

=l-з

аз +з0.4; ХЗ =аз; Х4

=0.4'

где аз, а4 - произвольные скаляры.

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

1 О О

О 1 О

где е\ = О ; е2 = О ; еm = - единичный базис, элементы alO~ О для

О

О О 1

всех i = 1,2, ... , m.

Будем применять метод полного исключения к расширенной мат­ рице ограничений. Выбираем направляющий элемент alJ на данной ите­ рации. В результате преобразования Гаусса, методика которого была

только что описана, получим новые значения коэффициентов:

если 1:1= i, 1= 1,2, ... , m.

Выясним условия, при которых новое базисное решение будет до-

пустимым, т.е. a~~+\) > О для всех 1. По предположению, аю~ О, тогда

 

(k)

> О

a(k+\)

=а/о

/0

(k)

- •

а/}

Если a~k) < О, то очевидно, a,(~+\) > О , так как a;~) > О, a/~k) > о.

Если a(k) > О

,

то a(k+1J =a(k)ral(~) -

a~~)] будетбольшенуляпривсех

Ij

10

/j

(k)

a(k)

 

 

 

 

a'j

/j

значениях1= 1, 2, ... , ттогдаитo~ькoтогда,когда a,~: = min ( a/~: ]при

ау

lаи

условии atk ) > о.

I!

313

 

11

 

1

 

:,

,,', 1

,11'

,",1

,1'1 i 1

""

li

I

I

11,1

 

 

 

 

 

 

 

 

 

 

 

 

 

Преобразование Гаусса называется симплексным преобразовани­

1

 

Нижняя строка элементов a Ok, k = О, т+n называется индексной.

,

 

ем, когда направляющий элемент определяют по следующим правилам·

 

Элементы индексной строки вычисляются следующим образом:

направляющий столбец выбираютиз условия что в нем имеетс~

 

 

=I,aikC + -C

 

 

i =1, т означает номер соответствующей строки.

хотя бы один положительный элемент·,

'

 

a

k

;

 

 

 

 

Ok

n i

 

 

 

 

 

 

направляющуюстрокувыбираюттак, чтобы отношение aiO бьmо

 

 

;=1

 

 

 

 

 

 

 

 

поскольку на первом шаге заполнения таблицы все элементы C n+1 рав-

минимальнымприусловии,чтоalj> о.

ij

 

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

a

 

ответствующих элементоВ целевой функцииданного столбца, взятыес

Задачи линейного программирования, решаемые с помощью симп­

 

 

обратным знаком, т.е. a =-C Последняя строка таблицы служит для

лфекс-метода, основываются на представлении решения в табличной

 

 

 

 

 

 

 

Ok

k

орме. ~ассмотрим последовательность действий при решении зада­

 

определения направляющего столбца.

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

 

 

 

Элемент а

оо

равен значению целевой функции, которое вычисляет-

 

 

 

 

 

 

 

 

 

 

Пусть имеются линейная форма

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оо

т

 

 

 

 

 

СЯ по формуле а

= L,cn+ka ko , k-номер базисной переменной (индек-

 

 

 

 

 

 

 

 

 

 

 

 

k=\

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сация идет по строкам таблицы).

и ограничения

 

 

 

 

В столбце Вхзаписываются базисные переменные, на первом шаге

 

 

 

 

 

{

аIlХ\ +а\2Х2 + ... +а\n Хn

<- а10'.

 

в качестве базисных выбирают фиктивные переменные {x n+k },k =1, т.

 

В дальнейшем фиктивные переменные необходимо вывести из базиса.

а2\х\ + а22Х2 +... +а2nхn

~ а20;

 

 

 

В столбец С записываются коэффициенты при X n+k' на первом шаге

........................................

 

значения этих коэффициентов равны нулю.

 

 

 

аm\х\ +аm2Х2 + ... +аmnхn ~ а·

 

 

для перехода от базиса фиктивных переменных к базису реальных

 

 

переменных применяют следующие правила:

Приведем матрицу ограничений к каноническому виду:

 

 

 

в качестве направляющего столбца выбирают столбец Aj , для ко-

аllХ\ +а\2Х2 +а\nхn +... +lхn+\ +... +Охn+m 10'

 

торого выполняется условие аО) = min {a ol }, 1= 1, n +т при a Ol < О, т.е.

 

 

 

 

выбирается минимальный элемент, при условии, что этот элемент от-

{am:~:·~:~·~~~·~:::·;·~···~···~·~~·····~·.·.:·~·~~·····.~.~.

mn n

n+1

n+m

тО·

На следующем шаге составим таблицу (табл. 10.1).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 10.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С

 

 

 

С

С2

Сз

 

 

С]

 

 

 

С.

 

о

 

 

 

 

 

 

о

 

 

 

 

 

 

 

 

 

 

 

 

 

Вх

Ао

А

А2

Аз

 

 

А!

 

 

 

 

А.

 

A,.+I

 

 

 

 

 

АII+IJt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CII+I

Х".I

а\О

att

at2

а\3

 

 

atj

 

 

 

at.

 

 

 

 

 

 

 

 

О

 

C II+2

Х,.+2

а20

а2.

й22

а2З

 

 

a2j

 

 

 

а20

 

О

 

 

 

 

 

 

О

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C,.+i

Х,..,

аю

ан

а."2

а/з

 

 

а"

 

 

 

а/.

 

О

 

 

 

 

 

 

О

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СII+",

Х,,+,"

аМ>

а...

й".2

а..з

 

 

a<nj

 

 

 

a

 

О

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

аоо

йо.

а02

йоз

 

 

йо]

 

 

 

ао.

 

ао.-.

 

 

 

 

 

бom••

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рицательный;

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

бца свободных членов делится на соответствующий элемент направ­

ляющего столбца, элемент столбца свободных членов находится в од-

ной строке сэлементоМнаправляющего столбца aiO Из всех возмож-

a/j

ныхсоотношенийвыбираетсяминимальноеа/о =min{aro } приусловии,

a/j arj

что ат} > о, 1~ r ~ т.

Применяясформулированныеправила, определяемнаправляющий

элемент. Далее выполняется шаг симплексных преобразованиЙ.

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

315

314

ii 1.

,1

·11'

1 !

меняется соответствующее значение коэффициента целевой функции.

ВместокоэффициентаСn+1 соответствующего старой базиснойперемен­

ной, втаблице записываеТсязначение коэффициентацелевой функции

при переменной, вводимой в базис.

Если направляющий элемент a/j' то переход от данной таблицы к

следующей осуществляется с использованием следующих правил. 1. для всех элементов направляющей с1рОКИ

(k) a(k+\) = a jt

It

a

(k) ,

 

 

jj

где k - номер шага (k = 1, 2, ... ); i - номер направляющей С1роки;j­

номер направляющего столбца; f = о, т+n , Т.е. все элементы направ­

ляющей CtpОКИ делим на направляющий элемент, в итоге направляю-

щий элемент стал равным единице; al~~+1) =1.

2. Внаправляющемстолбценеобходимополучить a~jk+\) = о,длявсех r =1, т, r"# i, при a(.k+\) =1, Т.е. в направляющем столбце должны быть

V

все нули кроме направляющего элемента, которыиv равен еДИнице.

для всех остальных элементов, включая индексную с1рoку, произ­

водим вычисления

а(k+\) = а(k) -

a(k)a(k)

1"# J'r"# i.

/t fj

rt

rt

(k)'

,

a;j

Симплексные преобразования повторяют до тех пор, пока не реа­

лизуется один из двух Возможных исходов:

а) все a ot ~0- это условие оптимальности базиса последней таб­

mщы;

б) найдется такой элемент аО}< о, при котором все элементы стол­

бцаarj::; о,- этопризнакнеограниченностицелевой функциина множе­

стве допустимых решений.

Пример решения задачи линейного программирования. Рас­

СМО1рим задачу линейного программирования в следующем виде:

найти максимумлинейной формы 4х\+ 2при ограничениях

2

Х\ ~ 4000, Х2 ~ 6000, Х\ +-3Х2 ~ 6000, Х\'Х2 ~ О.

Каноническая форма задачи линейного программирования будет

иметь вид

4х\ +2 +Охз +ОХ4 +OXs ~ тах.;

lх\ +ОХ2 +lхз +ОХ4 +OXs =4000;

Ох\ +IХ2 +Охз +IХ4 +OXs =6000;

2

_

6000.

lх\ +'3Х2

+Охз +ОХ4 +lxs -

Составим исходную симплекс-таблицу (табл. 10.2).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 10.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С,

 

 

 

 

 

 

 

4

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О

 

О

 

О

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A s

 

 

 

 

 

 

 

 

 

 

 

Вх

 

Ао

 

 

А,

 

А2

 

Аз

 

А4

 

 

 

 

 

 

 

 

О

 

 

Хз

 

4000

1

 

 

 

 

О

1

 

О

 

О

 

 

 

 

 

 

 

 

О

 

 

Х4

 

6000

 

 

О

1

 

О

1

 

О

 

 

 

 

 

 

 

 

О

 

 

Xs

 

6000

1

 

 

 

2

 

О

 

О

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О

-4

 

 

-3

 

О

 

О

 

О

 

 

 

Поскольку --4 < -3 < о, то в качестве направляющего выбираем пер­

 

выйстолбец.Составивотношениевида {а;о},определяемнаправляю-

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а;\

 

 

 

 

 

 

 

щую строку. Для этого находим

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

I

 

·n {4000

6000

6000} = 4000. Следовательно,направляющаяС1рoка_

 

' о'

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

v

 

первая, направляющий элемент - аl1=1. Применив первыи шаг симп­

 

лексного преобразования, получим новую таблицу (табл. 10.3).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 10.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С,

 

 

 

 

 

 

4

 

 

 

3

 

О

 

О

 

 

О

 

 

 

 

 

 

 

 

 

 

ВХ

 

Ао

 

 

А.

 

А2

 

Аз

 

А4

 

 

As

 

 

 

 

 

 

 

4

 

 

Х.

4()()()

 

1

 

 

 

О

 

1

 

О

 

 

О

 

 

 

 

 

 

 

О

 

 

Х4

6000

 

 

О

 

1

 

О

 

1

 

 

О

 

 

 

 

 

 

 

О

 

 

Xs

2()()()

 

 

О

 

-2

 

-1

 

О

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16000

 

 

О

 

-3

4

 

О

 

 

О

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

316

317

 

На данном этапе в качестве направляющего столбца выбираем

второй, направляющая строка - третья, т.к

 

2000 < 6000 < 4000 . При-

 

 

 

 

v

 

 

 

 

 

 

 

 

 

 

 

 

 

2/3

1

 

О

меним следующии шаг симплексного преобразования. В результате по­

лучим табл. 10.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 10.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С,

 

 

 

 

 

 

4

 

3

 

 

О

 

 

О

 

О

 

 

 

 

 

 

В.

 

 

Ао

 

 

А,

А2

 

 

Аз

 

А4

 

As

 

 

 

4

 

х,

4000

 

1

 

О

 

 

1

 

 

 

 

О

 

О

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О

х4

3000

 

 

О

О

 

 

3

 

 

 

1

3

 

 

 

 

 

 

 

 

 

-

 

 

 

- -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

2

 

 

 

3

 

Х2

3000

 

 

О

1

 

 

- -3

 

 

 

О

-3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

9

 

 

 

 

 

 

 

 

25000

 

 

О

О

 

- -

 

 

О

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

Так как аоз =-2 < о, то направляющий столбец Аз, направляющая

строка- вторая, направляющийэлемент а23 = ~. Выполнимочередной

шаг преобразования, получим еще однутаблиtу (табл. 10.5).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 10.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С,

 

 

 

 

 

 

 

4

 

3

 

 

О

 

 

 

О

О

 

 

 

 

 

В.

 

Ао

 

 

 

А,

А2

Аз

 

А4

As

 

 

 

 

 

 

4

 

х,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2000

 

 

1

 

О

 

О

 

--

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О

хз

2000

 

 

 

О

О

1

 

 

 

-

 

-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

3

 

Х2

6000

 

 

 

О

1

 

 

О

 

1

 

О

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26000

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

4

 

 

 

 

 

 

 

 

 

 

О

О

 

О

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

Поскольку в индексной строке все элементы ПОЛожительны это

означает, что найдено оптимальное решение Х

= 2000, Х = 6000

Хзо = 2000. Искомое значение целевой функцииpa~HO4 Х,+ 3;:=26000:

10.4. Двойственная задача линейного

программирования

Структура и свойства двойственной задачи. Почти всякую злп

можно рассматривать как экономическую задачу о распределении ре­

сурсов Ь" Ь2,••• , Ьm между различными потребителями, например, меж-

ду некоторыми технологическими процессами А"А2,••• •. Любое до­

пустимое решение ЗЛП Хl' Х2,.•• , Х. дает конкретное распределение,

указывающее ту долю каждого из ресурсов, которая должна быть ис­

пользована при осуществлении соответствующего технологического

процесса.

Рассмотрим пример. Завод производит три вида продукции Х" Х2, ХЗ' каждый из которых требует затрат времени на обработку на токар­

ном, фрезерном и сверлильном станках. Количество машинного времени

для каждого из станков ограниченно. Пусть С" С2' СЗ- прибьmь от реа­ лизации единицы соответствующего вида продукции. Требуется опре­ делить, какое количество каждого вида продукции необходимо произ­ водить в течение заданного интервала времени, чтобы получить мак­ симальную прибыль.

Формально задача записывается так: найти

max (с,х, +С2Х2 +СЗХЗ)

х1 ,х2,хз

при ограничениях

 

 

 

allX, +а'2Х2

13хз ~b,;

 

 

{

а2,Х, +а22Х2 23хз ~b2;

 

 

аз,Х, +аЗ2Х2

+аззхз 5,Ьз,

 

 

 

где а , а

.,

аз - время, необходимое для обработки единицыj-го вида

'}

2~

~

 

 

продукции соответственно на токарном, фрезерном и сверлильном стан-

ках (j = 1,2,3); ы' Ь2, Ьз - ресурс машинного времени соответственно

для токарного, фрезерного и сверлильного станков. Сформулированная задача является прямой злп.

Рассмотрим далее задачу в несколько иной постановке. Обозначим

через И" И2' ИЗ цену единицы времени работы на токарном, фрезер­

ном и сверлильном станках соответственно, тогда а,\ И,+а2, И2з, ИЗ

можно трактовать как расходы на изготовление единицы продукции

первого вида, а'2И,+а22И2+аЗ2ИЗ - расходы на изготовление единицы продукции второго вида, а\зИ\+аИ2ззИЗ - расходы на изготовление

единицы продукции третьего вида.

318

319

;1

"1

ДЛЯ величин расходов Выполняются следующие соотношения:

ани\ +а2\И2 +аз\Из ~C\;

 

{а\2Х\ +а22И2 з2Из ~C2;

(10.7)

а\3И\ + а23И2 +аззхз ~ Сз'

Учитывая, что Ь\, Ь2, Ьз - использованный ресурс машинного вре­

мени для каждого из станков, тоща Ь\И\+Ь2И2зИз - суммарные рас­

ходы на производство.

Требуется найтитакие И\, И2, ИЗ' удовлетворяющиеусловиям(10.7),

при которых минимизируются суммарные расходы на производство.

Таким образом, целевую функцию можно записать в виде

min g(И)=ЬР\+ЬР2+ЬЗИЗ'

(10.8)

и"и,.и,

 

причем И\, И2, Из~ О.

Задачу (10.8) с ограничениями (10.7) называют двойственной зада­

чей по отношению к прямой, сформулированной ранее.

~оотно~ение прямой и двойственной задач. Между прямой и

двоиственнои задачами имеет место взаимно однозначное отношение.

Имея прямую задачу, всеща можно перейти к двойственной и наобо­

рот. Данное отношение находит выражение в виде следующих правил:

1) если прямая за~ача является задачей максимизации, то двой­

ственная будет задачеи минимизации и наоборот;

2)коэффициенты целевой функции прямой задачи С\, С2,••• , с стано­

вятся свободными членами ограничений двойственной задачи;n

3)свободные члены ограничений прямой задачи Ь\, Ь2,••• , Ь стано­

вятся коэффициентами целевой функции двойственной задачи;т

4)матрицуограничений двойственной задачи получаюттранспони­

рованием матрицы ограничений прямой задачи;

5)знаки неравенств в ограничениях изменяются на обратные'

6)чи:лоограничений прямой задачиравночислупеременных~ой­

ственнои задачи, а число ограничений двойственной задачи равно чис­

лу переменных прямой задачи.

Переменные Ир И2•• , Иm двойственной задачи называют «тене­

выми ценами». Двойс~венную задачу выгоднее решать, чем исходную

прямую, если в ПРЯМОИ задаче при маломколичестве переменных (т > n)

имеется большое количество ограничений.

Запишем обе задачи в матричном виде.

Прямая задача. Найти тахЛХ) = тахСТ Х при АХ ~ Ао; Х ~ О.

Двойственная задача. Найти miпg(й) = А;Й при АТО ~ С; й ~ О.

320

Связь между оптимальными решениями прямой и двойственной

,задач устанавливается посредством следующих теорем.

 

Теорема 1. Если Хо и (jо - допустимые решения прямой и двой­

 

ственной задач, Т.е. если АХ ~ Ао и АТО ~ С ,то С

Т

ХО ~ А;Йо' т.е. зна­

 

 

 

чения целевой функции прямой задачи никоща не превышают значений

1 '

целевой функции двойственной задачи.

 

 

 

Теорема 2. Если Хо и йо - допустимые решения прямой и двой­

 

ственной задач и если С

Т

ХО =(j тАо ,то Хо И йо -

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

 

 

 

ния этих задач.

 

 

 

 

 

Таким образом, получено, что если прямая задача есть задача мак­

 

симизации, то двойственная задача- задача минимизации. Остановимся

 

на особенностях решения задач минимизации. Первое правило гласит,

 

что в задачах минимизации направляющий столбец определяют по наи­

 

большему положительному элементу индексной строки. Правило оста­

 

новки для задачи минимизации формулируется так: все элементыI ин­

 

дексной строки должны быть неположительными, Т.е. аО}~ О. И, нако­

 

нец, главная сложность, возникающая при решении задач минимизации,

 

- это выбор первоначального базиса. Дело в том, что при решении за­

 

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

 

Т.е. ограничения имеют вид АТй ~ С; й ~ о . При приведении системы

 

ограничений к каноническому виду дополнительные переменные вво­

 

дятся в модель с отрицательными знаками. По этой причине они не могут

 

быть введены в базис. Отметим также, что в общем случае постанов­

 

ки задач линейного программирования допускают в ограничениях зна-

 

ки неравенств как «больше или равно», так и «меньше или равно». Не­

 

равенства, в которых имеет место знак «меньше или равно», приводят­

 

ся к каноническому виду путем добавления в первоначальный базис

 

дополнительной переменной, как это было продемонстрировано при ре­

 

шении задачи максимизации симплекс-методом. для неравенств, име­

 

ющих знак «больше или равно», дополнительная переменная вводится

 

с отрицательным знаком, и в базис введена быть не может. По этой

 

причине определение начального допустимого базиса в общем случае

 

представляет значительные трудности. для нахождения допустимых

 

базисных решений разработаны специальные методы. Рассмотрим один

 

из НИХ.

 

 

 

 

2\-4З55

321