Методы Оптимизации / lecture / talk_14_lecture
.pdf[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 11]
2.4. Вычислим шаг спуска ®1 по формуле: |
|
|
|
|
|||||||
® |
1 |
= |
¡ |
(¡1; S1) |
= |
¡ |
(¡4=3) ¢ (16=9) + (4=3) ¢ (¡8=9) |
= |
3 |
; |
|
|
|
|
|
|
|
|
|
|
|||
|
|
(AS1; S1) |
|
(32=9) ¢ (16=9) + (¡32=9) ¢ (¡8=9) |
|
8 |
|
2.5. Тогда
x2 = x1 + ®1S1 |
= |
·4=3¸ |
¡ |
8 |
¢ |
·¡8=9¸ |
= |
·1¸ |
: |
|
|
4=3 |
|
3 |
|
16=9 |
|
2 |
|
x2 = (2; 1)T :
[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 12]
2.6. Вычислим градиент в точке x2 = (2; 1)T : |
|
||
2 |
0 |
2 |
4 |
¡2 = Ax2 ¡ b = ·0 4¸ |
¢ ·1¸ ¡ |
·4¸ = |
· ¸
00 :
= (2; 1)T точка минимума. Решение
[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 13]
2. МЕТОД ФЛЕТЧЕРА-РИВСА
Метод сопряженных градиентов часто называют методом Флетчера-Ривса.
Для того, чтобы применить этот метод для минимизации произвольной негладкой функции f(x), формулу для вычисления коэффициента ¯k¡1
¯ |
= |
(ASk¡1; ¡k) |
: |
||||
|
k¡1 |
|
|
(ASk¡1; Sk¡1) |
|||
|
|
|
|
||||
преобразуют к виду |
|
|
|
|
|
|
|
¯ |
k¡1 |
= |
(¡k; ¡k ¡ ¡k¡1) |
||||
или к виду |
|
|
|
jj¡k¡1jj2 |
|||
|
|
|
|
|
|
|
|
|
¯k¡1 |
|
= |
jj¡kjj2 |
; |
||
|
|
2 |
|||||
|
|
|
|
jj¡k¡1jj |
где ¡k = rf(xk) градиент функции f(x) в точке xk. Шаги ®k определяются численно с использованием методов одномерной минимизации:
'k(®k) = min 'k(®); ® > 0; 'k(®) = f(xk + ®Sk):
[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 14]
|
|
|
Описание метода |
|
|
|
|||
A. Расчетная схема. |
|
|
|
|
|
|
|||
|
|
xk+1 = xk + ®kSk; |
k = 0; 1; 2; :::; |
|
|||||
S0 = ¡¡0; Sk = ¡¡k + ¯k¡1Sk¡1; ¡k = rf(xk); k > 1; |
|||||||||
¯ |
k¡1 |
= |
(¡k; ¡k ¡ ¡k¡1) |
или ¯ |
= |
jj¡kjj2 |
; |
||
|
|
jj¡k¡1jj2 |
|
|
k¡1 |
jj¡k¡1jj2 |
|
||
'k(®k) = min '(®); |
® > 0; |
'k(®) = f(xk + ®Sk): |
|||||||
Решение задачи одномерной минимизации |
|
|
|
||||||
'k(®k) = min 'k(®); |
® > 0; |
'k(®) = f(xk + ®Sk): |
|||||||
для расчета ®k осуществляется численно. |
|
|
|
[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 15]
B. Обновление алгоритма.
Чтобы ослабить влияние погрешностей, используют процедуру ¾обновления¿ алгоритма, состоящую в том, что в формуле
Sk = ¡¡k + ¯k¡1Sk¡1; k > 1
коэффициенты ¯k¡1 не рассчитывают, а периодически через заданное число итераций полагают равными нулю:
¯k¡1 = 0:
Соответствующий номер итерации называют моментом обновления алгоритма или рестартом.
Обычно множество таких номеров имеет вид:
Rs = fN; 2N; :::; pN; :::g; p 2 N;
N – размерность вектора x, N множество натуральных чисел.
[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 16]
Алгоритм
1. Задать x0, "1 > 0, "2 > 0 и MaxStep предельное число итераций. Найти градиент rf(x).
2.k à 0.
3.Вычислить ¡k = rf(xk).
[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 17]
4. Проверить критерий окончания поиска
jj¡kjj < "1:
Если jj¡kjj < "1, то положить x¤ = xk и закончить поиск. Если jj¡kjj > "1, то перейти к шагу 5.
5. Проверить условие k > MaxStep. Если k > MaxStep, то закончить поиск.
Если k < MaxStep, то при k = 0 перейти к шагу 6, а при k > 1 перейти к шагу 7.
[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 18]
6. Определить
S0 = ¡¡0
и перейти к шагу 9. 7. Рассчитать ¯k¡1:
Если k 2 Rs, то сделать рестарт, положив ¯k¡1 = 0. Иначе
¯ |
k¡1 |
= |
(¡k; ¡k ¡ ¡k¡1) |
или ¯ |
k¡1 |
= |
jj¡kjj2 |
; |
|
jj¡k¡1jj2 |
|||||||||
|
|
jj¡k¡1jj2 |
|
|
|
[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 19]
8. Определить направление спуска
Sk = ¡¡k + ¯k¡1Sk¡1:
9. Вычислить шаг спуска ®k путем численного решения задачи одномерной минимизации:
'k(®k) = min 'k(®); ® > 0; 'k(®) = f(xk + ®Sk):
10. Найти следующее приближение к точке минимума x¤:
xk+1 = xk + ®kSk:
[Жусубалиев Ж.Т. Методы оптимизации. 2010. Слайд 20]
11. Проверить выполнение условий
jjxk+1 ¡ xkjj < "2 и jf(xk+1) ¡ f(xk)j < "2:
Если не выполняется хотя бы одно из условий, то k à k + 1 и перейти к шагу 3.
Иначе положить x¤ = xk и закончить поиск.