
- •Методы оптимизации Введение
- •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 Методы с использованием производных
2.3.1 Метод скорейшего спуска
Среди методов, использующих первые производные, наиболее известен метод скорейшего спуска в разных модификациях. Основная идея метода основана на том, что вектор градиента ориентирован в направлении наибольшей крутизны поверхности в данной точке. Движение по вектору градиента приводит к скорейшему росту значений функции; движение в противоположную сторону (по антиградиенту) ведет к скорейшему убыванию функции.
Простейшая схема алгоритма вполне очевидна и выглядит следующим образом:
Пусть x0 – начальная точка. Вычислим в этой точке антиградиент g0=gradF(x0). Двигаясь от x0 вдоль направления g0, найдем самую низкую точку с помощью любого метода одномерной минимизации (об одномерном поиске вдоль заданного направления см. раздел 2.1.2). Обозначим найденную точку x1. Вычислим в этой точке новый антиградиент g1 и, двигаясь вдоль него, найдем наинизшую точку x2. Повторяя эти шаги, получим последовательность точек, постепенно приближающихся к минимуму.
Рис. 7. Поиск минимума методом скорейшего
спуска.
Избавиться от ортогональности
последовательных
перемещений позволяет
вариант метода скорейшего
спуска с демпфированием.
После спуска по антиградиенту
от точки x0
до точки относительного
минимума x1,
делается укороченный шаг,
т. е. текущая точка переносится
не в x1, а в промежуточное
положение
,
где
– коэффициент демпфирования,
обычно принимаемый равным
0.60.8.
Новое направление спуска
в точке x1
уже не будет ортогональным
к предыдущему, а образует
с ним, как правило, тупой угол
и приблизится к глобальному
направлению на минимум.
Несмотря на то, что на каждом
шаге спуск прекращается,
не доходя до минимума,
конечная цель достигается
за меньшее число шагов.
Недостаток метода скорейшего спуска с демпфированием — увеличенный объем работы, поскольку в каждом направлении проводится поиск точек минимума, которые затем фактически не используются (они нужны только для оценки величины конечного шага). Поэтому был предложен еще один вариант градиентного метода, в котором от исходной точки по направлению скорейшего спуска делается шаг заранее заданной длины, заведомо меньшей расстояния до точки минимума. Разумеется, по мере приближения к минимуму величина шага должна корректироваться. Эффективность этого метода зависит от правильного выбора шага. В пределе, когда шаг становится очень малым, траектория спуска приближается к кривой, по которой будет скатываться в поле силы тяжести помещенная на поверхность материальная точка. Эта траектория ведет в точку минимума кратчайшим путем, так что название «метод скорейшего спуска» в полной мере относится именно к этой модификации алгоритма. Однако, на практике слишком малый шаг невыгоден, так как придется сделать большое число шагов, прежде, чем будет достигнут минимум. С другой стороны, чересчур большой шаг приведет к излишним отклонениям от оптимальной траектории. Повидимому, трудно предложить универсальный способ выбора шага, пригодный для любой задачи, и в этом один из главных недостатков рассматриваемого метода.
2.3.2 Метод Ньютона
Метод Ньютона для поиска минимума функции нескольких переменных является частным случаем применения метода решения системы нелинейных уравнений.
Как известно, уравнение метода Ньютона для решения системы уравнений вида
можно представить в матричной форме следующим образом:
, (10)
где x – вектор поправок к начальному приближению x0, f – вектор, составленный из функций fi, а J – матрица Якоби (или якобиан системы) с элементами
.
Предполагается, что вектор f и матрица J в правой части уравнения (10) вычислены в точке x0.
Переходя к задаче нахождения минимума (максимума) функции F(x), запишем условие экстремума в виде равенства нулю частных производных по всем переменным:
, (11)
или короче,
.
Взяв начальное приближение x0 и применяя метод Ньютона (10) к системе уравнений (11), получим:
, (12)
где H – матрица вторых производных (матрица Гессе или гессиан) функции F:
.
Метод Ньютона обладает квадратичной скоростью сходимости к решению и потому является одним из наиболее быстрых методов оптимизации. Однако, он требует вычисления вторых производных, что сильно ограничивает его практическое применение.
Рис. 8. Движение к минимуму в методе
Ньютона.