
8. Численные методы поиска
8.1. Градиентные методы
В большинстве случаев задача оптимизации функции n переменных f(x) = (x1, x2,…, xn) на множестве X = En бывает сложнее задачи оптимизации функции одной переменной, так как с ростом размерности пространства переменных возрастают объём вычислений и сложность алгоритмов, а также затрудняется анализ поведения целевой функции.
Для решения задачи безусловного экстремума функции f(x) наиболее часто применяют приближенные методы, в основе которых лежит вычисление производных. Такие методы обычно называют градиентными.
Используя градиентные методы, можно найти решение любой задачи нелинейного программирования. Однако в общем случае применение этих методов позволяет найти точку локального экстремума. Поэтому более целесообразно использовать градиентные методы для нахождения решения задач выпуклого программирования, в которых всякий локальный экстремум является одновременно и глобальным. Градиентные методы могут быть подразделены на две группы.
К первой группе относятся методы, при использовании которых исследуемые точки не выходят за пределы области допустимых решений задачи. Наиболее распространенным из таких методов является метод Франка-Вульфа.
Ко второй группе относятся методы, при использовании которых исследуемые точки могут, как принадлежать, так и не принадлежать области допустимых решений. Однако в результате реализации итерационного процесса находится точка области допустимых решений, определяющая приемлемое решение. Из таких методов наиболее часто используется метод штрафных функций или метод Эрроу-Гурвица.
В зависимости от наивысшего порядка частных производных функции f(x) численные методы решения задачи безусловной оптимизации принято делить на три группы:
1. Методы нулевого порядка, использующие только информацию о значении функции f(x). К ним можно отнести, рассмотренные в главе 5, метод деления интервала пополам (дихотомии), золотого сечения, а также Розенброка, сопряжённых направлений, случайного поиска и др.
2. Методы первого порядка, использующие информацию о первых производных функции f(x). К ним можно отнести метод градиентного спуска с постоянным шагом, наискорейшего градиентного спуска, покоординатного спуска, Гаусс-Зайделя, Флетчера-Ривса, Дэвидона-Флетчера Пауэла, кубической интерполяции.
3. Методы второго порядка, требующие для своей реализации знания вторых производных функции f(x). К ним можно отнести метод Ньютона-Рафсона.
Градиентный метод основан на простой идее. Если заранее известно, что функция (х) имеет в допустимой области единственный экстремум. В допустимой области необходимо взять произвольную точку х(0) и с помощью градиента (антиградиента) определить направление, в котором (х) возрастает (убывает) с наибольшей скоростью (рис. 8.1). Сделав небольшой “шаг” в найденном направлении, перейти в новую точку х(1). Потом снова определить наилучшее направление для перехода в очередную точку х(2) и т.д. Иначе говоря, надо построить последовательность точек х(0) , х(1) , х(2) ,… так, чтобы она сходилась к точке экстремума х*. Величина шага из точки х(k) по направлению градиента (х(k)) (антиградиента -(х(k) ) определяется значением параметра в уравнении прямой
х(k+1) = х(k) +(х(k))
или
х(k+1) =х(k) +(-(х(k))), (8.1)
где k = 0,1,2,3,…, проходящей через х(k) параллельно градиенту (антиградиенту).
Значение выбирают из соображений: перемещение по прямой сопровождается изменением функции (х) на величину (х), которая зависит от выбранного значения . Значение *, при котором приращение ∆ достигает наибольшей величины можно определить, используя необходимый признак экстремума ∆:
d∆ / d = (х(1) ) ∙ (х(0) ) = ( / х1)(1) ∙ ( / х1)(0) = 0, (8.2)
где (1) и (2) – значения частных производных и градиента в новой точке х(1) и исходной х(0).
При нахождении решения задач градиентными методами, в том числе и названными, итерационный процесс осуществляется до того момента, пока градиент функции (х(1), х(2), х(3),…, х(n)) в очередной точке х(k+1) не станет равным 0 или же пока (х(k+1)) - (х(k) ) < , где – достаточно малое положительное число, характеризующее точность полученного решения.
Х2
0
Х(0)
Х(1)
1
(Х(0))
(Х(1))
Х(2)
Х* (Х(2))
Х1
Рис. 8.1. Графическое изображение градиентного метода