Метод покоординатного спуска С++,С#,Fotran,Delphi
Пусть нужно найти наименьшее значение целевой функции u=f(M)=f(x1, x2, . . . ,xn). Здесь через М обозначена точка
n-мерного пространства с координатами x1, x2, . . . ,xn: M=(x1, x2, . . . ,xn).Выберем какую-нибудь начальную точку М0=(x10, x20, . . . ,xn0) и рассмотрим
функцию f при фиксированных значениях всех переменных, кроме первой: f(x1, x20,x30, . . . ,xn0 ). Тогда она
превратится в функцию одной переменной x1 . Изменяя эту переменную, будем двигаться от начальной
точки x1=x10 в сторону убывания функции, пока не дойдем до ее
минимума при x1=x11, после которого она начинает возрастать. Точку с
координатами ( x11, x20,x30, . . . ,xn0) обозначим через М1, при этом f(M0) >= f(M1).
Фиксируем теперь переменные: x1=x11, x3= x30, . . . ,xn=xn0 и рассмотрим функцию f как функцию одной переменной x2: f(x11, x22, x30 . . . ,xn0). Изменяя x2 , будем опять двигаться от начального значения x2=x20 в сторону убывания функции, пока не дойдем до минимума при x2=x21 .Точку с координатами {x11, x21, x30 . . . xn0} обозначим через М2, при этом f(M1) >=f(M2).
Проведем такую же минимизацию целевой функции по
переменным x3, x4, . . . ,xn. Дойдя до
переменной xn, снова вернемся к x1 и продолжим процесс. Эта процедура вполне
оправдывает название метода. С ее помощью мы построим последовательность
точек М0,М1,М2, . . . , которой соответствует монотонная
последовательность значений функцииf(M0) >= f (M1)>= f(M2) >=
... Обрывая ее на
некотором шаге k можно приближенно
принять значение функции f(Mk) за ее наименьшее
значение в рассматриваемой области.
|
|
Рис. 2.
Поиск наименьшего значе-
|
Отметим, что данный метод сводит задачу поиска
наименьшего значения функции нескольких переменных к многократному решению
одномерных задач оптимизации. Если целевая функция f(x1, x2, ... ,xn) задана явной формулой и является дифференцируемой, то мы
можем вычисллить ее частные производные и использовать их для
|
No comments:
Post a Comment