
Методы оптимизации
..pdf91
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) = A∆x ∆x = A |
∆g. |
|
|
|
|
|||||||||
Предположим, что матрица |
% −1 |
аппроксимируется по формуле |
% −1 |
k |
||||||||||
A |
A |
= βA , |
где β – скалярная величина. Наиболее предпочтительным является приближение, удовлетворяющее соотношению (3.51), то есть ∆xk = Ak∆gk . Однако построить такую аппроксимацию невозможно, т. к. для того чтобы найти ∆ gk , необходимо знать матрицу Ak . Здесь используются следующие обозначения:
∆xk = xk+1 − xk , ∆gk = g (xk+1 )− g (xk ).
С другой стороны, можно потребовать, чтобы новое приближение удовлетворяло также формуле (3.51) с учетом свойств квадратичных функций:
∆xk = Ak+1∆gk , Ak+1 = Ak + Ak . |
(3.52) |
|
|
c |
|
Подставляя (3.50) в (3.52), получим: |
|
|
∆xk = (Ak + Ack )∆gk = Ak ∆gk + Ack ∆gk . |
|
|
Выразим отсюда Ak∆gk : |
|
|
c |
|
|
Ak∆gk = ∆xk |
− Ak∆gk . |
(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+1∆gk |
= ∆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 этапов к обращению матрицы A−1 гессиана функции f (x).
1 Метод Дэвидона – Флетчера – Пауэлла
Метод Дэвидона – Флетчера – Пауэлла (МДФП) использует матрицу коррекции ранга 2. В формуле (3.54) положим y = ∆xk и z = Ak∆gk . Тогда получим:

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 + γk−1.
Гессиан функции f (x) постоянен и равен A, поэтому Aδi = γi , i, и значит,
f (xk )− f (xi )= A(δi + δi+1 +K + δk−1 ).
Апоскольку xi есть оптимум f (x) в направлении δi−1 , то
δiT−1 f (xi )= 0. Следовательно, по предположению индукции:
δiT−1 f (xk )= δiT−1A(δi + δi+1 +K + δk−1 ) = 0, i =1,2,K,k −1.
В силу (3.66) и предположения индукции δi−1 = Ak Aδi−1 . Отсюда
δiT−1AAk f (xk )= 0, i, 1≤ i ≤ k.
А поскольку
δk = xk+1 − xk = −ΘAk f (xk ), Θ > 0,
то из этого следует вывод, что δi−1Aδ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 = A−1.
·····························································
Квадратичная форма имеет вид: Q(x) = xT A−1x.
·····························································
Матрица 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 |
|
|
|