Теоретическая часть. Градиентные методы оптимизации
Градиентные методы оптимизации
Отчет о лабораторной работе
по курсу “Планирование и организация эксперимента”
ЯГТУ 200503.65 – 001 ЛР
Отчет выполнила
студентка гр. ЭСК-32
_______Бутусова А.О.
__________2011
Теоретическая часть
Метод градиента в чистом виде формирует шаг попеременным как функцию от градиента R(x) в текущей точке поиска. Простейший алгоритм поиска min R(x) записывается в векторной форме следующим образом:
Хi+1=Xi – h* gradR(x)j, или
Хi+1j=Xij – h* dR/dXj, j=1,2…n
Величина рабочего шага в направлении градиента h* gradR(x) зависит от величины градиента, который заранее учесть трудно, и от коэффициента пропорциональности шага h, с помощью которого можно управлять эффективностью метода.
Поиск каждой новой точки состоит из двух этапов:
1. Оценка градиента R(x) путем вычисления частных производных от R(x) по каждой переменной Xj
2. Рабочий шаг по всем переменным одновременно.
Величина h сильно влияет на эффективность метода.
Большей эффективностью обладает вариант метода, когда шаг по каждой переменной определяется направляющими косинусами градиента.
Хi+1j=Xij – h* cos(Wj), где cos(Wj)=dR/dXj/| gradR(x)j|
В этом случае величина рабочего шага не зависит от величины модуля градиента ей легче управлять изменением h. В районе оптимума могут возникать значительные «рысканья», поэтому используют различные алгоритмы коррекции h.
1. hj = const = h
2. hj = hj-1/2, если R(xi) > R(xi-1)
hj-1, если R(xi) < R(xi-1);
3. hj= hj-1*2, если а<a1
hj, если а1<=a<=a2
hj/3, если а>a2
где а – угол между градиентами на предыдущем и текущем шаге, а1 и a2 – заданные пороговые значения. Вдали от оптимума значение градиента меняется мало, поэтому шаг можно увеличить, вблизи оптимума направление меняется резко(угол между градиентами большой), поэтому h сокращается.
Для оценки частных производных используются разностные методы:
· Алгоритм с центральной пробой
dR/dXj = [( X1,.., Xi, + gi,..,Xn) – R(X1,.., Xi,..,Xn)]/ gi
· Алгоритм с парными пробами
dR/dXj = [( X1,.., Xi, + gi,..,Xn) – R(X1,.., Xi,..,Xn)]/ gi*2
Первый алгоритм требует меньших затрат по сравнению со вторым, но позволяет получить решение менее точное, чем второй, и эта погрешность зависит от величины пробного шага.
Условием окончания поиска может являться малость модуля градиента R(x), т.е. /| gradR(x)|<e.
Основным недостатком градиентного метода является необходимость частого вычисления производных от R(x). Этого недостатка лишен метод наискорейшего спуска, который заключается в следующем.
В текущей точке вычисляется grad R(x), и затем в направлении градиента ищется min R(x). практически это может быть осуществлено любым методом одномерной оптимизации, в данной программе используется сканирование до первого локального минимума по направлению grad R(x).
В результате вдали от оптимума эффективность метода повышается, мы быстрее попадаем в район оптимума, в окрестности которого эффективность метода снижается из – за частой смены направления поиска и приближается к эффективности метода градиента.
Метод обладает небольшой эффективностью в овражных функциях. В ряде случаев можно повысить скорость выхода в район оптимума предъявлением невысоких требований к точности поиска min R(x) по направлению.
Условие окончания поиска - | gradR(x)| < e.
В ряде случаев используют уменьшение шага поиска оптимума по направлению после каждой смены направления. Это позволяет с большей точностью каждый раз находить оптимум, но резко снижает эффективность поиска в овражных функциях. Может использоваться для локализации «дна оврага» в специальных овражных методах. Условием окончания поиска в этом случае является достижение заданной малой величины шага.