Министерство
науки, высшей школы и технической
политики
Российской Федерации.
Новосибирский
Государственный
Технический
Университет.
Реферат по
исследованию операций на тему
«Метод Дэвидона
- Флетчера - Пауэлла».
Вариант №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
= - Djf(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) |
f(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)TD1f(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)TDjf(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+1f(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 справедливы следующие
утверждения :
1. f(xk+1)Tdj = 0, j =
1, …, k;
2. f(x1)Tdk = f(xk)Tdk;
3. 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, справедливы следующие
утверждения :
1. d1, …, dj линейно независимы.
2. djTHdk
= 0 для
i ¹
k; i, k £
j.
3. 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+1f(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.
Теорема доказана.
Список
литературы.
1.
Базара
М., Шетти К. «Нелинейное программирование. Теория и алгоритмы». М., 1982.
2.
Химмельблау
Д. «Прикладное нелинейное программирование». М., 1975.