
- •Тема 3 Методы оптимизации первого порядка
- •Общая характеристика методов первого порядка
- •Как известно, направление градиента является направлением наискорейшего возрастания функции в данной точке. Следовательно,
- •Метод тяжелого шарика
- •Уравнение траектории тяжелого шарика
- •Вычисление градиента
- •Вычисление градиента
- •Резюме
- •Общий алгоритм метода спуска по градиенту
- •Общий алгоритм метода спуска по градиенту
- •Общий алгоритм метода спуска по градиенту
- •В случае длинного оврага, если начальная точка выбрана неудачно, метод спуска по градиенту
- •Программная реализация
- •Подпрограмма для функции (z) вдоль направления d
- •Реализация алгоритма спуска к минимуму
- •Метод сопряженных направлений
- •Квадратичная функция
- •Сопряженные направления
- •Метод параллельных прямых
- •Метод Флетчера-Ривса
- •Алгоритм метода Флетчера-Ривса
- •Конец

Общий алгоритм метода спуска по градиенту
4. С помощью метода Мpp найти zm доставляющее
min (z) min f ( x0 zd )
z
5. Перейти в новую точку
x0 x0 zmd
x2 |
g0 |
x20 |
d |
zm
x10 x1
06/25/19 |
11 |

Общий алгоритм метода спуска по градиенту
6 Проверим условие |
|
|
|
сходимости |
|
|
|
zm g |
x2 |
g0 |
|
|
|
|
|
6 Если оно выполнено, то |
|
d |
|
x20 |
|
|
|
минимум достигнут в текущей |
|
g1 |
|
точке, иначе повторяем с п.2 |
|
|
|
|
|
x10 |
x1 |
06/25/19 |
|
|
12 |

В случае длинного оврага, если начальная точка выбрана неудачно, метод спуска по градиенту может сильно замедляться
x2
x1 |
|
Т.е. он имеет точно те же недостатки что и метод |
|
спуска по координатам. |
|
Ломанная траектория идет по перпендикулярам к |
|
предыдушей |
13 |
06/25/19 |
Программная реализация
•Type fun=function (x:mas):real
•Procedure MPSP(F:fun;
•var x0:mas;eps,h:real;var fm:real);
•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;
•Var d:mas;
06/25/19 |
14 |
Подпрограмма для функции (z) вдоль направления d
•function F1(z: real): real;
•begin
•
•
•
•end;
for k:=1 to n do x[k]=x0[k]+z*D[k];
F1:=F(x);
06/25/19 |
15 |
Реализация алгоритма спуска к минимуму
•Begin
•repeat
•gradF(x0,dF,n);
•for i:=1 to n do D[i]:=-dF[i];
•zm:=MPP(0,h,h/5);
•x0:=x;
•dl:=zm;
•for i:=1 to n do
• dl:=dl+abs(dF[i]);
•end;
•Until dl<eps;
•fm:=F(x0);
•End;
06/25/19 |
16 |
Метод сопряженных направлений
•Два направления d1 и d2 называются
сопряженными относительно симметричной, положительно определенной матрицы G если
d1T G d2 0
•Известно, что для квадратичной функции можно построить n взаимно сопряженных направлений,
спуск по которым приведет к точке минимума ровно за n шагов.
•На этом свойстве основана большая группа методов
-сопряженных градиентов, сопряженных направлений, параллельных касательных и др.
06/25/19 |
17 |
Квадратичная функция
f a11x12 a12 x1x2 a21x2 x1 a22 x22
Ее матрица симметрична |
|
G |
a |
a |
|
|||||
|
|
|
|
|||||||
|
|
11 |
12 |
|||||||
a12 a21 |
|
|
a |
a |
22 |
|
||||
|
|
|
|
|
|
21 |
|
|||
Если матрица положительно определенная |
|
|
|
|
|
|||||
|
a |
|
0; |
|
a11 |
a12 |
|
0 |
|
|
|
|
|
|
|
||||||
|
|
|
||||||||
|
11 |
|
|
|
a21 |
a22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Тогда квадратичная функция имеет минимум
06/25/19 |
18 |

2 |
2 |
1 |
1 |
|
f x1 |
x1x2 x2 x1 5x2 |
G |
5 |
|
|
|
1 |
|
|
|
|
|
|
06/25/19 |
19 |

Сопряженные направления
Для квадратичной функции n – переменных с положительно определенной матрицей G
вкаждой точке x0 можно построить набор n сопряженных (относительно ее матрицы) векторов, последовательный спуск по которым приведет точно
вминимум
Вопрос в том, как их построить, если не знать G
d2
d1
06/25/19 |
20 |