Реферат: Метод Дэвидона-Флетчера-Пауэлла
Министерство науки, высшей школы и технической
политики Российской Федерации.
Новосибирский Государственный
Технический Университет.
Реферат по исследованию операций на тему
«Метод Дэвидона - Флетчера - Пауэлла».
Вариант №2.
Факультет: АВТ.
Кафедра: АСУ.
Группа: АС-513.
Студент: Бойко Константин Анатольевич.
Преподаватель: Ренин Сергей Васильевич.
Дата: 19 октября 1997 года.
Новосибирск
Введение.
Первоначально
метод был предложен
Дэвидоном
(Davidon
[1959] ), а
затем развит
Флетчером и
Пауэллом (Fletcher,
Powell [1963] ). Метод
Дэвидона - Флетчера
- Пауэлла называют
также и методом
переменной
метрики.
Он попадает
в общий класс
квазиньютоновских
процедур, в
которых направления
поиска задаются
в виде -Djf(y).
Направление
градиента
является, таким
образом, отклоненным
в результате
умножения на
-Dj
, где
Dj
- положительно
определенная
симметрическая
матрица порядка
n х
n, аппроксимирующая
обратную матрицу
Гессе. На следующем
шаге матрица
Dj+1
представляется
в виде суммы
Dj
и двух симметрических
матриц ранга
один каждая.
В связи с этим
схема иногда
называется
схемой
коррекции
ранга два.
Алгоритм Дэвидона - Флетчера - Пауэлла.
Рассмотрим алгоритм Дэвидона - Флетчера - Пауэлла минимизации дифференцируемой функции нескольких переменных. В частности, если функция квадратичная, то, как будет показано позднее, метод вырабатывает сопряженные направления и останавливается после выполнения одной итерации, т.е. после поиска вдоль каждого из сопряженных направлений.
Начальный этап.
Пусть
>0
- константа
для остановки.
Выбрать точку
х1
и начальную
симметрическую
положительно
определенную
матрицу D1.
Положить
y1
=
x1,
k = j =
1 и перейти
к основному
этапу.
Основной этап.
Шаг 1.
Если
зкf(yj)
зк<
e,
то
остановиться;
в противном
случае положить
dj
= -
Dj
f(yj)
и взять
в качестве lj
оптимальное
решение задачи
минимизации
f(yj
+ ldj)
при
l
і
0. Положить yj+1
= yj
+ ljdj.
Если
j <
n, то
перейти к шагу
2. Если j
= n, то
положить y1
= xk+1
= yn+1,
заменить
k на
k+1,
положить j=1
и повторить
шаг 1.
Шаг 2. Построить Dj+1 следующим образом :
, (1)
где
pj = ljdj, (2)
qj
=
f(yj+1)
-
f(yj). (3)
Заменить j на j + 1 и перейти к шагу 1.
Пример.
Рассмотрим следующую задачу :
минимизировать (x1 - 2)4 + (x1 - 2x2)2.
Результаты вычислений методом Дэвидона - Флетчера - Пауэлла приведены в таблице 1.
Таблица 1. Результаты вычислений по методу Дэвидона - Флетчера - Пауэлла.
k |
xk f(xk) |
j |
yj f(yj) |
|
зк |
D |
dj |
lj |
yj+1 |
1 |
(0.00, 3.00) (52.00) |
1 2 |
(0.00, 3.00) (52.00) (2.70, 1.51) (0.34) |
(-44.00, 24.00) (0.73, 1.28) |
50.12 1.47 |
|
(44.00, -24.00) (-0.67, -1.31) |
0.062 0.22 |
(2.70, 1.51) (2.55, 1.22) |
2 |
(2.55, 1.22) (0.1036) |
1 2 |
(2.55, 1.22) (0.1036) (2.45, 1.27) (0.0490) |
(0.89, -0.44) (0.18, 0.36) |
0.99 0.40 |
|
(-0.89, 0.44) (-0.28, -0.25) |
0.11 0.64 |
(2.45, 1.27) (2.27, 1.11) |
3 |
(2.27, 1.11) (0.008) |
1 2 |
(2.27, 1.11) (0.008) (2.25, 1.13) (0.004) |
(0.18, -0.20) (0.04, 0.04) |
0.27 0.06 |
|
(-0.18, 0.20) (-0.05, -0.03) |
0.10 2.64 |
(2.25, 1.13) (2.12, 1.05) |
4 |
(2.12, 1.05) (0.0005) |
1 2 |
(2.12, 1.05) (0.0005) (2.115, 1.058) (0.0002) |
(0.05, -0.08) (0.004, 0.004) |
0.09 0.006 |
|
(-0.05, 0.08) |
0.10 |
(2.115, 1.058) |
На каждой
итерации вектор
dj
для
j = 1,
2 определяется
в виде
–Djf(yj),
где D1
– единичная
матрица, а
D2 вычисляется по формулам (1)
- (3). При
k
= 1 имеем
p1
= (2.7, -1.49)T,
q1
= (44.73, -22,72)T.
На
второй итерации
p1
= (-0.1, 0.05)T,
q1
= (-0.7, 0.8)T
и, наконец,
на третьей
итерации
p1
= (-0.02, 0.02)T,
q1
= (-0.14, 0.24)T.
Точка
yj+1
вычисляется
оптимизацией
вдоль направления
dj
при
начальной
точке yj
для j
= 1, 2. Процедура
остановлена
в точке
y2
= (2.115, 1.058)T
на
четвертой
итерации, так
как норма
зкf(y2)
зк=
0.006 достаточно
мала. Траектория
движения, полученная
методом, показана
на рисунке 1.
Рисунок 1. Метод Дэвидона - Флетчера - Пауэлла.
Лемма 1 показывает, что каждая матрица Dj положительно определена и dj является направлением спуска.
Для доказательства леммы нам понадобится :
Теорема 1. Пусть S - непустое множество в Еn, точка x О cl S. Конусом возможных направлений в точке x называется множество D = {d : d № 0, x + ld О S при всех l О (0, d) для некоторого d > 0}.
Определение. Пусть x и y - векторы из Еn и |xTy| - абсолютное значение скалярного произведения xTy. Тогда выполняется следующее неравенство, называемое неравенством Шварца : |xTy| Ј ||x|| ||y||.
Лемма 1.
Пусть
y1
О
Еn,
а D1
– начальная
положительно
определенная
симметрическая
матрица. Для
j = 1,
..., n положим
yj+1
= yj
+ ljdj,
где dj
= –Djf(yj),
а lj
является
оптимальным
решением задачи
минимизации
f(yj
+ ldj)
при l
і
0. Пусть, кроме
того, для
j
= 1, ..., n – 1 матрица
Dj+1
определяется
по формулам
(1) -
(3). Если
f(yj)
№
0 для
j
= 1, ..., n, то
матрицы D1,
..., Dn
симметрические
и положительно
определенные,
так что d1,
..., dn
– направления
спуска.
Доказательство.
Проведем
доказательство
по индукции.
При j
= 1 матрица
D1
симметрическая
и положительно
определенная
по условию
леммы. Кроме
того, f(y1)Td1
= –
f(y1)TD1
f(y1)
<
0, так
как D1
положительно
определена.
Тогда по теореме
1 вектор d1
определяет
направление
спуска. Предположим,
что утверждение
леммы справедливо
для некоторого
j Ј
n – 1, и
покажем, что
оно справедливо
для j+1.
Пусть x
– ненулевой
вектор из En,
тогда
из (1) имеем
(4)
Так как
Dj
– симметрическая
положительно
определенная
матрица, то
существует
положительно
определенная
матрица Dj1/2,
такая,
что Dj
= Dj1/2Dj1/2.
Пусть
a
= Dj1/2x
и b
= Dj1/2qj.
Тогда
xTDjx
= aTa,
qjTDjqj
= bTb
и xTDjqj
= aTb.
Подставляя
эти выражения
в (4), получаем
:
(5)
По неравенству Шварца имеем (aTa)(bTb) і (aTb)2. Таким образом, чтобы доказать, что xTDj+1x і 0, достаточно показать, что pjTqj > 0 и bTb > 0. Из (2) и (3) следует, что
pjTqj
= ljdjT[f(yj+1)
–
f(yj)]. (6)
По
предположениюf(yj)
№
0, и Dj
положительно
определена,
так что
f(yj)TDj
f(yj)
>
0. Кроме
того, dj
– направление
спуска, и, следовательно,
lj
>
0. Тогда из (6) следует,
что pjTqj
>
0. Кроме
того, qj
№
0, и ,
следовательно,
bTb=
qjTDjqj
>
0.
Покажем
теперь, что
xTDj+1x
>
0. Предположим,
что xTDj+1x
= 0. Это
возможно только
в том случае,
если (aTa)(bTb)
= (aTb)2
и pjTx
= 0. Прежде
всего заметим,
что
(aTa)(bTb)
= (aTb)2
только при a
= lb,
т.е. Dj1/2x
= lDj1/2qj.
Таким образом,
x =
lqj.
Так
как x
№
0, то l
№
0. Далее,
0 = pjTx
= l
pjTqj
противоречит
тому, что pjTqj
>
0 и l
№
0. Следовательно,
xTDj+1x
> 0, т.е.
матрица Dj+1
положительно
определена.
Поскольку
f(yj+1)
№
0 и Dj+1
положительно
определена,
имеем
f(yj+1)Tdj+1
= –
f(yj+1)T
Dj+1
f(yj+1)
< 0. Отсюда
по теореме 1
следует, что
dj+1
– направление
спуска.
Лемма доказана.
Квадратичный случай.
В дальнейшем нам понадобиться :
Теорема
2. Пусть
f(x) = cTx
+ 1
xTHx,
где Н - симметрическая
матрица порядка
n x n.
Рассмотрим
Н - сопряженные
векторы d1,
…, dn
и
произвольную
точку x1.
Пусть
lk
для
k = 1, …, n - оптимальное
решение задачи
минимизации
f(xk
+ ldk)
при
l
О
Е1
и xk+1
= xk
+
ldk.
Тогда
для k
= 1, …, n справедливы
следующие
утверждения
:
f(xk+1)Tdj = 0, j = 1, …, k;
f(x1)Tdk =
f(xk)Tdk;
xk+1 является оптимальным решением задачи минимизации f(x) при условии
x - x1 О L(d1, …, dk), где L(d1, …, dk) – линейное подпространство, натянутое на векторы d1, …, dk, то естьВ частности, xn+1 – точка минимума функции f на Еn.
Если целевая функция f квадратичная, то в соответствии со сформулированной ниже теоремой 3 направления d1, …, dn, генерируемые методом Дэвидона - Флетчера - Пауэлла, являются сопряженными. Следовательно, в соответствии с утверждением 3 теоремы 2 метод останавливается после завершения одной итерации в оптимальной точке. Кроме того, матрица Dn+1, полученная в конце итерации, совпадает с обратной к матрице Гессе Н.
Теорема
3.
Пусть Н – симметричная
положительно
определенная
матрица порядка
n x n.
Рассмотрим
задачу минимизации
f(x) = cTx
+ 1
xTHx
при условии
x О
En.
Предположим,
что задача
решена методом
Дэвидона - Флетчера
- Пауэлла при
начальной
точке y1
и начальной
положительно
определенной
матрице D1.
В частности,
пусть lj,
j = 1, …, n, – оптимальное
решение задачи
минимизации
f(yj
+ ldj)
при
l
і
0 и yj+1
= yj
+ ljdj,
где
dj
= -Djf(yj),
а Dj
определяется
по формулам
(1) – (3). Если
f(yj)
№
0 для всех j,
то направления
d1,
…, dn
являются Н -
сопряженными
и Dn+1
= H-1.
Кроме
того, yn+1
является
оптимальным
решением задачи.
Доказательство.
Прежде всего покажем, что для j, такого, что 1 Ј j Ј n, справедливы следующие утверждения :
d1, …, dj линейно независимы.
djTHdk = 0 для i № k; i, k Ј j.
Dj+1Hpk, или, что эквивалентно, Dj+1Hdk = dk для 1 Ј k Ј j, pk = lkdk.
Проведем доказательство по индукции. Для j = 1 утверждения 1 и 2 очевидны. Чтобы доказать утверждение 3, заметим прежде всего, что для любого k справедливы равенства
Hpk
= H(lkdk)
= H(yk+1
- yk)
=
f(yk+1)
–
f(yk)
= qk. (7)
В частности, Hp1 = q1. Таким образом, полагая j = 1 в (1), получаем
,
т.е. утверждение 3 справедливо при j = 1.
Теперь
предположим,
что утверждения
1, 2 и 3 справедливы
для j
Ј
n – 1.
Покажем, что
они также
справедливы
и для j
+ 1. Напомним,
что по утверждению
1 теоремы 2 diTf(yj+1)
= 0 для
i Ј
j. По
индуктивному
предположению
di
= Dj+1Hdi,
i Ј
j. Таким
образом, для
i Ј
j имеем
0 = diTf(yj+1)
= diTHDj+1
f(yj+1)
= –diTHdj+1.
Ввиду предположения индукции это равенство показывает, что утверждение 2 также справедливо для j+1.
Теперь покажем, что утверждение 3 справедливо для j+1.
Полагая k Ј j+1, имеем
. (8)
Учитывая (7) и полагая k = j + 1 в (8), получим, что Dj+2Hpj+1 = pj+1. Теперь пусть k Ј j. Так как утверждение 2 справедливо для j + 1, то
pj+1THpk = lklj+1dj+1THdk = 0. (9)
По предположению индукции из (7) и вследствие того, что утверждение 2 справедливо для j + 1, получаем
. (10)
Подставляя (9) и (10) в (8) и учитывая предположение индукции, получаем
.
Таким образом, утверждение 3 справедливо для j+1.
Осталось
показать, что
утверждение
1 справедливо
для j+1.
Предположим,
что
.
Умножая это
равенство на
и
учитывая, что
утверждение
2 справедливо
для j+1,
получаем, что
.
По условию
теоремы
,
а по лемме 1 матрица
положительно
определена,
так что
.
Так как H
положительно
определена,
то
и, следовательно,
.
Отсюда следует,
что
,
и так как d1,
…, dj
линейно
независимы
по предположению
индукции, то
для i
= 1, …, j.
Таким образом,
d1,
…, dj+1
линейно независимы
и утверждение
1 справедливо
для j+1.
Следовательно,
утверждения
1, 2 и 3 выполняются.
В частности
сопряжённость
d1,
…, dn
следует из
утверждений
1 и 2, если положить
j = n.
Пусть
теперь j
= n в
утверждении
3. Тогда
для k
= 1, …, n.
Если в качестве
D взять
матрицу, столбцами
которой являются
векторы d1,
…, dn,
то
.
Так как D
имеет
обратную, то
,
что возможно
только в том
случае, если
.
Наконец,
является оптимальным
решением по
теореме 2.
Теорема доказана.
Список литературы.
Базара М., Шетти К. «Нелинейное программирование. Теория и алгоритмы». М., 1982.
Химмельблау Д. «Прикладное нелинейное программирование». М., 1975.