Скачиваний:
43
Добавлен:
15.06.2014
Размер:
359.42 Кб
Скачать

Тема 3 Методы оптимизации первого порядка

Метод тяжелого шарикаМетод спуска по градиентуМетод сопряженных градиентов

06/25/19

1

Общая характеристика методов первого порядка

Чем больше информации о функции известно, тем более эффективно можно достичь минимума, если этой информацией правильно распорядиться

Методы нулевого порядка фактически не располагают никакой информацией о функции (это черный ящик). Правда в процессе спуска они ее накапливают и используют для очередного спуска (например метод Розенброка осуществляет поворот координат в зависимости от результатов предыдущего спуска)

В методах первого порядка при выборе следующего направления спуска используется градиент функции в текущей точке и в предыдущей

r

r

df

 

df

 

g

f (x)

 

 

,...,

 

.

 

 

 

 

 

dxn

 

 

 

dx1

 

 

06/25/19

2

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

Это свойство в основном и используется для построения методов минимизации первого порядка.

При этом направление наискорейшего убывания в данной точке не всегда оказывается наилучшим для спуска к минимуму.

Поэтому для повышения эффективности вводят различные поправки.

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

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

06/25/19

3

Метод тяжелого шарика

Представим себе котлован.

 

 

Мы находимся на каком то

 

 

склоне и отпускаем круглый

 

 

камень.

x2

По какой траектории он будет

 

катиться? Видимо по такой

 

 

которая здесь показана

 

Траектория задается функцией координат от времени

r

r

(t)

r

(0)

r0

x

x

x

x

От чего зависит эта траектория?

f(x1,x2)

x1

06/25/19

4

Уравнение траектории тяжелого шарика

x

- скорость движения шарика

t

2 xr

- ускорение шарика

t2

f (x) - сила тяжести шарика

 

x

- сила трения шарика

 

t

 

2 r

 

r

 

 

 

 

 

r

 

 

x

 

x

 

m

t2

 

t

f (x) 0

06/25/19

уравнение движения шарика

5

 

 

 

Решение уравнения

Можно использовать разные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 r

r

 

 

 

 

 

 

 

методы решения этой задачи

 

 

 

 

 

 

x(0) x

Коши

 

t

2

a

t b f (x) 0;

уже знакомо

 

 

x

x

 

 

 

r

 

r

r0

Мы используем то, что вам

 

 

 

 

rk 1

 

 

rk

 

rk 1

 

rk 1

rk 1

rk

 

 

 

 

 

x

 

2x

x

 

x

x

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

b f (x

) 0

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xrk 1

1

 

2xrk 1 a xrk 1 2b f (xrk )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 a

 

 

 

 

 

Задаем две точки

 

r0

,

r 1

Вычисляем градиент

x

 

x

 

 

r1

Подставляем в уравнение и получаем новую точку

x

r0

,

r1

 

r2

и т.д.

 

rk

 

 

Подставляем x

 

x

получаем x

 

x

06/25/19

 

 

 

 

 

 

 

 

 

f (xr0 )

xrk 1

 

 

 

 

 

 

 

 

 

 

6

Вычисление градиента

• Если функция задана аналитически, например

f(x1, x2 ) (x1 x2 )2 2x12

То просто пишем подпрограмму

Procedure gradF(var x,dF:mas;n:byte);

Begin

df[1]:=6*x[1];

df[2]:=-2*x[2];

End;

06/25/19

7

Вычисление градиента

Если функция задана в виде сложной программы, и производные невозможно просто вычислить

Function F(var x:mas,n:byte):real;

Begin

f:=sqr(x[1]-x[2])+2*sqr(x[1])

End;

То пишем подпрограмму

Procedure gradF(var x,dF:mas,n:byte,h:real);

Begin

df[1]:=(F(x[1]+h,x[2])-F(x[1]-h,x[2]))/(2*h);

df[2]:=(F(x[1],x[2]+h)-F(x[1],x[2]-h))/(2*h);

End; 06/25/19

8

Резюме

Если правильно подобрать управляющие параметры a, b, и метод решения задачи Коши то метод

шарика может конкурировать с методами нулевого порядка. Однако на настройку параметров уходит довольно много времени.

Метод тяжелого шарика имеет лишь методическое значение, в силу больших затрат на настройку и реализацию алгоритма

Однако он показывает, как можно систематически спускаться к минимуму если знать градиент функции

Более эффективны методы спуска, в которых очередное направление выбирается с использованием градиента

Ниже мы рассмотрим общий алгоритм таких методов

06/25/19

9

Общий алгоритм метода спуска по градиенту

1. Задается начальная точка

иначальный шаг h одномерного спуска .

2. Вычисляется

g f (x0 )

3.Выбирается направление

d g

x0

x2

g0

x20

d

 

x10 x1

06/25/19

10