Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы оптимизации

..pdf
Скачиваний:
43
Добавлен:
05.02.2023
Размер:
2.15 Mб
Скачать

91

1.Задать номер итерации k = 0, вычислить f (x0 ).

2.Вычислить начальное направление спуска d0 = − f (x0 ).

3.Решить задачу:

Φ(λ) = f (xk + λd ) min,

k λ≥0

т. е. найти такое λk , что

Φ(λk ) = minλ≥0 f (xk + λdk ).

4.Положить xk+1 = xk + λkdk .

5.Если xk+1 xk ≤ εx и f (xk+1 ) ≤ εy , то положить x* xk+1 и закончить

вычисления. Иначе перейти на шаг 6.

6. Вычислить новое направление спуска по формуле:

dk+1 = − fk+1 + βk dk ,

(3.43)

где

β

 

=

f

T

f

k

 

 

 

 

 

 

k+1

 

,

(3.44)

k

 

 

f

k

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fk = f (xk ), fk+1 = f (xk+1 ), fk = fk+1 fk .

7. Выполнить присваивание k = k +1. Вернуться на шаг 3.

Легко видеть, что единственное различие между МФР и МПР заключается в способе выбора параметра β . Причем отличия начинаются только на второй итерации решения.

4 Метод Миля – Кентрелла

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

Алгоритм метода Миля – Кентрелла. Исходные данные – ЦФ и ее градиент, начальная точка x0 , точность по аргументу εx , точность по функции εy .

1.Задать номер итерации k = 0, вычислить f (x0 ).

2.Вычислить начальное направление спуска d0 = − f (x0 ).

3.Решить задачу:

92

Φ(λ) = f (xk + λd ) min,

k λ≥0

т. е. найти такое λk , что

Φ(λk ) = minλ≥0 f (xk + λdk ).

4.Положить xk+1 = xk + λkdk .

5.Если xk+1 xk ≤ εx и f (xk+1 ) ≤ εy , то положить x* xk+1 и закончить

вычисления. Иначе перейти на шаг 6.

6. Вычислить новое направление спуска по формуле:

 

k+1

 

(

 

 

 

 

)

 

k

(

 

)

 

 

 

xk+1

 

i

 

 

d

 

= − f

 

 

 

 

 

 

β f

 

xi

.

(3.45)

 

 

 

 

 

 

 

 

 

 

i=0

 

 

 

 

где

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

βk =

 

 

f (xk+1 )

 

 

 

2

.

 

 

 

(3.46)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (xk )

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При вычислении нового направления спуска учитываются значения градиента во всех предыдущих точках xk , поэтому метод и называется методом с памятью.

7. Выполнить присваивание k = k +1. Вернуться на шаг 3.

Единственное различие между МФР и ММК заключается в способе вычисления направления спуска dk . Причем отличия начинаются только на второй итерации решения. На первой итерации метод аналогичен МФР и МПР.

3.3.6Квазиньютоновские методы (методы с переменной метрикой)

Квазиньютоновские методы (КМ) также основаны на свойствах квадра-

тичных функций. Данные методы обладают положительными чертами метода Ньютона, однако используют только первые производные [2, 4, 8–9]. С чем это связано?

Итерационный поиск по методу Ньютона осуществлялся по формуле (модифицированный метод с длиной шага):

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

(3.47)

Трудность может возникнуть, когда матрица Гессе 2 f (xk )= H f (xk ) не является положительно определенной. В этом случае направление перемещения

 

 

 

93

 

dk

= − 2

f (xk ) 1

f (xk ) = −H f 1 (xk ) f (xk )

(3.48)

 

 

 

 

 

может не быть направлением спуска и глобальная сходимость метода не будет обеспечена.

В таких ситуациях обратную матрицу Гессе H f 1 (xk ) заменяют положительно определенной матрицей Ak , дающей направление перемещения, исходя из градиента f (xk ). Отсюда получаем итерационную формулу:

xk+1 = xk − λk Ak f (xk ),

(3.49)

где λk выбирается так, чтобы минимизировать функцию

f (xk+1 ) в направлении

dk = −Ak f (xk ).

 

Очевидно, что матрица Ak на каждой итерации модифицируется так, чтобы для каждой квадратичной функции вида:

 

 

 

f (x) =

1

T %

T

 

 

 

 

 

 

2 x

Ax + b

 

x + c

 

 

 

 

 

 

 

%

 

 

k

сходились к обраще-

(с положительно определенной матрицей A) матрицы

A

нию

%

1

матрицы Гессе функции f

(x). Следовательно, на конечном этапе схо-

A

 

димости мы вновь придем к методу Ньютона.

Если метод применяется к произвольной функции, то Ak может рассматриваться на каждом шаге как аппроксимация (положительно определенная) об-

ращения матрицы Гессе функции f (x).

 

 

Для аппроксимации матрицы H f

1 (xk )

пользуются следующим рекур-

рентным соотношением:

 

 

Ak+1 = Ak + Ak ,

(3.50)

 

c

 

где Ack – корректирующая матрица.

Матрица Ak будет использоваться в формулах (3.47)–(3.49). Задача заключается в том, чтобы построить матрицу Ak таким образом, чтобы последовательность A0, A1,K, Ak+1 давала приближение к H f 1 (x ). При этом для полу-

чения решения x требуется один дополнительный поиск вдоль прямой, если f (x) – квадратичная функция. Данный подход приводит к успеху при решении задач с нелинейными ЦФ общего вида.

94

Еще раз напомним свойства квадратичных функций:

 

 

 

 

 

 

%

+ b = g (x),

 

 

 

 

 

f (x) =

Ax

 

 

 

 

 

 

 

0

)=

% 0

+ b,

 

 

 

 

 

 

 

g (x

 

Ax

 

 

 

 

 

 

 

 

1

 

% 1

+ b.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g (x

 

)= Ax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Изменение градиента при переходе из точки

x0

в точку x1 выражается

соотношением

 

 

 

 

 

 

)

= A

(x x

 

)

 

 

g (x) = g (x )g (x

 

 

 

 

 

 

 

1

 

 

0

 

%

1

 

0

 

 

 

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

%

 

 

 

 

%

1

 

 

 

 

(3.51)

g(x) = Ax x = A

g.

 

 

 

 

Предположим, что матрица

% 1

аппроксимируется по формуле

% 1

k

A

A

= βA ,

где β – скалярная величина. Наиболее предпочтительным является приближение, удовлетворяющее соотношению (3.51), то есть xk = Akgk . Однако построить такую аппроксимацию невозможно, т. к. для того чтобы найти gk , необходимо знать матрицу Ak . Здесь используются следующие обозначения:

xk = xk+1 xk , gk = g (xk+1 )g (xk ).

С другой стороны, можно потребовать, чтобы новое приближение удовлетворяло также формуле (3.51) с учетом свойств квадратичных функций:

xk = Ak+1gk , Ak+1 = Ak + Ak .

(3.52)

 

c

 

Подставляя (3.50) в (3.52), получим:

 

 

xk = (Ak + Ack )gk = Ak gk + Ack gk .

 

Выразим отсюда Akgk :

 

 

c

 

 

Akgk = ∆xk

Akgk .

(3.53)

c

 

 

С помощью непосредственной подстановки можно убедиться, что матрица

 

xk yT

 

Ak gk zT

 

Ack =

 

 

 

 

 

 

 

 

 

(3.54)

y

T

g

k

z

T

g

k

 

 

 

 

 

 

 

 

является решением этого уравнения (3.53) (для этого надо (3.54) умножить справа на gk , и мы получим выражение (3.53)). Здесь y и z – произвольные векторы, т. е. (3.54) определяет некоторое семейство решений.

95

Другой способ получения матрицы Ack . В зависимости от того, имеет матрица Ack ранг 1 или ранг 2, будем говорить о коррекции ранга 1 или ранга 2. Рассмотрим коррекцию ранга 1:

 

 

 

 

 

 

 

 

 

 

Ak = β

u

uT ,

(3.55)

 

 

 

 

 

 

 

 

 

 

c

k

k

k

 

где βk – скаляр, uk

– вектор, выбранные так, чтобы выполнялось соотношение

 

 

 

 

 

 

 

 

 

Ak+1gk

= ∆xk .

(3.56)

Обозначим δk = ∆xk = xk+1 xk , γk

= ∆gk = fk+1 fk . Покажем, как опре-

делить β

k

и u

k

, чтобы Ak+1γ

k

= δ

k

. Используя ранее введенное выражение (3.50)

 

 

 

 

 

 

 

 

 

 

 

Ak+1 = Ak + Ak

, перепишем (3.56) с учетом (3.55):

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

T

 

(3.57)

 

 

 

 

 

 

 

A

+ βk (ukuk ) γk = δk .

Умножим скалярно обе части выражения (3.57) на γk , получим:

 

 

 

 

 

 

γTk Ak γk + βk (γTk uk )(ukTγk ) = γTk δk .

(3.58)

Отсюда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

βk (ukTγk )2 = γTk (δk Ak γk ).

(3.59)

Используем тождество

 

 

 

 

 

 

 

 

 

 

 

 

 

βk (ukukT )

=

(βkukukTγk )(βkukukTγk )T

(3.60)

 

 

 

 

 

 

βk (ukTγk )2

и, осуществив замену βkukukTγk на δk Ak γk (см. (3.57)),

γk (δk Ak γk ) (см. (3.59)), получим формулу коррекции (ранга 1):

Ak = β

u

uT = (δk Ak γk )(δk Ak γk )T .

c

k

k

k

γTk

(δk

Ak γk )

 

 

 

 

βk (ukukT )2 на

(3.61)

Далее доказывается теорема о том, что для квадратичной функции f (x) с

положительно определенной матрицей A последовательность матриц Ak сходится не более чем за n этапов к обращению матрицы A1 гессиана функции f (x).

1 Метод Дэвидона – Флетчера – Пауэлла

Метод Дэвидона – Флетчера – Пауэлла (МДФП) использует матрицу коррекции ранга 2. В формуле (3.54) положим y = ∆xk и z = Akgk . Тогда получим:

96

 

 

x

k

(x

k

)

T

 

k

g

k

(

g

k

)

T

(

 

k

)

T

Ak =

 

 

 

 

A

 

 

 

 

A

 

 

,

 

 

 

 

T

 

 

 

 

 

 

 

 

T

 

 

 

 

T

 

 

 

 

 

c

 

(xk )

gk

 

(gk )

(Ak )

gk

(3.62)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ak+1

= Ak + Ak .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Данная рекуррентная формула сохраняет свойства симметрии и положи-

тельной определенности матриц, поэтому если

 

A0 – симметричная положи-

тельно определенная матрица, то матрицы

A1, A2 ,K будут так же симметрич-

ными положительно определенными матрицами (см. ниже теорему).

Обычно удобно выбирать A0 = E , где E – единичная матрица. Точка xk+1

получается из xk перемещением в направлении

 

dk

= −Ak f (xk ). В формуле

(3.62)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xk = xk+1 xk ; gk = f (xk+1 )f (xk ).

Обозначим γk = ∆gk , δk = ∆xk .

·····························································

Теорема. Пусть матрицы Ak положительно определены. То-

гда, при условии δTk γk > 0, матрица Ak+1 = Ak + Ack , полученная по формуле (3.62), положительно определена. Эти условия выполняются, если точка xk+1 получается из xk одномерной минимизацией в направлении dk = −Ak f (xk ).

·····························································

·····························································

Доказательство. Пусть x – произвольный вектор, x ≠ 0. Требуется показать, что xT Ak+1x > 0 . Имеем из (3.62):

xT Ak+1x = xT Ak x +

(xTδk )2

(xT Ak γk )2 .

(3.63)

 

δTγ

k

 

γT Ak γ

k

 

 

k

 

 

k

 

В (3.62) полагаем, что Ak

симметричная матрица. Далее

введем обозначения: u = (Ak )1 2 × x ,

 

 

v = (Ak )1 2 × γk . (Ak )1 2

суще-

ствует, т. к. Ak – положительно определенная симметричная матрица. Тогда (3.63) имеет вид

xT Ak+1x =

(uTu)(vTv)(uTv)2

+

(δTk x)2

 

(vTv)

δTk γk .

(3.64)

97

Первое слагаемое справа ≥ 0, так как, согласно неравенству Коши – Буняковского, (uTv)2 (uTu)(vTv). Второе слагаемое будет

больше нуля, если δTk γk > 0. С другой стороны, оба слагаемые не могут одновременно обращаться в нуль. В самом деле, если первый член равен нулю, то

u = λv, (λ ≠ 0) x = λγk .

Но тогда δTk x = λδTk γk 0 и второй член отличен от нуля. Первая часть теоремы доказана.

Покажем, в частности, что δTk γk > 0, если xk+1 получена из xk

одномерной минимизацией в направлении dk = −Ak f (xk ). Имеем:

δk = xk+1 xk = Θdk = −ΘAk f (xk ), Θ > 0; dkT f (xk+1 ) = 0 δTk f (xk+1 ) = 0.

При этих условиях

δTk γk = δTk ( f (xk+1 )f (xk ))= −δTk f (xk ) = Θ f T (xk )Ak f (xk ) > 0, что и требовалось доказать.

·····························································

Свойство сохранения положительной определенности матриц существенно, ибо оно гарантирует, что направления dk , последовательно порождаемые алгоритмом, являются направлениями спуска. Действительно, первая вариация f (x) равна f (x) = f T (xk )x . Используя формулы (3.47) и (3.48), получаем:

f (xk ) = −λk f T (xk )Ak f (xk ) < 0,

откуда f (xk+1 ) < f (xk ) при любых λk > 0 , если матрица Ak положительно

определена.

Алгоритм метода Дэвидона – Флетчера – Пауэлла. Исходные данные – ЦФ и ее градиент, начальная точка x0 , точность по аргументу εx , точность по функции εy .

1.Задать номер итерации k = 0, вычислить f (x0 ), положить A0 = E .

2.Вычислить направление спуска dk = −Ak f (xk ).

3.Решить задачу:

98

(

λ

)

 

(

 

)

λ≥0

Φ

 

= f xk − λAk f

 

xk

 

min,

т. е. найти такое λk , что

Φ(λk ) = minλ≥0 f (xk + λdk ).

4.Положить xk+1 = xk + λk dk .

5.Если xk+1 xk ≤ εx и f (xk+1 ) ≤ εy , то положить x* xk+1 и закончить

вычисления. Иначе перейти на шаг 6.

6. Вычислить новое приближение обращенного гессиана:

Ak+1 = Ak + Ak ,

Ak =

xk (xk )T

Ak gk (gk )T (Ak )T

.

(xk )T gk

 

c

c

 

(gk )T (Ak )T gk

7. Выполнить присваивание k = k +1 и вернуться на шаг 2.

Достоинства метода. МДФП – наиболее широко используемый градиентный метод. Устойчивость – при решении самых различных задач, возникающих на практике.

Недостаток. Необходимость хранения матрицы Ak порядка n× n .

·····························································

Теорема. Алгоритм МДФП в применении к квадратичной функции (предполагается, что матрица Гессе A положительно определена): порождает направления δ0,δ1,K,δk , которые при любом k удовлетворяют соотношению:

δT Aδ

j

= 0; 0 i < j k;

(3.65)

i

 

 

 

 

 

Ak+1Aδ

i

= δ

, 0 i k.

(3.66)

 

 

 

i

 

 

·····························································

·····························································

Доказательство. Обозначим

δk = xk+1 xk , γk = f (xk+1 )f (xk ).

Тогда соотношения (3.62) перепишутся в следующем виде:

 

 

δ δT

 

Ak γ γT Ak

 

Ack =

Tk k

k k

,

T k

 

 

δk γk

 

γk A γk

(3.67)

 

k+1

= A

k

 

k

 

A

 

 

+ Ac .

 

Умножим справа на Aδk , получим для любого k :

99

Ak+1Aδ

 

= Ak+1γ

 

= Ak γ

 

+

δ

δT

γ

k

Ak γ

γT Ak γ

k

= δ

.

 

 

 

k

k

k

k

 

 

 

 

δTγ

 

γT Ak γ

 

 

 

k

 

k

 

k

 

k

 

k

 

k

 

 

 

 

 

 

 

 

 

k

 

k

 

 

 

 

Значит, соотношения (3.65) и (3.66) верны при k = 0. Допустив, что они верны и при k =1, докажем их справедливость для произвольного значения k . При 0 i < k имеем

f (xk )f (xi )= γi + γi+1 +K + γk1.

Гессиан функции f (x) постоянен и равен A, поэтому Aδi = γi , i, и значит,

f (xk )f (xi )= A(δi + δi+1 +K + δk1 ).

Апоскольку xi есть оптимум f (x) в направлении δi1 , то

δiT1 f (xi )= 0. Следовательно, по предположению индукции:

δiT1 f (xk )= δiT1A(δi + δi+1 +K + δk1 ) = 0, i =1,2,K,k 1.

В силу (3.66) и предположения индукции δi1 = Ak Aδi1 . Отсюда

δiT1AAk f (xk )= 0, i, 1i k.

А поскольку

δk = xk+1 xk = −ΘAk f (xk ), Θ > 0,

то из этого следует вывод, что δi1Aδk = 0, i =1,2,K,k , и, стало быть, соотношение (3.50) выполняется для произвольных значений k .

Докажем теперь, что Ak+1Aδ

i

= δ

i

, i = 0,1,K,k 1 (как доказа-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

но выше, для i = k это верно). Имеем:

 

 

 

 

 

 

 

 

 

 

 

 

Ak+1Aδ

 

= Ak Aδ

 

+

δ

δT Aδ

i

Ak γ

k

γT Ak Aδ

i

.

 

 

 

 

 

k

 

k

 

 

 

k

 

 

 

 

 

i

i

δTγ

k

γT Ak γ

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

k

 

 

 

 

 

 

Второй член справа равен нулю, т. к. δT Aδ

i

= 0 , i k 1. Тре-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

тий член – тоже нуль, т. к. по предположению индукции Ak Aδ

i

= δ

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

иγTk = δtT A, и значит

γTk Ak Aδi = γTk δi = δTk Aδi = 0, i k 1.

100

Следовательно,

Ak+1Aδi = Ak Aδi = δi 0 i k.

···························································

Теорема показывает, что в квадратичном случае направления δ0,δ1,K,δk , порожденные алгоритмом, последовательно сопряжены относительно матрицы A квадратичной формы. В этом случае алгоритм сходится не более чем за n итераций.

Наконец, при k = n 1 соотношение (3.66) дает

An Aδ

i

= δ

i

i = 0,1,K,n 1,

 

 

 

а поскольку δi линейно независимы (т. к. они последовательно сопряжены относительно A), то отсюда получим:

An A = E An = A1.

·····························································

Квадратичная форма имеет вид: Q(x) = xT A1x.

·····························································

Матрица A плохо обусловлена, если малые изменения вектора x порождают относительно большие изменения Q . Это связано с тем, что A является почти вырожденной матрицей: A 0.

Число обусловленности матрицы:

K (A) = λmax = cond A,

λmin

где λmax , λmin – максимальные и минимальные собственные числа матрицы A. Для плохо обусловленной матрицы K (A) 1→ ∞ . Для хорошо обусловленной матрицы K (A) 1.

2 Метод Бройдена – Флетчера – Гольдфарба – Шенно

В (3.67) матрица Ak+1 удовлетворяет соотношению

Ak+1γ

k

= δ

.

(3.68)

 

k

 

 

Если переставить местами δk и γk в (3.67) и рассмотреть последовательность матриц

Gk+1 = Gk +

γ

γT

Gkδ

δTGk

,

(3.69)

k

k

k

k

 

γTδ

k

δTGkδ

k

 

k

 

 

k