Главная Учебники - Разные Лекции (разные) - часть 32
|
Министерство науки, высшей школы и технической политики Российской Федерации. Новосибирский Государственный Технический Университет.
по исследованию операций на тему «Метод Дэвидона - Флетчера - Пауэлла». Вариант №2. Факультет: АВТ. Кафедра: АСУ. Группа: АС-513. Студент: Бойко Константин Анатольевич. Преподаватель: Ренин Сергей Васильевич. Дата: 19 октября 1997 года. Новосибирск Введение. Первоначально метод был предложен Дэвидоном (Davidon [1959] ), а затем развит Флетчером и Пауэллом (Fletcher, Powell [1963] ). Метод Дэвидона - Флетчера - Пауэлла называют также и методом переменной метрики
. Он попадает в общий класс квазиньютоновских процедур, в которых направления поиска задаются в виде -Dj
Алгоритм Дэвидона - Флетчера - Пауэлла. Рассмотрим алгоритм Дэвидона - Флетчера - Пауэлла минимизации дифференцируемой функции нескольких переменных. В частности, если функция квадратичная, то, как будет показано позднее, метод вырабатывает сопряженные направления и останавливается после выполнения одной итерации, т.е. после поиска вдоль каждого из сопряженных направлений. Начальный этап
.
Пусть Основной этап
.
Шаг 1.
Если çê Шаг 2.
Построить Dj
+1
следующим образом : где pj
= lj
dj
, (2) qj
= Заменить 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 определяется в виде Рисунок 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
и |xT
y| - абсолютное значение скалярного произведения xT
y. Тогда выполняется следующее неравенство, называемое неравенством Шварца
: |xT
y| £ ||x|| ||y||. Лемма 1.
Пусть y1
Î Еn
, а D1
– начальная положительно определенная симметрическая матрица. Для j = 1, ..., n положим yj+1
= yj
+ lj
dj
, где dj
= –Dj
Доказательство.
Проведем доказательство по индукции. При j = 1 матрица D1
симметрическая и положительно определенная по условию леммы. Кроме того,
Так как Dj
– симметрическая положительно определенная матрица, то существует положительно определенная матрица Dj
1
/2
, такая, что Dj
= Dj
1
/2
Dj
1
/2
. Пусть По неравенству Шварца имеем (aT
a)(bT
b) ³ (aT
b)2
. Таким образом, чтобы доказать, что xT
Dj+1
x ³ 0, достаточно показать, что pj
T
qj
> 0 и bT
b > 0. Из (2) и (3) следует, что pj
T
qj
= lj
dj
T
[ По предположению Покажем теперь, что xT
Dj+1
x > 0. Предположим, что xT
Dj+1
x = 0. Это возможно только в том случае, если (aT
a)(bT
b) = (aT
b)2
и pj
T
x = 0. Прежде всего заметим, что Поскольку Лемма доказана.
Квадратичный случай.
В дальнейшем нам понадобиться : Теорема 2.
Пусть f(x) = cT
x + 1 xT
Hx, где Н - симметрическая матрица порядка n x n. Рассмотрим Н - сопряженные векторы d1
, …, dn
и произвольную точку x1
. Пусть lk
для k = 1, …, n - оптимальное решение задачи минимизации 1. 2. 3. xk+1
является оптимальным решением задачи минимизации f(x) при условии Если целевая функция f квадратичная, то в соответствии со сформулированной ниже теоремой 3 направления d1
, …, dn
, генерируемые методом Дэвидона - Флетчера - Пауэлла, являются сопряженными. Следовательно, в соответствии с утверждением 3 теоремы 2 метод останавливается после завершения одной итерации в оптимальной точке. Кроме того, матрица Dn+1
, полученная в конце итерации, совпадает с обратной к матрице Гессе Н. Теорема 3
.
Пусть Н – симметричная положительно определенная матрица порядка n x n. Рассмотрим задачу минимизации f(x) = cT
x + 1 xT
Hx при условии x Î En
. Предположим, что задача решена методом Дэвидона - Флетчера - Пауэлла при начальной точке y1
и начальной положительно определенной матрице D1
. В частности, пусть lj
, j = 1, …, n, – оптимальное решение задачи минимизации f(yj
+ ldj
) при l ³ 0 и yj
+1
= yj
+ lj
dj
, где dj
= -Dj
Доказательство.
Прежде всего покажем, что для j, такого, что 1 £ j £ n, справедливы следующие утверждения : 1. d1
, …, dj
линейно независимы. 2. dj
T
Hdk
= 0 для i ¹ k; i, k £ j. 3. Dj+1
Hpk
, или, что эквивалентно, Dj+1
Hdk
= dk
для 1 £ k £ j, pk
= lk
dk
. Проведем доказательство по индукции. Для j = 1 утверждения 1 и 2 очевидны. Чтобы доказать утверждение 3, заметим прежде всего, что для любого k справедливы равенства Hpk
= H(lk
dk
) = H(yk+1
- yk
) = В частности, Hp1
= q1
. Таким образом, полагая j = 1 в (1), получаем т.е. утверждение 3 справедливо при j = 1. Теперь предположим, что утверждения 1, 2 и 3 справедливы для j £ n – 1. Покажем, что они также справедливы и для j + 1. Напомним, что по утверждению 1 теоремы 2 di
T
0 = di
T
Ввиду предположения индукции это равенство показывает, что утверждение 2 также справедливо для j+1. Теперь покажем, что утверждение 3 справедливо для j+1. Полагая k £ j+1, имеем Учитывая (7) и полагая k = j + 1 в (8), получим, что Dj+2
Hpj+1
= pj+1
. Теперь пусть k £ j. Так как утверждение 2 справедливо для j + 1, то pj+1
T
Hpk
= lk
lj+1
dj+1
T
Hdk
= 0. (9) По предположению индукции из (7) и вследствие того, что утверждение 2 справедливо для j + 1, получаем Подставляя (9) и (10) в (8) и учитывая предположение индукции, получаем Таким образом, утверждение 3 справедливо для j+1. Осталось показать, что утверждение 1 справедливо для j+1. Предположим, что Пусть теперь j = n в утверждении 3. Тогда Теорема доказана.
Список литературы. 1. Базара М., Шетти К. «Нелинейное программирование. Теория и алгоритмы». М., 1982. 2. Химмельблау Д. «Прикладное нелинейное программирование». М., 1975. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||