Смекни!
smekni.com

Метод Дэвидона-Флетчера-Пауэлла (стр. 1 из 2)

Министерство науки, высшей школы и технической

политики Российской Федерации.

Новосибирский Государственный

Технический Университет.

Реферат по исследованию операций на тему

«Метод Дэвидона - Флетчера - Пауэлла».

Вариант №2.

Факультет: АВТ.

Кафедра: АСУ.

Группа: АС-513.

Студент: Бойко Константин Анатольевич.

Преподаватель: Ренин Сергей Васильевич.

Дата: 19 октября 1997 года.

Новосибирск



Введение.

Первоначально метод был предложен Дэвидоном (Davidon [1959] ), а затем развит Флетчером и Пауэллом (Fletcher, Powell [1963] ). Метод Дэвидона - Флетчера - Пауэлла называют также и методом переменной метрики. Он попадает в общий класс квазиньютоновских процедур, в которых направления поиска задаются в виде -Dj

f(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)

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 определяется в виде
–Dj

f(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 = –Dj

f(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), получаем :