Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Этот метод заключается в последовательной минимизации целевой функции f (x) сначала по направлению первого базисного вектора е1, затем второго — е2 и т.д. После окончания минимизации по направлению последнего базисного вектора е n цикл повторяется.
Опишем этот алгоритм.
Шаг 0. Выбрать х Î E n,критерий достижения точности (например, (3.28) или (3.29)), величину e. Найти f(x), положить j= 1.
Шаг 1. Решить задачу одномерной минимизации Ф(a) = f(х + aеj)® min, a Î R, т.е. найти a*. Положить = х +a*еj, вычислить f(х).
Шаг 2. Если j < п, то положить х = , j = j +1 и перейти к шагу 1, иначе — перейти к шагу 3.
Шаг 3. Проверить условие достижения точности ||х- || < e
или | f (x) - f ()| <e. Если оно выполняется, то положить х* = , f *=f() и закончить поиск. Иначе — положитьх = , f(х) = f(), j = 1 и перейти к шагу 1.
Замечание. Для приближенного решения вспомогательной задачи одномерной минимизации на шаге 1 алгоритма на практике, как правило, используют метод поразрядного поиска (см. разд. 2.2.2).
Эффективность метода циклического покоординатного спуска существенно зависит от свойств целевой функции.
Пример 3.5. Решить задачу f (x) =x 21 +х 22 ® min, х Î Е 2 методом циклического покоординатного спуска.
Линии уровня этой целевой функции — окружности с центром в начале координат (рис. 3.7). Выберем произвольную начальную точку х, например х=(3,3). Очевидно, два шага исчерпывающего спуска сначала по направлению е1, затем — е2 приведут в точку минимума х* = (0,0).
В примере 3.5 точку минимума функции удалось найти точно за конечное число шагов. Это скорее исключение, чем правило.
Пример 3.6. Решить задачу f (x) = 5 x 21 + 5 х 22 +8 x 1 х 2® min, х Î Е 2 методом циклического покоординатного спуска.
Сначала заметим, что поворот системы координат на угол - 45° (замена переменных x 1 =(y 1+ y 2) / и x 1 =(- y 1+ y 2) / приводит функцию к виду f 1(y) = y 21+9 y 22. Очевидно, линии уровня целевой функции — эллипсы y 21/9+ y 22=c2 (рис. 3.8). Результаты расчетов по приведенному выше алгоритму представлены в табл. 3.2.
Рис. 3.7. К примеру 3.5. Рис. 3.8. К примеру 3.6.
Тaблицa 3.2
Номер итерации | x 1 | x 2 | f (x) |
5 | |||
-4 | 5 | ||
-4 | 3,2 | 28,8 | |
-2,56 | 3,2 | 18,43 | |
-2,56 | 2,05 | 11,8 | |
5' | -1,64 | 2,05 | 7,55 |
-1,64 | 1,31 | 4,83 | |
-1,05 | 1,31 | 3,09 | |
-1,05 | 0,84 | 1,98 | |
-0,67 | 0,84 | 1,27 | |
-0,67 | 0,54 | 0,81 |
Из табл. 3.2 и рис. 3.8 видно, что минимизирующая последовательность {х k } сходится к точке минимума х* = (0,0). Однако в отличие от решения задачи из примера 3.5 достижение точки минимума за конечное число шагов не гарантируется. Траектория поиска точки минимума в данной задаче имеет ярко выраженный зигзагообразный характер.
Из примера 3.6 видно, что эффективность решения задачи методом циклического покоординатного спуска можно повысить, если дополнить его алгоритм периодически повторяющимся поиском точки минимума в направлениях p i = x i -x i- 1 из точек x i. Так, например, если из точки х4 провести исчерпывающий спуск в направлении p4 = х4 - х2 (координаты точек см. в табл. 3.2), то получим точку (-2,2 ×10-5; 5,6 × 10-3), расположенную значительно ближе к точке минимума х*=(0,0), чем точки х5, х6, х7.
Такой подход, состоящий в последовательном нахождении направлений убывания функции и минимизации ее по этим направлениям, лежит в основе ряда алгоритмов. Рассмотрим один из них.
Дата публикования: 2015-04-07; Прочитано: 2108 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!