- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •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.4. Модификации метода Ньютона
Напомним, что в методе Ньютона для построения релакса ционной последовательности {х к} при поиске минимума два жды непрерывно дифференцируемой и ограниченной снизу в К" целевой функции f(x ) используют рекуррентное соотноше ние вида (5.14)
х к = х к~ 1 + х крк,
где рк — вектор, задающий на к-й итерации ньютоновское на правление спуска из точки x k~l (на первой итерации из началь ной точки ж0). Выше (см. 5.3) перечислены некоторые способы выбора значения х*. Обычно собственно метод Ньютона свя зывают с таким вариантом выбора этого значения, когда на
к-й итерации принимают х^рк = -H ~ 1 (xk~1 )graidf(xk~1), где
Н (хк- 1) — матрица Гессе целевой функции с элементами, вы численными в точке х к~1. Если принять во внимание (5.15), то следует считать, что в методе Ньютона щ = 1.
Одна из модификаций метода Ньютона поиска точки х* минимума функции f(x ) связана с применением для выбора значения х^ метода дробления шага, при котором на каждой
итерации выполняется неравенство* |
|
f { x k~l) - f { x k) ^ -u}Hk(gr&df(xk~1 ),p k), к€ N, |
(5.18) |
где и Е (0,1/2). Если на к-й итерации это неравенство не вы полнено при начальном значении х^ = XQ = 1 , то процедуру дробления шага проводят в соответствии с формулой х/с = г/, где v Е (0, 1 ) — выбранный постоянный коэффициент дробле ния шага, а г — номер этапа дробления, на котором будет выполнено (5.18).
Алгоритм с дроблением шага и нахождением направления спуска путем решения системы линейных алгебраических урав нений (СЛАУ) (5.17) можно представить следующим образом.
На предварительном этапе выбираем начальную точку ж0 6 К71, параметр S3 > 0 точности поиска в условии |grad/(xfc_1)| < S3 прекращения итераций, коэффициент и дробления шага и зна чение и Е (0,1/2) в (5.18). Вычисляем значение /(ж 0) целевой функции /(ж) в точке ж0, полагаем k = 1 , щ = 1 и переходим к основной части алгоритма.
1 . В точке ж*-1, найденной на (А:—1)-й итерации (на пер вой итерации в точке ж0), вычисляем градиент gr&df(xk~l) и матрицу Гессе Н {хк~1) целевой функции. Если |grad / (ж^- 1) |< < S3, то итерации прекращаем, принимая ж* « ж*- 1 и /(ж*) и « f(x k~l). В противном случае переходим к п. 2.
2. Из решения СЛАУ (5.17) находим вектор pfc, точку х к = = х к~ 1 + щ рк и значение f(x k) в этой точке. Если при этом выполнено неравенство (5.18), то полагаем х/; = 1 , к : = к + 1 и возвращаемся к п. 1. В противном случае переходим к п. 3.
3. Полагаем х ^ : = v x \* и возвращаемся к п. 2.
Другой способ выбора значения х^ в (5.14) основан на при менении на каждой к-й итерации исчерпывающего спуска в направлении, определяемом вектором pfc, т.е. связан с миними зацией функции гр^(х) = /(ж *- 1 + хрк). Общая трудоемкость этого способа может оказаться значительной вследствие не обходимости на каждой итерации для поиска минимума этой функции использовать один из методов одномерной минимиза ции (см. 2). Алгоритм, в котором реализуется такой способ выбора значения х*, отличается от описанного выше тем, что во втором пункте алгоритма после нахождения вектора рк ми нимизируется функция ip(я), а затем полученное значение х^ используется для вычисления точки х к = х к~ 1 + х^р^. После этого осуществляется переход к первому пункту алгоритма. Отметим, что на предварительном этапе нет необходимости задавать значения !/, и) и х^ = 1 .
Пример 5.7. Используем рассмотренный алгоритм для по иска минимума той же функции f(x 1,2:2) = (я? - Я 2)2 + (xi “ I)2?
что и в примере 5.6, выбрав начальную точку х° = (—1, —2) и задавшись значением —10_3 параметра точности поиска.
Процесс поиска точки минимума х* = (1, 1) этой функции для двух различных алгоритмов показан рис. 5.9: а— алгоритм с дроблением шага (v = 0,5, ш= 0,25); б — алгоритм с выбором параметра х*;, входящего в формулу (5.14), с помощью исчерпы вающего спуска. Результаты вычислений приведены в табл. 5.7, в которой колонки а и б соответствуют двум указанным ал горитмам, а в колонке в содержатся результаты расчетов по методу Ньютона с выбором щ = 1 в формуле (5.14).
Из результатов расчетов видно, что спуск в ньютоновском направлении уже на первой итерации приводит к значительно большему убыванию целевой функции и дает более точное приближение к искомой точке минимума. При одном и том же значении ез = 10_3 в вариантах б и в требуется всего пять итераций, в то время как в варианте а — семь итераций. #
Рис. 5.9
Таблица 5.7
Отметим, что рассмотренные модификации метода Нью тона менее чувствительны к выбору начальной точки ж0 по сравнению с пклассическим “ вариантом этого метода, соответ ствующим значению х^ = 1 в (5.14). Можно показать*, что если целевая функция является сильно выпуклой и ее матрица Гессе Н(х) для любых точек ж, у £ Шп удовлетворяет неравенству
||Я(х)-Я(у)|| <1|х-у|, |
(5.19) |
то при произвольном выборе начальной точки обе рассмотрен ные выше модификации метода Ньютона обладают квадратич ной скоростью сходимости. При этом справедлива оценка
|xfc-x * | < T -lx ^ 1 -х*\2, k € N, |
(5.20) |
Ai |
|
где Ai — оценка снизу наименьшего из собственных значений матрицы Гессе Н(х) целевой функции в окрестности точки ж*, содержащей точку ж^-1 , если в этой окрестности матрица Гессе является положительно определенной, т.е. Ai|ж|2 ^ (Я(ж)ж, ж) для всех точек ж из этой окрестности.
Ясно, что попытка реализовать рассмотренные алгоритмы наталкивается на те же проблемы, что и при выборе х^ = 1 в
(5.14) (см. 5.3). Главная из них состоит в том, что на каждой /с-й итерации необходимо вычислять и обращать матрицу Гес се Н (хк~1) целевой функции или же искать направление спуска путем решения СЛАУ (5.17), где матрица IIк определяется ра венством (5.16). Один из способов разрешения этой проблемы заключается в использовании для выбора направления спуска вместо (5.15) соотношения
Рк = - Я - 1 (ж0) grad/(ж *-1), к е N. |
(5.21) |
Если в начальной точке ж0 матрица Гессе Н(х°) целевой функ ции не является положительно определенной, то в (5.21) вместо Я(ж°) можно использовать матрицу Н {= щ1 п + Я(ж°), вычи сленную в соответствии с (5.16) при А; = 1 .
Оказывается, что использование (5.21) приводит к линейной скорости локальной сходимости, причем справедлива оценка
\xk -x*\ < 5|ж*- 1 -ж*|, k e N, q = const. |
(5.22) |
Выбор начальной точки ж0 влияет на знаменатель q геометри ческой прогрессии: чем ближе ж0 к искомой точке х*, тем меньше значение q.
Другой способ разрешения указанной выше проблемы со стоит в периодическом „обновлении" матрицы Гессе в (5.21). В этом случае на первых К итерациях в (5.21) используют матрицу Я(ж°) (или Н\, если матрица Я(ж°) не является поло жительно определенно^, а на (Я + 1 )-й итерации ее заменяют матрицей Н (хк ) (или Нк+i, если матрица Н (хк ) не окажется положительно определенной матрицей) и т.д. Выбор значения К зависит от целевой функции. Если целевая функция сильно выпукла и удовлетворяет условию (5.19), то алгоритм с „обно влением" матрицы Гессе при произвольном выборе начальной точки будет обладать сверхлинейной скоростью сходимости*