- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •1. ЗАДАЧИ ОПТИМИЗАЦИИ
- •1.1. Основные понятия
- •1.2. Некоторые простые примеры
- •1.3. Задачи оптимального проектирования
- •1.4. Задачи оптимального планирования
- •1.5. Классы задач оптимизации
- •Вопросы и задачи
- •2. МЕТОДЫ ОДНОМЕРНОЙ МИНИМИЗАЦИИ
- •2.1. Предварительные замечания
- •2.3. Оптимальный пассивный поиск
- •2.4. Методы последовательного поиска
- •2.5. Сравнение методов последовательного поиска
- •2.6. Методы полиномиальной аппроксимации
- •2.7. Методы с использованием производных
- •Вопросы и задачи
- •3. МИНИМИЗАЦИЯ ВЫПУКЛЫХ ФУНКЦИЙ
- •3.2. Выпуклые функции
- •3.4. Условия минимума выпуклых функций
- •3.5. Сильно выпуклые функции
- •ф{t) = (grad/(а; + th), h)
- •3.6. Примеры минимизации квадратичных функций
- •3.7. Минимизация позиномов
- •Qj = '%2aijci = Q> J = !.*»•
- •Вопросы и задачи
- •4. ЧИСЛЕННЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ
- •4.1. Релаксационная последовательность
- •4.2. Методы спуска
- •4.4. Минимизация квадратичной функции
- •4.5. Сопряженные направления спуска
- •5. АЛГОРИТМЫ МЕТОДОВ ПЕРВОГО И ВТОРОГО ПОРЯДКОВ
- •|iufc|
- •5.3. Метод Ньютона
- •5.4. Модификации метода Ньютона
- •5.5. Квазиньютоновские методы
- •Вопросы и задачи
- •6. АЛГОРИТМЫ ПРЯМОГО ПОИСКА
- •6.1. Особенности прямого поиска минимума
- •6.2. Использование регулярного симплекса
- •6.4. Циклический покоординатный спуск
- •6.5. Метод Хука — Дживса
- •Щ + bjej,
- •6.6. Методы Розенброка и Пауэлла
- •Вопросы и задачи
- •7. АНАЛИТИЧЕСКИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •7.2. Минимизация при ограничениях типа равенства
- •7.4. Седловая точка функции Лагранжа
- •7.5. Двойственная функция
- •7.6. Геометрическое программирование
- •Вопросы и задачи
- •8. ЧИСЛЕННЫЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •8.1. Метод условного градиента
- •8.2. Использование приведенного градиента
- •8.5. Метод проекции антиградиента
- •СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
- •ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
- •ОГЛАВЛЕНИЕ
- •Математика в техническом университете Выпуск XIV
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
Характерное зигзагообразное движение на рис. 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Т |
и ) = - \ ТА + р |
Следовательно, рн = 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