О САЙТЕ
Добро пожаловать!

Теперь вы можете поделиться своей работой!

Просто нажмите на значок
O2 Design Template

ФЭА / АИТ / Лабораторная работа “Оптимизация методом покоординатного спуска ”

(автор - student, добавлено - 1-05-2014, 17:06)

СКАЧАТЬ:  metod-pokoordinatnogo-spuska.zip [13,63 Kb] (cкачиваний: 143)

 

Лабораторная работа

 

“Оптимизация методом покоординатного спуска  ”

 

 

 

 

Метод покоординатного спуска (метод Гаусса-Зейделя).

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

В методе покоординатного спуска направление движения к экстремуму выбирается поочерёдно вдоль каждой из координатных осей управляемых параметров.

Рассмотрим процесс поиска минимума экстремума целевой функции F() для n-мерной задачи оптимизации при =(х1, х2,…хn)T. Предположим, что осуществляется поиск минимума функции F(). Тогда улучшению её на (k+1)-м шаге будет соответствовать условие

 

Задача максимилизации  функции F() можно свести к задаче минимизации пути умножения F() на -1.

Из выбранной начальной точки поиска 0  выполняется пробный шаг h0

в положительном направлении одной из координатных осей (обычно вдоль оси первого управляемого параметра x1). В новой точке с координатами x1.1=x1.0+h0; x2.1=x2.0;...; xn.1=xn.0  вычисляется значение целевой функции F(1) и сравнивается с ее значением в начальном точке F(0). Если F(1)<F(0), что направление принимается для осуществления дальнейшего пошагового движения к экстремуму в соответствии с выражением

x1.k+1=x1.k+h0

 В противном случае производится возраст в исходную точку и движение осуществляется в отрицательном направлении оси x1:  

x1.k+1=x1.k-h0

Движение в выбранном направлении оси  x1 выполняется до тех пор, пока целевая функция улучшается, т.е. выполняется условие. При его нарушении на (k+1)-м шаге производится возврат в предыдущую точку, определяется направление движения вдоль следующей координатной оси  x2 и совершаются  спуски в направлении, обеспечивающем улучшение целевой функции:

 X2.k+1=x2.kh0

После осуществления спусков вдоль всех n осей первый цикл спусков N=1 завершается и начинается новый цикл N=2. Если на очередном цикле поиска движение оказалось невозможным ни по одной из осей, тогда уменьшается шаг поиска

hN=hN-1γ

Где γ – коэффициент уменьшения шага:   0< γ<1.

Далее поиск экстремума продолжается с уменьшенным шагом.

Условие окончания поиска

h N<hmin

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

Параметрами алгоритма покоординатного спуска являются h0 , hmin и γ. Алгоритм обеспечивает сходимость к решению , за конечное число итераций, если функции F() квадратична в окрестности экстремума.

                                                                                                                                          

 

Оптимизация на языке Pascal.

program Ramil;

label 1,2;

function f(x,y:real):real;

begin

f:=5.35+1.06*y-11.06*x

end;

var x,y,h,h1,u:real;

begin

write('x0=');

readln(x);

write('y0=');

readln(y);

write('h0=');

readln(h);

write('hmin=');

readln(h1);

write('u=');

readln(u);

repeat

if f(x,y)>f(x+h,y) then h:=-h;

1: if (x>=0.25)and(x<=0.5) then

begin

x:=x+h;

goto 1

end;

if f(x,y)>f(x,y+h) then h:=-h;

2: if (y>=340)and(y<=345) then

begin

y:=y+h;

goto 2

end;

h:=h-h*u;

until h<=h1;

writeln('x=',x);

writeln('y=',y);

writeln('f=',f(x,y));

readln;

end.

 


Ключевые слова -


ФНГ ФИМ ФЭА ФЭУ Яндекс.Метрика
Copyright 2021. Для правильного отображения сайта рекомендуем обновить Ваш браузер до последней версии!