Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2793.Методы оптимизации..pdf
Скачиваний:
175
Добавлен:
15.11.2022
Размер:
33.68 Mб
Скачать

Результаты вычислений, в которых параметр 7^, входящий в (5.1 1 ), определялся в соответствии с формулой (5.8), приведе­ ны в табл. 5.4, а аналогичные результаты, в которых параметр 7*. определялся в соответствии с (5.9), — в табл. 5.5. Для сравне­ ния также даны результаты вычислений, в которых параметр 7£ определялся в соответствии с формулой (5.10) (табл. 5.6). Траектории поиска точки минимума ж* = (1, 1) для всех трех вариантов вычислений показаны на рис. 5.6: a — вариант с формулой (5.8); б — вариант с формулой (5.9); в — вариант с формулой (5.10).

Из приведенных результатов видно, что необходимое ко­ личество итераций N при поиске точки минимума является наименьшим в случае, когда используется формула (5.10), а наихудшим оказался вариант с формулой (5.8). Для сравнения отметим, что для достижения той же точности при использова­ нии метода наискорейшего спуска требуется N = 96 итераций.

5.3. Метод Ньютона

Если целевая функция /(ж) является дважды дифференци­ руемой в Мп, то эффективность процесса поиска точки х * ее минимума можно повысить, используя информацию не толь­ ко о градиенте grad/(ж) этой функции, но и о ее матрице Гессе Н(ж). Алгоритмы такого поиска обычно относят к ме­ тоду Ньютона. В простейшем варианте алгоритма на каждой к-й итерации целевая функция аппроксимируется в окрестно­ сти точки х к~ 1 (на первой итерации в окрестности начальной точки ж0) квадратичной функцией <^(ж) и затем определяет­ ся точка х к минимума функции На следующей, (к+1 )-й итерации строится новая квадратичная аппроксимация уже в окрестности точки х к.

При помощи формулы Тейлора с остаточным членом в фор­ ме Пеано представим целевую функцию в окрестности точки

х к 1 в виде

f(x ) = / ( ж * - 1 ) + (grad/(®fc_1), х - ж *- 1 ) +

+ ^-[Н(хк~1)(х —х к~1), х —ж *- 1 ) + о(|ж ж *- 1 |2).

Пренебрегая последним слагаемым в правой части, получаем квадратичную функцию

= Я®*-1) + (grad/ ( ж * - 1 ), х - ж *- 1 ) +

+ \ (Н (хк~1)(х - х к~1), ж - ж * " 1) .

Если матрица Гессе Н (хк~1) целевой функции, вычисленная в точке ж*-1, является положительно определенной, то точка х к минимума функции <^(ж) единственна и может быть найдена из условия, что ее градиент равен нулевому вектору:

grad(pk{x) = grad f{x k~l) + H (xk~l){x - x k~l) = 0n.

Отсюда получаем

x k = x k-1 _ t f - ^ - ^ g r a d / ^ 1), к e N.

(5.13)

Отметим, что (5.13) можно трактовать как рекуррентное со­ отношение итерационной процедуры метода Ньютона, пред­ назначенного для решения системы grad/(ж) = 0Пнелинейных уравнений [V]. Этим можно объяснить и название метода, при­ меняемого для минимизации целевой функции /(ж).

Если размерность п пространства Шп велика, то вычисле­ ние на каждой к-и итерации матрицы Н~~1 (хк~1), обратной к матрице Гессе целевой функции, может оказаться весьма тру­ доемкой процедурой. В таком случае точку х к целесообразнее искать путем минимизации функции <^(ж), например методом сопряженных направлений или методом градиентов. Подроб­ нее этот вопрос рассмотрен ниже.

Точку минимума функции ipk(x) можно считать лишь вспо­

могательным приближением и, обозначив эту точку

х к, для

построения релаксационной последоват ельност и {х к}

исполь­

зовать рекуррентное соотношение

 

х к = х к~ 1 + як(хк - х к~1) = х к~1 + XfcP*, A; G N,

(5.14)

в котором значение х к> 0 можно выбрать различными способа­ ми. Вектор рк = х к —х к~ 1 задает на fc-й итерации направление спуска. Если матрица H (xk~l) положительно определенная, то это нью т оновское направление спуска. Действительно, с уче­ том (5.13) и (5.14) этот вектор можно представить в виде

рк = -H ~ 1 (xk~l)gia,df(xk~l), к е N,

(5.15)

так что

(grad/(a3fc_1),p fc) =

= -(gra d /(ж * -1), Я - 1 (аз*- 1 )grad/(ж *-1)) < 0.

Геометрически это означает, что вектор рк образует тупой угол с градиентом целевой функции, вычисленным в точке ж*- 1 (рис. 5.7).

Ясно, что если в (5.14) выбрать щ 1 , то (5.13) и (5.14) будут равносильны. Однако значение щ > 0 можно найти как

точку наименьшего значения функции = f ( x k~l + крк) или же при помощи исчерпывающего спуска в направлении вектора рк (согласно замечанию 4.2, эти значения могут не со­ впадать). Для выбора значения щ можно также использовать

метод дробления шага.

Если целевая функция является квадратичной вида (5.3) с положительно определенной матрицей Q, то исчерпывающий спуск из произвольной начальной точки х° Е Шп в ньютонов­ ском направлении приводит в точку х* минимума этой функции за одну итерацию (см. 4.5). Для неквадратичной функции нью­ тоновское направление в общем случае не проходит через точку ее минимума, хотя часто оказывается к~этой точке ближе, чем направление антиградиента. Если это так, то спуск в нью­ тоновском направлении за одну итерацию позволяет достичь более существенного убывания минимизируемой неквадратич­ ной функции и получить более близкое приближение к искомой точке х * минимума по сравнению со спуском в направлении ан­ тиградиента.

Если график целевой функции имеет овражную структуру, то вектор рк (5.15) может составлять с осью оврага меньший угол, чем антиградиент. Эта особенность при минимизации таких функций делает алгоритмы метода Ньютона более эф­ фективными, чем алгоритмы метода градиентного спуска.

Пример 5.6. На примере минимизации функции f(x 1,^2) = = (х\ Х2 ) 2 + {х\ —I)2 сравним алгоритмы метода Ньютона при Xfc = 1 в (5.14) (рис. 5.8, а) и метода наискорейшего спуска

(рис. 5.8, б). Выбраны начальная точка х° = (—1, —2), в кото­ рой f(x°) = 13, и параметр точности поиска е3 = 10_3

В случае метода Ньютона (см. рис. 5.8, а) получено прибли­ женное значение точки минимума х* & (0,999, 0,999) за N = 5 итераций, в то время как в случае метода наискорейшего спус­

ка (см. рис. 5.8, б) приближенное значение точки

минимума

х * « (0,999, 0,998) достигнуто за N = 96 итераций.

Из резуль-

Рис. 5.8

татов вычислений видно, что метод Ньютона по сравнению с методом наискорейшего спуска дает значительное уменьшение количества итераций и быстрее обеспечивает заданную точ­ ность решения задачи.

Обратим внимание на то, что в методе Ньютона /(ж 1) < < f(x 2) (см. рис. 5.8, а), т.е. метод Ньютона привел к после­ довательности, не являющейся релаксационной. Такое может происходить при xjt = 1 и при больших отклонениях начальной точки от точки минимума. #

Сходимость метода Ньютона существенно зависит от вы­ бора начального приближения. Можно показать*, что если це­ левая функция сильно выпуклая и для любых точек ж, у Е Шп

относительно матрицы Гессе Н(ж) целевой функции выполнено неравенство ||#(а?) —Н (у)|< L\х у|, L > 0, а начальное при­ ближение выбрано удачно (точка ж0 расположена достаточно

*См.: Васильев Ф .П .

близко к точке ж* минимума), то алгоритм метода Ньютона при значении щ = 1 в (5.14) обладает квадратичной скоростью сходимости, т.е. справедлива оценка

\xk -x*\ sSCI®*-1-® * !2, fc€N, С = const.

Это позволяет для такой функции использовать в качестве условия прекращения итераций выполнение первого неравен­ ства (4.18) \хкx k~l\< £i, где е\ — заданное достаточно малое положительное число. Но в случае, когда целевая функция не является сильно выпуклой или же начальное приближение на­ ходится далеко от искомой точки ж*, метод Ньютона может расходиться.

Квадратичная скорость сходимости, а также возможность контроля за соблюдением достаточного условия минимума це­ левой функции /(ж) на каждой k-и итерации при помощи ма­ трицы Гессе Н (хк~1) этой функции способствуют высокой эф­ фективности рассматриваемого алгоритма. Однако при его практической реализации возникают две проблемы.

Первая из них — это сохранение положительной определен­ ности матрицы Гессе Н (хк~1) целевой функции на каждой fc-й итерации, так как иначе вектор рк = - Н ~ 1 (хк~г) gradf ( x k~l) может не соответствовать направлению спуска, вдоль которого эта функция убывает. Более того, матрица Н (хк~1) может быть вырожденной и не иметь обратной матрицы. Эту пробле­ му можно решить, если направление спуска задавать вектором Рк = -{щ1п + Н (хк~г)) grad/(ж *-1), где 1п — единичная ма­ трица порядка п, а % ^ 0 — параметр, выбираемый так, чтобы в точке ж*- 1 матрица

Нк = щ1п + Н {хк~1), к е N, (5.16)

была положительно определена* В связи с этим более серьезной проблемой является необхо­

димость вычисления и обращения на каждой итерации матрицы

*См.: Базара М., Шетти К а также: Реклейтпис Г .у Рейвиндран А .}

Рэгсдел К.

порядка п, что в случае большой размерности пространства Шп является достаточно трудоемкой операцией. На практи­ ке обычно не вычисляют матрицу, обратную к положительно определенной матрице Я^, а вектор рк находят из решения си­ стемы линейных алгебраических уравнений (СЛАУ)

Hkpk = — grad/(a3fc-1), к еN.

(5.17)

Эту СЛАУ можно решить различными численными метода­ ми, например прямыми и итерационными [III], [IV]. Можно также решать СЛАУ путем минимизации квадратичной функ­ ции (НьРк, Рк)/% + (grad/(xfc_1), рк) методами сопряженных направлений или градиентов, поскольку выполнение (5.17) явля­ ется необходимым и достаточным условием минимума такой функции.

Опишем алгоритм варианта метода Ньютона поиска точки ж* минимума дважды дифференцируемой целевой функции /(ж), х Е Rn, в котором направление спуска определяется путем решения СЛАУ (5.17). Предварительно выбираем начальную точку х° Е Мп и значение £3 > 0 в условии |grad/(cc/c” 1)| < £3 прекращения итераций. Полагаем к = 1 и переходим к основной части алгоритма.

1. В точке х к~ 1 находим gradf{x k~l) и матрицу Гессе Н(хк~1) целевой функции. Если |grad/(xA:“ 1)| < £ 3? то итера­ ции прекращаем, принимая х * « х к~1 и /(ж*) « f ( x k~1). Ес­ ли при этом матрица Н (хк~1) положительно определенная, то ж* — точка минимума целевой функции, а иначе необходимо провести дополнительное исследование поведения функции в окрестности точки ж* При |grad/(ж^-1)|^ £3 и положительно определенной матрице Я (ж*-1) полагаем Я * = Я (ж*-1) и пере­

ходим к п. 3. В противном случае переходим к п. 2.

_

2. Подбираем значение г]к > 0, при котором матрица

Hk

(5.16) будет положительно определенной, и переходим к п. 3. 3. Из решения СЛАУ (5.17) находим вектор рк и затем

точку х к= ж* '1 + р к. Полагаем к := к+1 и возвращаемся к п. 1.