Россия |
Лекция 11: Метод наискорейшего спуска. Метод Давидона – Флетчера – Пауэлла. Проблема оврагов. Проблема многоэкстремальности
2. Метод Давидона - Флетчера – Пауэлла
Начнем поиск из начальной точки x0, взяв в качестве начальной матрицу Н0 (обычно единичную матрицу, хотя в этом случае может подойти любая симметрическая положительно определенная матрица). Итерационная процедура может быть представлена следующим образом.
- На шаге i имеются точка xi и положительно определенная симметрическая матрица Hi.
- В качестве направления поиска взять направление
( 2.1) - Чтобы найти функцию xi,
минимизирующую функцию
, произвести одномерный поиск вдоль прямой
.
- Положить
( 2.2) - Положить
( 2.3) - Найти f(xi+1) и gi+1.
Завершить процедуру, если величины |gi+1| или |Vi| достаточно малы.
В противном случае продолжить.
- Положить
( 2.5) - Обновить матрицу H следующим образом:где
( 2.6) ( 2.7) - Увеличить i на единицу и вернуться на шаг 2.
Поясним процедуру, следуя аргументации Флетчера и Пауэлла.
а) Процесс будет устойчив, если функция vi
убывает и величина положительна. Поскольку gi есть направление наискорейшего возрастания,
функция vi будет убывать тогда, когда
произведение
![]() |
( 2.9) |
Это справедливо, если Hi - симметрическая положительно определенная матрица для любого i. Начальная матрица Н0 обладает этими свойствами по определению. Процесс обновления в соответствии с соотношениями 2.6 – 2.8 сохраняет симметричность гессиана. Методом индукции докажем, что после обновления матрица Hi остается положительно определенной. Если это условие справедливо, то
![]() |
( 2.10) |
Положим
![]() |
( 2.11) |
![\eta](/sites/default/files/tex_cache/ffe9f913124f345732e9f00fa258552e.png)
Тогда
![]() |
( 2.12) |
![p_2 q_2 \geqslant (p^T q)^2](/sites/default/files/tex_cache/025dd52d935109cd735cd2d76da67d9b.png)
Знаменатель в соотношении (2.12) положителен, так как
![v_i^T u_i = v_i^T [g_{i+1} - g_i] = -v_i^T g_i,](/sites/default/files/tex_cache/bf33e6b3ccf235ad191617e283d1a299.png)
![v_i^T g_{i+1} = 0](/sites/default/files/tex_cache/b6f2934a75db417ba3b9218e762bad5c.png)
Следовательно,
![v_i^T u_i = \lambda_i g_i^T H_i g_i > 0 ,](/sites/default/files/tex_cache/64f46bd120c8b588688cd5224bc8b33a.png)
![\lambda_i > 0](/sites/default/files/tex_cache/399aa59d395d61a95711969c45f26bce.png)
Таким образом, , что и
доказывает положительную определенность матрицы Нi+1.
б) Теперь покажем, что если метод ДФП применяется к квадратичной функции (с симметрической положительно определенной матрицей G, то Нn = G-1 и поиск минимума закончится через n шагов. Для доказательства достаточно показать, что v0, v1, ..., vk - линейно независимые собственные векторы матрицы Hk+1G с собственными значениями, равными единице. Тогда матрица HnG должна быть единичной.
Отметим, что из соотношения (2.5) следует, что
![]() |
( 2.14) |
Кроме того,
![\begin{aligned}
H_{i+1} Gv_i & = H_{i+1} u_i = H_i u_i + A_i u_i + B_i u_i = \\
& = H_i u_i + v_i - H_i u_i,
\end{aligned}](/sites/default/files/tex_cache/a9f18eff430080ede3cb5508cf83e1c1.png)
![v_i^T u_i](/sites/default/files/tex_cache/99fffeaeff65f559822b53860efd3569.png)
![u_i^T H_i u_i](/sites/default/files/tex_cache/f74f2bd62cdaa872ac9fdccf150eac28.png)
Таким образом,
![]() |
( 2.15) |
Далее методом индукции по k покажем, что для к = 2, 3, ..., n справедливы соотношения
![]() |
( 2.16) |
![]() |
( 2.17) |
Для доказательства в соотношении (2.15) положим i = 0 и получим H1Gv0 = v0, т.е. соотношение (2.17) при k = 1. При k = 2 соотношение (2.17) будет иметь вид
![H_2 Gv_0 = v_c \; \text{и } H_2 Gv_1 = v_1.](/sites/default/files/tex_cache/df1bdf3127e4330e3e5564bca1b18857.png)
Второе равенство следует из соотношения (2.15) при i = 1.
Для первого равенства имеем
![H_2 Gv_0 = H_1 Gv_0 + v_1 \frac{v_1^T Gv_0}{V_1^T u_1} -
\frac{H_1 u_1 u_1^T H_1 Gv_0}{u_i^T H_1 u_1} .](/sites/default/files/tex_cache/d95efa505eeb518933f42ae213a2a28d.png)
Два последних члена в правой части равны нулю, поскольку
![\begin{aligned}
v_1^T Gv_0 & = v_0^T Gv_1 - v_0^T G(-\lambda_1 H_1 g_1) = \\
& = -\lambda_1 g_1^T H_1 Gv_0 = \\
& = -\lambda_1 g_i^T v_0 = \\
& = 0,
\end{aligned}](/sites/default/files/tex_cache/a2e0a5f9fa1879cfcc1968f849674ca0.png)
![u_1^T H_1 Gv_0 = v_1^T Gv_0](/sites/default/files/tex_cache/e7848cd06cade4a110364d04d06a8601.png)
![v_0^T Gv_1 = 0,](/sites/default/files/tex_cache/4ece421bdc181a648ae7666abed4a87c.png)
Теперь по индукции покажем, что если соотношения (2.16) и (2.17) справедливы при k, то они справедливы и при k + 1.
Имеем
![]() |
( 2.18) |
Из соотношения (2.16) при I < k — 1 получим
![v_i^T g_k = v_i^T g_{i+1} = 0,](/sites/default/files/tex_cache/47aaf75d1e05ddd404b95454b371c296.png)
![v_{k-1}^T g_k = 0.](/sites/default/files/tex_cache/5182235550e4fedcfd9ff1af53c7fac8.png)
Тогда
![]() |
( 2.19) |
![v_i GH_k g_k = 0 \; \text{при } 0 \leqslant i < k ,](/sites/default/files/tex_cache/77ff33d605701995fe1b127c1f2c4812.png)
![-v_i^T G d_k = 0](/sites/default/files/tex_cache/888d072f7a7126d39c6693e61662c9ed.png)
![-v_i^T Gv_k = 0, \; \text{поскольку } v_k = \lambda_k d_k.](/sites/default/files/tex_cache/048d41e8745292d2046bbee639a25ab2.png)
Следовательно,
![]() |
( 2.20) |
![]() |
( 2.21) |
Из соотношений (2.14) и (2.17) также имеем
![]() |
( 2.22) |
Тогда из соотношений (2.6) – (2.17) следует
![H_{k+1} Gv_i = H_k Gv_i +
\frac{v_k v_k^T Gv_i}{v_k^T u_k} -
\frac{H_k u_k u_k^T H_k Gv_i}{u_k^T H_k u_k} = H_k Gv_i ,](/sites/default/files/tex_cache/7e57daac81796f64054ee1996a517af9.png)
![v_k^T Gv_i = 0](/sites/default/files/tex_cache/069a20104309bec0da1f655fe347d897.png)
![u_k^T H_k Gv_i = u_k^T v_i = v_k^T Gv_i = 0 \; \text{при } 0 \leqslant i < k.](/sites/default/files/tex_cache/20f619130aae73a3970e80c9157510cd.png)
Таким образом, показано, что
![]() |
( 2.23) |
При i = k имеем
![\begin{aligned}
H_{k+1} Gv_k & = H_k Gv_k + \frac{v_k v_k^T Gv_k}{v_k^T u_k} -
\frac{H_k u_k u_k^T H_k GV_k}{u_k^T H_k u_k} = \\
& = H_k u_k + v_k - H_k u_k ,
\end{aligned}](/sites/default/files/tex_cache/140f29a73d638c496c4ff8b0e0d7fcac.png)
![v_k^T Gv_k = v_k^T u_k \quad \text{и} \quad u_k^T H_k Gv_k = u_k^T H_k u_k.](/sites/default/files/tex_cache/b7f953a2ad24aed6dce9ff6c11dfd487.png)
Следовательно, Hk+1Gvk = vk и из соотношения (2.23) получаем
![]() |
( 2.24) |
Соотношения (2.21) и (2.24) так же справедливы для следующего k, как и соотношения (2.16) и (2.17). Следовательно, доказательство по индукции закончено. Из соотношения (2.16) следует, что векторы v0, v1, ..., vn-1 линейно независимы. Они являются взаимно сопряженными по отношению к матрице G. Из соотношения (2.17) следует, что v0, v1, ..., vn-1 являются собственными векторами матрицы HnG с собственным значением, равным единице. Тогда матрица HnG должна быть единичной. Следовательно,
![]() |
( 2.25) |
Из соотношения (2.19) следует, что минимум найден за n итераций. Вектор gn должен быть ортогонален каждому из n независимых векторов v0, v1, ..., vn-1. Следовательно,
![]() |
( 2.26) |
в) Способ обновления матрицы H описывается в соотношении (2.6):
![H_n = H_0 + \sum_{i=0}^{n-1} A_i + \sum_{i=0}^{n-1} B_i .](/sites/default/files/tex_cache/7a6b7c6051fa5029245c8b6db893ec4c.png)
Покажем, что .
Из условий ортогональности (2.16) следует
VTGV=D,
где V — матрица, состоящая из векторов vi, a D - диагональная
матрица с элементами .
Следовательно,
G=(VT)-1DV-1
Тогда
G-1=VDV-1VT,
а поскольку D - диагональная матрица, то можно произвести инверсию и перемножить матрицы для получения выражения
![G^{-1} = \sum_{i=0}^{n-1} \frac{v_i V_i^T}{v_i^T Gv_i} =
\sum_{i=0}^{n-1} \frac{v_i V_i^T}{v_i^T u_i}](/sites/default/files/tex_cache/0c0a238d0ab778d1892707b5cee84898.png)
Таким образом,
![]() |
( 2.27) |
Поскольку соотношение (2.15) должно выполняться, то Нi+1Gvi - Vi, а это означает, что vi = HiGvi + AiGvi + BiGvi. Так как
![A_i Gv_i = A_i u_i = \frac{v_i v_i^T u_i}{v_i^T u_i} = v_i ,](/sites/default/files/tex_cache/c63670dac4ac82f06f8ac9650bbf3387.png)
![]() |
( 2.28) |
![]() |
( 2.29) |
Этим завершается теоретическое изложение метода ДФП, который использует как идеи метода Ньютона — Рафсона, так и свойство сопряженных направлений, и при применении для минимизации квадратичной функции n переменных он сходится не более чем за n итераций. Это весьма мощная оптимизационная процедура, очень эффективная при оптимизации большинства функций независимо от того, квадратичны они или нет.
Ниже приведена блок – схема данной процедуры.