Читайте также:
|
|
Суть метода Розенброка [Rosenbrock H.H.] состоит в следующем. Задается начальная точка. Из нее осуществляется итеративный поиск направления убывания функции с помощью изменяемых дискретных шагов вдоль линейно независимых и ортогональных направлений. В случае удачного шага в исследуемом направлении его значение на следующей итерации увеличивается с помощью коэффициента растяжения, а в случае неудачи уменьшается за счет умножения на коэффициент сжатия (при этом направление поиска изменяется на противоположное). Поиск в системе текущих направлений проводится до тех пор, пока все возможности уменьшения функции не будут исчерпаны. Если по каждому направлению поиска имеет место неудача, строится новое множество линейно независимых и ортогональных направлений и циклический поиск по отдельным направлениям продолжается. Новые направления поворачиваются по отношению к предыдущим так, что они оказываются вытянутыми вдоль оврага (рис. 3.7).
Рисунок 3.7
Алгоритм:
Шаг 1. Задать начальную точку число
для остановки алгоритма, коэффициенты растяжения
и сжатия
, в качестве начальных линейно независимых и ортогональных направлений
выбрать координатные направления:
начальную длину шага вдоль каждого из направлений поиска ;
- максимальное число неудачных серий шагов по всем направлениям на одной итерации. Положить
для всех
.
Шаг 2. Сделать шаг по -тому направлению:
а) если , шаг считается удачным. В этом случае следует положить
,
и перейти к шагу 3;
б) если , шаг считается удачным. В этом случае следует положить
,
и перейти к шагу 3;
Шаг 3. Проверить выполнение условий:
а) если , то положить
и перейти к шагу 2 (сделать шаги по оставшимся направлениям);
б) если , проверить успешность поиска по текущим ортогональным направлениям:
§ Если , то есть хотя бы один спуск по направлению на шаге 2 был успешным, положить
и перейти к шагу 2;
§ Если , то есть каждый из
текущих шагов был неудачным, оценить успешность поиска на текущей итерации:
-- если , то есть на
-той итерации хотя бы один шаг удачный, перейти к шагу 4;
-- если , то есть не было ни одного удачного шага на
-той итерации, процесс поиска приостановить. Если число
последовательно неудачных серий шагов по всем направлениям на текущей итерации не превышает
, проверить условие окончания, а иначе перейти к шагу 4. Проверяются величины
, использованные во время последней серии шагов. Если
для всех
, то
найдено приближенное решение задачи: . Если
хотя бы для одного
, то положить
и перейти к шагу 2.
Шаг 4. Положить и проверить условие окончания
а) если , то поиск завершить:
;
б) если , вычислить длины шагов по каждому направлению поиска на
-той итерации
из соотношения
. Далее построить новый набор линейно независимых и взаимно ортогональных направлений поиска
с помощью процедуры Грама-Шмидта:
.
После нахождения новых направлений следует положить: для всех
,
, и перейти к шагу 2.
Замечание: Розенброк рекомендовал следующие коэффициенты растяжения и сжатия: ,
.
Пример: Методом вращающихся координат (методом Розенброка) найти локальный минимум функции
Решение:
1. Зададим начальную точку ,
,
,
. Пусть
.
20. Т.к. , шаг неудачен:
.
30. Т.к. i = 1 < 2 = n, то i = i + 1 = 2 и переходим к шагу 2.
21. Т.к. то шаг неудачен:
.
31. Имеем i = 2 = n, , выполнена одна неудачная серия шагов: i = 1 < N = 3. На этой серии
поэтому положим
и перейдем к шагу 2.
22. Т.к. , шаг удачен:
.
32. Имеем i = 2 = n, . Положим
и перейдем к шагу 2.
24. Т.к. , шаг удачен:
.
34. Имеем i = 1 < 2 = n, поэтому i = i + 1 = 2 и переходим к шагу 2.
25. Т.к. то шаг удачен:
.
35. Имеем i = 2 = n, . Положим
и перейдем к шагу 2.
26. Т.к. , шаг удачен:
.
36. Имеем i = 1 < 2 = n, поэтому i = i + 1 = 2 и переходим к шагу 2.
27. Т.к. то шаг удачен:
.
37. Имеем i = 2 = n, . Положим
и перейдем к шагу 2.
28. Т.к. , шаг неудачен:
.
38. Имеем i = 1 < 2 = n, поэтому i = i + 1 = 2 и переходим к шагу 2.
29. Т.к. то шаг неудачен:
.
39. Имеем i = 2 = n, . Т.к. выполняется условие
, переходим к шагу 4.
40. Положим .
Т.к. , то вычислим
из соотношения
. Отсюда
.
Построим новый набор направлений поиска:
Положим
и перейдем к шагу 2.
210.Т.к. , шаг удачен:
.
310. Имеем i = 1 < 2 = n, поэтому i = i + 1 = 2 и переходим к шагу 2.
211. Т.к. то шаг удачен:
.
311. Имеем i = 2 = n, . Положим
и перейдем к шагу 2.
212. Т.к. , шаг неудачен:
.
312. Имеем i = 1 < 2 = n, поэтому i = i + 1 = 2 и переходим к шагу 2.
213. Т.к. то шаг удачен:
.
313. Имеем i = 2 = n, . Положим
и перейдем к шагу 2.
214. Т.к. , шаг неудачен:
.
314. Имеем i = 1 < 2 = n, поэтому i = i + 1 = 2 и переходим к шагу 2.
215. Т.к. то шаг неудачен:
.
315. Имеем i = 2 = n, . Т.к. выполняется условие
, переходим к шагу 4.
41. Положим .
Т.к. , то вычислим
из соотношения
. Отсюда
.
Построим новый набор направлений поиска:
Положим и перейдем к шагу 2.
216. Т.к. , шаг неудачен:
.
316. Имеем i = 1 < 2 = n, поэтому i = i + 1 = 2 и переходим к шагу 2.
217. Т.к. то шаг неудачен:
.
317. Имеем i = 2 = n, , выполнена одна неудачная серия шагов: i = 1 < N = 3. На этой серии
поэтому положим
и перейдем к шагу 2.
218.Т.к. , шаг удачен:
.
318. Имеем i = 1 < 2 = n, поэтому i = i + 1 = 2 и переходим к шагу 2.
219. Т.к. то шаг удачен:
.
319. Имеем i = 2 = n, . Положим
и перейдем к шагу 2.
220. Т.к. , шаг неудачен:
.
320. Имеем i = 1 < 2 = n, поэтому i = i + 1 = 2 и переходим к шагу 2.
221. Т.к. то шаг неудачен:
.
321. Имеем i = 2 = n, . Т.к. выполняется условие
, переходим к шагу 4.
42. Положим .
Т.к. , то процесс поиска завершается:
Дата добавления: 2015-07-20; просмотров: 914 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Метод деформируемого многогранника | | | Метод сопряженных направлений (метод Пауэлла) |