книги из ГПНТБ / Снапелев, Ю. М. Моделирование и управление в сложных системах
.pdfот линейных форм переменных х4, х2, . . ., хп, а равенст ва (2.23) — линейны. В более широкой постановке задач дробно-линейного программирования не только показа тель качества /, но и функции gy, определяющие ограни чения (2.23) и (2.24), представляют собой дробно-линей ные функции переменных хи х2, ... , х„.
Методы решения задач кусочно-линейного и дробнолинейного программирования представляют собой есте ственные обобщения методов линейного программирова ния [38].
§ 2.6. Нелинейные модели оптимизации
Если среди функций }(Х) и gi{X) имеются нелиней ные, то задачу (2.22) — (2.24) относят к нелинейному про граммированию.
Нелинейное программирование разделяется на два существенно разных класса — на выпуклое и невыпуклое программирование. Под выпуклой задачей математиче ского программирования понимается задача, показатель качества которой (2.22)— выпуклая (вниз) функция своих переменных, а ограничения (2.23) и (2.24) опре деляют выпуклое множество. Основная особенность вы пуклого программирования заключается в том, что ее локальные экстремумы совпадают с глобальным экстре мумом. Отсюда и синоним задачи выпуклого програм мирования— одноэкстремальная задача. В задачах не выпуклого программирования локальный экстремум до стигается, как правило, в большом количестве точек. Значения показателя качества решения в различных экстремальных точках обычно различаются между со бой. Отсюда и синоним задачи невыпуклого программи рования —- многоэкстремальная задача [100].
В к а ч е с т в е и л л ю с т р а т и в н о г о п р и м е р а з а д а ч и н е л и н е й н о г о п р о
г р а м м и р о в а н и я |
р а с с м о т р и м |
з а д а ч у |
р а с п р е д е л е н и я т о р у д и й п о |
||||||
п р а з л и ч н ы м |
ц е л я м [177]. |
|
|
|
|
|
|
||
П у с т ь |
и з в е с т н а в е р о я т н о с т ь |
/ ц ;- |
п о р а ж е н и я / - й |
ц ели |
i'-м о р у д и е м |
||||
в с л у ч а е з а к р е п л е н и я е г о з а |
э т о й ц е л ь ю . И с к о м ы й |
план |
р а с п р е д е л е |
||||||
н ия б у д е т |
х а р а к т е р и з о в а т ь с я |
с о в о к у п н о с т ь ю |
ч и се л |
Xij, п р и н и м а ю щ и х |
|||||
з н а ч е н и е |
1, |
есл и |
( - о е с р е д с т в о |
з а к р е п л я е т с я |
за / - о й ц е л ь ю , или 0 |
в п р о т и в н о м с л у ч а е . Т о г д а о г р а н и ч е н и я б у д у т в ы г л я д е т ь с л е д у ю щ и м о б р а з о м :
п |
|
И Xtf= 1, { i = \ , т), |
( 2 . 4 5 » ) |
}—[ |
|
Xij — ц ел ы е . |
(2 . 4 5 11) |
Н е о б х о д и м о о б р а т и т ь в м а к с и м у м м а т е м а т и ч е с к о е о ж и д а н и е у щ е р б а ,
н а н о с и м о г о п р о т и в н и к у . В е р о я т н о с т ь .п о р а ж е н и я / - о й ц ел и р а в н а
т
Л = 1— П (1-ЛЛ))'
/= 1
Е с л и о б о з н а ч и т ь ч е р е з Cj в а ж н о с т ь / - о н ц ел и , т о м а т е м а т и ч е с к о е
о ж и д а н и е н а н о с и м о г о п р о т и в н и к у у щ е р б а р а в н о
п |
|
п |
т |
|
ф=£ cjPj |
£ сЛ1— П о — |
|||
/=i |
|
j=i |
г=1 |
|
Ф у н к ц и я Ф н е л и н е й н а |
п о |
п е р е м е н н ы м |
xij и |
н е в ы п у к л а . Х о т я с ф о р м у |
л и р о в а н н а я з а д а ч а я в л я е т с я ц е л о ч и с л е н н о й , |
е е м о ж н о р а с с м а т р и в а т ь |
|||
и к а к н е п р е р ы в н у ю , |
е сл и н о м е р у г с о о т в е т с т в у е т не о д н о о р у д и е , |
|||
а ц е л а я б а т а р е я из щ о р у д и й . |
|
|
Теория выпуклого программирования хорошо разра ботана ![28, 40, 41, 43, 56, 102, 122]. В частности, отрабо таны различные методы решения задач квадратичного программирования [56], т. е. задач на нахождение мини мума положительно определенной квадратичной формы при лицейных ограничениях. Отдельные методы решения задач линейного программирования обобщены и приспо соблены для решения задач выпуклого программирова ния.
Примером задачи выпуклого программирования мо жет служить уже рассмотренная задача распределения орудий по целям. Оказывается, что целевую функцию этой задачи можно сделать выпуклой, заменив ее на функцию
п f т
^= S О |
1 ~ П |
/=! \ |
i=1 |
Новая функция F выпукла по переменным Xij и в точках 0 и 1 принимает те же значения, что и рассмотренная ранее функция Ф. Таким образом, задача максимизации функции F при ограничениях (2.451) и (2.4511) является задачей выпуклого программирования.
Классические методы решения безусловных выпук лых экстремальных задач могут быть также перестрое ны и сформулированы в терминах задач выпуклого про граммирования. В математическом программировании все большее значение приобретает вопрос эквивалент ности локального и абсолютного минимумов (максиму мов). Чтобы понять смысл этих терминов, рассмотрим
171
задачу математического программирования, сформули рованную в терминах «-мерного пространства, когда каж дой переменной соответствует одна ось координат. Тог да допустимое множество является определенным мно жеством точек и в этом пространстве. Точка обеспечива ет локальный (или относительный) минимум (макси мум) целевой функции, если она принадлежит к допу стимому множеству и ни в какой «близкой» точке до пустимого множества целевая функция не принимает меньшего (большего) значения. Точка обеспечивает аб солютный минимум (максимум), если ни в одной другой точке допустимого множества целевая функция не при нимает меньшего (большего) значения.
Конечно, при решении конкретной задачи математи ческого программирования требуется определение обще го минимума (максимума). К сожалению, обычные ме тоды решения обеспечивают лишь нахождение локаль ных минимумов (максимумов). Поэтому желательно знать, когда локальный и абсолютный минимумы (мак симумы) эквивалентны.
Для задач математического программирования с вы пуклой (вниз) целевой функцией и выпуклым допусти мым множеством ограничений локальный минимум яв ляется в то же время и абсолютным.
Для задач линейного программирования, как уже от мечалось, целевая функция (т. е. гиперплоскость) и ог раничения — суть выпуклые множества. Отсюда следует, что в задачах линейного программирования относитель ный минимум всегда является и абсолютным минимумом.
В квадратичном программировании допустимое мно жество ограничений также всегда выпукло. Однако це
левая функция выпукла (вниз) тогда |
и только тогда, |
|
когда матрица |
С — неотрицательна, т. е. когда целевая |
|
функция |
для всех комбинаций |
неотрицатель- |
i I
на. В этом случае локальный и абсолютный минимумы для задачи квадратичного программирования совпадают.
Для решения задач на нахождение условного экстре мума обычно используется метод множителей Лагранжа.
Рассмотрим, например, следующую задачу: найти оп тимальное (минимальное) значение f ( x u х г , . . . , х „ ) при ограничениях
g i ( x u х г, . . . , хп)< 0 ,
(t= 1 ,m).
172
Составим так называемую функцию Лагранжа
(^> У)== f(хч Х2> |
т |
Уг§г{Х 1> Х2>•••>-^га)> |
|
-^-n) ~f"S |
|||
|
|
i=l |
|
ее переменные уи |
yz, ... |
, Уш называются множителями |
|
Лагранжа. Тогда |
решение Xi, х2, |
. . хп ищется среди |
экстремальных точек функции <p(J, У), без ограничений на X и У, которые в свою очередь удовлетворяют систе
ме уравнений |
|
|
m |
|
|
|
||
' |
|
|
df(x,, Х г .............Хп) |
|
Хг, . . . . Х п) |
п |
||
~ |
/ V |
i / \ |
I V I .. d gi ( X ,, |
|||||
V |
х * |
)= = — |
^ |
i=i |
— |
* * ------------ |
’ |
|
|
|
|
|
|
|
|
|
|
9У (Х> V) = g t { x u |
х„) = 0, |
|
|
|
||||
|
|
|
|
г = 1 ,т, / = 1,д. |
|
|
||
|
Этот метод, |
хотя и в ряде случаев требует некоторых |
дополнительных условий, является полезным для многих частных задач на нахождение условного экстремума.
Кун и Таккер {43, 56] доказали, что при некоторых условиях задача выпуклого программирования сводится к нахождению седловой точки функции Лагранжа Ф(Х, У). Эта теорема затем была расширена Эрроу и Гурвицем [99], так что стало возможно рассматривать задачи математического программирования без условия выпуклости.
Введем определения, которые нам потребуются в дальнейшем. Квадратичной формой п скалярных пере менных называется выражение вида
Q = (х » -^2 >•••» Хп)== |
Ч- 2с1глг2-{- 2,с13х 1х 3 -ф-... |
|
2,в1ПХ 1Хп |
%С23Х 2Х 3 |
] ... |
... - j - 2 с 2Пх 2х п - j - c S3Xg -}- ... -f-2c snx 3x n + ... |
||
...+Cnn< |
(2.45) |
с действительными коэффициентами. Считая Сц симмет ричными (т. е. Cij= cn), можно записать
Q == Q (^0 |
“К ^12-^2 —I- |
—{*^inXn) Xi -1“ |
|
|
|
|
~\~C22X z + ••• + |
^ zn ^ n ) + |
(2.46) |
— |
~\~Jfimx i ~\',рП2Хг ' I |
вппХп) х п. |
173
Если коэффициенты сц представить в виде си!Мметричной матрицы С п-го порядка, а переменные X'i — в виде п- мерного действительного вектора X, то правая часть (2.46) есть скалярное произведение вектора-строки X' на вектор-столбец СХ. В матричной записи для квадратич ной формы (2.45) имеем выражение
Q= X'CX, |
(2.47) |
где С — симметричная матрица.
Верно и обратное: каждой симметричной матрице С, согласно (2.44), соответствует квадратичная форма.
Квадратная симметричная матрица С называется
неотрицательно определенной или положительно полуопределенной, если
Х'СХ^О для всех X,
если же Х'СХ> 0 для всех Х=£0,
то такая матрица называется положительно определен ной или строго положительно определенной.
В связи с тем, что наиболее разработанной частью нелинейного программирования является квадратичное программирование, имеющее чрезвычайно широкое при менение во многих областях науки и техники, то, есте ственно, начать рассмотрение методов нелинейного про граммирования именно с этого раздела.
Здесь следует отметить, что задачи квадратичного программирования характеризуются тем, что оптимизи руемая функция представляет квадратичную форму (или многочлен), обладающую положительной или от рицательной полуопределенностью (в общем случае), а множество возможных решений задается линейными условиями [56, 70].
Интерес к задачам такого типа вполне закономерен, ибо аппроксимация реального процесса линейной мо делью осуществляется в большом числе случаев ценой весьма серьезных допущений.
Для определения экстремума квадратичного функ ционала существует метод Хилдрета и Д ’Эзопо [56]. Сущность этого метода состоит в решении двойственных задач. Здесь функция цели должна быть строго вогну той, что несколько ограничивает метод. Подробно этот метод будет рассмотрен в § 2.8,
174
Метод Тейла и ван де Панна [56] идейно близок к способу решения задач линейного программирования, основанному на вычислении всех вершин многогранника условий. Применимость метода ограничена задачей квадратичного программирования, в котором оптимум достигается на гранях достаточно большой размерности. Этот метод имеет определенное сходство с известным в линейном программировании «методом полного описа ния», разработанным Моцкиным, Райфом и Троллом [56]. В этом методе строятся все базисные решения си стемы линейных уравнений, являющихся ограничениями, и исключаются те, которые не принадлежат допустимой области. Далее вычисляются и сравниваются между собой значения линейной функции цели, соответствую щие множеству оставшихся базисных решений. Ба зисное решение, которое доставляет функции цели опти мальное значение, является окончательным решением. С помощью подобного систематического метода проб
можно находить оптимальное |
(минимальное) решение |
||
и в случае, если функция |
цели Q{X) является строго |
||
выпуклой. На первом шаге |
определяется |
безусловный |
|
(т. е. без ограничений) оптимум |
(минимум) |
Q(X). Если |
он достигается в точке, не принадлежащей допустимой области, то это означает, что в оптимальной точке одно или несколько неравенств из числа ограничений должны выполняться как равенства. Можно было бы попытаться найти оптимум (минимум) Q(X), формируя из числа ограничений всевозможные системы из я линейных урав нений относительно я переменных. Причем, при таком подходе задача сводится к многократному решению си стем линейных уравнений.
В результате получается множество я-мерных точек, которые подлежат проверке. Оптимум функции цели до стигается на подмножестве этих точек, принадлежащих допустимой области.
Метод Тейла и ван де Панна и является развитием этого подхода. От данной выше схемы метода система тических проб и сравнений он отличается экономичной выборкой возможных подмножеств ограничений и при менением критерия, который сразу указывает, является ли данное решение окончательным или нет. Мы не бу дем подробно останавливаться на этом методе, а инте ресующегося читателя отсылаем к соответствующей литературе (см., например, [56], гл. 6).
175
В методе Била [56} идеи симплексного метода линей ного программирования разрабатываются очень глу боко. Сверх того, он дает глобальное решение даже в том случае, когда оптимизируемая функция не явля ется выпуклой. Суть метода состоит в следующем. Необходимо минимизировать выпуклую квадратичную функцию
Q(xu хг, ... , x „)= Q (X )
при ограничениях
АХ=В,
х > 0 .
Здесь А — матрица размерности тХп (причем т<п). Если существует некоторая точка, удовлетворяющая условиям ограничений, то существует, как известно из теории симплексного метода, и базисная допустимая точка, в которой, по крайней мере, (п—т) переменных равны нулю. Остальные т переменных, называемые базисными, положительны (естественно, при отсутствии вырожденных). Причем, исходным является какое-либо
допустимое базисное решение системы ограничений. Если разрешить выражение
АХ=В
относительно базисных переменных этой точки (пусть для удобства относительно первых из лгг) , то получим
п—т
•** = * /* > + 2 d\Hzh (g=U m ), |
(2.441) |
h=1 |
|
где Zh х т + h.
Равенство (2.441) идентично равенству (2.30). Базис ные переменные имеют в исходной точке значения dg0i>0. Переменные в правой части (2.441) обычно на зывают независимыми или исчезающими (в данной точ ке) ; переменные левой части (2.441) называются зависи мыми или базисными.
Квадратичную форму Q можно представить в ви
де:
Q ( X „ Х 21 •••> Х п) |
Q (ztf |
Z2, • *■, Z „ - m) —“ |
n—m |
n—mn—m |
|
— ^oo + 2 2 C m] |
Z i -(- |
£ C \ t z iz h = |
(=1 |
h= 1 |
/ = 1 |
176
п—т |
п —т / |
■>1 |
п—т |
|
|
Соо+ S Cmzt ) ' 1 + £ |
|
£ |
) zh — |
||
( ClM+ |
|||||
i= l |
й = |
1 |
|
i= l |
|
— (С00 + С01Zi + |
” - + |
C!„ . mZn-m)- 1 + |
|
+ (^m + |
^!izi + |
•••+ ^!n-m2«-m)2» + |
(2.48) |
||||
- +(CL+Cl,2‘ + |
•••+ C\n- mZn-m)zh+ ... |
|
|||||
+ (Ci-mo + |
CI-m,Z>+ |
- |
+ ^ - т » - » 2» - » ) 2»-*» |
|
|||
где C1 — С1 для |
h, i = |
0, |
1...., |
n —'m. В записи (2.48) |
|||
выражение в скобках при Zh есть |
не что |
иное как |
|
||||
|
|
_1_ |
|
д & _ |
|
|
|
|
|
2 |
' |
д г „ • |
|
|
|
В частности, в исходной точке |
|
|
|
||||
|
1 |
dQ1 |
_ |
|
|
|
|
|
2 ' |
d zH |
ло ‘ |
|
|
||
Значение Q(X) в исходной |
точке равно С100. При |
таком |
|||||
представлении функции цели Q(X) условия Куна—Так- |
|||||||
кера имеют вид: если все |
dQl __ |
Л |
исходная |
точка |
|||
v |
- g-~ 0, то |
o z h
является решением, ибо увеличение любой из независи мых переменных (а уменьшаться они не могут в силу условия неотрицательности) может привести лишь к увеличению значения Q(X), более того, в силу вы пуклости (по совокупности переменных) Q(X) увеличе ние нескольких независимых переменных одновременно также не уменьшает значения функции цели. Но если для некоторых переменных zu
- ^ < 0 , |
т. е. С1 <0, |
д г л ^ ’ |
ло ~ * |
то можно уменьшить значение Q(X), увеличив одну из этих Zh, например, Zi. Остальные независимые перемен ные можно оставить равными нулю. Вместе с Zy изме няются значения зависимых переменных. Дальнейшие действия очень похожи на процедуру нахождения опти мального решения при помощи симплексного метода в линейном программировании. Выбирается переменная, которая до этого была равной нулю. Ее включают в ба-
12—633 |
177 |
йис, после чего значение функции цели уменьшают. Максимальное уменьшение функции цели, которое про исходит за счет изменения этой переменной (в данном случае Zi), достигается при ее увеличении до тех пор, пока одна из зависимых (до сих пор — положительных) базисных переменных не обратится в нуль. Дальнейшее увеличение невозможно, так как оно приводит к нару шению ограничений.
В частности, этот случай всегда имеет место для линейной функции цели, производные от которой суть константы.
В случае квадратичной функции цели производная
может обратиться в нуль раньше, чем одна из зависи мых переменных достигнет границы допустимой области. Дальнейшее увеличение Zi нецелесообразно, так как при
этом |
функция Q(X) |
снова начинает возрастать. |
|
|
Р а с с м о т р и м пример, |
и л л ю с т р и р у ю щ и й м е т о д о п т и м и з а ц и и Б и |
|
л а |
[56]. |
М и н и м и з и р о в а т ь |
|
|
|
Q(X) = Q(xh х2)= —6*i+ 2*i2— 2*ix2+2x22 |
|
при |
о г р а н и ч е н и я х |
*i+*2=^2, |
|
|
|
|
|
|
|
|
*i^0, х2^0. |
П о с л е в в е д е н и я в с п о м о г а т е л ь н о й п е р е м е н н о й * 3 п о л у ч и м о г р а н и ч е
ния в в и д е
*1+ * г + * з = 2 ,
В к а ч е с т в е п е р в о й т о ч к и ( п е р в о г о п р и б л и ж е н и я ) м о ж н о в з я т ь
ЛЦ=0, *2= 0.
Т о г д а |
|
= 2 ----* 1 --- * 2, |
|
* 3 |
|
Q (X) = ( — 3 * i ) |
■ 1 -р ( — 3 + 2 * 1 — * 2) *1 + ( — * i + 2 * 2) * 2- |
|
П е р в а я т о ч к а |
( п е р в о е п р и б л и ж е н и е ) |
|
* i = 0 , * 2 = 0 , * з = 2 , Q(X)=0. |
||
П о с к о л ь к у |
1 |
dQ |
|
||
|
2 ‘ Лс, = — 3> |
|
т о Q(X) м о ж н о у м е н ь ш и т ь , |
п р и д а в *1 п о л о ж и т е л ь н о е з н а ч е н и е (* 2 |
|
о с т а е т с я р а в н ы м н у л ю ) . |
|
|
П р о и з в о д н а я |
|
|
1 dQ
обращается в нуль при |
з_ |
|
Х\ |
||
2 ‘ |
||
Э т а т о ч к а л е ж и т в д о п у с т и м о й о б л а с т и , т а к к а к х3 о б р а щ а е т с я |
в н у л ь т о л ь к о пр и Xi = 2. П о э т о м у в в е д е м н о в у ю с в о б о д н у ю п е р е м е н
н у ю и ь к о т о р а я з а м е н и т |
н е з а в и с и м у ю |
п е р е м е н н у ю Xi\ |
Ul = |
2 дхх = — 3 + |
2 х , — х2. |
и1 о б р а щ а е т с я в н у л ь в о в с е х т о ч к а х , г д е э л л и п с р а в н ы х з н а ч е н и й Q(X) и м е е т г о р и з о н т а л ь н у ю к а с а т е л ь н у ю . П о л у ч и м р а в е н с т в а :
|
|
|
|
~П |
2 |
|
2 |
) Хг' |
|
|
|
|
|
||
|
В т о р а я т о ч к а |
( в т о р о е п р и б л и ж е н и е ) |
|
|
|
||||||||||
и, = 0 , |
х2 = 0 |
, Хх —3 / 2 , |
х3— |
1 /2 , |
Q (X) = |
— |
9 / 2 . |
П о с к о л ь к у 1 /2 |
X |
||||||
|
dQ |
|
|
х2 |
|
|
|
|
|
|
|
|
|
|
|
X |
~()х ~~ — 3 |
/ 2 , т о |
н е о б х о д и м о |
|
в к л ю ч и т ь |
в ба зи с , |
и , |
о с т а е т с я |
|||||||
р а в н о й |
н у л ю . |
dQ |
|
|
|
в |
н у л ь |
при |
х2 — 1, |
ч т о |
с о о т в е т |
||||
1 /2 - |
о б р а щ а е т с я |
||||||||||||||
с т в у е т |
б е з у с л о в н о м у |
м и н и м у м у |
Q(X)\ |
о д н а к о |
х3 о б р а щ а е т с я |
в н у л ь |
|||||||||
при |
м е н ь ш е м |
з н а ч е н и и |
х 2 = 1 / 3 , |
п о э т о м у |
п о д л е ж и т |
и с к л ю ч е н и ю |
из |
б а з и с а х3; в ы р а ж а е м н о в у ю х2 и п р е ж н ю ю Х\ б а з и с н ы е п е р е м е н н ы е ч ер ез х3 и и\.
Д л я т р е т ь е й т о ч к и ( т р е т ь е г о п р и б л и ж е н и я ) п о л у ч и м :
|
|
3 |
|
Х\ |
1 |
з *3, |
|
Q ( X ) — ^— 5 -J- 2 |
|
‘ 1 + ^ 2 |
и' «1 -\- |
1_ |
\ /J ___ L |
Л |
|
2 «1 — *з I I з |
3 й' |
3 |
12* |
179 |