
- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •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
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
Отметим, что применение исчерпывающего спуска при ми нимизации рассматриваемой функции приводит к аналогичным результатам (рис. 4.10). Покажем, что в общем случае целевой
функции f(x) = i (Qx, ж), х Е К71, метод наискорейшего спуска
на каждой k-и итерации и исчерпывающий спуск эквивалентны, т.е. точка х к при спуске из произвольной точки х к~1 ф 0 по на правлению антиградиента wk = —g r a d /^ " 1) = —Qxk~l ф 0n будет одна и та же. Для доказательства этого сначала вычи слим градиент функции в точке х к = х к~1 + x kwk\
grad f { x k) = Qxk = Qxk~l + x kQwk = - w k+ x kQwk.
Умножим это равенство скалярно на вектор wk и учтем усло вие (4.45) исчерпывающего спуска. В результате получим (grad/(x/c), wk) = - (wk, wk) + x k(Qwk, wk) = 0 . Отсюда на ходим единственное значение
(ги^ги*) |
\ w k\2 |
(4.55) |
(Qwk1wk) |
k e N. |
|
(Qwk, wk) ’ |
|
4.5. Сопряженные направления спуска
Продолжим рассмотрение методов минимизации на приме ре квадратичной формы (4.49). Обратимся к более общему рекуррентному соотношению (4.20), записав его в виде
х к = x k~l + якрк, к € N, |
(4.56) |
где > 0, к Е N; ркЕ Шп — вектор, определяющий направление спуска на к-й итерации; щ\рк\— шаг спуска. Пусть снова выбрана произвольная начальная точка сс° Е К п , в которой для функции (4.49) имеем антиградиент w l = — grad/(ж 0) = — Qx°. Для первой итерации (k = 1) в соответствии с (4.56) запишем х 1 = х° + x ip 1. Отсюда видно, что точки ж* = 0 минимума квадратичной формы (4.49) можно достичь из произвольной точки х° за одну итерацию (т.е. х 1= ж*), если выбрать н\р1= = —х° = Q~lw x. При этом направление спуска, вообще говоря, не совпадает с направлением антиградиента (совпадение имеет место, например, в случае единичной матрицы Q).
Отметим, что для функции /(ж) = ^(Qx, х) матрица Гессе
Н постоянна и совпадает с матрицей Q. Поэтому при к\р1 = = Q~lw x = — Q_ 1 grad/(x°) можно написать
х 1 = х° + xi р 1 = х° + Q~lw l — х° —jH'“ 1 grad/(x°).
Это равенство представляет собой запись первой итерации ме тода Ньютона решения системы уравнений grad/(ж ) = 0, т.е. нахождения стационарной точки функции /(ж). В данном слу чае в силу положительной определенности матрицы Гессе Н = Q в стационарной точке функция /(ж) достигает наименьшего значения.
Таким образом, исчерпывающий спуск в направлении, опре деляемом вектором —Q_ 1 grad/(x°) = Q~lw l и обычно называ емом ньютоновским направлением спуска, эквивалентен итерации метода Ньютона. При этом точка минимума положи тельно определенной квадратичной формы может быть найдена за одну итерацию, однако для этого нужно располагать матри цей Я - 1 = Q "1, обратной к матрице Q квадратичной формы. Поскольку обращение матрицы (особенно высокого порядка п) является трудоемкой задачей, представляет интерес попытка сохранить преимущество изложенного подхода, но избежать обращения матрицы Q.
Возвращаясь к рис. 4.10 (см. также рис. 4.3), обратим вни мание на то, что последовательность исчерпывающих спусков в направлении антиградиента образует зигзагообразную траек торию приближения к точке минимума, причем все соседние звенья ломаной ортогональны. Это закономерно, поскольку прямая в направлении антиградиента wk на к-й итерации явля ется касательной к линии уровня f(x) = f ( x k), а направление антиградиейта wk+l на (к + 1 )-й итерации перпендикулярно этой касательной. Но исчерпывающий спуск в направлении лю бого вектора р^, приводящий в точку х к, даст аналогичный результат: антиградиент wk~t'1 = —gr&df(xk) в этой точке бу дет ортогонален вектору рк) т.е.
(ги*+1, рк) = ~(grad/(a;/c),p fc) = 0, к€ N. |
(4.57) |
Это равносильно условию завершения исчерпывающего спуска в точке, в которой производная функции f(x) по направлению вектора рк равна нулю. Для функции f(x) = |(Qx, х) соотно шение (4.57) принимает вид
(grad f ( x k),pk) = (Qxk,рк) = 0, |
к е N. |
(4.58) |
Если известны собственные векторы у 1 |
и у 2 |
матрицы Q |
второго порядка, то при произвольной начальной точке ж0 = = (ж^, ж!]) G М2 любая последовательность всего двух исчер пывающих спусков в направлениях, коллинеарных этим векто рам, приводит в точку х* минимума функции f(x) двух пере менных, т.е. зигзагообразная траек тория состоит всего из двух звеньев.
В самом деле, пусть сначала исчерпы вающий спуск коллинеарен вектору у 1 (рис. 4.11), который соответствует меньшему собственному значению Ai матрицы Q (поэтому вектор у 1 парал лелен оси, проходящей через фокусы
эллипсов, являющихся линиями уровня функции f{x)). При этом точка касания прямой спуска и линии уровня f(x) = f { x l) будет лежать на оси симметрии, параллельной вектору у 2. По этому второй исчерпывающий спуск вдоль этой оси приведет в точку ж*.
Ясно, что такой способ нахождения точки минимума не трудно обобщить на n-мерный случай, хотя для реализации этого способа сначала нужно будет решить громоздкую зада чу на собственные значения матрицы Q порядка п. Естествен вопрос: нельзя ли избежать нахождения собственных векторов матрицы Q, но все же сократить количество итераций при по иске точки минимума?
Рассмотрим этот вопрос снова на примере двумерной за дачи для квадратичной формы f(x) = ^(фж, ж). Выберем на чальную точку х° и произвольное направление спуска, опре деляемое вектором р1, не обязательно сонаправленным анти
градиенту ги1 = —Qx° |
функции f(x) в этой точке, |
но соста |
|
вляющее с ним острый угол, т.е. |
|
|
(Q x°,pl) < 0. Проведя из точки |
|
|
ж0 в этом направлении исчер |
|
|
пывающий спуск, получим точ |
|
|
ку ж1 на линии уровня /(ж ) = |
|
|
= /(ж 1) (рис. 4.12). |
Затем вы |
|
берем точку ж0, не лежащую на |
|
Рис. 4.12 |
прямой, проходящей через ж0 и |
|
ж1, но такую, что (Q x°,pl) <0, |
и проведем исчерпывающий спуск из точки ж0 в том же напра влении р 1. В результате получим точку касания ж1 на линии уровня /(ж) = f i x 1). Оказывается, что для получения искомой точки минимума достаточно провести исчерпывающий спуск из точки ж1 (или из точки ж1) в направлении р2, коллинеарном вектору ж1 —ж1 (см. рис. 4.12).
Убедимся в этом, показав, что точки ж* = 0, ж1 и ж1 лежат на одной прямой, т.е. векторы ж1 — ж* и ж1 — ж* коллинеарны.
Умножим каждый из них скалярно на ненулевой вектор Qpl и, учитывая, что матрица Q симметрическая, получим (Qx},рг) и (Q 51, р 1). Каждое из этих скалярных произведений является производной функции /(ж) по направлению вектора р 1 в точках завершения исчерпывающего спуска и поэтому в соответствии с (4.58) равно нулю. Так как эти векторы порознь ортогональ ны ненулевому вектору, то они коллинеарны.
Итак, два исчерпывающих спуска по несовпадающим па раллельным прямым позволяют найти направление, исчерпы вающий спуск по которому приводит в двумерном случае к искомой точке минимума. Описанный способ можно немного видоизменить. Выберем направление р 1 исчерпывающего спус ка, совпадающее с одним из векторов стандартного базиса в М2, например с е1, и такую начальную точку ж0 Е Ш2 на линии уровня /(ж ) = /(ж 0) = Со, что (Qx°, е1) < 0 (рис. 4.13). В ре зультате исчерпывающего спуска получим точку х 1 на линии уровня /(ж) = /(ж 1) —С1 < СоЗатем положим^ж0 = ж1 4- те2, г ф 0. Точка ж0 линии уровня /(ж) = /(ж 0) = Со не лежит на прямой проведенного исчерпывающего спуска в силу ортого нальности векторов е 1 и е2, но число т следует выбрать так, чтобы (Q 2J° , е 1) ф 0 (иначе из этой точки не удастся прове сти второй исчерпывающий спуск в направлении, параллельном первому направлению). После проведения такого спуска при-
дем в точку ж1 на линии уровня f(x) = f i x 1) = С\ < Со- Теперь для нахождения точки х * достаточно выполнить исчерпыва ющий спуск из точки х 1 (либо из точки х 1) в направлении р2, коллинеарном вектору ж1 — ж1 (см. рис. 4.13). Проверку этого утверждения можно провести аналогично предыдущему случаю.
Таким образом, точку минимума в двумерном случае можно найти, выполнив всего три итерации. Есть ли еще возмож ность уменьшить число итераций? Такая возможность осно вана на существующей зависимости между направлением р 2 завершающего исчерпывающего спуска в точку ж* минимума и параллельными направлениями двух предшествующих спусков, коллинеарными вектору р1. Эту зависимость можно выразить соотношением
{Qp\p2) = 0, |
(4.59) |
верным в силу того, что
(Qp2,? 1) =±(Q ® \ P 1) =F (Q®1,? 1)
при p 2 = ± { x x —ж1), а каждое из скалярных произведений в правой части этого равенства в соответствии с (4.58) равно нулю.
Следовательно, при помощи (4.59) точку минимумах* функ ции f[x) = ^ (Q x,x) м о ж н о найти за две итерации. Сначала выполним исчерпывающий спуск в произвольном направлении, определяемом вектором р 1, из такой точки х°, что (Qx°, р 1) <
<0, и найдем точку ж1. Затем из (4.59) определим вектор р2 и
внаправлении, коллинеарном этому вектору, из точки ж1 осу ществим исчерпывающий спуск в искомую точку минимума.
Подробнее остановимся на процедуре нахождения вектора р2. Прежде всего вычислим Qx1. Если Q xl = 0, то ж1 — ис комая точка минимума. При Qx1 ф 0, полагая р 2 = jip 1 —Q x1, умножая это равенство скалярно на вектор Qp1 и используя
(4.59), получаем (Qp1, 71р 1 —Q x1) = 0, откуда
_ (QP 1, Q x1)
71(Qp1,?1)
Вчастном случае может быть 71 = 0, и тогда р 2 = —Q x1 ф 0. Отметим, что р2 ф 0 и при 71 ф 0. Иначе Qx1 = 71р1 и с учетом (4.58) мы имели бы \Qxl\2 = 71 (Qcc1, р 1) = 0, что противоречит принятому условию Qx1 ф 0. Направление исчерпывающего спуска, коллинеарное вектору р2, зависит от знака производной (Qxl,p2) минимизируемой функции в точке х х по направле нию этого вектора. Если (Qcc1, р2) < 0, то спуск происходит по направлению вектора р2, а если (Qxl,p2) > 0, то в противопо ложном направлении.
Векторы р 1 и р2, удовлетворяющие условию (4.59), называ ют сопряженными относительно матрицы Q (или Q-ортого- нальными), а направления, определяемые такими векторами,
сопряженными направлениями. Понятие сопряженности векторов является обобщением понятия их ортогональности. Действительно, если Q = / 2? то (4.59) переходит в условие орто гональности векторов р 1 и р 2. Дадим соответствующее опре деление для системы векторов в n-мерном евклидовом арифме тическом пространстве W1.
Определение 4.1. Ненулевые векторы р 7Е Kn, j = 1, га, на зывают сопряженными относительно симметрической матрицы Q порядка п (или Q-ортогональными), если справедливы равен ства
('QP \ Р0 = 0, г, j = I“ m, г ф j. |
(4.60) |
Лемма 4.5. Система т векторов р 7 G Mn, j —1, m, сопря женных относительно положительно определенной матрицы Q порядка п, линейно независима.
◄ Предположим обратное. Тогда существует нетривиальная линейная комбинация этих векторов:
771 |
|
$ > У = 0, |
(4-61) |
3= 1
в которой среди коэффициентов aj есть ненулевые, например сц ф 0. Умножим обе части (4.61) скалярно на Qpl и с учетом (4.60) получим сч(фрг,р г) = 0 . Но положительно определен ная квадратичная форма (Qp, р) для ненулевого вектора р — р1 имеет положительное значение. Следовательно, а* = 0, что при водит к противоречию и доказывает лемму. ►
Замечание 4.4. Ясно, что изменение направления некото рых из векторов, сопряженных относительно матрицы Q, на противоположное, не нарушает условия (4.61). Поэтому если система п векторов р 7 Е Mn, j = 1, п, является сопряженной от носительно матрицы Q, то сопряженной является и система
j = ПРИ любом сочетании знаков перед векторами. При проведении исчерпывающего спуска в направлении, коллинеарном некоторому вектору рк из системы сопряженных векторов, выбор конкретного направления, как и в случае ми нимизации квадратичной функции двух переменных, зависит от знака производной этой функции в начальной точке спуска по направлению этого вектора. Далее для определенности при мем, что это конкретное направление исчерпывающего спуска из двух возможных векторов ±рк всегда задает вектор рк.
Отметим, что для произвольной системы линейно незави симых векторов G К71, j = 1,п, можно построить, исполь зуя процесс, аналогичный процессу ортогонализации Грама — Шмидта, систему векторов, сопряженных относительно поло жительно определенной матрицы Q (систему Q-ортогональных векторов). Выбирая разные системы Q-ортогональных векто ров, мы получаем разные методы сопряженных направлений.
Теорема 4.8. Точку минимума функции f(x) = i (Qcc, х) с
положительно определенной матрицей Q можно найти не более
чем за п итераций, определяемых рекуррентным соотношением x k = x k~l + Xfcpfc, к = 1 , п, где рк 6 Кп — векторы, сопряжен ные относительно матрицы Q, если на /с-й итерации задавать
значение |
по формуле исчерпывающего спуска |
|
|
|
(О х°,рк) |
___ |
|
|
X k = (Qpk,Pkr |
к = 1,п’ |
(4’62) |
◄Из рекуррентного соотношения для х к получим |
|
||
|
к |
|
|
|
х к = х° + ^ |
Х{р\ |
(4.63) |
|
2=1 |
|
|
Вычислим градиент grad f(x) = Qx минимизируемой функции /(ж) в точке х к:
к
Qxk = Qx° + ^2 *iQpl-
2= 1
Умножая обе части последнего равенства скалярно на вектор рк и учитывая (4.60), находим
к
(Qxk, рк) = (Qx°, рк) + >4{Qp\ рк) = |
рк) + Хк(Qp\ рк) ■ |
2=1 |
|
Отсюда следует равенство (4.62), поскольку в случае исчерпы вающего спуска в направлении ркв соответствии с (4.58) имеем
(Qxk,pk) = 0. |
___ |
Согласно лемме 4.5, |
векторы рг € Мп, г = 1 , п, линейно не |
зависимы и их количество равно размерности линейного про странства. Поэтому они образуют базис в Rn. Значит, любой вектор в Rn можно разложить по системе векторов рг, г = 1 , гг. В частности, имеет место представление
х* - х ° = '^2кр1 |
(4.64) |
*=1
с некоторыми коэффициентами Ь{. Так как функция /(ж) сильно выпуклая, то необходимым и достаточным условием достижения ею наименьшего значения в точке х * является равенство grad/(ж*) = Qx* = 0. Тогда из (4.64) имеем
п
Qx* - Qx° = -Q x ° = '£ ,biQPi i=1
Умножая это равенство скалярно на вектор рк и учитывая (4.60), получаем —(Qx°,pk) =bk(Qpk,pk). Отсюда следует, что Ъь —щ, к = 1, п. Таким образом, коэффициенты разложе ния в (4.64) совпадают со значениями щ на первых п итераци ях. Поэтому точку х* можно найти не более чем за п итераций вида х к = х к~1+ ?СкРкчк = 1 , п, что равносильно (4.64). ►
Замечание 4.5. Число итераций при поиске точки ж* мо жет быть меньше п. Дело в том, что при выборе начальной точки возможна такая ситуация, что (Qx°,pk) = 0 для одного или нескольких номеров к. В этом случае из (4.62) следует, что на к-й итерации х ^ О и поэтому х к = х к~1, т.е. к-я итерация, по существу, не проводится.
Замечание 4.6. Используя (4.64) при Ь{ = щ, г = 1,п, и (4.62), с учетом равенства QT = Q и правил выполнения ма тричных операций можно написать
X —X у * |
(Qg 0.P*) i = X |
( у * р У ) т Qx° |
“ |
(QP S P *) р |
\ f r ! ( Я р \ р 1) |
Поскольку в рассматриваемом случае х* = 0, то при произволь ном выборе точки ж0 приходим к выводу, что
Q~l |
P V T _ |
(4.65) |
|
(QP S P T
т.е. система векторов рг, г = 1 , гг, сопряженных относительно положительно определенной матрицы Q, позволяет достаточ но просто построить матрицу Q-1, обратную к Q. В данном
случае Qx° = grad f(x°) и поэтому можно заключить, что п ите раций, проводимых при помощи (4.62) и (4.63), эквивалентны одной итерации х* = х° —Q_ 1 grad/(x0) метода Ньютона, но требующей предварительного нахождения матрицы Q-1 , на пример, используя (4.65). Однако система сопряженных век торов рг, г = 1 , п, заранее обычно не известна, и ее строят тем или иным способом последовательно в процессе проведения ите раций (см. 5 й 6). В частности, такой путь используют при решении системы линейных алгебраических уравнений Qz = —с с положительно определенной матрицей Q, поскольку эта зада ча эквивалентна задаче минимизации квадратичной функции F{z) вида (4.48). #
Рассмотренные выше подходы к решению задачи миними зации квадратичной функции служат основой для построения многочисленных итерационных алгоритмов безусловной мини мизации неквадратичных целевых функций. Наиболее употре бительные из этих алгоритмов рассмотрены ниже (см. 5 и 6).
Вопросы и задачи
4.1.Перечислите методы численного решения задач много мерной безусловной минимизации в зависимости от наибольше го порядка производных целевой функции, вычисление которых предусмотрено в этих методах.
4.2.Дайте определение релаксационной последовательности {х к} точек х к Е W1 Каковы особенности методов спуска, что является характеристикой их скорости сходимости? Как про водить оценку эффективности методов спуска? Перечислите алгоритмы, обладающие свойством квадратичной сходимости, на примере решения задачи минимизации сильно выпуклой ква дратичной функции.
4.3.Дайте определение векторов р 7 Е Kn, j = 1,п, сопря женных относительно симметрической матрицы Q порядка п.
Покажите, что если Q — положительно определенная матрица, имеющая п различных собственных значений, то собственные векторы этой матрицы, отвечающие различным собственным значениям, являются сопряженными относительно Q.
4.4. Проанализируйте на примере поиска минимума ква дратичной функции с положительно определенной матрицей Q, имеет ли значение тот порядок, в котором выбираются направления исчерпывающего спуска в методе сопряженных направлений. Можно ли осуществлять поиск минимума квадра тичной функции в одном и том же направлении более одного раза?
4.5. Решите задачу минимизации функции f( x 1,^2) =х\ + + х\ —8(дт1 + #2), используя различные стратегии поиска по сопряженным направлениям, описанные в 4.5, и выбирая в ка честве начальной точки (0, 1) и (0, 0). Установите, влияет ли выбор начальной точки на количество итераций при поиске точки минимума. Сравните полученные результаты с вычи слениями по методу наискорейшего спуска и методу Ньютона. Можно ли с применением этих методов получить точку ми нимума при указанных начальных точках за конечное число итераций? Если да, то чему равно это число итераций? Дайте графическую иллюстрацию полученных результатов.