Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2793.Методы оптимизации..pdf
Скачиваний:
175
Добавлен:
15.11.2022
Размер:
33.68 Mб
Скачать

8.5. Метод проекции антиградиента

Результатом проектирования точки ж Е Ш71 на замкнутое множество Q С R71 является точка у Е либо совпадающая с ж, если х Е О, либо лежащая на его границе dfi (см. 8.3). Это свойство операции проектирования позволяет при численном решении задачи оптимизации с ограничениями на каждой к-й итерации использовать обычный метод градиентного спуска в направлении антиградиента из точки ж*- 1 в точку х к, а затем находить проекцию x k Е точки х к на множество О,

(см. 8.4). Если при этом ж* ^ fi, то операция проектирования как бы возвращает ее обратно в допустимое множество П.

Естествен вопрос: нельзя ли предварительно найти такое направление спуска, движение точки по которому при опре­ деленных ограничениях вообще не выводило бы ее за пределы допустимого множества (1? Сначала рассмотрим случай, когда множество f2 задано при помощи линейных ограничений типа равенства в виде

0, = {х е Шп: (а*, ж) = Ьг, г = 1, т } ,

(8.37)

где а,{ Е Еп и bi Е К — заданные векторы и числа соответствен­ но. Отметим, что в силу линейности ограничений множество

является выпуклым.

Составим вектор Ь= (Ь\ Ът ) т и матрицу А размера т х х п, строками которой являются матрицы-строки а{ , г = 1 , т . Без ограничения общности можно принять, что RgА = т < п (см. 8.2). В этом случае векторы а*, г = 1, га, линейно незави­ симы.

Отметим, что для любой матрицы А матрица ААТ являет­ ся симметрической, поскольку (ААТ)Т = (^4Т)ТАТ = ААТ Если векторы а* Е Rn, i = 1, га, линейно независимы, то, согласно лем­ ме 8.1 , матрица ААТ невырождена и имеет обратную матрицу (ААТ)-1 , причем симметрическую, так как матрица ААТ сим­ метрическая.

Квадратная матрица

Р = АТ(ААТ)~1А

(8.38)

порядка п является симметрической, поскольку

Рт= (АТ(ААТГ 1 А)Т= ЛТ(АТ(ААТ)-1)Т =

= АТ((ЛАТ) " 1)Т(ЛТ)Т = А \ А А *Г 1А = Р.

Кроме того,

РР = (А 1 {ААТ) - 1 А)АТ{ААГ) - 1А =

=АТ(ААТ) - 1 {ААТ)(ААТ) - 1А = АТ{ААТ)~1А = Р,

т.е. Р 2 = Р.

Квадратную матрицу М, удовлетворяющую соотношению

м2 = м, называют идемпотентной матрицей, а симме­ трическую идемпотентную матрицу — проекционной. От­ метим, что проекционная матрица является неотрицательно определенной, так как

(Мги, w) = {M 2w, W ) = (Мгу, Mw) = \Mw\2 ^ 0.

Собственными значениями идемпотентной матрицы могут быть только числа 0 и 1. В самом деле, если х ф 0 — соб­ ственный вектор идемпотентной матрицы М с собственным значением Л, то

Хх = М х = М 2х = М(Хх) = Х2 х.

Следовательно, (Л2 — А)ж = 0 и А2 —А = 0, так как х ф 0. Урав­ нению а2 - а = 0 удовлетворяют только числа 0 и 1 . Очевидно, что собственными значениями проекционной матрицы также могут быть только числа 0 и 1 .

Нетрудно показать, что если Р — проекционная матрица, то и Р* = In Р — также проекционная матрица. Действи­

тельно,

 

(.р *)2 = (In - Р )2 = In -2 P + Р2 = I n - Р = Р*

(8.39)

И

(8.40)

(P * f = (In - P ) T = In - P = P*

При помощи матрицы Р любой вектор w Е Мп можно пред­ ставить в виде суммы w = Pw + (InP)w , в которой слагаемые Pw и (In —P)w ортогональны. Ортогональность слагаемых вытекает из равенств P(In —Р) = Р Р2 = 0, в соответствии

с которыми

 

(Pw, (In - P)w) = (w, P(In - P)w) = 0.

(8.41)

Вектор Pw является проекцией вектора w на линейное под­ пространство Ср = {жЕ Кп: х = Pw}. Если матрица Р имеет вид (8.38), то базисом в пространстве Ср являются векторы а*, г = 1,7п, так как в этом случае для любого вектора у Е Ср

имеем

тп

 

у = Pw = A r(AAT)~1Aw = Атd =

(8.42)

 

2= 1

где d = (AAT)- 1./4UJ, a di, i = 1 , m, — координаты вектора d. Обозначим P* = In —P. Линейное подпространство Ср-

всех векторов вида P*w, w G Мп, является ортогональным до­ полнением линейного подпространства Ср, так как для любых

Wi, W2 € Rn

(Pwi, P*w2) = (wi, P(In - p)w 2) = 0.

Поэтому вектор ги1 = P*w ортогонален каждому вектору а*, г = 1 , т. Таким образом, вектор w 1 ортогонален нормальному вектору а{ Е М71 каждой гиперплоскости (а;, х) = &г> г = 1, ш, ограничивающей множество (8.37). Следовательно, напра­ вление, задаваемое вектором ги1, параллельно этим гиперплос­ костям и движение в этом направлении из любой точки х° Е не выводит за пределы множества fi.

Линейные ограничения типа равенства. Пусть в зада­ че оптимизации допустимое множество Q определено ограниче­ ниями типа равенства, т.е. имеет вид (8.37), а целевая функция /о(ж) дифференцируема в Rn. Предположим, что известна точ­ ка х° в ft. Рассмотрим функцию

<р(у) = /о(®° + Р*у), y e R n,

(8.43)

где матрица Р определена соотношением (8.38). Для этой функ­ ции в силу правила дифференцирования сложной функции и симметричности матрицы Р справедливо равенство*

grad <р(у) = Р* grad(ж),

(8.44)

где ж и у связаны соотношением

ж = ж° + Р*у, ж ,у € К п.

(8.45)

Теорема 8.2. Если у* — стационарная точка функции </?(у), то соответствующая ей точка

ж* = ж° + Р*у*

(8.46)

удовлетворяет необходимому условию минимума целевой функ­ ции (ж) на допустимом множестве Cl вида (8.37).

◄Прежде всего убедимся, что ж* Е Cl. Используя представление (8.46) и условие ж0 Е ft, заключаем, что

{&{) Ж ) == (^г> ® ) “Ь

У ) = (®*j ® ) = hi, 2 = 1, 771,

поскольку вектор Р*у* ортогонален каждому вектору линейно­ го подпространства £р, в том числе и векторам а*. Следова­ тельно, ж* Е П.

* Здесь и далее градиент функции трактуется как вектор-столбец.

Так как у* является стационарной точкой функции <р{у), то grad<p(i/*) = 0, и поэтому, учитывая (8.38) и (8.44) при у = у* и

х= х*, находим

P*grad/o(®*) = grad/o(® *)-A T(AAT)- 1i4grad/o(®*) =

m

 

 

= grad/о (я*) + ЛТА = grad/о (я*) + ] Г

= 0,

(8.47)

1=1

 

 

где А = — (AAT)~lAgTa,dfo(x*), a A* — координаты

вектора

A Е Rm. Представив ограничения (8.37) в виде fi(x) = (а,-, х) —

Ь{ = 0, i = 1 , га, и учитывая равенства grad/j(®*) = аг, за­ ключаем, что точка х * является стационарной точкой функции Лагранжа

тп

Ц х ,А) = /о(я ) + Y , \ ((at, я) - bi),

(8.48)

»= i

 

т.е. удовлетворяет необходимому условию минимума целевой функции /о(я) на множестве О (8.37). ►

В соответствии с теоремой 8.2 стационарные точки целе­ вой функции /о(я) на допустимом множестве можно опреде­ лять, решая задачу безусловной минимизации функции <р(у). В общем случае функция <р(у) может иметь несколько ста­ ционарных точек, причем каждой ее стационарной точке у* будет соответствовать стационарная точка я* (8.46) функции Лагранжа (8.48). При этом теорема 8.2 не гарантирует, что че­ рез минимизацию функции <р(у) можно найти все стационарные точки целевой функции. Однако если целевая функция является выпуклой функцией на выпуклом множестве П, то для решения задачи минимизации такой функции достаточно найти хотя бы одну стационарную точку целевой функции в П, поскольку в любой стационарной точке выпуклая функция достигает наи­ меньшего значения (см. 3.4). Отметим, что строго выпуклая функция может иметь лишь одну стационарную точку, так как

она может достигать наименьшего значения на выпуклом мно­ жестве только в одной точке.

Пример 8.8. Применим теорему 8.2 для поиска минимума квадратичной функции /о(ж) = ^ (Qx, х) с положительно опре­ деленной матрицей Q порядка п на множестве вида (8.37).

Так как в данном случае grad/о (ж) = Qx, то в соответствии с (8.44) и (8.45) можно записать

grad <р(у) =P*Q (x° + Р*у).

Из условия grad^?(y*) = 0 получим СЛАУ

P*QP*y = -P*Q x°,

(8.49)

которой должна удовлетворять стационарная точка у* функ­ ции (р(у) (8.43).

Остановимся на частном случае функции двух переменных. Пусть /о(ж) = /о(ж1,хг) = х\ + х%, а допустимое множество задано одним ограничением Х2 = 2. Тогда

« - С

!)■

а в (8.37) m = 1 , ах = (0 1 )

и bi = 2. Ограничению типа

равенства удовлетворяет, например, точка х° = (2, 2), лежащая на прямой, задаваемой уравнением (ох, х) = 2, или Х2 = 2. В данном случае имеем А а* = (0 1), ААТ = а^ох = |ах|2 = 1 и

р . л ' М . тГ ' . - ( 5 ) | ( о J ) .

'•■-'.-'•-а:н: :м; :>

!)(• ")(• !)■(« !)■

:>с ;)© -(:)

Тогда СЛАУ (8.49) относительно координат точки у* = (у*, у%) принимает вид

( ! : ) ( а ■ ( ■ : ) •

или 2у1 + 0 •J/2 = “ 4 и 0 •у* + 0 •у\ = 0. Из первого уравнения находим yl = —2, а второму уравнению удовлетворяет произ­ вольное значение у\. Используя (8.46), получаем

Таким образом, х* = (0, 2) и /о (ж*) = 4. Эта точка минимума функции /о (ж) на множестве О, точек прямой с уравнением Х2 = = 2, так как функция строго вы­ пуклая. Полученный результат очевиден с геометрической точки зрения: х* = (0, 2) является точ­ кой касания прямой Х2 = 2 и ли­ нии уровня /о(я 12) = Ж? + ^ 2 = 4 целевой функции (рис. 8.10). #

Для поиска стационарной точ­ ки у* Е функции (р(у) можно использовать численные методы

(см. 4 -6 ). В частности, можно применить один из вариантов метода градиентного спуска. Однако при решении приклад­ ных задач иногда удобнее минимизировать исходную целевую функцию /о (ж), поскольку координаты точки х £ Rn являют­ ся параметрами оптимизации и имеют вполне определенную содержательную интерпретацию.

Рассмотрим процедуру поиска минимума дифференцируе­ мой целевой функции /о (ж) на множестве £1 (8.37). Выберем начальную точку ж0 Е fi, вычислим в этой точке антиградиент w 1 = —grad/o(a3°) и антиградиент р 1 = P*wl функции (р(у) в

точке у = го1. Если р 1 = 0, то градиент функции <р(у) в точ­ ке w 1 равен нулевому вектору, т.е. w x = у* — стационарная точка этой функции, а в силу теоремы 8.2 а:0 — точка, удовле­ творяющая необходимому условию минимума целевой функции на множестве Cl (для выпуклой целевой функции х° — точка ее наименьшего значения на £)).

При численном решении целесообразно считать у = го1 ста­ ционарной точкой функции <р(у) при выполнении условия, ана­ логичного (4.19): Ip1! < £3 , где £ 3 > 0 — параметр точности поиска. Если |рг|^ £3, то вектор р 1 определяет направление спуска для функции <р(у) при ее безусловной минимизации. Но этот же вектор задает возможное направление спуска для це­ левой функции, если в соответствии с (8.45) для первой (k = 1) итерации записать

х 1 = х° + x\P*wl = х° + x ip 1, щ > 0. (8.50)

Действительно, точка х 1 принадлежит множеству Cl при любом значении xi, так как, учитывая равенства (a*, P*w) = 0 , г = 1 , т, для любого вектора го1 имеем

(сц, х 1) = (сц, х°) + (oj, P*wx) = (oi, х°) = Ь{, г = 1 , т.

Поскольку с учетом равенств (8.39) и (8.40)

(р\ grad/о (х0)) = — (P*w 1,w 1) =■ —((P*)2w x, w 1) =

= ~(P *W x, p*wx) = -ip 1!2 < 0 ,

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

Значение х\ в (8.50) можно найти при помощи исчерпыва­ ющего спуска в направлении р 1 или методом дробления шага)

задаваясь некоторым первоначальным значением хо и при не­ обходимости уменьшая его так, чтобы добиться выполнения неравенства /о (а?1) < /о(х°). Это позволит начать формиро­ вать релаксационную последовательность {ж*}.

После нахождения при помощи (8.50) точки ж1 переходим ко второй итерации и т.д. Пусть на k-и итерации известна точка х к~ 1 £ Г2. Вычисляя в этой точке антиградиент wk =

=grad/о(ж*-1), находим возможное направление спуска рк =

=P*wk, при движении в котором (если \рк\^ £3) ищем точку

х к = х к~1 + x kP*wk = х к~1 + Xfcp*, нк > 0,

(8.51)

подбирая соответствующим образом значение як.

Как и в

случае ж1, можно показать, что х к £ О, при любом значении нк. Поэтому можно переходить к следующей, (А; + 1)-й итерации. Если же \рк\< £3, то итерации прекращаем, полагая w* « wk и х* ~ х к~1.

Поскольку на каждой к-и итерации вектор рк является про­ екцией антиградиента wk целевой функции на ортогональное дополнение подпространства £р, то описанную процедуру по­ иска минимума этой функции на множестве Q назовем мето­ дом проекции антиградиента.

Общий случай линейных ограничений. Пусть задача оптимизации содержит линейные ограничения типа неравен­ ства и равенства. В этом случае допустимое множество можно записать в виде

П = {ж £ Шп: (а*, ж) ^ &*, г £ I ” , (а*, ж) = 6^ i £ £ 0} , (8.52)

где 1~ и 1° — конечные множества индексов. Множество Q, (8.52), согласно замечанию 7.1, является выпуклым. Предпо­ ложим, что на к-й итерации точка ж*” 1 удовлетворяет тк £ N равенствам (а*, ж*-1) —Ь{ = 0, г £ Jjt, где Jk С 1 = 1~ 1)1° — некоторое подмножество множества I индексов всех векторов а; £ R71 в (8.52), причем С Jk.

Составим матрицу Ак размера тк х п, строками которой служат матрицы-строки aj, i £ Jk. Если RgA* = тк ^ п, то в силу леммы 8.1 матрица невырожденная и можно опреде­ лить квадратные проекционные матрицы Рк = А^(АкА^ ) ~ 1 Ак

и Р£ = 1п - Р к порядка п.

Если

|р*| < £з, то

при Jk = 0 итерации прекращаем и

полагаем х* «

а при Jk Ф 0 вычисляем вектор

 

 

 

Хк = (AkAl)~lAkwk е Rm*,

(8.56)

координаты

(к) , i Е

которого являются множителями Ла­

гранжа в функции Лагранжа

 

 

 

А) = /о(*) + X ) Xik) ((°*> *) “ 6i)•

(8-57)

 

 

 

i€Jk

 

Если

^ 0 для всех г 6 Jk\2’°, т.е. для всех активных ограни­

чений типа неравенства, то, согласно теореме 7.6, это означает, что точку х к~ 1 можно приближенно считать стационарной точ­ кой функции Лагранжа (8.57) и можно положить х* « х к~1. Но если найдутся индексы г Е Jk\Х°, для которых \[к^< 0, то один из них (обозначим его j ) следует удалить из множества Jk и для нового множества Jk = Jk\ 0 } индексов найти проекционную матрицу Р£ размера (тк - 1 ) х п. Если при этом Jk = 0 , т.е.

Шк - 1 = 0, то Р£ = 1 п.

Покажем, что новый вектор рк= P£wk ф 0 и определяет воз­ можное направление спуска на к-й итерации. Этот вектор мож­ но представить в виде р к = wk —A^Xk, где Afc= {AkA^)~lAkWk

и Ак — матрица размера (тк 1 ) х п, состоящая из матрицстрок а*, г€ Jk- Аналогично для вектора рк = 0 с учетом (8.56) имеем

рк = P£wk = wk - A lХк = wk - X f'aj - Y Aifc)°i = 0. (8.58) i£Jk

Предположим, что pk = 0, откуда wk = A^Xk =

^ A^Oj. Под-

JL / v

i€Jk

ставляя wKв (8.58), находим

 

E

- > 5 % - E M4 * = - а? ' ч + E $*° -

= " .

«6Л

«6Л

«6Л

 

т.е. нетривиальная (поскольку А ^ Ф 0) линейная комбинация

линейно

независимых векторов а %Е J k, равна нулевому

вектору.

Это противоречие доказывает, что рк ф 0.

Спуск в направлении вектора рк не нарушит ограничение (aj, х) ^ bj, которое при построении матрицы Р£ уже не рас­ сматривается как активное, если (aj, рк) ^ 0. Убедимся в этом, для чего умножим (8.58) скалярно на вектор P£dj и запишем

Й Ч , ™ к) - A f й ч , aj) - £ Aifc)(рЧ > ° 0 = °- (8-59) i€Jk

Поскольку (P^aj, Oj) = 0, г 6 J7jt, то сумма в левой части (8.59)

равна нулю. Поэтому, учитывая, что матрица Р£ симметриче­ ская и неотрицательно определенная, из (8.59) получаем

(Р Ч , W>C) = Ч» Р к ™ к) = Ч> Р*) = x f ] (ЯЧ> a j ) < о.

поскольку < 0. Следовательно, вектор ркзадает возможное направление спуска.

Если \рк\< бз, то предстоит новая проверка условия прекра­ щения последующих итераций, приводящая либо к завершению решения задачи, либо к удалению из множества Jk еще одно­ го индекса j, для которого множитель Лагранжа А~^ < 0, и построению очередной проекционной матрицы и т.д. Если же \рк\^ £3, то для определения направления спуска, которое зада­ но вектором рк, при помощи (8.51) и (8.55) проводим описанную выше процедуру выбора значения х* и нахождения точки х к, что позволяет затем перейти к (к + 1 )-й итерации.

Пример 8.9. Рентам методом проекции антиградиента за­ дачу квадратичного программирования

/о(яь£2) = 2х? + 2х 2 —2Z I X2 “

- 6x2 -> min;

{X I +X2“ 2$C0, XI + 5х 2 - 5 ^ 0,

—xi ^ 0, —Х2 ^ 0.

Целевую функцию представим в виде fo{x) = | (Qx, х) +

+ (с, х), х е К2, где

 

 

Q =

4

-2 \

 

 

 

 

- 2

4 Г

 

 

 

 

 

 

 

с = (—4

-

6)Т Вычислим антиградиент этой функции

 

w = -

grad/о (аз) = -Q x — с =

 

 

 

 

 

 

- 4

4 — Ах\ + 2аз2

(8.60)

 

 

 

- 6

6 + 2®i - 4т2

 

 

 

 

и в соответствии с (8.52) обозначим oi = (1 1)

, bi = 2, а 2 =

= (1 5)т,

Ь2 = 5 , а 3 = (-1 0)т, а 4 = (0 - 1)т

и Ь = Ь4 = 0.

В качестве начальной точки возьмем ®° = (0, 0), а параметр точности поиска ез = 0,1 .

П е р в а я и т е р а ц и я . В точке ж0 в соответствии с (8.60) имеем w 1 = (4 6) В этой точке активны лишь ограничения неотрицательности параметров оптимизации xi и х2, т.е. J\ —

{3, 4}. Поэтому

A1=(w

= ( -

;

_ j ) .

^ r - ( j

; ) .

P1 = A^(A,A’ ) -1A1= (J

J ),

рг = /2- я

= ( ° ° ) .

i

1

т

 

 

 

Так как р 1 = P {w l = (0 0)

, то, используя (8.56), вычисляем

А1 = (Ai^i)

'Aiw1=

 

J

 

 

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

Функция ф\ (х) принимает минимальное значение при

(с>рх)

(Qp1, ? 1) 4

Так как х* > х 4, то в (8.46) полагаем ус\= х 4= 1/6 и находим

аз1 = аз° Ч- щ р 1

=

(0, 1) (см. рис. 8.13).

В т о р а я

и т е р а ц и я . В точке х 1 = (0, 1) из (8.60) нахо-

дим w2 = (6 2)

В этой точке активными являются ограниче­

ния с индексами i = 2 и г = 3, т.е. J2 = { 2, 3},

А2 = (а2, а3)т

Р^ = 12 - А Г2 2 Ат2 ) - 1 А2 = в 2

и р2 = 0. При помощи (8.56) вычислим А2 = 2 А2) 1 A2 w2

= (2/5 — 28/5) Из множества J2 удаляем индекс г = 3, соот­ ветствующий отрицательному множителю Лагранжа, и полу­ чаем А2 = (1 5), А2А2 = (1 5)(1 5)Т = 26,

и р2 = P2 w2 = (14/13)(5 — 1)т, причем |р2|= -\/26 > ез = 0,1. Следовательно, вектор р2 определяет возможное направление спуска. Так как для дальнейших вычислений на этой итерации длина вектора р 2 не имеет значения, то для упрощения примем

Р2 = (5 - 1 )Т

Для неактивных в точке ж1 = (0, 1) ограничений вычисляем (ai, р2) = 4 > 0, (d4, р2) = 1 > 0. При этом

bi - (oi, х2) _

1

Ь4- ( а 4,а;1)

(°i, Р2)

4’

(о4,р2) ~

Таким образом, в соответствии с (8.55) Тс2 = 1/4, т.е. при спуске в направлении вектора р2 первым будет нарушено ограничение с индексом г = 1 (см. рис. 8.13).

Подставляя х = х 1+ хр 2 в матричное выражение для целе­ вой функции и учитывая симметричность матрицы Q, находим

/о(®) = у {QP 2, Р2) + х((Q®1,р2) + (с,р 2) + (с, ж1)) = ^г(х).

Функция ф2{х) достигает минимального значения при

* _

(<2®ъР2) + (с,Р 2) _ 7

^ 1 _ _

Х2“

(Qp2,p 2)

" 3 1

< 4 - ^ -

Поэтому в (8.46) принимаем Х2 = 7/31 и получаем ж2 = ж1 +

+х 2р 2 = (35/31, 24/31).

Тр е т ь я и т е р а ц и я . В точке ж2 в соответствии с (8.60)

вычисляем w3 = (32/31)(1 5) и устанавливаем, что активным является лишь ограничение с индексом i = 2, т.е. Jz = { 2}. Поэтому Аз = 02 = (1 5) = .Аг, (.Аз^ з)-1 = 26, Р£ = Р£ и

Так как |р3|= 0 < £3 = 0,1, то, используя (8.56), находим Л3 = = (АзАз)- М3гп3 = (1/26)(1 5)(32/31)(1 5)Т = 32/31 > 0. Таким образом, единственный множитель Лагранжа в функции Лагранжа (8.57), имеющей в данном случае вид

32

Ьз(х,\) = / 0(ж) + — ((<г2, х)~Ь 2),

положителен. Поскольку на этой итерации р 3 = 0, то точка ж2 = (35/31, 24/31) является стационарной для функции Ла­ гранжа. Квадратичная целевая функция /о (ж) с положительно определенной матрицей Q сильно выпуклая. Поэтому ж2 = ж* — точка наименьшего значения целевой функции при заданных ограничениях (см. рис. 8.13). В этой точке целевая функция принимает значение fo(x*) = 6882/961 и 7,1613.

Рассмотрим на конкретном примере некоторые особенно­ сти поиска точки минимума целевой функции в случае, когда допустимое множество (2 задано одним нелинейным ограниче­ нием типа неравенства, т.е. О, = € Kn: д(х) < 0}.

Пример 8.10 . Решим задачу выпуклого программирования

{ fo(xi,X2 ) = 2 х\ - 4xi + х\ - 2 x2 -> min;

xi+ x\ 2 X2 < 0.

Вданном случае целевая функция является квадратичной и

ееможно записать в виде /о (ж) = i (Qx, х ) + (с, х), где

Единственное ограничение задачи имеет вид д(х) ^ 0, где g{xi,X2 ) = xi + х\ 2x2- В качестве начальной возьмем точку

х° = (0, 0), а в условии прекращения поиска

\xk — ж*-1 |< ex

положим е = 0,01.

 

 

Вычислим антиградиент целевой функции

 

w — grad /о(х) = —Qx —с =

 

^ _ ( 4

0 \ ( х Л _ ( - 4 \ = ( 4 - 4 х Л

\ 0

2 ) \ х 2) \ - 2 )

\ 2 - 2 X2 )

и градиент левой части ограничения

 

gradp(x) = (1 2х 2 - 2 ) Т

(8.61)

Рассмотрим подробнее первую (k = 1) итерацию при решении этой задачи методом проекции антиградиента.

1.

Поскольку (ги1, gradg(x0)) = 0, то антиградиент ги1 =

= (4

2)т и градиент grad (/(ж0) = (1 — 2)т в начальной точке х°

ортогональны. Следовательно, нет необходимости вычислять проекционную матрицу Р*, которая в данном случае является единичной, а р 1 = Р^из1 = го1 = (4 2)т

2. При помощи исчерпывающего спуска из точки ж0 в на­ правлении вектора р 1 находим значение

 

(щ1, ? 1)

5

Xl

(Qp1, ? 1) - ^

и точку X 1 = Х ° + Х \ р 1 =

 

Ясно, что продвижение из

точки ж0 £ П в направлении вектора р 1 выводит за пределы допустимого множества, т.е. ж1 £ Г2, так как д(х1) = 25/81 > > 0. Точка х 1 лежит на касательной к кривой Г, заданной уравнением д(х) = 0, в точке х°.

3. Спроектируем точку ж1 ^ ft на допустимое множество S2 , т.е. найдем точку ж1 Е Q кривой Г, наименее удаленную от точки ж1. Так как функция д(ж) дифференцируемая, то точка ж1 будет основанием кратчайшего перпендикуляра, опу­ щенного из ж1 на кривую Г (см. 8.4). Эту точку можно найти, решая задачу (8.20) методом последовательных приближений*

х] = ®J-i “ 0(®2-i) j^ j?» s е N> гДе °s = gr«*dp(*J_i). В каче­

стве нулевого приближения (при s = 1 ) можно принять Жц = ж0, а условием прекращения последовательных приближений мож­ но считать выполнение неравенства |ж$ - ajJ.J < 6 , где S > 0 — заданный параметр точности. При выполнении этого нера­ венства полагаем х 1 = х ] и /(ж 1) = /(ж*). Выбирая 5 = 0,01, получаем ж1 = (0,9211, 0,7191), при этом ^(ж1) «0,0003.

4.Проверяем условие прекращения итераций: |ж* —ж°| =

=^/(0,9211)2 + (0,7191)2 ~ 1,168 > е = 0,01. Так как требуемая точность еще не достигнута, поиск точки ж* Е П минимума целевой функции /(ж ) на множестве Q следует продолжить.

Для этого переходим к п. 1, заменив точку ж0 на найденную на первой итерации точку ж1.

Результаты расчетов на первой и последующих трех ите­ рациях приведены в табл. 8.3, траектория поиска точки ж* представлена на рис. 8.15.

'См.: Реклейтис Г ., Рейвиндран А ., Рэгсдел К.

ра на некоторое подпространство. Кратко рассмотрим некото­ рые из них.

П роектирование сопряженных направлений. Эффек­ тивность поиска точки х* Е минимума дифференцируемой целевой функции /о(ж), х Е Мп, на допустимом множестве можно повысить, если на каждой fc-й итерации возможное направление спуска определять не по антиградиенту wk = = —grad/o(®/c_1) в точке х к~г Е fi, а по одному из сопряженных направлений. При этом сопряженные направления удобно на­

ходить последовательно в процессе итераций. Рассмотрим допустимое множество вида

П = € Кп: (а*, х) = Ь*, г = 1 , га} ,

где векторы щ 6 К71 линейно независимы. Согласно теореме 8.2, для поиска точки минимума функции /о (ж) на множестве ^ можно использовать задачу безусловной минимизации функции

<р(у) = М х ° + Р *у), уем71,

где г° € ft — начальная точка; Р* = 1п—АТ(ААТ)- 1 А — проек­ ционная матрица порядка п; 1 п — единичная матрица того же порядка; А — матрица размера т хп , составленная из матрицстрок aj, i = 1 , т. Опишем алгоритм метода сопряженных направлений применительно к поиску минимума функции <р(у) (см. 5.2).

На первой итерации {k = 1 ) полагаем, что у 0 = 0 и р 1 = = —grad<£>(t/°), а на любой к-й итерации по точке у к ~ 1 находим точку

ук = у к- 1 + х крк,

k eN ,

(8.62)

причем для направления спуска при к > 1 имеем

 

рк = - gv&dtp{yk *) + |grad у (у*

Ml2

fc_i

(8.63)

|grad<^(yfc-2)|2

 

Значение х* в (8.62) на каждой fc-й итерации подбираем ли­ бо при помощи исчерпывающего спуска в направлении вектора либо из условия <р{ук) < <р{ук~1) методом дробления шага.

Условием прекращения итераций может быть выполнение нера­ венства \рк\< £3, где £3 > 0 параметр точности поиска.

Теперь перейдем в описании алгоритма к исходному аргу­ менту х = х° + Р*у целевой функции fo{x). На первой (k = 1 ) итерации по известной начальной точке ж0 G R", учитывая (8.44), находим р 1 = —Р* grad/о (ж0). На 1 )-й и к-й ите­ рациях в соответствии с (8.45) имеем аз*"1 = х° + Р*ук~ 1 и х к = х° + Р*ук. Вычитая из второго равенства первое, полу­ чаем х к —х к~ 1 = Р*(ук у к~1). Отсюда с учетом (8.62) имеем

х к = x k~i + щ р*рк, к Е N, (8.64)

причем теперь для направления спуска при к > 1 , используя (8.44), можно написать

рк = —P*grad/0(a;fc_1) +

|P*grad/o(afc- 1)|2 fc_t

(8.65)

 

|P*grad/0(®fc_2)|2P

Правила выбора значения х* в (8.64) на каждой fc-й итерации и условие прекращения итераций остаются прежними.

Подход, в котором используется проектирование сопряжен­ ных направлений, можно обобщить на случай, когда допусти­ мое множество f l c K n задано в виде (8.52), т.е. линейными

ограничениями типа неравенства и линейными ограничениями типа равенства. В этом случае для поиска точки минимума квадратичной функции требуется не более п итераций*.

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

*См.: Пшеничный Б.Н.} Данилин Ю.М.

мирования. Пусть требуется минимизировать непрерывно диф­ ференцируемую целевую функцию /о(ж), ж Е Мп, на множестве

П = { х е Ш ? : f ( x ) = 0 },

(8.66)

где f(x ) — непрерывно дифференцируемая векторная функция с координатными функциями fi(ж), г = 1 , га, причем т <п.

Пусть в любой точке х Е fi матрица Якоби функции /(ж ) имеет ранг, равный га. Обозначим J = { 1 , ..., п} и выделим подмножество С J таких га индексов, что в некоторой точке ж* Е fi квадратная матрица Якоби В* этой функции по части переменных Xj) j Е J B, будет являться невырожденной и иметь обратную матрицу В " 1. Как и в методе приведенного градиента, переменные rcj, j Е J7*5 , являющиеся координатами точки х в Е К т , назовем базисными, а остальные переменные X j, j Е = J \ J* , являющиеся координатами точки ж^ Е Е Mn" m, — свободными. Тогда функции fi (ж), г = 1, т , можно представить в виде fj (жв , ж^), г Е 2Q*

Согласно теореме о неявной функции [V], существует такая окрестность и(ж^) точки ж Е Е71-771, что в этой окрестности система т уравнений fi (жв , ж^) = 0, г = 1 , т , задает непрерыв­ но дифференцируемую функцию жв (ж^), ж7^ Е и(ж^), причем х в (х?) = ж? Из этой же теоремы следует, что матрицу Якоби функции x B(xN) в точке ж^ по всем свободным переменным

j Е *7^, можно найти по формуле N(ж^) = —B^JV*, где 7V* — матрица Якоби функции /(ж ) в точке ж* по свободным переменным.

Используя представление целевой функции в виде /о (ж) =

= f o ( x B ( x N ), x N ) = i иp (правилоx N )

дифференцирования слож­

ной функции, вычисляем ее градиент в точке ж^ Е Шп~т :

u {x?)= gra .d ip {x?)= g?N {x ¥ )+ g?,

(8.67)

где дв и — матрицы Якоби целевой функции по свобод­ ным и базисным переменным. Матрицу-строку и (х*) длины

п —771 в (8.67) называют обобщенным приведенным гради­ ентом целевой функции относительно свободных переменных

вточке ж+ Е Rn-m. Сравнивая его с приведенным градиентом

ив (8.10), видим, что элементы матрицы N (x^) зависят от координат точки ж^, тогда как элементы матрицы N остают­ ся неизменными при фиксированном наборе свободных пере­ менных.

Алгоритм минимизации целевой функции на множестве С1 (8.66) с использованием обобщенного приведенного градиента аналогичен описанному выше алгоритму метода приведенного градиента, но требует пересчета матрицы N(x+) на каждой итерации даже при неизменном наборе свободных переменных. Кроме того, на каждой к итерации вновь полученная точка х к е Шп может и не принадлежать множеству Cl в силу лине­ аризации нелинейных ограничений типа равенства в (8.66) в окрестности точки х к~1. Поэтому дополнительно приходится находить проекцию полученной точки х к на м нож ест во Cl и

лишь затем переходить к следующей итерации.

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

8.7.Метод возможных направлений

Мет од проекции антиградиент а, а также проектирование

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

и ем .: Реклейтис Г Р ей ви н д р ан «А., Рэгсдел К.

ных методов состоит в том, что на к-й итерации при движении из точки х к~ 1 Е ft нелинейные ограничения, как правило, нару­ шаются. Тем не менее и в этом случае можно построить такой алгоритм выбора возможного направления спуска, что переме­ щение точки по этому направлению на некоторое расстояние не будет приводить к нарушению ограничений задачи.

Сначала рассмотрим задачу оптимизации, в которой целе­ вая функция fo(x) непрерывно дифференцируема и ограничена снизу на допустимом множестве ft, заданном ограничениями типа неравенства. Пусть множество ft имеет вид

ft = { х Е Mn: gi(x) 2$ 0, г = 1, т } ,

(8.68)

где Qi(x) непрерывно дифференцируемые функции. На к- й итерации известна точка хк~1 Е ft. Обозначим через Т^ множе­ ство индексов активных ограничений, т.е. тех индексов г, для которых gi(xk~l) = 0. Отметим, что если Z* = 0 , то xk~l внутренняя точка множества ft.

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

минимальное значение

 

г/= max{ (grad/о(ж* 1),р),

(grad^x* 1),р), i e l k } (8.69)

на множестве векторов p = (p i

рп)т Е Шп, удовлетворяющих

ограничениям \pj\ ^ 1 , j = 1 , п. Эту задачу можно представить как задачу линейного программирования

'Т) —>min;

^(grad/o(x*_1), р) < 77;

(8.70)

(grad0i(a?fc-1),p) < 77, i € l k;

1, j = Мг; ~Pj ^ 1, j = lTn-

Ясно, что допустимое множество W* сформулированной задачи оптимизации не пусто, поскольку содержит нулевой век­ тор. На этом векторе значение т) целевой функции равно нулю,

поэтому точная нижняя грань г) на множестве W* не превышает нуля. Рассматриваемая задача оптимизации состоит в миними­ зации непрерывной функции (8.69) на замкнутом ограниченном множестве векторов р Е Rn, удовлетворяющих условиям \pj \ ^ 1, j = 1, п. Следовательно, она имеет решение, т.е. в задаче (8.70) целевая функция г) достигает наименьшего значения в некото­ рой точке Zk = (pkiVk), причем щ ^ 0. Это решение можно найти, например, при помощи симплекс-метода.

Предположим, что эта задача решена, причем получена та­ кая точка zk = (pfc, щ) Е Wfc, что rjk < 0. Тогда вектор рк задает возможное направление спуска из точки х к~1 Е fI. Действитель­

но, поскольку z k удовлетворяет ограничениям задачи

(8.70),

имеем

 

(grad/о(а:*-1),?*) < т < 0 , (gradual*- 1),pfc) < % < 0,

iElk-

Следовательно, рк ф 0. Кроме того, согласно формуле Тейлора с остаточным членом в форме Пеано и равенству gi(xk~l ) = 0, для любого индекса i Elk найдется такое аг > 0, что при

а Е (0, aj)

gi{xk~l + арк) = gi{xk~l + арк) -

=

(grad^i(®fc_1), арк) + о(а) < ащ + о(а) < 0.

Так как (ft(xfc-1) < 0 при любом I 1к, то благодаря непрерывно­ сти функции gi(x) найдется такое а/ > 0, что для всех а Е (0, а/)

будет выполнено неравенство gi(xk~l + арк) < 0.

Таким обра­

зом, имеем

 

gi(xk~l + а р к) < 0, г = 1, ш, a G (0, ао), ар =

min aj > 0,

 

1=1,771

т.е. вектор рк определяет допустимое направление в точке x k~l Е относительно множества П. При необходимости число ао > 0 можно выбрать еще меньшим, чтобы при а Е (0, ао) было

выполнено и неравенство

/о(£с*- 1 + арк) - /о(®*-1) =

=(grad/o(asfc-1), арк) + о(а) < ащ + о(а) < 0.

Витоге получаем, что вектор рк задает, согласно определе­ нию 8.1 , возможное направление спуска из точки а;*- 1 Е Cl на множестве П.

Перемещение в этом направлении приводит на fc-й итерации

вточку

Х к = ж*- 1 + х крк, х к (0, х к),

(8.71)

где Щ > 0 — это наибольшее значение х, при котором верно соотношение х к~ 1 +трк S f!, г G (0, х]. Если О, выпуклое множество, параметр х к > 0 можно определить формулой

х к = т а х {х > 0: х к~ 1 + хрк 6 О}.

(8.72)

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

Различные способы выбора значения х к в (8.71) приводят к различным вариантам алгоритмов, реализующих спуск в най­ денном на каждой итерации возможном направлении. Эти алгоритмы обычно объединяют общим названием метод воз­ можных направлений. Один из способов выбора х к состоит в минимизации функции фк{х) = fo(xk~l + хрк) в полуинтер­ вале (0, х к], для чего можно использовать методы одномерной оптимизации (см. 2). Для целевой функции, удовлетворяющей условию

|grad/о (ж) -g r a d /0(y)| ^L\x-y\, х ,у eft,

где L > 0, полагают* х к= min|х^, ^ Н а к о н е ц , если оценка значения х кзатруднена, то можно применить метод дробления

шага: выбрать некоторое исходное значение XQ, найти при х* = = хо, используя (8.71), точку х к, и если х к £ fi, то дроблением значения х^ добиться выполнения условия х к Е П. После этого следует вычислить значение fo{xk), и если fo{xk) ^ /о (аз*-1), то продолжить дробление значения х* до тех пор, пока не будет выполнено неравенство fo{xk) < fo(xk~1). При этом в случае множества fi, не являющегося выпуклым, необходимо проверить, не нарушено ли при последующем дроблении v^oBne x k e n .

Вернемся к задаче линейного программирования (8.70) и рассмотрим случай, когда ее решением является точка z* = = (р*, 0) Е Rn+1, т.е. 7]k = rf = 0. Покажем, что это равносильно выполнению в точке х к~~1 = аз* Е необходимого условия мини­ мума функции /о(ж) на множестве Г2 (8.68), т.е. существованию неотрицательных и не всех равных нулю множителей Лагранжа Ао и /Хг, г Е Zfc, для которых выполнено равенство

A0grad/o(®*) + ^ Mtgrad<7i(®*) = 0.

(8.73)

*ez*

 

Для любого решения z* = (pfc, щ) этой задачи выполнены не­ равенства, задающие допустимое множество W*,. Первое из них умножим на Ао ^ 0, а каждое из неравенств для индексов i Elk — на ^ ^ 0 и после сложения полученных произведений с учетом (8.73) и линейности скалярного умножения запишем

A0

( g r a d /o ( ® * ) , p fc) +

( g r a t is ( ® * ) , p fc)

=

 

 

 

i€Z*

 

 

=

fA0grad/0(a;*) + ^ p tgra d p i(® *), pk)

=

0 < щ ( A0+ ^ Mr) •

 

 

ieik

 

i&k

Так как коэффициент при 7% положителен, то rjk ^ 0. Но выше установлено, что rjk ^ 0. Следовательно, выполнение необходи­ мого условия минимума в точке х к~1 Е Л равносильно выпол­ нению равенства щ = 0. Можно доказать*, что если функции

(х) и gi(x), i = 1 , m, являются выпуклыми, а множество име­ ет внутренность, то для того, чтобы в точке x k~l достигался минимум функции /о (х) на О, достаточно выполнения равен­ ства щ = 0.

Таким образом, в качестве условия прекращения итераций в методе возможных направлений можно принять выполнение не­ равенства |%| < £77, где ел> 0 — заданный параметр точности поиска. Рассмотрим особенности применения этого метода к минимизации квадратичной целевой функции при линейных ограничениях.

Пример 8.1 1 . Решим методом возможных направлений за­ дачу квадратичного программирования, уже рассмотренную в

примере 8.9:

 

 

{/o (x i,Х2 ) = 2 х\ + 2 х\ 2 XIX2 4zi -

6x2 -> min;

х\+Х2 — 2 ^ 0, х\ + 5^2 — 5 < 0,

х\ ^ 0, —Х2 ^ 0 .

Как и в примере 8.9, целевую функцию представим в виде

/о(®) = \ (Qx, х) + (с, х), X 6 М2, где

 

 

4 - 2 D -

с=(-е>

В соответствии с (8.60) ее градиент имеет вид

4xi — 2x2 —4

grad /о (х) =

 

(8.74)

—2xi + 4x2 — 6

Обозначим левые части неравенств д\(х) = х\ + Х2 2, д2 {х) = = х\ + 5 x2 5, дз(х) = —х\, <74(ж) = —Х2 и запишем их градиенты

grad<7i = (1

1)Т, grad<72 = (1 5)Т, grad^ = (-1 0)Т и gradg4 =

= (0 —1)

Так как множество О, задано линейными огра­

ничениями, то оно является выпуклым. Его представление в плоскости Х1ОХ2 показывает, что оно ограничено (рис. 8.16).

Значение х\ выберем, минимизируя функцию фх(х), задан­ ную равенством ф\{х) /о(ж0+ яр1), или

фх{я) = l ( Q ( x ° + я р 1), х ° + я р 1) + (с, ®° + я р 1) = 2я? — 10я

на отрезке [0, Щ]. Отсюда получаем я\ = ~я\ 5/6, а затем вычисляем х 1 = а?0 + яхр1 = (5/6, 5/6) и /о(жг) = —125/18 «

~6,9444 (см. рис. 8.16).

Вт о р а я и т е р а ц и я . В точке ж1 при помощи (8.74) на-

ходим grad /о (ж1) = (—7/3 —13/3) Активным является лишь ограничение #2(ж) ^ 0, т.е. множество индексов 2г = {2}. Следо­

вательно, для нахождения вектора р 2 = (р ^ р ^ ) , определяю­ щего направление спуска из точки х 1, следует минимизировать переменное г) на множестве W2, заданном неравенствами

7

13

- gPi -

у Р 2 ^ Р, Pi + 5р2 < т), |pi |< 1, |рг| < 1- (8.76)

Умножив второе неравенство на 7/3 и сложив с первым нера­

венством, получим 77 ^ ^РгТак как п ^ 0, то и рг ^ 0. Те-

перь умножим второе неравенство на 13/15 и после сложения с первым найдем р\ ^ ——р, т.е. рх ^ 0. Отсюда следует, что наибольшему возможному значению pi = 1 соответствуют наименьшее возможное значение т? = —— и р2 = —. При этом все неравенства в (8.76) выполнены. Таким образом, получаем

р2 = (1 —5/14)т При движении точки х = х 1 + яр2 в направлении вектора

р 2 ограничение рг(ж) ^ 0 не будет нарушено, так как оно является активным в точке ж1. Ограничение рз(ж) ^ 0 также не нарушается, так как оно означает, что хх ^ 0, а в точке х 1 + яр2

для первой координаты имеем + яр^ = | + я ^ 0. Выясним,

при каких значениях я выполняются ограничения д\(ж) ^ 0 и

<74(х) ^ 0, т.е. когда

91 ( *) = ®11} + “ Р ? + 4

L) +

Н Р 2 ] - 2 =

^

 

54(*) = “ 4 1} -

xp{?

= Y t* - | < °-

 

Отсюда следует, что хг = 14/27.

 

 

 

 

Функция ip2 {x) = /о(ж1 + хр2) с

учетом симметричности

матрицы Q имеет вид

 

 

 

 

 

Ы * ) = у< Э (р 2>р2) + X ( ( Q ® 1 , P 2 )

+ (С»Р2)) +

 

 

 

 

 

291 о

И

125

+ ^ (Qas1, аз1) + (с,® 1)

14Х

18 '

 

 

 

98 Х

v

 

 

 

77

 

На отрезке [0, хг] точкой ее минимума будет хг = — . Поэтому

 

 

 

 

UOZ

 

х 2 = х 1 + х 2р 2 = (Щ -,

и /о(аз2) « -7,0850

(см. рис. 8.16).

Т р е т ь я и т е р а ц и я .

Используя (8.74), вычисляем

— ЛС)- H i ? - ж

У

Так как в точке

х 2 нет активных ограничений, то 1з = 0 ,

и переменное 77 следует минимизировать на множестве VV3,

заданном неравенствами

 

Ю15

1373

 

~~582Р1~ ~ Ж Р2<Т]’ |Pl|<1,

N < L

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

pl = p2 = 1 , т.е. р 3 = (1 1 )

, и минимальным значением г] будет

3761

П ЛПГ)Г%

 

4 = - w

« -6,4622.

 

При движении точки х = х 2 + хр 3 в направлении вектора

р 3 ограничения дз{х) < 0

и 34(®) < 0, означающие неотрица­

тельность

переменных х\

и хч, выполняются при любом х.

Выполнение ограничений gi{x) < 0 и <7г(*) ^ 0 означает, что

gi{x) = i f 5+ хр[3) + 4 2) + хр^3) - 2 = 2* : -

< 0,

52 (*) = ж[2) + хр[3) + 5о42) + 5хр^3) —5 = 6х —^

< 0.

 

_

7

 

Отсюда устанавливаем, что хз = —— и 0,0030.

 

 

 

2328

 

Функция фз(х) = /о (х 2 + хр 3) на отрезке [0, хз] достигает

наименьшего значения при хз = хз. Поэтому

 

х 3 = х 2 +

= ( Ц .

ш ) а (°-9686- °-80в3>

И / 0(х3) » -7,0975.

Рассматриваемая задача с квадратичной функцией не явля­ ется сложной, и ее решение нетрудно найти аналитически­ ми методами. Наименьшего значения на допустимом множе­

стве целевая функция /о(ж) достигает в точке х* =

» (1,1290, 0,7742), при этом / 0(х*) = « -7,1613 (см. при­

мер 8.9). Для приближения к точке х* с заданной точностью еп потребуется еще довольно много итераций. #

Случай линейных ограничений. Остановимся на част­ ном случае, когда в задаче оптимизации допустимое множество П задано при помощи линейных ограничений gi(x) = (at, х) ^ 6j, г = 1, т. В этом случае задачу поиска возможного направления спуска можно упростить, видоизменив следующим образом. На каждой к-й итерации вектор ркG Rn, определяющий это напра­ вление, можно искать из условия минимума функции Cifc(p) = = (grad/o(xfc_1), р) на множестве

Wfc = { p € R n: К р К О , t € Z fc; \pj\^ 1, j = 1, n } ,

(8.77)

где Ik — по-прежнему множество индексов, соответствующих активным ограничениям в точке х *- 1 G П. Можно показать*,

W2 наименьшее значение в точке р2= (1 — 1/5) и это значение равно —22/15.

При движении точки х = а;1 + хр 2 в направлении вектора р 2 ограничение 02(ж) ^ 0, оставаясь активным, не нарушает­ ся. Поэтому необходимо убедиться в выполнении ограничений gi (х) ^ 0 и 04(®) ^ 0. Это означает выполнение условий

 

01 (х ) =

+ хр[2) + 4 1} + *Рг2)~ 2 ~ О

о ^ 0,

 

04(ж) = ^

- xpf> = ^ х -

0.

Отсюда заключаем, что хг = 5/12.

 

 

Поскольку

 

 

 

 

 

. , ч

, , 1 ,

2s 62 2

22

125

 

М ” ) = (® + х р ) = 25 X -

 

— ,

функция ф2 {х ) достигает

наименьшего

значения на отрезке

[0, хг] = [0, 5/12] при х =

Следовательно,

хг = - ^ и ж2 =

1

2 / 3 5

loO

 

loo

24 \

 

 

 

= Ж1 + Х2р2= ( - ,

35-J.

 

 

 

В точке ж2 по-прежнему активно лишь ограничение с ин­ дексом i = 2. В этой точке в соответствии с (8.74) grad/о (ж2) =

/

32

160 \ Т

 

 

V

31

Поэтому на третьей итерации необходимо

31 /

 

 

минимизировать функцию

 

 

 

 

Сз(р) = (grad/о(ж2), р) =

p i -

160

 

 

31 Р2

на множестве W3= W2, заданном теми же неравенствами (8.78). Линии уровня функции Сз(р) — прямые, параллельные прямой Pi + 5рг = 0, на которой функция принимает нулевое значение. Но прямая pi + 5рг = 0 проходит по стороне DC трапеции, огра­ ничивающей множество W3 (см. рис. 8.17). Значения функции в точках трапеции, не лежащих на стороне ВС, положительны. Таким образом, минимальное значение функции Сз(р) равно

нулю. Поэтому точка х* = х 2 =

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

обходимому условию минимума функции /о (аз) на допустимом множестве. А так как функция /о(аз) является выпуклой и допу­ стимое множество £2является выпуклым, то в точке аз* функция /о(аз) достигает наименьшего значения на множестве £2. #

Случай нелинейных ограничений. На практике при наличии нелинейных ограничений обычно применяют несколь­ ко модифицированные варианты метода возможных направле­ ний. Дело в том, что при малых значениях |^| направление спуска, задаваемое вектором рк, который находят из реше­ ния задачи линейного программирования (8.70), хотя и явля­ ется допустимым с теоретической точки зрения, может быть неприемлемым с практической точки зрения, так как оно мо­ жет оказаться почти ортогональным направлению антигради­ ента wk = —grad/о (я*” 1) целевой функции. При близких к нулю значениях (wk,p k) направление спуска рк почти „каса­ ется" границы д£2 множества £2. Поэтому значения х* в (8.71), а следовательно и значения х*, будут весьма малыми, а сходи­ мость процесса поиска минимума — очень медленной. Более того, возможно „зацикливание" алгоритма или же сходимость последовательности {х к} к такой точке х £ £2, в которой не выполнены необходимые условия минимума*.

Один из способов ускорения сходимости метода возможных направлений заключается в том, чтобы при выборе возможного направления спуска учитывать все ограничения, а не только активные в точке аз*-1 . Для этого направление спуска рк на к-и итерации находят как решение задачи минимизации

г77-* min; (grad/o(®fe_1),p )

+(grad<7j(as*-1), p) < $ 77,

> j l < 1» 3 = h n ,

где & > 0 — некоторые весовые коэффициенты. Так как в за­ дании допустимого множества VV* этой задачи оптимизации участвуют все ограничения типа неравенства исходной зада­ чи, то направление спуска не испытывает резких изменений, когда от итерации к итерации изменяется множество индек­ сов активных ограничений. Это позволяет избежать зигзаго­ образной траектории поиска точки х* и уменьшает опасность зацикливания“ алгоритма. Можно показать*, что и для этой модификации метода возможных направлений равенство щ = 0 равносильно выполнению в точке необходимого условия минимума целевой функции на множестве Cl.

Недостаток описанной модификации метода возможных на­ правлений состоит в том, что задача линейного программи­ рования, на основе которой определяется направление спуска, усложняется, так как в нее включаются все т ограничений. Существует промежуточная модификация метода, в которой учитываются лишь так называемые б-активные ограничения в окрестности точки ж**"1, т.е. такие ограничения, для которых в точке х к~ 1 выполняется неравенство —б* ^ 9i{xk~l) ^ 0. В этой модификации вместо множества индексов 2* используют множество

r k = { i e { 1, m}: - E k ^ g i ^ - 'X 0}. (8.79)

Значение е* > 0 следует выбирать так, чтобы оно было суще­ ственно больше значения еп. Оно может меняться от итера­ ции к итерации, но можно также считать, что е* = £о = const. Множество Хк включает в себя множество Ik, но при этом с помощью выбора подходящего значения ек число е-активных ограничений можно заметно уменьшить по сравнению с общим числом ограничений.

Поясним смысл введения е-активных ограничений на приме­ ре минимизации целевой функции /о (ж) двух переменных при трех ограничениях &(ж) ^ 0, i = 1, 2, 3 (рис. 8.18, а). Пусть в

тор используют для нахождения очередной точки х к. Если же выполнено второе условие, то полагают, что найденное напра­ вление спуска неудачно, и ищут другое направление спуска, уменьшая в (8.79), например вдвое, значение £&. Уменьшение Ek приводит, вообще говоря, к сужению множества индексов

в результате чего во вспомогательной задаче линейного программирования часть ограничений снимается, а допусти­ мое множество расширяется. Поэтому можно ожидать, что на более широком множестве W* можно найти более удач­ ное направление спуска, которое будет удовлетворять первому условию. Процедура дробления Ek может и не дать положитель­ ного результата вплоть до выполнения неравенства |е*| < ец, что равносильно условию |^| < STJ прекращения последующих итераций.

Если множество £1 задано при помощи не только ограни­ чений типа неравенства, но и q линейных ограничений типа равенства, т.е.

= {ж £ R71: gi{x) ^ 0, i = 1 , т) Ах — b} ,

где А — матрица размера q х п, ЪЕ R9, то это следует учесть во вспомогательной задаче линейного программирования, доба­ вив в нее ограничение Ар = 0. Тогда при спуске в направлении, определяемом вектором pfc, удовлетворяющим последнему огра­ ничению, точка х к не выйдет за пределы допустимого множе­ ства fi. Действительно, учитывая (8.71), для любого значения х* находим

Ахк = Ахк~ 1 + щ Арк = 6,

поскольку Арк = 0, а точка х к~1 по условию принадлежит множеству fi и поэтому Ахк~1 = Ь.

При наличии г нелинейных ограничений вида fi{x) = 0, I =

= 1 ,г,

метод

возможных направлений можно применить, ес­

ли на

каждой

к-и итерации линеаризовать эти ограничения

в окрестности точки х к~1. Но тогда спуск в направлении, найденном этим методом, при любом значении х* > 0 может

выводить точку х к за пределы Cl. Это нарушение можно скор­ ректировать, заменяя найденную точку ее проекцией на мно­ жество Cl. Другой подход состоит в том, чтобы ослабить нелинейные ограничения типа равенства, для чего полагают \fi(x)\ ^ I = 1 >г- По мере приближения к искомой точке х* Е Cl минимума целевой функции на множестве Cl значение 8k > 0 можно уменьшать*

8.8. Методы последовательной безусловной минимизации

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

Рассмотрим общую схему построения алгоритмов этих ме­ тодов на примере решения задачи (8.1 ) для целевой функции /(ж), х Е R71. Формально эта задача эквивалентна задаче безус­

ловной минимизации

 

 

min

(/(* ) + fci(*))>

(8.80)

x€Rn

 

 

где SQ (X ) — так называемая индикаторная функция допу­

стимого множества С1:

х G С1\ х$СI.

Точки минимума функций f(x) в (8.1 ) и f(x) + 5n(x) в (8.80) совпадают, но индикаторная функция имеет точки раз­ рыва второго рода на границе дС1 допустимого множества Cl. Это не позволяет применять известные методы безусловной

минимизации к задаче (8.80). Но в случае, когда множество ft задано ограничениями типа равенства и неравенства, ис­ пользуя фигурирующие в них функции, можно построить такие непрерывные функции штрафа 6к(х), что в каждой фикси­ рованной точке х 6 Rn

lim{<5*(®)} = lim Sk(x) = fa(x).

(8.81)

/с—Юо

Тогда задача, эквивалентная (8.80), принимает вид

m m (/W + iUm4 (x)).

(8.82)

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

й (/(х)+Й>,‘(®)) =& (й в (/(а,)+,*(хв)))'

то вместо (8.82) получим

fk(x) = /(* ) +

->■ min, х € М", k € N,

(8.83)

т.е. исходная задача (8.1 ) нелинейного программирования пе­ реходит в последовательность задач безусловной минимизации вспомогательных функций fk(x), которые называют штраф­ ными. Тогда в качестве решения х* G ft задачи (8.1) следует рассматривать предел (если он существует) последовательно­ сти {*£ } решений х*к задач (8.83).

Можно указать два основных подхода к построению штраф­ ных функций и соответственно два типа методов штрафных функций. Эти типы различают по способу учета ограничений. Если все точки х*к последовательности {®£} принадлежат до­ пустимому множеству ft, то говорят о методе внутренних штрафных функций (иногда — о методе внутренней точки). Если же x*k £ ft, то говорят о методе внешних штрафных функций (иногда — о методе внешней точки).

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

fl= {жЕ Шп: gi(x) ^0, г = 1, га } ,

(8.84)

где gi(x), жЕК71, — непрерывные функции.

М етод внутренних ш трафных функций. Пусть допу­ стимое множество вида (8.84) содержит внутренние точки, т.е. точки, в которых все ограничения выполнены как строгие неравенства. Функцию 8ь(х), определенную во всех внутренних точках допустимого множества fi, назовем функцией вну­ треннего штрафа этого множества, если

xeft\d Q ] х £

Ее роль состоит в создании „барьера“ с крутыми склонами вдоль границы дП допустимого множества fi. Чаще всего в качестве такой функции принимают

т

1

x € t i \ d£l, k 6 N,

(8.85)

f a ( x ) = - r k J 2

 

2— 1 9i(x)'

 

 

или

 

 

 

m

 

 

 

Sk(x) = -r * ^ ln ( - g i ( x )),

xeQ \dQ ., k € N,

(8.86)

i=l

 

 

 

где rk > 0 — коэффициент, называемый параметром штра­ фа. Если rk +0 при к -» оо, то последовательность {<5*(®)} функций, определенных с помощью (8.85) или (8.86), сходится поточечно к индикаторной функции <fo(®), т.е. удовлетворяет равенству (8.81).

Можно показать*, что последовательность {аз*} решений аз* € С1 \ дС1 задачи безусловной минимизации штрафных функ­ ций /*(х) = /(аз) + Sk(x), к G N, при использовании представле­ ния функций 6к(х) внутреннего штрафа в виде (8.85) или (8.86) сходится к точке наименьшего значения целевой функции /(аз) на замкнутом ограниченном множестве Cl вида (8.84), если ка­ ждая точка аз*, к 6 N, является точкой наименьшего значения соответствующей функции /* (х). Если функции /(х ) в (8.1) и gi(x) в (8.84) являются выпуклыми, то функции /*(аз) так­ же выпуклы (см. 3.2 ). Поэтому из приведенного утверждения следует, что для имеющей решение задачи выпуклого програм­ мирования рассматриваемый метод сходится, поскольку в этом случае каждая из функций /*(х) достигает на множестве Кп лишь наименьшего значения.

Опишем алгоритм метода внутренних штрафных функций решения задачи (8.1) на множестве С1 (8.84) при использова­ нии представления (8.85). На предварительном этапе выбираем начальную точку х° еС1 \ дС1, сходящуюся к нулю последова­ тельность {г*} положительных чисел гк и параметр точности поиска е в условии |/*(х*) — /*(а;*_1)| < е прекращения вычисле­ ний, а затем, принимая k = 1 и ®*_i = х°, переходим к основной части алгоритма.

1. Полагая х* = х°, одним из методов безусловной миними­ зации (см. 4 -6 ) находим точку х* G П\ дС1минимума штрафной

функции

 

 

 

 

т

1

 

fk(x) = f{x ) + §k(x) = f { x ) - r k^2

—r r,

 

 

i= 1

 

 

используя в качестве первого приближения точку х*.

Далее

переходим к п. 2.

 

 

 

2. Если |Д(х*) — /А:(аз^_1)| < е, то вычисления прекращаем

и принимаем х* «

х* и /(х *) и /(х *). В противном

случае

полагаем к := к + 1

и возвращаемся к п. 1 .

 

 

Эффективность реализуемого алгоритма в значительной степени зависит от выбора начального значения го параметра штрафа г. Общих рекомендаций здесь не существует. Выбор „ подходящего “ значения го связан со спецификой решаемой задачи и способом задания функции штрафа. Например, если штрафная функция имеет вид

771

1

f(x,r) = f ( x ) - r ^ 2

= f(x )-r h (x ),

i= 1 9i{x)

т.е. использует функции штрафа вида (8.85), то в качестве начального значения параметра штрафа можно принять*

_

(grad f(x), gradh(x))

Г°

|grad h(x) |2

Возможны и другие способы выбора „подходящего" значения** г. Если начальное значение го параметра штрафа выбрано, то элементы последовательности {г^}, удовлетворяющей условию

Пт Гк = + 0, обычно задают рекуррентным соотношением г* = к—Юо

= гк-i/т? к eN, где 7 = const > 1 .

Условие прекращения поиска точки х*к безусловного ми­ нимума штрафной функции Д(аг) зависит от используемого алгоритма безусловной минимизации. Например, в случае при­ менения алгоритмов первого или второго порядков (см. 5) в качестве этого условия обычно используют выполнение не­ равенства |grad/fc(a;)| < £*, где £* > 0 — заданный параметр точности поиска. Однако применение этого условия может при­ водить к трудностям вычислительного характера и не всегда практически возможно. В основном эти трудности связаны с тем, что при больших значениях к значение |grad/fc(a;)| может быть большим даже в малой окрестности точки х к. Это об­ стоятельство может оказаться препятствием и при реализации метода внутренних штрафных функций.

*См.: Фиакко Л., Мак-Кормик Г.

**См.: Гроссман К К а п л а н А .А .

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

Пример 8.13. Методом внутренних штрафных функций решим задачу оптимизации

{/(х i,x 2) = 10х2 — 4X IX 2 + 7x2 4л/б(5®1 — х2) — 16 min;

(х! - 1 ) 2 + (х2- 3 )2- 4 < 0 .

Допустимое множество П в этой задаче представляет собой замкнутый круг с радиусом 2 и центром в точке (1, 3). Вводя функцию штрафа в соответствии с (8.85) или (8.86), получим два варианта вспомогательных функций:

/*(*) = / ( * ъ®2) “

ИЛИ

7к{х) = / ( х ь х2) - r fcln (-p (x 1,x2).

Параметры штрафа гк определим соотношениями го = 32, г* = = rfc_i/2, к Е N. На рис. 8.19, а изображены линии уровня вспо­ могательной функции fk(x) при значении параметра штрафа гк = 32, а на рис. 8.19, б — линии уровня функции Д(ж) при

Гк = 1 - Решение вспомогательных задач безусловной минимизации

было проведено численно с применением метода Ньютона при выборе в качестве начальной точки х° = (1, 3). Поиск точки минимума х* € £1 прекращался при выполнении неравенства !/*(**) - /fc(®*-i)l < е или \fk{x%) - & (* £ _ ,)|< е, где е = 10" 3.

Результаты проведенных расчетов приведены в тайл. 8.4, где N — число вспомогательных задач минимизации штраф­ ных функций, решение которых привело к выполнению условия

- 1 0

1 2

3

- 1 0

1 2

3

 

a

 

 

б

 

 

 

Рис. 8.19

 

 

 

 

 

 

Таблица 8.4

Штрафная функция

N

x*N

М®лг)

Д*лг)

 

Л (*)

17

(1,970, 1,254)

-52,932

-52,957

 

Л (*)

16

(1,970, 1,251)

-52,997

-53,004

прекращения вычислений. Числа в двух последних колонках та­ блицы позволяют сравнить значения N-й штрафной функции в точке x*N « х* и целевой функции f[x ) в этой же точке. Из таблицы видно, что в ^данном случае способ задания функции штрафа практически не влияет на эффективность реализуемо­ го алгоритма. #

Пример 8.14. Найдем решение задачи квадратичного про­ граммирования

{ f ( x i,z2) = 10xi - 4Z I Z2 + 7х2 - 4\/5(5XI - х 2) - 16 min;

х\ — 2 < 0 , х\ + Х2 — 1 ^ 0 .

Граница допустимого множества f2 для этой задачи изобра­ жена на рис. 8.20. Используя функции штрафа (8.85) и (8.86),

О

0,5

1

1,5

2

2,5

0

0,5

1

1,5

2

2,5

 

 

 

a

 

 

 

 

б

 

 

 

 

 

 

 

 

Рис. 8.21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 8.5

Штрафная функция

N

x*N

 

/ лК®лг)

/(®лг)

 

Д(®)

 

25

(1,706,

-0,706)

-61,193

-61,195

 

Л (*)

 

11

(1,704,

-0,704)

-60,796

-61,198

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

М етод внешних ш трафных функций. Отличие метода внешних штрафных функций от метода внутренних штрафных функций состоит прежде всего в форме задания функции

= 0, х е П;

5к(х) =

к е N,

> 0, х

О,

называемой функцией внешнего штрафа. При этом долж­ но быть выполнено условие (8.81). Как и в методе внутрен­ них штрафных функций, обычно полагают Sk(x) = г*Ф(ф), где гк > 0 — параметр штрафа, но Ф(а?) — функция, определенная на всем множестве Кп, равная нулю на допустимом множестве П и положительная за его пределами.

Если множество имеет вид (8.84), т.е. задано при помощи ограничении типа неравенства, то в качестве функции штрафа обычно используют квадратичную функцию

т

h (x) = rkY ^ {9?(x))2,

(8.87)

 

 

1=1

 

 

где gf{x) — так называемая „срезка" функции gi{x):

+ /

v

f О,

0*(®)<О;

9 г

Х

\ 5 i ( * ) i

>

О ,

т.е. gf(x) = max{0,5i(®)} = Ы ® ) + |ф(®)|)/2. Последовательность {^(ж)} функций штрафа, задаваемых в

виде (8.87), сходится к индикаторной функции ^п(ж), т.е. удо­ влетворяет равенству (8.81), если г* -* +оо при к —>оо. Если допустимое множество Q задано не только при помощи огра­ ничений типа неравенства gi(x) ^ 0, %= 1 , га,’ но и ограничений типа равенства Qi(x) = 0, г = т + 1 ,р, то функцию штрафа за­ дают в виде

771

Р

(9i(®))2

6k{x)=rkY^(gf{x))2 + rk

г=1

г=7тг+1

 

Опишем алгоритм метода внешних штрафных функций в случае, когда решается общая задача нелинейного програм­ мирования (8.1) на множестве О (8.84), а функция штрафа задана в виде (8.87). На предварительном этапе выбираем про­ извольную начальную точку ®°, параметр е точности поиска точки х* минимума целевой функции f(x ) на множестве О в условии !/*(&£) — fk(x*k_1)\ < г прекращения вычислений и воз­ растающую последовательность {г*,} положительных чисел тк. Принимаем к = 1, х*к_ 1= х° и переходим к основной части ал­ горитма.

1. Полагал х к = ж0, одним из методов безусловной миними­ зации (см. 4 -6 ) находим точку х*к минимума штрафной функ­

ции

га

Л(®) = /(* ) + &(*) = f ( x ) + r k Y ^ (s?№ )2’

1=1

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

2. Если |/*(®J) - /fc(®Jt_i)| < £, то вычисления прекращаем и принимаем х* & х к и /(ж*) « /(ж£). В противном случае полагаем к : = к + 1 и возвращаемся к п. 1 .

В рассмотренном алгоритме возможны и другие условия прекращения вычислений. Например, в качестве условия оста­ нова можно использовать неравенство \хк—as£_il < £, где е — заданный параметр точности поиска.

Проиллюстрируем работу этого алгоритма на конкретном примере.

Пример 8.15. Решим методом внешних штрафных функ­ ций задачу из примера 8.13, выбрав в качестве начальной точку х° = (0, —л/б) и условие останова \хкх к_г \< € с параметром точности поиска = 10“ 3. В данном случае штрафные функции имеют вид

fk(xu x2) = f(x i,x 2 )+ r k(g+{xu x2))2,

где g+(xi,x2) - \{g{x 1,^ 2) + \g{x\, *2)|)- Минимизация этих функций проведена численно с применением того же алгоритма метода Ньютона, что и в примере 8.13. Параметры гк опреде­ лены рекуррентным соотношением rk = rk-1 + 2, к G N, го = 2. Результаты расчетов приведены в табл. 8.6, а траектория поис­ ка точки минимума целевой функции изображена на рис. 8.22 сплошной линией. #

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

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

Дополнение 8.1. Некоторые приемы обращения матрицы

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

Пусть В — невырожденная матрица порядка п. Столбцы этой матрицы обозначим fy, г = 1 , п, а строки обратной к ней матрицы В " 1 обозначим cj. Тогда равенство В - 1 В = Е можно записать в виде

где Sij символ Кронекера.

Предположим, что матрица В получена из матрицы В в ре­ зультате замены столбца Ь* столбцом Ь*. Тогда векторы с*,

*См .: Гроссман К ., Каплан А.А.

определяющие строки матрицы В х, можно вычислить по фор­ мулам

С{

(bfc bki ci)

i = 1 , n.

(8 .8 8 )

Ci

 

(h , ск)

к’

 

Действительно,

 

 

(6bCi) = ( Ь ь с . ) - (Ь* '^

 

= ((.*,<*),

откуда заключаем, что (b*, Ci) =

Если j ф fc, то (b j, c^) = 0

и для любого номера г = 1 , п имеем

 

 

 

(bfe — bfc, Cj)

(bj, Ci).

(bj, С{) (bj,

(bj, c/j)

 

(b*?Cjfe)

 

Следовательно,

(bj,Ci) =Sji.

 

 

Заметим, что в формуле (8.88)

(b*, Cjt) 7^ 0.

В самом деле,

если это скалярное произведение равно нулю, то вектор cjt ортогонален всем столбцам матрицы В. Но поскольку с + кф О, то это возможно лишь в случае, когда столбцы матрицы В линейно зависимы, а матрица В вырождена. В этой ситуации матрица 5 , разумеется, не имеет обратной матрицы.

В алгоритме, реализующем метод проекции антиградиен-

та, при построении проекционной матрицы используется про­ цедура обращения симметрической матрицы D = ААТ, где А — прямоугольная матрица размера m x n , соответствующая в за­ даче ограничениям типа равенства и активным ограничениям типа неравенства. При переходе от итерации к итерации эта матрица может меняться, причем в некоторых случаях новая матрица А образуется из уже использовавшейся матрицы А вычеркиванием одной из строк. В этом случае при обраще­ нии матрицы D = ААТможно использовать известную матрицу 2? " 1, тем самым существенно сокращая объем вычислений.

Из смысла задачи ясно, что порядок строк в матрице А не является существенным*, и мы можем считать, что матрица А получается из матрицы А вычеркиванием последней строки. При этом предположении матрицу D удобно записать как блочную матрицу

G S

D =

9

где G — симметрическая матрица порядка тп 1 , S — блок размера (га —1 ) х 1 , a g — элемент матрицы D, расположенный в ее нижнем правом углу. Аналогичным образом запишем и обратную матрицу

Q R

D~l

RT q

где Q — симметрическая матрица порядка га — 1 , R — блок размера ( m - 1) х 1 , q — элемент матрицы D~l в левом ниж­ нем углу. При вычеркивании в матрице А последней строки матрица D = ААТ преобразуется в матрицу G. Таким обра­ зом, задача состоит в том, чтобы, зная блоки матриц D и JD” 1, определить матрицу G~l.

В соответствии с правилами перемножения блочных ма­ триц [III] находим

G

S

Q

R

 

 

Im = DD~l =

9

RT

q

 

 

ST

 

 

 

GQ + SRT

GR + Sq

Im—l

©

 

STQ + gRT

STR + gq

0

1

‘ Можно показать, что если в матрице А переставить строки, то в матрице А А Т произойдет одновременная перестановка строк и столбцов с теми же номерами и точно так же преобразуется матрица (ААТ)-1

где © обозначает нулевые блоки соответствующего размера. В результате получаем систему матричных уравнений

(GQ + SRT = Im- ь

GR -\- Sq — 0,

(8.89)

' STQ + gRT = e,

<STR + gq = 1.

Из второго равенства (8.89) находим S = —-GR, с помощью этого соотношения заменяем S в первом равенстве. В резуль­ тате получаем GQ i GRRT= 1т- ь или

G (Q ~ R R T)= I m - 1.

Следовательно,

G~l = Q - -R R T

Я

С помощью уравнений (8.89) можно решить и противопо­ ложную задачу: пересчитать матрицу D~l в случае, когда к матрице А добавляется новая строка. В обозначениях, введен­ ных выше, это означает, что необходимо вычислить матрицу D - 1 при известных G, G-1 , S и д.

Из второго равенства (8.89) находим R = —qG~lS, откуда, учитывая симметричность матрицы G-1, заключаем, что RT= = —qSTG~1. Заменяя R в четвертом равенстве (8.89), получаем qSTG~1S = gq 1, что позволяет найти q:

1

(8.90)

Я~ g - S TG~lS'

Первое равенство заменой RT = —qSTG 1 преобразуется к виду GQ qSSTG~l = 1т- ъ чт0 позволяет найти матрицу Q:

Q = G -1 + qG~1SSTG -\

С помощью найденных выражений для R, q и Q можно записать матрицу D~l:

G- 1 +qG~1 SSTG~ 1

-qG ~lS

-qS TG~l

q

где q определено равенством (8.90).

 

Вопросы и задачи

8.1. Приведите классификацию численных методов нелиней­ ного программирования на примере решения задачи минимиза­ ции выпуклой функции, непрерывно дифференцируемой на за­ мкнутом выпуклом множестве fi С Кп. Укажите достоинства и недостатки каждого метода, целесообразность применения при различных способах задания допустимого множества П: при помощи ограничений типа равенства и (или) неравенства, лит нейных и нелинейных. В чем состоит принципиальное различие метода условного градиента и метода проекции антиградиен­ та? На каких множествах целесообразно применять каждый из указанных методов нелинейного программирования?

8.2. Дайте определение проекции точки на множество. Как найти проекцию точки на замкнутое выпуклое множество? Покажите, что проекцию точки х ф XQ на замкнутое множество П = (ж е Мп: - хо| = 1} можно найти с помощью соотношения

(8.21).

8.3.Докажите, что точка, определяемая равенством (8.23), принадлежит полупространству £1* (8.24) и при любых z Е (2* удовлетворяет неравенству (8.19).

8.4.Докажите, что точка, заданная равенством (8.27), при­ надлежит множеству £2 из примера 8.5 и при любых z Е £2 удовлетворяет неравенству (8.19).

8.5. Используя метод условного градиента, найдите реше­ ние задачи квадратичного программирования с целевой функ­ цией f(xi,X 2 ) = 5х2 + 2х 1 x2 + 5х| ~ 4%/2(5a;i + ж2) — 8 на мно­ жестве 0 < х — 1 < 1, выбирая различные начальные точки: (0, 0), (0, 1), (1, 2). В условии прекращения итера­ ций \хк ®fc-1|< е положить е = 10-2 . Проверьте полученный результат, применив метод проекции точки на множество и выбрав начальную точку (0, 0). Результаты расчетов проил­ люстрируйте графически.

8.6. Решите задачу на условный экстремум

{2х2 + х\ 4®i — 2®2 min;

Vbxi + х2 — 5 = 0,

выбрав начальную точку х° = (0, —у/Е) , с помощью метода про­ екции точки на множество и метода проекции антиградиен­ та. Используйте значение параметра точности е = 10-2 . Дайте сравнительный анализ этих алгоритмов по числу шагов ите­ рационного процесса, необходимых для достижения минимума целевой функции с заданной точностью. Покажите различие процессов минимизации этими методами в случае ограничений y/Exi + х\ 5 = 0 и у/Ъх\ + х2 — 5 ^ 0. Дайте графическую ил­ люстрацию полученных результатов.

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

{4х2 + Х2 + 2x2 ->■ min; х2 + х2 - 4X2 < 0,

- x i + Х2 - 2 < 0

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

8.8. Используя метод проекции антиградиента и метод воз­ можных направлений, решите задачу квадратичного програм-

мирования

х г + 2х 2 + Зх3 4- х\Х2 2х\хз + Х2Х3 4xi 6x2 т *п>

< x i + 2 x2 4- 23 < 4,

к®12, 23 > О,

выбрав начальную точку (0, 0, 0).

8.9. Методом внутренних штрафных функций решите за­ дачу квадратичного программирования

"(21 — 5)2 + 2 — З)2 min;

<X\ + Х 2 < 3,

-хг + 2хг < 4,

выбрав начальную точку (0, 0). Графически проиллюстрируйте полученный результат.

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

{2 5XJX2 + х\ —>min;

2 2 - Х 2 + 2 < 0 , XI + X 2 - 6 < 0 , XI , X 2 > 0 ,

выбрав начальную точку (0, 0). Графически проиллюстрируйте полученный результат.