Метод покоординатного спуска

Методы нулевого порядка

Методы нулевого порядка используют, если производную исследуемой функции найти нельзя или существуют разрывы функций.

Сущность метода состоит в том, что про­изводится раздельная оптимизация по параметрам функций: один из параметров считается изменяемым, а остальные фиксируются при некоторых зна­чениях; затем изменяемым становится следующий параметр, а предыдущий принимает значение, полученное при предыдущей оптимизации (на преды­дущем шаге). Процесс продолжается до окончания перебора всех параметров. Метод прост в реализации и эффективен для малого числа параметров.

Рассмотрим функцию двух переменных. Ее линии постоянного уровня представлены на рис. 10.9, а минимум лежит в точке . (Напомним, что линией постоянного уровня называется кривая в двумерном сечении пространства параметров (в данном случае в плоскости (х1, х2), значение функции на которой - константа). Простейшим методом поиска является метод покоординатного спуска. Из точки А мы производим поиск минимума вдоль направления оси х1 и, таким образом, находим точку B, в которой касательная к линии постоянного уровня параллельна оси x1. Затем, производя поиск из точки B в направлении оси x2, получаем точку C, производя поиск параллельно оси x1, получаем точку D, и т.д. Таким образом, мы приходим к оптимальной точке. Любой из одномерных методов, описанных в предыдущей главе, может быть использован здесь для поиска вдоль оси. Очевидным образом эту идею можно применить для функций n переменных.


Рис. 10.9.

Рассмотрим данный метод более детально на примере некоторой целевой функции.

Пусть нужно найти наименьшее значение целевой функции u=f(M)=f(x1,x2,...,xn). Здесь через M обозначена точка n-мерного пространства с координатами x1,x2,...,xn:M=(x1,x2,...,xn). Выберем какую-нибудь начальную точку и рассмотрим функцию f при фиксированных значениях всех переменных, кроме первой: . Тогда она превратится в функцию одной переменной x1. Изменяя эту переменную, будем двигаться от начальной точки в сторону убывания функции, пока не дойдем до ее минимума при , после которого она начинает возрастать. Точку с координатами обозначим через M1, при этом .

Фиксируем теперь переменные: и рассмотрим функцию f как функцию одной переменной . Изменяя x2, будем опять двигаться от начального значения в сторону убывания функции, пока не дойдем до минимума при . Точку с координатами обозначим через M2, при этом . Проведем такую же минимизацию целевой функции по переменным x3,x4,...,xn. Дойдя до переменной xn, снова вернемся к x1 и продолжим процесс.

Эта процедура вполне оправдывает название метода. С ее помощью мы построим последовательность точек M0,M1,M2,... которой соответствует монотонная последовательность значений функции Обрывая ее на некотором шаге k, можно приближенно принять значение функции f(Mk) за ее наименьшее значение в рассматриваемой области (рис. 10.10).

Отметим, что данный метод сводит задачу поиска наименьшего значения функции нескольких переменных к многократному решению одномерных задач оптимизации. Если целевая функция f(x1,x2,…,xn) задана явной формулой и является дифференцируемой, то мы можем вычислить ее частные производные и использовать их для определения направления убывания функции по каждой переменной и поиска соответствующих одномерных минимумов.

На рис. 10.10. изображены линии уровня некоторой функции двух переменных u=f(x,y). Вдоль этих линий функция сохраняет постоянные значения, равные 1, 3, 5, 7, 9. Показана траектория поиска ее наименьшего значения, которое достигается в точке O, с помощью метода покоординатного спуска.

При этом нужно ясно понимать, что рисунок служит только для иллюстрации метода. Когда мы приступаем к решению реальной задачи оптимизации, такого рисунка, содержащего в себе готовый ответ, у нас, конечно, нет.


Рис. 10.10.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: