МиАПР_ПОВТ_2012 / Васильков_Компьютерные технологии вычислений
.pdfметод ведет себя как метод первого порядка, а в окрестностях оп тимума приближается к методам второго порядка.
Первый шаг аналогичен первому шагу метода наискорейшег спуска, второй и следующий шаги выбираются каждый раз в на правлении, образуемом в виде линейной комбинащси векторо градиента в данной точке и предшествующего направления.
.Алгоритм метода можно записать следующим образом (в век торной форме):
jc'=x°-/igrad^(A
х'*' = x'-A[grad/?(x')+agrad^(x'-')].
Величина а может быть приближенно найдена из выражени
^ _ \gradR(x')\'
|grad^(;c'-')p
Алгоритм работает следующим образом. Из начальной точки х° ищут тсапЩх) в направлении градиента (методом наискорей шего спуска), затем, начиная с найденной точки и далее, направ ление поиска min определяется по второму вьфажению. Поис минимума по направлению может осуществляться любым спосо бом: можно использовать метод последовательного сканирова ния без коррекции шага сканирования при переходе минимума поэтому точность достижения минимума по направлению зави сит от величины шага h.
Для квадратичной функции R(x) решение может быть найден за п шагов (п — размерность задачи). Для других функций поис будет медленнее, а в ряде случаев может вообще не достигнут оптимума вследствие сильного влияния вычислительных оши бок.
Одна из возможных траекторий поиска минимума двумерной функции методом сопряженных градиентов приведена на рис. 17
Пример.
Для сравнения рассмотрим решение предыдущего примера. Первый шаг делаем по методу наискорейшего спуска
(табл. 22).
13
Таблица 22
№ |
X, |
X, |
dR/dx, |
dR/dx, |
\grгdR\ |
R |
0 |
-0,500 |
-1,000 |
-2,2499 |
-8,0000 |
8,3104 |
7,3750 |
0 |
-0.275 |
-0,200 |
-2.2499 |
-8,0000 |
8.3104 |
1.6842 |
0 |
-О.050 |
0.600 |
-2.2499 |
-8.0000 |
8.3104 |
-1.5301 |
0 |
0,175 |
1,400 |
-2,2499 |
-8,0000 |
8,3104 |
-2,1996 |
Найдена наилучшая точка. Вычисляем производные в этой точке: dRIdx^ =-2^0%, dR/dx2 =1,600; вычисляем коэффищ1еш а, учитывающий влияние градиента в предыдущей точке а =3,31920-3,3192/8,3104^=0,160. Делаем рабочий шаг в соот ветствии с алгоритмом метода, получаем д:, =0,502, Xj =1,368 Далее все повторяется аналогично. Ниже, в табл. 23 приведены текущие координаты поиска следующих шагов.
Таблица 23
№ |
^ |
*2 |
dRIdx^ |
dRIdx^ |
|grad/?| |
R |
a |
1 |
0.155 |
1.303 |
1.0026 |
1,2114 |
1,5725 |
-3.7407 |
0,160 |
2 |
1,085 |
0,989 |
0,5323 |
-0,0450 |
0,5342 |
-3,9774 |
0,224 |
3 |
1.020 |
0,979 |
0,1230 |
-0,0829 |
0,1484 |
-3,9978 |
0,115 |
4 |
1.004 |
0.988 |
0,0234 |
-0.0484 |
0.0537 |
-3.9996 |
0,077 |
5 |
0.996 |
1.000 |
-0.0240 |
-0.0010 |
0.0240 |
-4.0000 |
0.13Г |
6 |
1,000 |
1,002 |
-0,0001 |
0,0076 |
0,0076 |
-4,0000 |
0,200 |
МЕТОД ТЯЖЕЛОГО ШАРИКА
Метод базируется на аналогии с движением "тяжелого" мате риального шарика по наклонной поверхности. Скорость шарика при движении вниз будет возрастать, и он будет стремиться занять нижнее положение, т.е. точку минимума. При выводе дифферен циального уравнения движения шарика учитывается его масса и вязкость среды, которые влияют на характер его движения, т.е поиска min R{x).
В дискретном варианте траектория поиска описывается сле дующим алгоритмом:
х''^' =х' а{х' -х'~^) - /jgrad/?(x').
132
При а =0 метод превращается в обыкновенный градиентный. При а = 1 поиск не затухает, следовательно, при О < а < 1 можно получать различную эффективность метода, которая будет зави сеть и от А.
Вдали от оптимума поиск будет ускоряться, а вблизи возмож ны колебания около точки min R(x).
К недостаткам метода относится необходимость задания сра зу двух неформальных параметров, определяющих эффектив ность поиска. К достоинствам метода, помимо ускорения дви жения вдали от оптимума, относится возможность "проскока" мелких локальных "ямок" (минимумов) за счет "инерционности шарика", т.е. можно решать и задачу глобальной оптимизации для функции R(x) с одним явно выраженным минимумом и мно гими "мелкими".
Одна из возможных траекторий поиска минимума двумерной функции методом тяжелого шарика приведена на рис. 17.
Пример.
Для сравнения методов рассмотрим решение предыдущего примера. Результаты вычислений при а =0,5 и Л =0,1 приведены ниже в кратком изложении, так как никаких принципиально но вых элементов здесь нет, кроме формулы для вычисления рабоче го шага. Обратим внимание на то, что первый шаг делается обыч ным методом градиента (результаты полностью совпадают с результатами метода градиента), так как мы еще не имеем преды дущей точки (табл. 24).
Таблица 24
№ |
X, |
JC, |
dR/dx, |
dR/dx, |
|grad/?| |
R |
0 |
-0,500 |
-1,000 |
-2,2499 |
-8,0000 |
8,3100 |
7,3750 |
1 |
-0,275 |
-одоо |
-2,7730 |
^,8000 |
5,5430 |
1,6842 |
2 |
-0,110 |
-0,120 |
-2,9635 |
-4,4800 |
5,3710 |
0,8381 |
3 |
0,104 |
0,288 |
-2,9676 |
-2,8480 |
-6,1130 |
-1Д962 |
4 |
0,294 |
-0,369 |
-2,7414 |
-2,5248 |
0,7269 |
-2,0585 |
5 |
0,473 |
-0,581 |
-2,3293 |
-1,6765 |
0,8699 |
-2,9613 |
6 |
0,616 |
-0,642 |
-1,8612 |
-1,4300 |
0,3472 |
-3,3588 |
7 |
0,731 |
0,755 |
-1,3988 |
-0,9812 |
0,7086 |
-3,6814 |
133
Продолжение
№ |
X^ |
X, |
dR/dx, |
dRIdx, |
Igrad^l |
R |
8 |
0,813 |
0,797 |
-1,0160 |
-0,8131 |
0,3014 |
-3,8192 |
9 |
0,873 |
0,857 |
-0,7110 |
-0,5719 |
0,9125 |
-3.9131 |
10 |
0,914 |
0,884 |
-0.4913 |
-0,4638 |
0,6756 |
-3,9518 |
11 |
0,943 |
0,917 |
-0,3316 |
-0,3323 |
0,4695 |
-3,9767 |
12 |
0,962 |
0.934 |
-0,2240 |
-0,2651 |
0,3471 |
-3,9869 |
13 |
0,975 |
0,952 |
-0,1486 |
-0,1927 |
0,2433 |
-3.9935 |
14 |
0,983 |
0,962 |
-0,0994 |
-0,1518 |
0,1815 |
-3.9963 |
15 |
0,989 |
0,972 |
-0,0653 |
-0.1115 |
0.1293 |
-3,9981 |
Метод не оказался более эффективным по сравнению с други ми. Это обусловлено проблемами с подбором параметров поиска а иА.
Для наглядного сравнения методов целесообразно по приве денным результатам поиска различными методами самостоятель но построить траектории поиска в координатах дс, -Х2, соединив отрезками прямых все точки для каждого метода.
КОНТРОЛЬНЫЕ ВОПРОСЫ
Метод градиента
1.При каком из алгоритмов выбора направления поиска max R{x) метод будет более эффективен?
2.Как изменяется угол между двумя соседними направлениями поиска при приближении к оптимуму?
3.Что называется градиентом функции Щх^.дгз)?
4.Свойства градиента функции/{(х).
5.Как оценивается эффективность поиска градиентным мето дом?
6.Какой алгоритм коррекции шага предпочтительнее вблизи оптимума?
7.Почему в районе оптимума величина шага Дх убывает при использовании алгоритмах-^ = х^ *-Agrad/?(A:)?
134
8. В чем отличие двух алгоритмовградиентного метода:
xj = jf/"' -hgradR(x^), |
xj = л:/"' -A cosфу, |
где созф у — направляющие косинусы градиента.
9.Исходя из определения grad^(x) как вектора, указывающего направление возрастания функщ1и, что лучше искать: min или max?
10.Что дает вычисление производных по методу с парными про бами?
Метод наискорейшего спуска
1. В чем основные отличия метода наискорейшего спуска от ме тода градиента?
2.По какому направлению осуществляется поиск из каждой те кущей точки при поиске пипЛ(х)?
3.Как вычисляется градиент Щх) в методе наискорейшего спуска?
4.Почему после нахождения тгйпК{х) по направлению необхо димо еще раз искать mia/?(x) по другому направлению?
5.Каковы условия окончания поиска?
6.Область наивысшей эффективности к^етода.
7.Какой метод вычисления шага при поиске min/?(jc) по grad/?(x) более предпочтителен?
8.Можно ли методом наискорейшего спуска найти тахЛ(л;)?
9.Можно ли применять алгоритм корреющи шага поиска, опре деляемый изменением угла между градиентами в текущей и предыдущей точках?
10.Какое влияние оказывают вычислительные погрешности при поиске ттаК{х) в направлении градиента на точность полу чения решения?
Метод сопрямсенных градиентов
1.Чем отличаются квадратичные методы оптимизащш от ли нейных?
2.Какова сравнительная эффективность метода сопряженных градиентов и наискорейшего спуска вблизи от оптимума?
135
3.Как записывается алгоритм метода сопряженных градиен тов?
4.Как влияют вычислительные погрешности на эффективность метода сопряженных градиентов?
5.Для каких функций R(x) метод сопряженных градиентов наи более эффективен?
6.В чем недостатки использования методов второго порядка?
7.В чем отличие первого шага в методах наискорейшего спуска
исопряженных градиентов?
8.Какая процедура поиска осуществляется на каждом шаге?
9.Сравнительная эффективность метода градиента и метода со пряженных градиентов вдали от оптимума.
10.Возможно ли применение метода для недифференцируемых функций?
Метод тяжелого шарика
1.Как влияет масса шарика на характер поиска, учитывая, что траектория поиска аналогична движению шарика в вязкой среде?
2.Может ли поиск ускоряться?
3.Можно ли найти тахЛ(х), а не пйпЛ(дс) методом тяжелого шарика?
4.В чем заключаются недостатки метода тяжелого шарика?
5.Является ли метод тяжелого шарика пригодным для одно мерной оптимизации (т.е. когда у "шарика" нет объема, а сле довательно, и массы)?
6.Можно ли найти глобальный минимум R(x) методом тяжело го шарика?
7.Зачем "помещают шарик в вязкую среду"?
8.Какой путь можно выбрать для затухания поиска в районе оп
тимума при использовании алгоритма х^"^' =х^-а(х'-х^~^)- -Agrad/?(x)?
9.Можно ли отнести метод тяжелого шарика к методам второго порядка?
10.В каких условиях предпочтительнее использовать метод тя желого шарика?
136
МНОГОМЕРНАЯ БЕЗГРАДИЕНТНАЯ ОПТИМИЗАЦИЯ
КОНЦЕПЦИЯ МЕТОДОВ
В данном разделе рассматриваются численные методы опти мизации, у которых величина и направление шага к оптимуму формируются однозначно по определенным детерминированным функциям в зависимости от свойств критерия оптимальности в окрестности текущей точки без использования производных (т.е. градиента). Все алгоритмы имеют итерационный характер и вы ражаются формулой
х^'*^=х^ +f[R{xJ)\
Основная особенность рассматриваемой группы методов — отсутствие вычисления градиента критерия оптимальности. Ряд
методов прямого поиска ба зируется на последователь ном применении одномер ного поиска по переменным или по другим задаваемым направлениям, что облегча ет их алгоритмизацию и применение.
Как и для градиентных методов, на рис. 18 приво дятся лишь по одной из воз можных траекторий поиска каждым из ниже рассмат риваемых методов. Кроме того, также для всех приве денных траекторий выбра ны различные начальные условия, с тем чтобы не за громождать построения.
Рис. 18. Иллюстрация траекторий поиска минимума функции безгра диентными детерминированными методами: / — оптимум; 2 — тра ектория метода параллельных ка сательных; 5— траектория метода Гаусса — Зайделя; 4 — траектория метода Розенброка; 5 — траекто рия симплексного метода; б —
начальные точки поиска
137
ОСНОВНЫЕ МЕТОДЫ
МЕТОД ГАУССА — ЗАЙДЕЛЯ
Метод Гаусса — Зайделя (в математической литературе ис пользуется и другое название — метод покоординатного спуска заключается в последовательном поиске оптимума R(x) пооче редно по каждой переменной. Причем после завершения перебо ра всех переменных (т.е. после завершения одного цикла) опять общем случае приходится перебирать все переменные до тех под пока не придем к оптимуму.
В ряде случаев (для сепарабельных критериев оптимальности т.е. таких R{x^,X2,... ,x,,... ,х„), которые можно представить в виде
К(х)=/{х0+Пх2)+...+Пх,)+...+Дх„),
удается получить решение всего за один цикл. В случае тесной нелинейной взаимосвязи переменных (например, при наличии произведения переменных и т.п.) для получения решения прихо дится делать очень много циклов.
Метод обладает низкой эффективностью в овражных функци ях, может застревать в "ловушках", особенно при сравнительно больших шагах h при поиске оптимума по каждой переменной очень чувствителен и к выбору системы координат. Метод прос в реализации. На эффективность метода влияет порядок чередо вания переменных.
Одна из возможных траекторий поиска минимума двумерной функции методом Гаусса — Зайделя приведена на рис. 18. В ка честве начальной изменяемой переменной в каждом цикле при нята дсг-
Условием окончания поиска является малость изменения кри терия оптимальности за один цикл или невозможность улучше ния критерия оптимальности ни по одной из переменных.
Для нейтрализации недостатков разработаны модификации алгоритма, среди которых рассмотрим метод поиска с последей ствием.
При нахождении оптимума по каждой переменной пре1фаща ют поиск не в точке оптимума, а несколько пройдя ее. При этом
138
удается "выскочить из ловушек", за меньшее число циклов выйтн в район оптимума. В районе оптимума наблюдается зациклива ние, и в этом случае последовательно уменьшают величину по следействия.
В двумерных задачах метод Гаусса — Зайделя фактически сводится к методу наискорейшего спуска, так как в обоих методах траектория поиска представляет собой последовательность вза имноортогональных отрезков.
Пример. Требуется найти минимум функции
R{x^,x.^ =Axi +Bxl+CXi sin(DxyX2),
meA=l,B=2,C=l,2,D=2.
2. Интервал поиска: JC,„, = -2, x^^ = 2, x,^^ = -2, x^^„ = 2.
3.Начальная точка: jc,j = 1,4962, дг^д = - 1 .
4.Параметры поиска: шаг А = 0,1, погрешность = 0,01. Результаты вычислений. Из начальной точки
(1,4962, -1,0000) с Л = 3,9719 ищем минимум критерия опти мальности по переменной д;,. Используем прием последователь ного сканирования, т.е. "шагаем" до первого лучшего значения критерия, применяя алгоритм xj*' =х{ ± А. Нижний индекс — но мер переменной, верхний — номер шага. Знак "+" или "-" вы бирается в зависимости от направления изменения критерия нужно взять такой знак, при котором критерий уменьшается Наилучшей в этом направлении оказывается точка с координата ми (0,6962, -1,0000) и Л = 1,30374, полученная после семи шагов Из этой точки ищем минимум критерия по переменной Х2 тем же методом. Находим точку (0,6962, -0,3000) сЛ = 0,3258 тоже после семи шагов. На этом заканчивается первый цикл поиска и начина ется следующий, заключающийся опять в поиске mini? по пере менной Xi, затем по Х2- Далее в табл. 25 приведены лишь коорди наты точек и значения критериев в концах циклов.
Таблица 25
Ко |
X, |
ДС, |
R |
2 |
-0,0038 |
0,0000 |
0,0000 |
3 |
-0,0038 |
0,0000 |
0,0000 |
139
После третьего цикла ни по одной из переменных (при изме нении их с шагом Л = 0,1) не удается получить меньшее значени R. Следовательно, последнюю точку считаем решением.
МЕТОД РОЗЕНБРОКА
Метод Розенброка направлен на ликвидацию одного из недос татков метода Гаусса — Зайделя — высокую чувствительносп эффективности к выбору системы координат. Метод сводится га сути к отысканию "удачной" системы координат путем поворот исходных осей координат. После этого цикл поиска осуществля ется поочередно по всем переменным последовательно.
Первый цикл поиска полностью совпадает с методом Гауе са — Зайделя. Пусть исходная точка х°, а точка, в которой завер шился первый цикл, —х'. Вектор смещения изображающей точ ки поиска будет равен 5 = дг' -д:". Чем больше одна составляюща вектора S, тем существеннее в данной текущей ситуации эта пере менная (по ней произошло основное движение). Переход к HOBO системе координат должен учитывать это обстоятельство. ПоэтО му преобразовывать систему координат из х{,х'2, •••,х'„в систем
х\*',х'2*^, •..,х'^^ надо таким образом, чтобы наиболее существен ная переменная была бы в направлении по вектору S. По этому на правлению должна быть направлена та переменная, по которо поиск будет осуществляться в первую очередь (т.е. х{^^). Тогд новые оси (в общем случае на (/+1)-м шаге) определятся следую щим образом из условия их ортогональности. Новый базис систе мы координат:
t^=ts)e), |
^'=ts)e), |
^f^t^'A |
и^-Д-' |
j=\ |
У=2 |
У=3 |
|
где e'j — орты исходной системы координат. Для ортогонализа
ции и нормирования базиса переходят к ортам новой системы ко ординат стандартным образом:
H . |
ti+t |
ti'+l |
/ti+l |
J+i\ |
J ' |
|
^i+1 - ^7 - ( ^ r . g i |
)gi |
|||
f+i = 1 L _ |
|||||
' |
iti'+li' |
2 "",_,•+] |
/•Ki'+l |
„I'+K |
_i+l| |
140
