Читайте также:
|
|
Суть метода Розенброка [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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Метод деформируемого многогранника | | | Метод сопряженных направлений (метод Пауэлла) |