logo
ОИТ_Учебник

7.1.1.6 Метод вращающихся координат (метод Розенброка)

Суть метода состоит во вращении системы координат в соответствии с изменением скорости убывания целевой функции. Новые направления координатных осей определяются таким образом, чтобы одна из них соответствовала направлению наиболее быстрого убывания целевой функции, а остальные находятся из условия ортогональности. Идея метода состоит в следующем (рис. 7.6).

Рис. 7.6 ‑ Геометрическая интерпретация метода Розенброка

Из начальной точки х[0] осуществляют спуск в точкух[1] по направлениям, параллельным координатным осям. На следующей итерации одна из осей должна проходить в направленииy1=х[1] ‑х[0], а другая - в направлении, перпендикулярном ку1 .Спуск вдоль этих осей приводит в точкух[2] ,что дает возможность построить новый векторх[2] ‑х[1] и на его базе новую систему направлений поиска. В общем случае данный метод эффективен при минимизации овражных функций, так как результирующее направление поиска стремится расположиться вдоль оси оврага.

Алгоритм метода вращающихся координат состоит в следующем.

1. Обозначают через р1[k], ...,рn[k] направления координатных осей в некоторой точкех[k] (нак-й итерации). Выполняют пробный шагh1вдоль осир1[k], т. е.

x[kl] = x[k] +h1p1[k].

Если при этом f(x[kl])<f(x[k]), то шагhумножают на величину> 1;

Если f(x[kl])>f(x[k]), - то на величину (-), 0 < || < 1;

x[kl] =x[k] + h1p1[k].

Полагая ?h1=а1.получают

x[kl] =x[k] +a1p1[k].

2. Из точки х[k1] выполняют шагh2вдоль осир2[k]:

x[k2] = x[k] + a1p1[k] + h2p2[k].

Повторяют операцию п. 1, т. е.

x[k2] =x[k] +а1р1[k] +а2p2[k].

Эту процедуру выполняют для всех остальных координатных осей. На последнем шаге получают точку

х[kn] =х[k+1] =х[k] + .

3. Выбирают новые оси координат p1[k+1], …,рn[k+1]. В качестве первой оси принимается вектор

р1[k+1] =x[k+l] ‑x[k].

Остальные оси строят ортогональными к первой оси с помощью процедуры ортогонализации Грама - Шмидта. Повторяют вычисления с п. 1 до удовлетворения условий сходимости.

Коэффициенты подбираются эмпирически. Хорошие результаты дают значения= - 0,5 при неудачных пробах(f(x[ki])>f(x[k]))и= 3 при удачных пробах(f(x[ki])<f(x[k])).

В отличие от других методов нулевого порядка алгоритм Розенброка ориентирован на отыскание оптимальной точки в каждом направлении, а не просто на фиксированный сдвиг по всем направлениям. Величина шага в процессе поиска непрерывно изменяется в зависимости от рельефа поверхности уровня. Сочетание вращения координат с регулированием шага делает метод Розенброка эффективным при решении сложных задач оптимизации.