
- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •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
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
При этом для любого из рассмотренных выше способов выбора
в (5.14) значения |
справедлива оценка |
\xkK |
- x * \ K + l, ken, С = const. |
При К = 1, т.е. при иобновлении“ матрицы Гессе на каждой итерации, эта оценка равносильна (5.20), а при довольно редком ?5обновлении“, т.е. при больших значения АГ, она приближается к (5.22).
5.5. Квазиньютоновские методы
Среди алгоритмов многомерной минимизации следует вы делить группу алгоритмов, которые объединяют достоинства
метода наискорейш его спуска и мет ода Ньютона. Такие ал
горитмы принято относить к так называемым к в а з и н ъ ю т о - н о в ск и м м ет о д а м . Особенность этих алгоритмов состоит в том, что при их применении нет необходимости вычислять и обращать матрицу Гессе целевой функции f{x ) и в то же время удается сохранить высокую скорость сходимости алгоритмов, присущую методу Ньютона и его модификациям (см. 5.3 и 5.4).
Элементы релаксационной последоват ельност и {х к} в ал горитмах квазиньютоновских методов минимизации непрерыв но дифференцируемой в Шп целевой функции f(x ) строят в соответствии с рекуррентным соотношением х к= х к~ 1 + щ рк, но направление спуска на каждой /с-й итерации задают в виде
pk = - Akgradf(xk- 1) = Akwk, к е N. |
(5.23) |
Здесь w k = — grad f{x k~l) — антиградиент целевой функции в точке х к~1, &Ак — положительно определенная матрица поряд ка п, обновляемая на к - й итерации. Отметим, что направление, задаваемое на каждой /с-й итерации вектором р к (5.23), явля ется направлением спуска, так как с учетом (5.23)
(grad/( * fc_1),pfc) = - ( w k,A kwk) < 0.
Матрицы {Ak} определяют таким образом, чтобы последо вательность {Ak} при к —Уоо имела предел, равный i f - 1 (ж*), где Н(х*) — матрица Гессе целевой функции, вычисленная в точке минимума х* этой функции.
На к-й итерации алгоритма поиска точки минимума про исходит спуск из точки х к~х с шагом спуска щ\рк\, причем значение щ выбирают путем исчерпывающего спуска в напра влении вектора рк. На первой итерации (к = 1) спуск начинают из выбранной начальной точки х° и при этом обычно в ка честве А\ берут единичную матрицу 1п порядка п. Отметим, что в этом случае р1 = ги1 = — grad/(x°), т.е. первая итерация алгоритма квазиньютоновского метода полностью совпадает с итерацией метода наискорейшего спуска (см. 5.1). Если при нять А^ = H~l (xk~l) в (5.23) и щ = 1 в (5.14), то придем к „классическому41 методу Ньютона (см. 5.3).
Как было отмечено выше (см. 5.3), если целевая функция является сильно выпуклой, то алгоритмы метода Ньютона обла дают квадратичной скоростью сходимости. Поэтому можно ожидать, что алгоритмы квазиньютоновских методов будут иметь достаточно высокую скорость сходимости, если на ка ждой /e-й итерации матрица Ak выбрана близкой к матрице Н~1 (хк~г) в точке х к~ 1 Е W1. Используя при конструировании матрицы Ak аппроксимацию матрицы Дг_1 (жА:“ 1) с учетом ин формации о градиенте целевой функции в той же точке х к~! , можно существенно упростить процедуру нахождения напра вления спуска на fc-й итерации. Именно эти соображения лежат в основе построения алгоритмов квазиньютоновских методов.
Остановимся на вопросе построения последовательности матриц Ak. Эти матрицы строят в соответствии с рекуррент
ным соотношением |
|
Ак+i = Ak + Д-А*, к е N, |
(5.24) |
где A Ak — положительно определенная матрица порядка п, на зываемая поправочной. Способ ее выбора определяет вариант
алгоритма квазиньютоновского метода. На первой итерации, как уже отмечалось, обычно принимают А\ = 1п.
Предположим, что f(x ) = | (Qx, х) + (с, х) — квадратичная функция с положительно определенной матрицей Q. В этом слу чае функция f(x ) сильно выпукла, grad/(cc) = Qx + c (см. 3.6),
Дwk = grad f (x k~l) —grad/(icA:) = Q(xk~l —x k),
имы можем записать
Q~lAwk = -Да;*, fceN, |
(5.25) |
где матрица Q совпадает с матрицей Гессе Н(х) функции f(x). В общем случае, проводя аналогию с (5.25), потребуем,
чтобы матрица |
в (5.24) удовлетворяла так называемому |
|
квазинъютоновскому условию |
|
|
|
Ak+1 Awk = - A x k, k e N, |
(5.26) |
а поправочную матрицу Дл4* в (5.24) выберем, исходя из условия
т.е. так, чтобы последовательность {Ак} имела при к —>оо предел, равный Н~1 (х*).
Подставляя (5.24) в (5.26), получаем &AkAwk = —А хк —
—AkAwk. Непосредственной подстановкой можно убедиться, что для любого к£ N одним из решений этого уравнения будет
матрица |
|
|
_ |
Ах куТ |
AkAwkzT |
к |
(Aw k, у) |
(Aw k, z ) ’ |
где у, z G К" — произвольные элементы из R” . Полагая у = А хк и z = Akwk, получаем с учетом (5.24) формулу
|
A xk{A xkf |
AkAwk(Awk)TAl |
fcGN, (5.27) |
|
fc+i |
к (&wk, А хк) |
(AkAwk, Дго*) ’ |
||
|
для выбора элементов последовательности {Ак}. Такой способ выбора матриц Акприводит к одному из алгоритмов квазиньютоновского типа, известного в литературе как метод Давидона — Флетчера — Пауэлла, или ДФП-метод.
Рассмотренный способ побновления41 матрицы Аь+i сохра няет ее свойство положительной определенности на каждой к-й итерации. Для того чтобы убедиться в этом, воспользуемся ме тодом математической индукции. Очевидно, что матрица А\ положительно определенная, если принять А\ = 1 п. Предполо жим, что при к > 1 матрица Ак также положительно опреде ленная, и докажем, что матрица Ak+1 в (5.27) положительно определенная.
Выберем ненулевой вектор у Е W1. Тогда с учетом (5.27) можно записать
(Ak+lV, у) = {АкУ, у) - |
(А хк(А хк)ту ,у ) |
|
(Awk, А хк) |
||
|
||
|
(AkAwk(Awk)TАтку, у) |
|
|
(5.28) |
|
|
(AkAw k, Awk) |
Из курса линейной алгебры известно [IV], что любая положи тельно определенная матрица Ак порядка п может быть пред ставлена в виде Ак = СкС^, где Ск — невырожденная нижняя треугольная матрица порядка п. Обозначив и = С ^ у и v — = C k A w k, перепишем (5.28) в виде
( А з Д у ) 2 |
{и, v f _ |
|
{А к + 1 У ,У ) = ( u , u ) - (Awk, А хк) |
(v, i>) |
|
М 2М 2—(ц , v )2 _ ( А х к , у ) 2 |
(5.29) |
|
|v|2 |
(Awk,A x k)' |
Покажем, что знаменатель второго слагаемого в правой части (5.29) отрицателен. В самом деле, учитывая, что А хк = = щ рк, а направление спуска рк на к-й итерации определяется
согласно (5.23), получаем
(Awk, A x k) = (grad/(®fc_1) - grad f ( x k), x k - x k_1) =
= -X k(gradf(xk~1),A kgradf(xk~1)) - x k(gradf(xk),p k) < < - x fc(grad/(a?fc),p fe),
поскольку по предположению индукции матрица Ak положи тельно определенная. Так как точку х к находим при помощи исчерпывающего спуска из точки х к~ 1 в направлении векто ра рк, то в соответствии со свойством (4.57) исчерпывающего спуска правая часть последнего соотношения равна нулю, т.е. (ДкД А хк) < 0.
Всилу неравенства Коши — Буняковского имеем |ii|2|t;|2 ^
^(u, v)2, причем равенство возможно лишь при и = v, что с учетом невырожденности матрицы Ск эквивалентно равенству
у= Awk. Но тогда (А х к, у ) = (Аж*, Дги^) < 0 и в итоге при любом ненулевом векторе у £ Шп из (5.29) следует, что
IA „ ,л |
М аМа- ( « ,» ) а |
(As*, у)2 |
(Ль+iir, у) |
|„]2 |
(Дw k, Да;*) > °> |
т.е. матрица Ак+ 1 положительно определенная.
К соотношению (5.23) можно прийти и из других соображе ний. Пусть А —: положительно определенная матрица порядка п. Введем в Шп наряду со стандартным скалярным произведе
нием (ж, у) скалярное произведение |
|
(®>у)л = (А х’ У)- |
(5-30) |
Из представления |
|
f{x + h)~ f(x ) = (AA~l grad/(®), h) + o(|/i|) = |
|
= (A~1 gradf{x),h)A + o{\h\)
заключаем, что в евклидовом пространстве Rn со скалярным произведением (5.30) градиент целевой функции принимает вид gradAf(x ) — A~l grad/(x). Отсюда следует, что алгоритм квазиньютоновского метода, в котором используется (5.23), можно
рассматривать как алгоритм наискорейшего спуска в меняю щейся на каждой А;-й итерации метрике р(х,у) = (А^1 х, у) при условии, что Ак — положительно определенная матрица. По этому квазиньютоновские методы иногда называют методами переменной метрики*.
Можно показать**, что если
(wk,p k) f _—
**(<3р*,р*)’
то при минимизации квадратичной функции с положительно определенной матрицей Q алгоритм ДФП-метода позволяет по лучить точку минимума не более чем за п итераций. Векторы рк, к = 1 ,п, определяющие направления спуска, являются сопря женными относительно матрицы Q и связаны сооношениями
AkQp' = Р\ |
г = ljc, к = 1“ п. |
При к = п эти соотношения |
означают, что симметрическая |
матрица AkQ имеет п собственных значений, равных единице, а такая матрица является единичной, т.е. AnQ = 1 п. Отсюда Ап = Q-1 , и, следовательно, матрица Ап является обратной к матрице Гессе Н(х*) = Q квадратичной функции, вычисленной в точке минимума х*
Отметим, что если в алгоритме ДФП-метода А\ = / п, то для квадратичной функции траектория поиска совпадает с тра екторией, полученной по методу сопряженных направлений.
Например, при минимизации квадратичной функции, рассмо тренной в примерах 5.1 и 5.3, алгоритм ДФП-метода приводит к точке х* = (—л/5) —2\/5) минимума этой функции из началь ной точки ( - 2, 1 ) за две итерации, причем траектория поиска при выборе А\ = I2 полностью совпадает с полученной в при мере 5.3 методом сопряженных направлений (см. рис. 5.4).
При минимизации целевой функции, не являющейся квадра тичной, использование ДФП-метода в общем случае не позволя
*См.: Поляк Б . Т.
**См.: А оки М., а также: Базара М Ш е т т и К.
ет найти точку минимума за конечное число итераций. Как и в методе сопряженных направлений, чтобы ослабить влияние накапливаемых погрешностей на сходимость ДФП-метода и уменьшить вероятность появления после очередных п итераций линейно зависимых направлений спуска, применяют процеду
ру v обновления “ алгоритма, в соответствии |
с которой через |
каждые п итераций в качестве матрицы |
используют еди |
ничную матрицу, т.е. полагают Amn+\ = А\ = In, m € N. Опишем алгоритм ДФП-метода в случае, когда (не ква
дратичная) целевая функция f(x ) дифференцируема в Rn. На предварительном этапе задаем значение £3 параметра точно сти поиска в условии прекращения итераций |го*| < £3 и вы бираем начальную точку х°. Принимаем А\ = / п, формируем множество 1 о = {п, 2п, ...} моментов обновления алгоритма,
полагаем k = 1 и переходим к основной части алгоритма.
1.На к-й итерации в точке ж*- 1 вычисляем антиградиент wk = — grad/(a?fc-1) целевой функции и проверяем выполнение неравенства |iufc|< £3. Если оно выполнено, то итерации пре кращаем и полагаем х* « ж*-1, /(ж*) и /(ж *-1). В противном случае переходим к п. 2.
2.Используя (5.23), вычисляем вектор рк = AkWk, опреде ляющий направление спуска из точки х к~1, и, минимизируя
функцию фк{х) = /(ж *- 1 + x Pk)i находим значение х* и точку хк = х к~ 1 + ХкРк. Если к € Jo, то принимаем Afc+i = 1п, по лагаем к := к + 1 и возвращаемся к п. 1 . В противном случае переходим к п. 3.
3. Полагаем А хк = х к —х к~к, Awk = wk+1 —wk, по формуле (5.27) вычисляем матрицу Ak+i,. полагаем к := к + 1 и возвра щаемся к п. 1 .
Как отмечено выше (см. 5.2), применение процедуры „обно вления" алгоритма увеличивает общее число итераций, необхо димых для достижения заданной точности поиска. Поэтому на практике используют варианты ДФП-метода, в которых (как и в случае метода сопряженных направлений) не используется
„обновление" алгоритма через фиксированное число итераций* Поясним суть такого подхода на конкретном примере.
Пример 5.8. Применив ДФП-метод, найдем минимум функ ции f{x\,X2 ) = (х\ —Х2) 2 + {х\ —I)2 (см. примеры 5.2, 5.5-5.7). Зададим параметр точности поиска £3 = 10_3 и выберем в ка честве начальной точку х° = (—1 , —2), в которой f(x °) = 13.
Графическая иллюстрация процесса поиска точки миниму ма х* = (1 , 1 ) представлена на рис. 5.10. Здесь первая итера ция совпадает с первой итерацией в примере 5.5, проведенной как по методу сопряженных направлений (см. рис. 5.6 , а, б), так и по методу наискорейшего спуска. В табл. 5.8 приведе ны координаты точек х к, найденных при помощи алгоритма ДФП-метода, значений f ( x k) целевой функции в этих точках, а также матрицы Ак и матрицы, обратные к матрицам Гессе Н (хк) целевой функции.
Рис. 5.10
"Подробнее см.: Пшеничный Б .Н ., Данилин Ю .М .
Таблица 5.8
к |
х к |
/(® fc) |
|
Ак |
я - 1<**) |
|
|||
1 |
(0,3787, -1,4830) |
3,0312 |
|
(J |
?)■ |
/ 0,071 |
—0,143\ |
||
|
у—0,143 |
0,786) |
|||||||
|
|
|
|
||||||
2 (0,1584, -0,1027) |
0,7246 |
/ |
0,100 -0,127\ |
/0,118 |
0,089N |
||||
V—0,127 |
0,986) |
V 0,089 |
0,567) |
||||||
|
|
|
|||||||
3 |
(0,8593, 0,5572) |
0,0526 |
/ |
0,073 -0,005\ |
/0,398 |
0,126N |
|||
V—0,005 |
0,456) |
у 0,126 |
0,540) |
||||||
|
|
|
|||||||
4 |
(0,8707, 0,7660) |
0,0168 |
|
( 0,382 |
0,382\ |
/0,367 |
0,631 N |
||
|
V 0,382 |
0,782; |
^0,631 |
1,584) |
|||||
|
|
|
|
||||||
5 |
(0,9942, 0,9708) |
3,4-10"4 |
|
/0,272 |
0,481 \ |
/0,508 |
0,885 |
\ |
|
|
\ 0,481 |
1,351) |
^0,885 |
2,040 |
; |
||||
6 |
(0,9980, 0,9964) |
4,3-10~6 |
|
/0,494 |
0,914\ |
/0,483 |
0,960 |
\ |
|
|
\0,914 |
2,160J |
V 0,960 |
2,410 |
; |
||||
7 |
(0,9999, 0,9999) |
з , з - н 10г |
|
/0,512 |
1,01б\ |
/0,500 |
0,999 |
Л |
|
|
V 1,016 |
2,516J |
у 0,999 |
2,494) |
Из результатов вычислений видно, что заданная точность поиска минимума достигнута за 7 итераций, матрицы Ai и Н~1 (х7) на конечном, седьмом шаге поиска близки друг к другу. Матрица Н~1 (х*)) вычисленная в точке минимума ж*, имеет вид
0,5 1,0
Н -\х*)
1,0 2,5
и также мало отличается от А7 и Я - 1 (ж7). Отметим, что для достижения той же точности в методе наискорейшего спуска потребовалось 96 итераций. #
Возможны и другие способы построения последовательно сти {Ak} матриц с применением (5.24). Так, например, в алго ритме квазиньютоновского метода, называемого в литературе методом Бройдена — Флетчера — Шенно, или БФШ-методом,
используют соотношение
Ak+i =Ак~ |
Д®*(Д®*)Т |
|
(Awk, А хк) |
||
|
- |
AkAwk(Awk) _Ак + pkrk(rk)T: k е N, (5.31) |
|
|
Рк |
где |
|
|
гк ~ - |
Т |
К ^ у |
в алгоритме метода Пауэлла —
где Ахк = А хк + АкAwk, к G N, а в алгоритме метода Мак-Кор- мика —
|
(Ахк+ AkAwk)(Axk)T |
А к + 1 = -А* - |
А: е N, |
|
(Awk, Ахк) |
причем, как и в случае ДФП-метода, обычно полагают А\ = /„. Можно показать, что любой из рассмотренных способов „ обновления “ матрицы Ак+\ сохраняет ее свойство положитель
ной определенности, а последовательность {-A*,} при к оо сходится к Н~1(х*).
Пример 5.9. Сравним различные алгоритмы на примере минимизации функции f(x 1,2:2) = ixi — х2) 2 + ix i — I)2, рассмо тренной в ряде предыдущих примеров. Выберем начальную точку а:0= (—1 , -2 ), в которой f(x°) = 13 и параметр точности поиска ез = 10~3. Как и в примере 5.8, в применяемых алгорит мах не будем использовать „обновление" через фиксированное число шагов.
В табл. 5.9 приведены координаты точек х к, найденных при помощи трех алгоритмов кваэиньютоновских методов. Траек тории поиска точки минимума для этих алгоритмов показаны на рис. 5.11 (о — БФШ-метод; б — метод Пауэлла; в — метод Мак-Кормика).
Таблица 5.9
N |
БФШ-метод |
Метод |
Метод |
|||
|
|
|
Пауэлла |
Мак-Кормика |
||
1 |
(0,379, |
-1,483) |
(0,379, |
-1,483) |
(0,379, |
-1,483) |
2 |
(0,158, |
-0,103) |
(0,158, |
-0,103) |
(-0,030, -0,394) |
|
3 |
(0,859, |
0,557) |
(0,859, |
0,557) |
( - 0,0 11, 0,043) |
|
4 |
(0,871, |
0,766) |
(0,871, |
0,766) |
(0,726, |
0,398) |
5 |
(0,994, |
0,971) |
(0,934, |
0,871) |
(0,966, |
0,801) |
6 |
(0,998, |
0,996) |
(0,998, |
0,989) |
(0,921, |
0,810) |
7 |
(0,999, |
0,999) |
(0,999, |
0,999) |
(0,932, |
0,883) |
8 |
|
|
(0,999, |
0,999) |
(0,995, |
1,019) |
9 |
|
|
|
|
(0,995, |
0,990) |
10 |
|
|
|
|
(0,999, |
0,999) |
Сравнительный анализ результатов показывает, что для рассматриваемой функции наилучший результат по количеству итераций, требуемых для достижения заданной точности, дают ДФП-метод и БФШ-метод. Метод Мак-Кормика по этому кри терию эффективности им заметно уступает. #
Отметим, что сравнение эффективности алгоритмов мини, мизации принято проводить на специально сконструированных функциях. Графики этих функций имеют четко выраженную овражную структуру. На рис. 5.12 представлены линии уровня унимодальной функции Розенброка
f ( x i,x2) = 100(т2 - х \ ) 2 + (1 - x i ) 2 , |
(5.32) |
а на рис. 5.13 — функции Химмельблау
f ( x i , x 2) = ( х 2 + т2 —II)2 + (®i + х 2 — 7)2, |
(5.33) |
