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

Характерное зигзагообразное движение на рис. 8.3 в напра­ влении искомой точки х* связано с тем, что в данном случае при решении задачи (8.3) минимизации линейной функции Д(ж) на выпуклом множестве Г2 вспомогательными приближениями поочередно являются крайние точки (1 , 2) и (1 , 0) этого мно­ жества. #

Поиск вспомогательного приближения х к Е fi на /с-й ите­ рации метода условного градиента можно вести не только на основе линеаризации целевой функции /о (ж) в окрестности точ­ ки х к~1 Е Если /о(ж) — выпуклая функция, дважды диффе­ ренцируемая на выпуклом ограниченном замкнутом множестве Q, то ее приращение в окрестности точки х к~1 приближенно можно представить квадратичной функцией

f k(x) = (grad/o(*fc-1), х —х к~х) + (# (® fc_1)(® -a;fc-1), x - x k~l),

где H {xk~l) — матрица Гессе функции /о(ж), вычисленная в точке х к~1. Такое представление приводит к необходимости вместо решения задачи (8.3) минимизации линейной функции на допустимом множестве £1 решать на том же множестве за­ дачу минимизации квадратичной функции. Это существенно усложняет поиск точки х к, но благодаря более точной аппрок­ симации целевой функции в окрестности точки х к~1 может уменьшить общее число итераций.

8.2. Использование приведенного градиента

Если допустимое множество О, С W1 задано при помощи линейных ограничений, то для минимизации на нем дифферен­ цируемой целевой функции /о(ж), х Е К71, можно использовать подход, аналогичный покоординатному спуску в случае без­ условной минимизации. При этом ограничения удобно приве­ сти к форме, соответствующей стандартной задаче линейного программирования и содержащей ограничения типа равенства

в виде Ах = b с известными матрицей А размера т х п и век­ тором Ь£ Кт и условие неотрицательности параметров опти­ мизации в виде ж £ KJ, где М* — неотрицательный ортант

размерности п.

Итак, необходимо минимизировать дифференцируемую це­

левую функцию /о(ж), ж £ Rn, на множестве

 

П = {хеШ ” : Ах = Ь}.

(8.8)

Без ограничения общности можно считать, что ранг матрицы А в (8.8) равен числу т ее строк и меньше числа п ее столбцов, т.е. RgА = т <п . В самом деле, если Rg А = г < т , то в матри­ це можно выделить г линейно независимых строк. Остальные строки матрицы будут линейными комбинациями этих г строк [III]. В этом случае либо система Ах = Ънесовместна и задача оптимизации не представляет интереса (допустимое множество пусто), либо из системы можно удалить п —г уравнений, не меняя множества ее решений. В результате удаления мы при­ ходим к аналогичной задаче, в которой ранг матрицы равен количеству ее строк. Если Rg А = т = п, то система линейных уравнений Ах = Ъимеет единственное решение, которое можно записать в виде ж = А~1 Ъ. Значит, допустимое множество рас­ сматриваемой задачи оптимизации состоит из одного элемента, а сама задача не представляет интереса.

Итак, полагаем, что Rg А = т <п . Выберем в матрице А базисный минор В. Для удобства будем считать, что этот ми­ нор расположен в первых т столбцах матрицы А (этого можно добиться, изменив при необходимости порядок переменных ж*, г = 1,п). Тогда матрицу А можно записать как блочную ма­ трицу (В iV), где В — квадратная матрица, составленная из первых т столбцов матрицы А, а матрица N объединяет остав­ шиеся п — т столбцов. Матрица В, соответствующая базисно­ му минору, является невырожденной. Выбор базисного минора в системе линейных алгебраических уравнений (СЛАУ) Ах = b приводит к разделению неизвестных %= 1 ,п, на базисные

неизвестные х\, ..., хт и свободные неизвестные хт +\, ..., хп.

Первую группу неизвестных сгруппируем в вектор-столбец жв , а вторую — в вектор-столбец x N Введем также множества ин­ дексов J B = {1, 2, . , , , ш } и J N = {т + 1, ..., п}.

С учетом введенных обозначений СЛАУ Ах = b можно запи­ сать в виде матричного уравнения В хв + N X N = Ь. Поскольку матрица В невырождена, то это матричное уравнение можно преобразовать к виду

х и = ЬNx N

(8.9)

^1

где b В _ 1Ь, N = B~lN. Параметры оптимизации, соста­ вляющие векторы х в и x N) называют обычно базисными и свободными переменными соответственно.

Матрицу Якоби целевой функции в некоторой точке ж0 Е ^ представим в виде блочной матрицы-строки (gB gN), где д в и gN — матрицы-строки длины т и п —т. Элементами этих матриц-строк являются частные производные uXj j = 1 , п, по

базисным и свободным переменным соответственно (д в и gN

называют матрицами Якоби функции /о (ж) по части пере­ менных). Тогда, используя (8.9), для полного дифференциала целевой функции получаем

df0(x°) = (grad/о(ж0), dx) = дв dxB + g NdxN =

= - д в N dxN + gN dxN = (gN —gBN )dxN = udxN, (8.10)

где и = gN — — матрица-строка длины n —га, называемая приведенным градиентом целевой функции /о (ж) относи­ тельно свободных переменных в точке ж0 Е fi.

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

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

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

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

методом приведенного градиента.

Из (8.10) следует, что значение целевой функции быстрее всего уменьшается при изменении свободных переменных в направлении, противоположном приведенному градиенту. Но при этом может быть нарушено условие их_неотрицательности. Чтобы этого избежать, приведенный градиент можно спро­ ектировать на неотрицательный ортант R*” m — допустимое множество для этих переменных. Поскольку Ш%~т является до­ статочно простым по структуре множеством, проектирование на него выполнить несложно. Это позволяет сформировать воз­ можное направление спуска, т.е. найти координаты pj, j Е J , вектора р Е R71, определяющего это направление. При uj ^ 0, j Е J N, увеличение свободного переменного Xj в окрестности рассматриваемой точки х° Е Cl приведет к уменьшению значе­ ния целевой функции. Поэтому для этого индекса принимаем Pj = —Uj. Если же Uj > 0, j Е J N, то увеличение свобод­ ного переменного Xj в окрестности рассматриваемой точки может привести к ее возрастанию. В этом случае положим Pj = —UjX^p Таким образом, для координат вектора р Е Rn, соответствующих свободным переменным и составляющих век­ тор рдг Е Шп ~ т , имеем

 

 

( 8 . 1 1 )

Чтобы при движении точки

 

 

х = х° + яр,

я > 0,

(8.12)

в направлении, которое задано вектором р G R", не были на­ рушены ограничения Ах = 6, определяющие допустимое мно­ жество вида (8.8), необходимо, чтобы выполнялось условие

Ах = Ах° + х(В N)p = 6, или Врв = —Nprf, поскольку Лж0 = = 6. Отсюда находим вектор

Рв = ~B~1NpH = —Npfj

(8.13)

с координатами pj, j € J B = J \ J N (здесь J = {1, ..., n}), соответствующими базисным переменным. Значение х в (8.12) выбираем, минимизируя функцию ф(х) = /о(ж° + хр), х > 0, но при выполнении условия х € RJ, приводящего с учетом (8.12) для всех j J к соотношениям 0 < Xj = ж^ + xpj, где Xj и

ж^ — координаты точек жиж0 соответственно. Отсюда, если множество X* = {j J\ pj < 0} не пусто, получаем ограничение на максимально возможное значение х в виде

/

ж(0)ч

(8.14)

х sj х = min

— i - J .

 

Pj J

 

Если же X* = 0, то допустимо значение х 6 (0, +оо). Покажем, что если в некоторой точке ж* Gfl выполнено ра­

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

L(x, А, р) = /о (ж) + (А, Ах - Ь) - (р, ж),

где Л (ЕRm и p 6 R n — векторы множителей Лагранжа, соот­ ветствующие ограничениям Ах —6 = 0 типа равенства и —ж < 0 типа неравенства (последнее неравенство означает, что —жj < 0 для всех j = 1, п, т.е. ж € К” ). Согласно теореме 7.6 и замеча­ нию 4.1, если х* € П — стационарная точка этой функции, то существуют такие координаты A j, г = 1, тп, и р* ^ 0, j = 1, п,

векторов А и ц соответственно, что справедливы равенства

gradL(®*,A,^) = grad/o(a;*) + ATA —ц = 0 , (р,х*) = 0. (8.15) Эти равенства при рдг = 0 будут выполнены, если положить

А — Q J3 5 /х — ^/х /х J, /х — О ) /х — lx.

В самом деле, в соответствии с (8.11) из равенства PN = О следует uj ^ 0 для всех j J N, откуда pj ^ 0, j = 1, п. Наоборот, в тех случаях, когда Uj ^ 0, для всех j J N имеем pj = —ujx* -

= —pjx*j 0. Так как р в = 0 то pjXj = 0 для всех j 6 J B, т.е. второе равенство (8.15) справедливо. С учетом выражений для Ат и р т, а также равенств В - 1 В = Im, B~XN = N и и = = gN gBN получаем для матрицы Якоби целевой функции в стационарной точке х* € Q тождество

(grad/o(®*))T = (дв gN) = дв (lm

N) + (0Т

gN- g BN) =

= двВ~1(В

N) + (

и ) = - \ ТА + р

Следовательно, рн = 0 равносильно выполнению обоих ра­ венств (8.15). Это позволяет построить алгоритм поиска точки ж* G минимума целевой функции /о(ж) на множестве Q с ис­ пользованием приведенного градиента. На начальном этапе задаем параметр ез > 0 точности поиска, полагаем k = 1, вы­ бираем начальную точку ж*-1 = ж0 € П, формируем множества J B и индексов (например, располагаем координаты точки ж0 в порядке убывания и выбираем из них в качестве базисных переменных т первых*), а затем записываем матрицу А в блоч­

ном виде А = (Bk Nk). Вычисляем матрицу

и переходим к

основной части этого алгоритма.

 

 

1.

На fc-й итерации находим матрицу Nk = В^1Щ и в точке

ж*-1 G Г2 вычисляем матрицы Якоби дв и д£ целевой функции

по части

переменных с элементами

I

при j G J B и

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

j Е соответственно, а затем — приведенный градиент ик =

= 9к ~ 9 k Nk- По формулам

(*) .

 

3

и

{к)

<0;

 

 

 

3) 1

3 6 J t ,

(8.16)

P j

=

—и

 

 

(к)

>0,

х з

 

 

 

 

‘3

> и з

 

 

 

аналогичным (8.11), находим координаты вектора p kN Е Rn_m. Если |p^| < £3, то итерации прекращаем, полагая х* « х к~ 1 и /о(ж*) « fo(xk~l). В противном случае переходим к п. 2.

2. Используя (8.13), вычисляем вектор ркв = —NkP% € Mm

и формируем вектор рк = ({рв )Т (Рдг)Т) , определяющий воз­ можное направление спуска из точки ж*-1 . Формируем множе­

ство = {j Е J\ pf^ < 0 } и вычисляем значение

 

 

 

х(0)

> 0

(8.17)

 

Хк = min 1 — —

 

зЩ \

Pj

 

 

(в случае

= 0 значение Лк

можно

принять сколь

угодно

большим) и, минимизируя в полуинтервале (0, Лк] функцию

фк{х) = /о(ж*- 1

+ хрк), находим значение

Е (0, Лк] и новую

точку х к = ж*- 1

+ х*кРк £ fl. Если

= Лк, то переходим к п. 3.

В противном случае полагаем к := к + 1 и возвращаемся к п. 1 .

3.

Устанавливаем индекс % E j , для которого —x^k~ l )i / р ^ =

= Лк.

Таких индексов может быть несколько. Если все они

принадлежат множеству

, то полагаем к := к + 1 и возвра­

щаемся к п. 1. В противном случае равно нулю хотя бы одно базисное переменное х\к\ i Е J B, и мы переходим к п. 4.

4.

Индекс i Е J B (если их несколько, то один из них) пе­

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

, заменяя индексом

I Е

наибольшего по значению свободного переменного Х[.

Для новых множеств индексов J B и

разделяем матрицу А

на блоки Вк и Nk, вычисляем обратную матрицу В~1, используя рекуррентные соотношения, связывающие ее с прежней обрат­ ной матрицей (см. Д.8.1), и, полагая к := к+ 1, переходим к п. 1.

Если в течение нескольких итераций состав базисных переменных не изменяется, то это означает, что достигнута достаточно близкая окрестность искомой точки х* € П, причем в отличие от задачи линейного программирования х* может быть и внутренней точкой множества ft. В этом случае для ускорения сходимости можно применить спуск по сопряженным направлениям в пространстве Mn-m свободных переменных*

Пример 8.2. Минимизируем функцию /o(xi,X 2,x3) = х\ —

2 х2 + х% + х% при ограничениях xi + 2жг + х3 = 3 и Xj ^ О, j = 1,3. Сначала используем модифицированный алгоритм ме­ тода приведенного градиента, выполняя спуск по сопряженным направлениям в двумерном пространстве свободных перемен­ ных.

Представим целевуюфункцию в виде /о(ж) = i (Qx, х), где

/2 - 2 0 \

Q =

- 2

2 0

\

0

0 2 /

 

неотрицательно определенная матрица. Примем ез = 0,1 и вы­ берем удовлетворяющую ограничениям начальную точку а:0 =

=

(1, 1/2, 1)

и xi в качестве базисного переменного, т.е.

=

=

{1}, ^Л =

{2,

3}, В\ = 1, iVi = (2 1).

 

 

 

П е р в а я

и

т е р а ц и я . 1. Вычисляем iVi =

N\ —(2

1)

и приведенный градиент в точке х°:

= ( - 2 x i + 2х2

2X3) - ( 2 X I - 2 X2)/VI = ( -1 2) - (2

1) = ( - 3 1).

Так как

=

—3 и

= 1, то в соответствии с

(8.16)

име­

ем р^1} = - 4

1} = 3 и pj1} = - и ^ х ^ = -1 , т.е. p Nl

= (3

- 1)Т

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

2 алгоритма, поскольку |р)у| = у/Ш> £з = 0,1.

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

2.

Из (8.13) находим рвх = —N\p\, = —(2 1)(3

— 1)Т = —5 и

формируем вектор р 1 = ((р^)т (рдг)Т) = (—5 3

1 )Т, задаю­

щий возможное направление спуска из точки х°.

При помощи

(8.17)

на множестве I* = <j 6 J : р ^ < 0j = {1, 3} вычисляем

Минимизируя в полуинтервале (0, х\] = (0,1/5] функцию

■ФЛх ) = fo(x° + яр1) = ^(Q{x° + xp1),x° + xp1) =

= \ ( Ф ° ,

х ° )

+ х

(QX°, р 1) + у (<?р\ р1) ,

находим

(<5*0.p')

 

1

1

.

 

Х‘ = - ( 0 ? ^ )

=

13<5‘ 1 = 5'

вычисляем точку х 1

= х° + х*рг = (8/13,

19/26, 12/13) и пере­

ходим ко второй итерации, возвращаясь к п. 1 алгоритма.

В т о р а я и т е р а ц и я .

1. Множества индексов J B и J N

не изменились, и поэтому N2 = N\ = (2

1). Вычисляем приве­

денный градиент в новой точке х 1:

 

§) +£<* Ц-5(М)-

Поскольку базисное переменное осталось прежним, то вектор p2N найдем как сопряженный с вектором р]у:

P N - ~ U + j ^ T | 2 P ^ -

 

 

 

 

9 /1 \

(9/13)2(12 + 32) / 3 \ _

18 /

7\

1 3 \ 3 ^ +

32 + 12

V - 1 /

169 \ —24)

Переходим к п. 2, так как |p^| = 450/169 > £3 = 0,1.

2. При помощи (8.13) находим вектор

 

18

180

р2в = - а д = - - ^ ( 2 1)(7 -24)*

= ^

169

169

и формируем вектор

Р2=((Рв)Т (Р^)Т)Т = ^ ( 10 7 - 24)Т.

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

имеет значения. Поэтому примем р2 = (10 7

— 24) Исполь­

зуя (8.17), на множестве 1% — {j €-J'- Р'Р < 0} = {3} вычисляем

 

 

*2

p

f ) ~

p f ~ 26'

 

 

 

 

 

Минимизируя в полуинтервале (0, х?\ = (0,1/26] функцию

 

 

 

 

 

 

 

 

Л

 

 

 

О я*}

ггМ 4- ъг ( O t r }

4

(Qp2, р2) ,

Ы * ) = Ы х 1 + *Р2) = \ (Q®1.

я 1) + х {Qx1, р2)

+ у

находим

 

 

 

 

 

 

 

 

 

 

 

('QX \ P 2)

_ 1

2

 

 

 

 

х 2 = - (Qp2,p2)

26

 

 

и вычисляем точку х 2 = х 1 + х^р1

= (1, 1, 0). Поскольку х 2 =

= х 2, то переходим к п. 3.

 

 

 

 

 

 

3.

Так как индекс г = 3 € J2

принадлежит множеству J2 =

= Ji

= {2, 3}, т.е. обратилось в нуль

свободное переменное

жз, то переходим к третьей итерации, возвращаясь к п. 1 алго­

ритма.

 

 

 

 

 

 

 

 

Т р е т ь я

и т е р а ц и я .

1.

Снова множества индексов J B

и J N остались прежними, и поэтому N3 = N\ = (2

1). Находим

приведенный градиент в новой точке х 2: и3 =

—gBN3 =

= (0

0) — 0• (2

1) = (0

0). В соответствии с (8.16) будет нулевым

и вектор p3N.

Так

как \p3N\= 0 < £3

= 0,1,

то

дальнейшие

вычисления прекращаем и полагаем х* = х 3 = (1 , 1 , 0), /о(ж*) = = /о(®3) = 0.

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

Согласно п. 1 этого алгоритма, используя координаты вычи­

сленного в точке х 1 = (8/13,

19/26,

12/13) приведенного гради­

ента и2 = (9/13

27/13), в соответствии с (8.16) находим коорди­

наты

= —171/328 и р ^

 

 

= —324/169

вектора р\ =

(9/328)(—19

-7 2 )т

Ясно,

что

\p2N\> £3 = 0,1.

Поэтому переходим к п. 2 алгоритма.

 

 

 

Вычислив вектор рв = —Л^р^ = —

(в данном случае этот

вектор — число), сформируем вектор

р2 = (110 —19 —72)т

опуская множитель 9/328. На множестве

= { 2, 3} находим

1к<1 = min

.

f 19

12

 

-I

0,01282.

mm 1 26 •19 ’

13-72J

зец

78

Функция ^ ( х ) = /о (ж1 + хр 2) достигает минимума при

 

(Q *1, ? 2)

4230

 

0,00374 < Х2-

* 2

(<?Р2,Р2)

26-43450

 

 

 

Итак, получаем точку х 2 = х 1 + хгР2 = (1,0333, 0,6596, 0,6535). Сравнение расстояний I®1 — ®*| « 1,0356 и |®2 —®*| и 0,7376 показывает, что вторая итерация, выполненная по основному алгоритму метода приведенного градиента, привела лишь к некоторому приближению к точке х*.

является сильно выпуклой на замкнутом выпуклом множестве Cl С К” (см. пример 3.14), а значит, и просто выпуклой. Так как она определяет квадрат расстояния между точками z и х, то, согласно определению 8.2, проекция точки х € R” на множе­ ство О, должна быть точкой минимума этой функции. В силу теоремы 3.15 выпуклая функция Ф(г) достигает минимума в точке у € fi тогда и только тогда, когда выполнено неравенство ^гаёФ(у), z у) ^ 0. В данном случае grac^(z) = 2(z х) и, следовательно,

(К (gradФ(у), z —у) = 2 (у —х, z —у) = —2 (z —у ,х —у ) ,

что равносильно (8.19) для любых z € Г2.

Из проведенного доказательства следует, что проекцию фиксированной точки х 6 К71 на замкнутое выпуклое множество Q cM n можно найти путем решения задачи минимизации

Ф(г) = \z — аз|2 -> min, z 6 fi,

(8.20)

квадратичной функции на множестве ГI, что согласуется и с определением 8.2. Однако трудность решения этой задачи не­ посредственно связана с формой задания множества Г2. Рассмо­ трим примеры множеств, проектирование точки на которые не представляет особых затруднений.

Пример 8.3. Если = {z € Rn: \z — ®о| ^ 1} — замкнутый единичный шар с центром в точке ®о G Кп, то, согласно опре­ делению 8.2 проекции точки на множество, для точки х ^ О. имеем

\у —х\= inf \z —х\ = —®ol 1 .

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

у = Рп(х) = х о + р —

(8.2 1)

Х о \

 

Используя неравенство Коши — Буняковского, убеждаемся, что она для любой точки z выпуклого замкнутого множества

fi удовлетворяет неравенству (8.19):

= (1 - |® - ®0|) (1 - \z - ®о|) < О,

поскольку |® — ®о| > 1 при X £ С1 И \z ®о| < 1 при Z С1. Множество fi = { z 6 Rn: \z —®о| = 1} замкнутое, но не вы­

пуклое. Для точки х 0 £ й существует бесконечное множество проекций на Cl, а для всех других точек ® такая проекция един­ ственна и может быть найдена при помощи (8.21).

Пример 8.4. Гиперплоскость

 

n = { z e R n: (n, «) = &},

(8.22)

где п € й п — единичный нормальный вектор этой гиперплос­ кости, а Ь— постоянное число, является замкнутым выпуклым множеством (см. 3.1). Проекцию точки ® ^ С1 на множество П будем искать в виде у = Рп{х) = ® + Ап, Л = const. Найдем число А из условия у еС1, т.е. (п, у) = (п, ® + Ап) = Ь. Отсюда А = b—(п, ®), поскольку (n, п) = |n|2 = 1, и

y = Pci(x) = x + (b- (n, x))n.

(8.23)

Убедимся, что точка у, определяемая соотношением (8.23), удовлетворяет неравенству (8.19) при любых z € П, т.е. при

(n, z) = b

(z —y ,x —y) = [z —х -

(b - (n, ®))n, ® - ® - (6 - (n, ® ))n)

=

= - { b - (n, ®)) (z, n ) +

( 6 - (n, ®)) (®, n ) + ( b - { n , ® ))2|n|2

=

= b2 + b(n, x) + b(x, n) —(®, n )2 + {b—(n, ®))2 = 0.

Несложно проверить, что точка у = Рп{х) является проек­ цией точки х £ ГГ на полупространство

П* = {геШ п: (п, * )< & },

(8.24)

так как она для всех z Е удовлетворяет неравенству (8.19).

Лемма 8.1 . Если ранг матрицы А равен количеству ее строк, то квадратная матрица ААТ невырожденная.

◄ Предположим противное: матрица ААТ вырожденная и су­ ществует такой ненулевой вектор у Е Rm, что ААТу = 0. Тогда получим утААту = (Ату)тА'ту = (Ату , Ату) = \АТу |2 = 0, откуда -А у = 0. Но система линейных уравнений А у = 0 не имеет ненулевых решений, поскольку ранг матрицы Атсистемы равен количеству столбцов матрицы [III]. ►

Пример 8.5. Найдем проекцию точки х Е W1 на множество Q, = {z Е Mn: (rii, z) = 62, i = 1, ?п}, которое является замкну­ тым и выпуклым (см. 3.1). Примем, что единичные нормаль­ ные векторы щ линейно независимы, причемm <п (если m = п, то множество fi состоит из одной точки). Искомую проекцию представим в виде

m

Е К.

(8.25)

y = Pn{x) = x + ' Y ^ \ i r ii,

г=1

Из условия у Е получим систему линейных алгебраических уравнений (СЛАУ)

771

 

 

^ Л*(пЬ п 0 = Ь г-(»1г,®),

г = 1 , ттг,

(8.26)

fc=i

 

 

для нахождения коэффициентов А*>, к = 1, тп. При линейно независимых векторах гг* определитель этой СЛАУ отличен

от нуля, так что она однозначно разрешима относительно коэффициентов А*. Для этого решения подстановка (8.25) в (8.19) с учетом (8.26) дает

 

771

771

771

iz У)® У) =

^ ' At {z ~ ®> Л») + ^ ^ At ^ ] Ак(«•£, Пг) =

 

г=1

г=1

fc=l

 

m

m

 

= -

^2 A* ibi -

(*> n »)) + ] C

A* (bi - ( n »> * ) ) = °>

 

i=l

t=l

 

т.е. неравенство (8.19) выполнено для любых z € ft.

Пусть векторы щ, г = 1 , «г, являются строками прямоуголь­

ной матрицы А размера тпхп.

Тогда систему (8.26) можно

записать

в виде

ААТА = Ъ- Ах,

где А = (Ai

Am)T, Ь =

= (Ь\

Ътп)

Так как строки матрицы А линейно незави­

симы, то, согласно лемме 8.1 , матрица АА* невырождена. По­

этому А = (А 4Т)- 1 (Ь -

Ах), а

 

 

 

 

у = Ра( х ) = х - Ат(ААт)~1(Ах -

Ь).

(8.27)

Пример 8.6. Если допустимое множество является «-мер­

ным параллелепипедом П = {ж g Rn: aj ^ Xj ^ bj, j

= 1 , « } , где

a,j и bj — заданные

числа,

то координаты проекции у =

= (yi, . . . , уп) G П точки х = ( x i ,

. . . , х п Кп)

на множество П

можно представить в виде

 

 

 

 

 

aj 5

Xj

^

CLj j

 

 

 

< Xj,

dj

^

Xj

b j ,

 

 

 

Xj

^

b j ,

 

 

 

Тогда для координат любой точки z = (z\, ..., zn) ft справед­ ливы неравенства ( z j - y j ) ( x j- y j ) < 0, j = 1, n. Суммируя эти неравенства no j от 1 до п и учитывая формулу для стандарт­ ного скалярного произведения в Еп, приходим к (8.19).

8.4. М е т о д п роекц и и то ч к и на м н ож еств о

Сочетание метода градиентного спуска, используемого при безусловной минимизации целевой функции, и операции про­ ектирования точки на допустимое множество Cl составляет существо метода проекции точки на множество, приме­ няемого для решения общей задачи (8.18) нелинейного програм­ мирования. Такое сочетание позволяет на каждой к-й итерации обеспечивать соблюдение ограничений, задающих множество

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

х к = Рп(хк~ 1 + щи)к) = Рп(хк), к 'е N, х к >0, (8.28)

где х к = х к~1 + щи)к — точка, используемая в обычном мето­ де градиентного спуска, wk = —grad/о (ж*” 1) — вычисленный в точке x k~l Е Cl (на первой итерации — в выбранной на­ чальной точке х° Е Cl) антиградиент целевой функции /о (ж), х Е D (f), дифференцируемой в ее области определения D (f), а выбор значения определен используемым вариантом метода градиентного спуска. Таким образом, на каждой к-й итера­ ции в качестве следующего приближения к точке х* минимума целевой функции в соответствии с (8.28) берут проекцию х к = = Ра(хк) Е П точки х к на допустимое множество Cl.

Если С1 — замкнутое выпуклое множество, то проекцию x k = Рп(хк) Е Cl можно найти непосредственно минимизацией на множестве Cl квадратичной функции

= z e n .

В самом деле, эта функция является сильно выпуклой (см. при­ мер 3.14), а значит, и просто выпуклой. Она, согласно теоре­ ме 3.15, достигает минимума в точке х к 6 тогда и только тогда, когда выполнено неравенство (gradФ*(a:*), z х к) ^ 0.

В данном случае grad^&^z) = z x k~l —x^wk и поэтому О^ ^та.&Фк{хк), z - х к) = (хк - x k~l - x kwk, z - х к) =

= - { х к - х к, z - x k). (8.29)

Сравнивая с (8.19), убеждаемся, что точка х к минимума функ­ ции Фд:(Z ) на множестве ft является проекцией точки х к = = х к~ 1 + Kj^wk на это множество.

Различные варианты метода проекции градиента связаны со способами выбора значения в (8.28), пропорционально­ го шагу спуска в направлении антиградиента wk. Например, этот выбор можно провести, исходя из условия исчерпыва­ ющего спуска в направлении вектора wk или же, задавшись некоторым исходным значением XQ > 0, при необходимости на каждой к-й итерации уменьшать его до приемлемого значения ха;, гарантирующего сходимость последовательности {х к} к ис­ комому решению, т.е. использовать метод дробления шага.

Критерием прекращения поиска точки ж* £ ft минимума целевой функции на допустимом множестве ft С R n при приме­ нении метода проекции градиента служат те же условия вида (4.18) и (4.19), что и в случае безусловной минимизации.

На примере решения задачи (8.1) опишем подробнее после­ довательность действий при выполнении к-й итерации вариан­ та этого метода, в котором используется исчерпывающий спуск в направлении антиградиента wk. Примем, что допустимое множество ft задано ограничением д(х) = 0 типа равенства, где д(х) — функция, дифференцируемая на множестве Rn. Графическая иллюстрация к-й итерации в двумерном случае представлена на рис. 8.8. Здесь ft есть множество точек плос­ кой гладкой кривой Г, заданной уравнением д(х) = 0.

Пусть х к~ 1 £ ft — точка, найденная на предшествующей, 1 )-й итерации (на первой итерации, к = 1 , она является выбранной начальной точкой ж0 £ ft). После вычисления ан­ тиградиента wk= — grad /о (ж*-1) в точке ж*"1, ортогонального линии уровня /о(ж) = fo{xk~l) целевой функции /о(ж), проведем

исчерпывающий спуск в направлении антиградиента до точ­ ки х к касания прямой спуска с линией уровня /о (х) = fo{xk) (см. рис. 8.8). Поскольку д(хк) = d ф 0, то ограничение типа равенства, задающее допустимое множество fi, нарушено. Для завершения к - й итерации и нахождения точки х к необходимо спроектировать точку х кна множество Q. В данном случае это означает, что нужно найти точку плоской кривой Г, наименее удаленную от точки х к. Так как функция д(х) дифференци­ руема, то можно доказать, что точка* х к будет основанием кратчайшего перпендикуляра, опущенного из точки х к на кри­

вую Г (см. рис. 8.8). Отметим, что

проекция точки х к на

кривую Г в общем случае может быть не единственной.

Аналогичную последовательность действий можно выбрать

и в случае, когда допустимое множество

задано ограничением

типа неравенства д(х) ^ 0, где функция д(х) дифференцируе­ ма в Rn. На рис. 8.8 это множество — часть плоскости, огра­ ниченная кривой Г, которая описывается уравнением д(х) = 0. При д(хк) = d > 0 имеем х к £ $7, так что геометрически про­ екция точки х к на множество Q снова является основанием кратчайшего перпендикуляра, опущенного из этой точки на кривую Г.

Рассмотрим условия сходимости последовательности {ж*}.

Теорема 8.1 . Если — замкнутое выпуклое множество, а целевая функция /о (ж) на этом множестве ограничена снизу, непрерывно дифференцируема и для любых аз, у £ П удовлетво­

ряет условию

|grad/о(ж) -g ra d f 0{y)\ < L\x-y\, L > О,

(8.30)

то при любой начальной точке х° £ О для релаксационной последовательности {жк}, построенной по формуле (8.28), где

0 < £о ^ Xk ^ тттГ) £ > 0, верно равенство lim |a?fc_1 хк\=

= 0. Если при этом множество Хо = £ fi: /о(ж) ^ /о(ж0)} ограничено,. то такая последовательность имеет хотя бы одну предельную точку аз*, в которой для любых х £ Q выполнено неравенство

(grad/0(®*), х — х*) ^ 0.

(8.31)

◄В силу леммы 4.4 из неравенства (4.26) при х = а :*-1 а у = х к имеем

/о(®*-1) - fo(xk) ^ (grad/о (аз*- 1 ), а:*- 1

- х к) -

-^ \ х к- 1

- х к\2, к е N. (8.32)

Из равенства (8.28) при wk= —grad/о (ж*-1) и свойств операции проектирования точки на множество (см. 8.3) вытекает, что для любой точки х £С1

(grad/o(xfc 1)^х —х к)'^ — (хк 1 —х к,х —х к),

к е N.

(8.33)

Отсюда при х = х к 1 и хг* < 2 /(L + 2е) получим

 

 

(grad/о (ж*-1), ж*- 1 - х к) > lxk' 1Jk X>C{2

I*"- 1 -

* Т

Подставляя это неравенство в (8.32), находим

 

 

/о(ж*-1)-/о(ж*)^е|ж*-1-аз*|2, ж*еП,

к е N.

(8.34)

Так как последовательность {ж*} является релаксационной, т.е. fo(xk) ^ fo(xk~1), то последовательность {/o (* fc)} невоз­ растающая и ограничена снизу в силу огранйченности снизу функции /о(ж) на множестве П. Согласно признаку Вейер-

штрасса сходимости монотонной ограниченной последователь­ ности [I], последовательность {/o (* fc)} сходится к некоторому конечному пределу /* > —оо. Поэтому после суммирования обе­ их частей (8.34) по к 6 N получим

ОО

/о(аз°) - /* > е ^ ж * -1 - *fc|2

к= 1

Это неравенство означает, что ряд в его правой части сходится [IX]. Следовательно, так как е > 0, то

lim |®fc-1 -ж * I = 0.

(8.35)

Если множество Хо ограничено, то все элементы х к релакса­ ционной последовательности {ж*} принадлежат этому множе­ ству, т.е. {ж*} является ограниченной последовательностью и, согласно теореме Больцано — Вейерштрасса [I], имеет хотя бы одну предельную точку ж*, которая будет пределом при кг-ь оо некоторой подпоследовательности {ж**}, выделенной из {х к}. Тот же предел в силу (8.35) имеет и подпоследовательность {ж**-1}. Поэтому, переходя в (8.33) к пределу при к = к{ -> оо, с учетом непрерывности grad/о (ж) приходим к (8.31). ►

Можно показать*, что если выполнены все условия теоре­ мы 8.1 и, кроме того, функция /о(ж) выпукла на допустимом множестве П, то справедлива оценка 0 < fo(xk) - /* < С/к, к € N, С = const > 0. Если же при этом целевая функция сильно выпукла и при построении при помощи (8.28) релакса­

ционной последовательности {х к}

выполнено условие 0 < £Q ^

^ щ = х < 27/L 2, где

7 ^ 1 / —

параметр

сильной выпукло­

сти функции /о(ж), то

последовательность

{х к} сходится к

точке ж* минимума целевой функции на множестве Q, и спра­ ведлива оценка \хк х*\ ^ qk\x° —ж*|, к Е N, причем 0 < q = = (1 27Х + х 2!/2)1/ 2 < 1 . Отметим, что при выборе х = 7 /L 2 знаменатель геометрической прогрессии принимает минималь­ ное значение q = (1 - 7 2 /L2)1/2.

*См.: Васильев Ф.П.

Проиллюстрируем возможности метода проекции точки на множество на конкретном примере.

Пример 8.7. Минимизируем квадратичную целевую функ­ цию

fo(xi,X2 ) = lOxf — 4iiX2 + 7a:2 —4\/5(5®1 — 22) — 16

на допустимом множестве

fi = {(zi, 22) € К2: х\ 22 у = О}.

В качестве начальной точки выберем х° = (0, —>/5) и исполь­ зуем два правила выбора значения щ в (8.28): постоянные значения х = 0,1 (рис. 8.9, а) и х = 0,05 (рис. 8.9,6) и выбор = Хк в процессе исчерпывающего спуска (рис. 8.9, в).

На каждой к-й итерации проектирование точки х к на мно­ жество Q, выполняем в соответствии с (8.23) по формуле

х к = Ра(хк) = х к + (Ь -(п ,х к))п,

(8.36)

где b= i/5 /2 и п = (1 / - / 2, —1 /%/2) — нормальный вектор пря­ мой, заданной уравнением х\ 22 у= 0. Условием прекра­ щения поиска точки х* = (2 *, 2 ^) минимума целевой функции является выполнение неравенства \хкх к~1\< е\ = 0,01, после чего принимаем х* « х к и /(a:*) « f{x k).

Точное решение рассматриваемой задачи дает аз* = (-/5, 0) и /(ж*) = —66, причем у/Ъ« 2,2361 с точностью 5 •10-5 . Ре­ зультаты численного решения, представленные в табл. 8.2, по­

казывают, что по числу N

 

 

 

Таблица 8.2

итераций и достигнутому

 

 

 

приближению к точке аз* в

 

N

x N

данном примере предпочте­

 

X II о

 

6

(2,234, -0,002)

ние следует отдать вариан­

О

ту метода проекции точки

х = 0,05

7

(2,235,

-0,001)

с использованием исчерпы­

Хк

 

4

(2,236,

0,000)

вающего спуска.

 

 

 

 

 

Обратим внимание на различие в траекториях поиска точки х * при постоянных значениях х (см. рис. 8.9, а и б). Видно, что при большем из двух значений (при х = 0,1 ) точка минимума целевой функции достигнута за меньшее число итераций.

а

б

в

Рис. 8.9