
- •Методы оптимизации Введение
- •1. Функции одной переменной
- •1.1 Поиск методом золотого сечения
- •1.2 Квадратичная интерполяция
- •1.3 Кубическая интерполяция (метод Дэвидона)
- •2. Функции нескольких переменных
- •2.1 Предварительные сведения
- •2.1.1 Общая классификация методов
- •2.1.2 Векторные обозначения
- •2.2 Методы прямого поиска
- •2.2.1 Метод покоординатного спуска (метод релаксации)
- •2.2.2 Метод Хука-Дживса
- •2.2.3 Метод деформируемого многогранника Нелдера-Мида
- •2.3 Методы с использованием производных
- •2.3.1 Метод скорейшего спуска
- •2.3.3 Квадратичные функции и сопряженные направления
- •2.3.4 Метод Флетчера-Ривса
- •2.3.5 Метод Дэвидона-Флетчера-Пауэлла
2.3.5 Метод Дэвидона-Флетчера-Пауэлла
Флетчер и Пауэлл (R. Fletcher, M. J. D. Powell; 1963-1971) предложили высокоэффективный метод минимизации произвольных функций, соединяющий свойства как методов сопряженных направлений, так и методов ньютоновского типа, и при этом не требующий вычисления вторых производных. Полное обоснование этого метода требует довольно много места, поэтому мы ограничимся изложением основных идей и расчетных формул.
В основе метода Флетчера-Пауэлла лежат итерации ньютоновского типа (12), но вместо точной матрицы Гессе H используется некоторое приближение к ней, которое постепенно уточняется по мере приближения к минимуму.
На k-м шаге алгоритма используется направление поиска sk, которое определяется как
sk=Akgk, (33)
где gk – градиент минимизируемой функции, вычисленный в начальной точке поиска xk. Следующая точка xk+1 получается в результате одномерной минимизации:
xk+1=xk+ksk, (34)
причем k определяется с помощью процедуры кубической интерполяции Дэвидона (см. п. 1.3). Поэтому весь алгоритм обычно называют методом Дэвидона-Флетчера-Пауэлла (ДФП).
Сравнивая уравнения (12) и (33), видим, что Ak имеет смысл приближения к H1. Применение уравнения (33) означает, что вместо антиградиента gk для спуска к минимуму берется направление, получаемое в результате поворота с помощью матрицы Ak. Эта геометрическая интерпретация уже обсуждалась в связи с методом Ньютона (см. рис. 8). Для того, чтобы повернутый вектор skбыл, тем не менее, всегда направлен в сторону понижения значений функции, необходимо, чтобы матрица Ak была положительно определенной.
На первом шаге алгоритма ДФП в качестве Ak берут единичную матрицу (A1=E), так что s1=g1, т. е. вначале движение не отличается от метода скорейшего спуска. Затем матрицу Ak после каждого шага корректируют, применяя следующие формулы:
xk=xk+1xk=ksk=kAkgk изменение x на k-м шаге,
gk=gk+1gk изменение градиента на k-м шаге,
,
,
. (35)
Можно показать, что в случае минимизации квадратичной функции N переменных направления sk становятся сопряженными, а матрица Ak через N шагов превращается в H1, так что последний шаг приводит в точку минимума. Если функция не является квадратичной, то процесс, вообще говоря, не заканчивается за N шагов, но Ak по мере приближения к точке минимума асимптотически стремится к H1, а скорость сходимости в пределе становится квадратичной, как у метода Ньютона.
3. Минимизация суммы квадратов
3.1 Аппроксимация данных методом наименьших квадратов
3.2 Метод Гаусса-Ньютона
3.3 Линейный метод наименьших квадратов
1. Б. Банди; Методы оптимизации. Вводный курс. М.: «Радио и связь», 1988.
2. Д. Химмельблау; Прикладное нелинейное программирование. М.: «Мир», 1975.