
- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •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
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
где хо — наибольшее из значений параметра щ (со значения хо на каждой к-й итерации начинают при необходимости дро бление шага спуска). В результате имеем
Тогда для любого т > к получим
По условию теоремы последовательность {ж771} сходится к точ ке х *. Поэтому из последнего неравенства, обозначая С =
-— |
приходим при га -» оо ко второй оценке в (4.47). ► |
1 - |
VQ |
Отметим, что условию (4.46) удовлетворяет, в частнос ти, сильно выпуклая дифференцируемая функция (см. теоре му 3.18). Кроме того, этому условию удовлетворяет любая квадратичная функция с положительно определенной матри цей, поскольку она также является сильно выпуклой функци ей (см. пример 3.13).
4.4.Минимизация квадратичной функции
Втеории численных методов многомерной оптимизации большое внимание уделено поиску минимума квадратичных функций. Применение численных методов к решению задачи оптимизации, в которой целевая функция является квадратич ной, представляет интерес по нескольким причинам.
Во-первых, эта задача имеет решение в аналитическом ви де (см. 3.6), которое можно использовать в качестве этало на при оценке погрешности численного метода и при сравне нии различных методов между собой. Во-вторых, квадратич ная функция служит своеобразным испытательным полигоном,
на котором можно проверить работоспособность численного метода (если метод малопригоден для минимизации квадратич ной функции, то, скорее всего, он будет неработоспособен, ко гда целевая функция является более сложной). Наконец, при представлении в окрестности некоторой точки произвольной дважды дифференцируемой функции формулой Тейлора мож но ограничиться членами второго порядка, т.е. аппроксимиро вать эту функцию квадратичной. Тогда задачу минимизации исходной функции удается свести к последовательности задач для аппроксимирующих квадратичных функций. Такой подход особенно эффективен применительно к функциям, имеющим в окрестности искомой точки минимума положительно опреде ленную матрицу Гессе и поэтому достаточно хорошо аппрокси мируемым сильно выпуклой квадратичной функцией. Некото рые алгоритмы, разработанные с учетом свойств квадратич ных функций, позволяют найти точку минимума за конечное число итераций.
Особое место в теории многомерной оптимизации занима ют задачи безусловной минимизации выпуклых квадратичных функций двух переменных, или двумерные задачи безуслов ной минимизации. Изучение идей конструирования вычисли тельных алгоритмов на примере решения задач двумерной минимизации позволяет наглядно, с помощью геометрических построений на плоскости, представить отличительные черты каждого метода, выявить их вычислительные свойства, обсу дить достоинства и недостатки, а также на основе результатов вычислительного эксперимента получить представление о срав нительных характеристиках различных методов.
В общем случае квадратичная целевая функция имеет вид (см. 1.5)
F(z) = ±{Qz,z) + {ctz ) t z e l T , |
(4.48) |
где Q — симметрическая матрица порядка n, а с G Rn — задан ный вектор. Пусть Q — положительно определенная матрица,
имеющая обратную матрицу Q х. Тогда функция F(z) являет ся сильно выпуклой и достигает наименьшего значения в точке z* = —Q~lc (см. 3.6), причем F(z*) = ^(с, Q_1c).
Для упрощения выкладок далее будем рассматривать в ка честве целевой функции положительно определенную квадра тичную форму
f{x) = ^{Qx,x), х € Г , |
(4.49) |
которую можно получить из (4.48) параллельным переносом прямоугольной системы координат [IV]. Функция (4.49) не отрицательна при всех ж и достигает наименьшего значения О в единственной точке ж* = 0.
Для минимизации функции (4.49) используем метод гра диентного спуска. Найдем в произвольной начальной точке х° ф х* градиент grad f(x°) = Qx° этой функции и выберем на первой итерации (k = 1) в качестве направления спуска анти градиент w l = —grad/(ж 0) = —Qx°. Тогда в соответствии с
(4.43) для следующей точки |
получим |
|
х 1 = х° + K \W 1= ж0 - |
x\Qx° = (1п - Х1(Э)ж°, |
(4.50) |
где 1п — единичная матрица порядка п.
Из (4.50) можно сделать важный вывод, в значительной степени определяющий стратегию построения эффективных численных методов безусловной минимизации: можно достичт точки ж* наименьшего значения квадратичной функции (4.49) за одну итерацию, если ж0 — один из собственных векторов у-7, j = 1, гг., матрицы Q. Тогда при выборе н\ = 1/А^, где Aj > 0 — собственное значение этой матрицы, соответствую щее собственному вектору у; , из (4.50), согласно определению собственных значений и собственных векторов матрицы [IV], получим
Ж 1= (in - |
= -JjiQv* - Хз У з ) = 0 = х* |
В двумерном случае графи ком функции f(x) = i(Qcc, х)
является эллиптический парабо лоид, а ее линиями уровня — подобные эллипсы с общим цен тром (рис. 4.5). Метод гради ентного спуска в этом случае может привести в точку (0, 0) наименьшего значения за одну
итерацию лишь при выборе на
Рис. 4.5
чальной точки на одной из осей эллипсов: в этом случае радиус-вектор точки является соб
ственным вектором положительно определенной матрицы Q второго порядка. При одинаковых значениях собственных зна чений матрицы Q графиком функции f(x) будет параболоид вращения, а линиями уровня этой функции — окружности. Здесь радиус-вектор любой точки ж0 ф х* является собствен ным, а точка наименьшего значения достигается за одну ите рацию при любом выборе начальной точки х°
Последняя геометрическая иллюстрация подсказывает, ка залось бы, простой с теоретической точки зрения путь повы шения эффективности метода градиентного спуска в случае произвольной положительно определенной матрицы Q. Для этого сначала поворотом системы координат квадратичную форму (4.49) нужно привести к каноническому виду, а затем изменением масштабов по осям новой системы координат, ба зисом которой будет система собственных векторов матрицы Q, обеспечить равенство всех диагональных элементов пре образованной матрицы. После ортогонального преобразования функция (4.49) в новой системе координат с осями 0£j, j = 1, n, примет вид
3=1
а после изменения масштабов путем замены |
j = 1, n, |
получим |
|
гг |
|
/2(о = Е <?’ с = (Сь...,Сп), |
|
т.е. квадратичную форму / 2(C) = (-ГС? С) с единичной матрицей 1п порядка п.
Минимизация функции / 2(C) методом градиентного спуска реализуется за один шаг ( х = 1), но это упрощение не оправ дывает большой трудоемкости решения задачи на собственные значения матрицы Q (особенно в случае достаточно высокого порядка п). Тем не менее такой прием полезно использовать, если график исходной квадратичной функции имеет так на зываемую овражную структуру, когда убывание функции по одному или нескольким направлениям существенно больше, чем по остальным. В двумерном случае график такой функции в окрестности точки минимума напоминает овраг с круты ми склонами и пологим дном, а линии уровня оказываются сильно вытянутыми (рис. 4.6). В этом случае преобразование, состоящее в изменении масштабов переменных и называемое масштабированием, превращает график минимизируемой квадратичной функции двух переменных в параболоид враще ния, а линии уровня — в окружности.
Рис. 4.6
Вернемся к случаю поиска минимума квадратичной функ ции f(x ) = ^ (Qx, х) с произвольным выбором начальной точки и используем вариант метода градиентного спуска с посто янным значением х^ = х —const на всех итерациях. Тогда в соответствии с (4.40) на к-й итерации получим
х к = х к~1 + HWk = х к~1- xgradЯ ® *"1) =
= x k~l — xQ xk~l = (In —xQ )xk~1, к е N. (4.51)
Последовательность {хк} будет сходиться к точке х* = 0, ес ли линейный оператор у — (In —xQ)x является сжимающим от ображ ением, для чего достаточно выполнения неравенства ||7П—xQ II = q{x) < 1- Это условие зависит от выбора нормы ли нейного оператора (нормы матрицы). В Шп часто используют спектральную норму матрицы. Для этой нормы имеем [IV]
\\In-xQ\\ = m ax{|l-xAi|, |1 - х А п|} = д (х),
где Ai, Хп — наименьшее и наибольшее собственные значения матрицы Q соответственно.
Таким образом, при выборе значения х нужно обеспечить одновременное выполнение неравенств 11 —xAi |< 1 и 11 — хАп|< < 1 . Если выбрать х Е (0, 2/Ап) в соответствии со вторым не равенством, то первое неравенство также будет выполнено, поскольку 0 < Ai ^ Ап. Для сжимающего отображения верна оценка \xk - х*\ ^ qk\x° - х*\ [I].
Поэтому для уменьшения количе ства итераций, обеспечивающих
заданную |
точность, |
желательно |
выбрать |
значение х |
так, что |
бы знаменатель д(х) |
геометри |
ческой прогрессии был наимень шим. На рис. 4.7 показаны за висимости 11 —xA i|, |1 —хАп| и q(x) от х при Ai < Хп. Ясно, что наименьшее значение д(х) соот-
ветствует равенству |1 |
— xAi| = |1 — хАп|, из |
которого при |
||
Ai < Хп заключаем, что |
1 — xAi = —(1 — хАп). |
В результате |
||
|
|
2 |
2 |
|
приходим к оптимальным значениям х* = ------г—^ — и |
||||
|
|
A i *f An |
An |
|
|
An - Ai _ |
c(Q) - 1 |
(4.52) |
|
q* = q{x*) = An + Ai |
c(Q) + 1 ’ |
|||
|
где c(Q) —An/Ai — число обусловленности матрицы Q. Для единичной матрицы 1п все собственные значения одинаковы и равны единице, так что c(In) = 1 и д* = 0. Это говорит о том, что, как уже было отмечено, точка х* достигается за одну итерацию при любом выборе начальной точки х°. Если же Q плохо обусловлена, т.е. c(Q) » 1 , то значение q* мало отличается от единицы и поэтому последовательность {ж^} сходится медленно.
Покажем, что оценку |
|
\хк- ж*| ^ qk\x° - х*\ = |
1®°-®*]? fcGN, (4.53) |
нельзя улучшить. Для этого достаточно привести пример, в ко тором эта оценка окажется точной. Положим ж0 = х* + у 1 + уп, где у 1 и уп — единичные собственные векторы матрицы Q, отвечающие собственным значениям Ai и Ап. Тогда с учетом (4.51) имеем х к—х* = (In — xQ )(xk~l —ж*), откуда, используя свойства собственных векторов [IV], получаем
х к- х * = (In - xQ)k(x° - X * ) = (ln - *Q) V + уп) =
= (1 — x\i)ky l + (1 —яХп)ку п
Следовательно,
|xfc - х *|2 = ((1 - я\г)2к + (1 - яХп)2к) fr .-y f l 2, |
(4.54) |
поскольку с учетом ортонормированности собственных векто ров |х° — х *|2 = ly1 + у п|2 = 2. Правая часть соотношения (4.54)
при х = х* = ------г— принимает значение qlk\x° —ж*|2, что при-
A i + Ап
водит к точному равенству в (4.53).
На рис. 4.8 приведена графическая иллюстрация процесса сходимости метода градиентного спуска в плоскости к точ ке минимума х* = 0 для квадратичной функции f(x ) = х\ + + 10#2 ПРИ использовании (4.51) и различных значениях х: на рис. 4.8, а х = 0,01, на рис. 4.8, б х = 0,09.
Отметим, что собственные значения для соответствующей квадратичной формы (Qcc, х) = х\ + равны Ai = 2 и Л2 = 20. Поэтому условием сходимости метода градиентного спуска с постоянным значением х = const является выбор х G (0, 2/А2) = = (0, 0,1). Если х ^ 0,1, то последовательность {х к} не является релаксационной. При использовании (4.51) это приводит к расходимости метода или к его пзацикливанию “. На рис. 4.9 представлена графическая иллюстрация этих ситуаций: a — „зацикливание“ при х = 0,10 и б — расходимость при х = 0,1 1 .
Для пояснения полученных результатов подробнее рассмо трим первые три итерации, выполненные в соответствии с (4.51) и с выбором начальной точки х° = (1, 2):
” 1 = - ( 4o) ’ * , = x 0 + *U’I =(2 - 4te) ;
w |
= _ ( |
2 ~ 4 х |
^ |
X 2 = |
X 1 + X W 2 = ( |
1 _ 4 х + 4х2 V |
|
\ 40 — 800х ) ' |
|
+ |
\ 2 — 80х + 800х2 ) ' |
||
|
|
W |
( |
|
2 — 8х + 8х 2 |
\ |
|
|
20-1600х+1б000х2; ’ |
||||
|
|
- |
||||
|
х 3 = |
х 2 + X1W3 = |
( |
1 — 6х + 12х 2 — 8х 3 |
||
|
|
|
|
\ 2 - |
120х + 2400х2 —16000х3 |
Отсюда при х = 0,10 получаем
т.е. для А: = 1 , 2, 3 имеем la^l = 2 — эффект „ зацикливания“ метода. При х = 0,11 находим
1 _ ( 0,7818 |
\ |
2 _ / 0,6112\ |
г _ ( 0,4779 \ |
(-2,3636 |
J ’ |
V2>7934/ ’ |
v - 3-3013) |
и
f i x 1) = 56,479 < f{x 2) = 78,404 < f i x 3) = 109,213,
что свидетельствует о тенденции к расходимости метода. На конец, при х = 0,09 имеем
i |
( 0,8182 \ |
2 |
/ |
0,6694 \ |
з ( 0,5477 |
* " |
—1,6364 J ’ |
* |
— ( |
1,3388 ) ’ |
* ” (-1,0954 |
и
f i x 1) = 27,446 > fix 2) = 18,373 > f i x 3) = 12,299,
т.е. можно ожидать, что последовательность {®fe} является релаксационной, а метод градиентного спуска сходится.