
- •Методы оптимизации Введение
- •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. Функции нескольких переменных
2.1 Предварительные сведения
2.1.1 Общая классификация методов
Методы многомерной минимизации можно разделить на три большие группы в зависимости от того, какая информация (помимо значений самой функции) им необходима:
1. Методы, использующие только значения функции;
2. Методы, требущие вычисления первых производных (градиента) функции;
3. Методы, требующие вычисления вторых производных.
Выбор метода в значительной степени зависит от характера минимизируемой функции. Как правило, методы с использованием производных более эффективны (дают решение за меньшее число шагов). Однако далеко не всегда функцию можно непосредственно продифференцировать. В реальных задачах часто встречаются зависимости, которые не могут быть представлены в виде замкнутого аналитического выражения, т. е. существует алгоритм (достаточно сложный), но не формула для получения значения функции из заданных значений аргументов. Численное дифференцирование в подобных случаях применяется редко, так как требует больших дополнительных затрат (особенно ощутимых, когда функция достаточно сложна, и однократное ее вычисление занимает значительное время) и не всегда обеспечивает необходимую точность. Особенно это касается вторых производных.
2.1.2 Векторные обозначения
При рассмотрении многомерных задач естественно использовать векторные обозначения. Совокупность значений x1,x2,,xn, являющихся аргументами функции n переменных, определяет положение точки в n-мерном пространстве или ее радиус-вектор x. Таким образом, функцию F(x1,x2,,xn) можно рассматривать как функцию векторного аргумента F(x).
Если в пространстве заданы две точки x1 и x2, то разность v=x1x2 есть не что иное, как вектор, соединяющий эти точки и направленный от x1 к x2. Если x1 – радиус-вектор точки, а v – произвольный вектор в n-мерном пространстве, то их сумма x2=x1+v определяет точку, лежащую на прямой, проведенной через x1 параллельно v и находящуюся от x1 на расстоянии, равном длине вектора v.
Многие методы используют градиент gradF — вектор, элементами которого являются частные производные F/xi; он указывает направление, вдоль которого функция возрастает наиболее быстро. Противоположно направленный вектор gradF (антиградиент) указывает направление скорейшего убывания F.
Большинство методов многомерной оптимизации сводится к последовательности одномерных поисков вдоль некоторых направлений в n-мерном пространстве, выбираемых определенным образом. Процедуру одномерной минимизации в многомерном пространстве можно описать следующим образом. Пусть x0 – начальная точка, а вектор v задает направление поиска. Это значит, что среди всех точек x, которые лежат на прямой, проходящей через x0 параллельно вектору v, нужно найти ту, в которой F(x) принимает наименьшее значение. Радиус-вектор любой точки, лежащей на указанной прямой, можно представить в виде
, (9)
где
– евклидова норма (т. е.
длина) вектора v,
а
– смещение (со знаком) точки x
вдоль прямой относительно
x0.
Таким образом,
является одномерной
координатой, определяющей
положение точки на прямой,
причем x0
задает начало координат
(=0),
а положительное направление
совпадает с направлением
вектора v.
Если направление поиска
задано вектором единичной
длины, т. е.
,
то выражение (9) упрощается:
(9а)
Поскольку x0
и v
фиксированы, то функцию
на рассматриваемой
прямой можно считать функцией
одной переменной ,
применяя для поиска минимума
любой из методов, описанных
в первом разделе.
Заметим, что исходные предпосылки метода Дэвидона (нулевое значение переменной в начальной точке и положение минимума на положительной полуоси) легко достигаются путем надлежащего определения x0 и выбора одного из двух возможных направлений вектора v для данной прямой.