Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11111 / ТТ / Методы статической оптимизации.doc
Скачиваний:
85
Добавлен:
11.02.2015
Размер:
1.13 Mб
Скачать

Решение задач многомерной оптимизации методом покоординатного спуска

Пусть требуется найти наименьшее значение целевой функции U= f(M)=f(x1, x2,…, xn ). Здесь через М обозначена точка n-мерного пространства с координатами x1, x2,…, xn: M=( x1, x2,…, xn). Выберем какую-нибудь начальную точку M0=(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, x30=x30, x4=x40…, xn=xn0 и рассмотрим функцию f как функцию одной переменной x2 : (x11, x2, x30, x40,…, xn0 ). Изменяя x2 , будем опять двигаться от начального значения x2=x20 в сторону убывания функции, пока не дойдем до минимума при x2=x21. Точку с координатами (x11, x21, x30, x40,…, xn0) обозначим через М2, при этом f(M1)>f(M2).

Проведем такую же минимизацию целевой функции по переменным x3, x4, ... , xn . Дойдя до переменной xn, снова вернемся к x1 и продолжим. Эта процедура вполне оправдывает название метода. С ее помощью мы строим последовательность точек М0, М1, М2, ... , которой соответствует монотонная последовательность значений функции f(M0)>f(M1)>f(M2)>… . Обрывая ее при некотором шаге К, можно приближенно принять значение функции f(MК) за ее наименьшее значение в рассматриваемой области.

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

Пример: Пусть целевая функция имеет вид: U=x1^2+x2^2+1.5*x1*x2 и поиск начинается из точки М0=(3;3). f(M0)=31.5 . Сначала изменяем координату х1, оставив х2 постоянной и равной х20=3. Тогда целевая функция будет иметь вид U=f(x1,3)=x1^2+9+4.5*x1. Минимум U=f(x1,3) найдем, приравнивая к нулю производную df(x1,3)/dx1,т.е.

df(x1,3)/dx1=2*х1+4.5=0.

Отсюда первый экстремум по х1 равен х1=-2.25 и ему соответствует точка М1 с координатами х1=-2.25, х2=3,т.е. М1=(-2.25;3). f(M1)=3.83f(M0).

Теперь оставим неизменной координату х1 и равной -2.25, т.е. х1=-2.25, а будем изменять х2. Целевая функция в этом случае примет вид U=f(-2.25;x2)=(-2.25)^2+x2^2+1.5*(-2.25)*x2. Далее находим минимум функции по х2:

df(-2.25;x2)/dx2=2*x2-3.375=0.

Отсюда следует, что х2=1.6875. Данному экстремуму соответствует точка М2=(-2.25;1.6875). f(M2)=2.21f(M1) f(M0).

Теперь опять повторяем цикл вычислений для х1, закрепляя х2=1.6875.

U=f(х1;1.6875)=х1^2+1.6875^2+1.5*1.6875*x1;

df(х1;1.6875)/dx1=2*x1+1.5*1.6875=0.

Из последнего уравнения следует, что х1=-1.2656... . Найденному экстремуму соответствует точка М3 =(-1.2656;1.6875).

f(M3)=1.26f(M2) f(M1) f(M0).

Далее аналогично продолжаем процесс. В результате поиска получаем ломанную линию, состоящую из взаимно перпендикулярных прямых, точки излома которой - это точки М0, М1, М2… . Они находятся в местах касания этих прямых с линиями уровня целевой функции:

U = f(x1,x2) = const .

Рис.1-Поиск минимума методом покоординатного спуска

В данной лабораторной работе, в отличие от рассмотренного примера, получившиеся в результате применения метода покоординатного спуска одномерные задачи оптимизации решаются не с помощью производной, а методом золотого сечения. Поиск прекращается, когда расстояние между точками Mi и Mi-1 n-мерного вещественного пространства Rn, полученными в двух соседних итерациях, станет меньше некоторой, наперед заданной достаточно малой положительной величины.