Материал: Бородакий Нелинейное программирование в современных задачах оптимизации 2011

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

 

 

ε, n, x0

i = 1, n

S i = e i

x

= x 0 ,

i = 1

 

 

λ *

 

 

i

 

min f (x + λi Si )

 

λ

 

 

x = x + λ*i Si

 

 

x* x

 

Si = x

 

 

λ*i

 

min f (x + λi Si )

 

λ

 

 

x = x + λ*i Si

 

Sn

= S

 

Si = Si+1

Рис. 1.20. Блок-схема алгоритма метода Пауэлла

51

Врезультате такой процедуры определения направлений поиска поочередно заменяются принятые в начале координатные направления. При квадратичной форме после n шагов все направления поиска окажутся взаимно сопряженными (это можно доказать), и будет найдена точка минимума.

Вслучае неквадратичной функции метод сопряженных направлений становится итеративным и обычно не заканчивается за n шагов. Неквадратичные функции локально аппроксимируют последовательность квадратичных функций. Направления определяются в соответствии с квадратичными аппроксимациями этих неквадратичных функций. Поэтому при функциях, локальные квадратичные аппроксимации которых быстро меняются от итерации к итерации или для которых матрица Гессе перестает быть положительно определенной, метод сопряженных направлений может не сходиться.

1.3.2.Методы первого порядка

1.3.2.1. Градиентные методы

Приемлемым направлением, т.е. направлением, в котором функция убывает, как было показано раньше, является направление S, для которого

f (x), S < 0 .

Поэтому направление S = − f (x) является приемлемым. Более

того, можно показать, что с направлением антиградиента совпадает направление наибыстрейшего убывания функции в точке x . Это свойство градиента лежит в основе ряда итерационных методов минимизации функций, в том числе градиентных методов.

Градиентным называется метод, согласно которому точка xk+1 выбирается в соответствии с соотношением

xk +1 = x k − λk f ( x k ) .

Взависимости от способа выбора шага λk можно получить

различные варианты градиентного метода.

52

1-й вариант (метод наискорейшего спуска). Согласно этому методу λk определяется путем решения одномерной задачи

минимизации

min f ( xk − λk f ( x k )) .

λk

В отдельных случаях эта задача может быть решена точно, аналитически.

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

Двумерная иллюстрация метода представлена рис. 1.21. Действительно, точка xk+1 лежит на данном направлении в

точке его касания с линией уровня f (x) = f (xk +1 ) , поскольку она найдена из условия минимума на направлении f (xk ) . Следующим направлением поиска будет f (xk +1 ) . Известно, что

градиент направлен по нормали к линии уровня, т.е. перпендикулярно касательной к ней.

Рис. 1.21. Метод наискорейшего спуска

Аналитически это можно показать следующим образом. Обозначим

ϕ(λ) = f (xk − λ f (xk )) .

Поскольку шаг λ выбирается из условия минимума, то

dϕ

 

= 0 .

dλ

λ

 

k

 

53

Найдем ddϕλ по правилу дифференцирования сложной функции;

т.е. исходя из зависимости ϕ[x(λ)] значение производной определяется соотношением

 

 

 

 

dϕ

=

dϕ

 

dx

.

 

 

 

 

 

 

 

dλ

 

 

 

 

 

 

 

Откуда

 

 

 

dx dλ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dϕ

 

=< f (xk − λk f (xk )), f (xk ) > =

 

 

 

dλ

 

 

λ

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

dϕ

 

 

 

dx

 

 

 

 

производная

 

производная

 

 

 

dx

dλ

 

 

 

 

 

 

 

 

= − < f (xk +1 ), f (xk ) >= 0 .

Следовательно, направления ортогональны.

Важно отметить, что эпитет «наискорейший» по отношению к спуску является исторически сложившимся, он не означает, что этот метод обладает способностью осуществлять отыскание минимальной точки за минимальное число шагов или при минимальном объеме вычислений. Существуют более эффективные в этом смысле методы.

2-й вариант градиентного метода. На практике нередко довольствуются выбором шага, обеспечивающего убывание функции в направлении антиградиента ( f (xk +1 ) < f (xk )) , вместо

того чтобы отыскивать минимум функции в данном направлении. Трудоемкость итерации при таком способе выбора шага меньше. При этом скорость сходимости обоих вариантов, в конечном счете, примерно одинакова.

Опишем способ выбора шага λk на k-й итерации.

1.Выбирается некоторое произвольное значение λ (одно и то же на всех итерациях) и определяется точка x = xk − λ f (xk ) .

2.Вычисляется f (x) = f (xk − λ f (xk )) .

3.Производится проверка неравенства

f (xk ) f (x) ≥ ελ(< f (xk ), f (xk ) >) ,

|| f ( x )||2

54

где 0 < ε <1 – произвольно выбранная константа (одна и та же на всех итерациях).

Возможно использование более простого неравенства:

f(x) < f (xk ) .

4.Если неравенство выполняется, то значение λ и берется в качестве искомого: λk = λ . В противном случае производится

дробление λ (путем умножения λ на произвольное число α <1 ) до тех пор, пока неравенство не окажется справедливым.

Следует отметить, что если выбрать в качестве λ слишком маленький шаг, то процесс будет сходиться очень долго, поэтому время от времени можно пробовать увеличить λ , но так, чтобы не нарушить выбранное неравенство.

Направления поиска в этом варианте метода уже не будут ортогональны (рис. 1.22).

Рис. 1.22. Градиентный метод (второй вариант)

Можно предложить несколько критериев окончания итерационного процесса:

1)по разности аргументов на последовательных шагах

||x k +1xk ||≤ ε1 ,

2)по разности значений функции

||f (x k +1) f (xk ) ||≤ ε2 ,

3)по значению градиента

||f (xk ) ||≤ ε3 .

55

Источник: https://studfile.net/preview/16708738/