
1017
.pdf
39. Поскольку i 2 n и f y(3) |
f x(4) |
1; 0 0 , то поиск по об- |
||||
разцу на шаге 42 неудачен, переход к шагу 5. |
|
x* ( 1; 0)T . |
|
|
||
51. Так как 1 2 1 , то поиск завершен, |
|
|
||||
На рис. 7 приведены линии уровня функции |
f (x) 4(x 1)2 |
4x2 |
, по- |
|||
строенные в системе MathCAD. |
|
|
1 |
2 |
|
|
|
|
|
|
|
|
|
f(x1) 4 (x1 1)2 |
f1(x1) |
1 (x1 1)2 |
|
|
||
|
|
2 |
|
|
|
|
|
|
|
|
|
|
f(x1)
f1(x1) |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
2 |
|
|
|
1 |
0 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
x1 |
|
|
|
|
|
||
Рис. 7. Линии уровня функции |
|
|
f (x) 4(x |
1)2 |
4x2 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
Комплексный поиск Бокса
Для реализации метода комплексного поиска Бокса используется следующий алгоритм:
1. Строится многогранник с 2n вершинами (комплекс), для чего выбирается 2n точек из пространства E n по формуле
x(0) |
l |
r |
|
|
u |
l |
|
, |
i 1, 2, , 2n, l |
x |
u , |
(4.2) |
|
|
|
||||||||||||
i |
i |
i |
|
|
i |
i |
|
|
|
i |
i |
i |
|
где xi xi1, xi2 , , xiп , |
|
|
li |
li1, li2 , , liп , |
ui ui1, ui2 , , uiп , ri |
– диаго- |
нальная матрица псевдослучайных чисел, равномерно распределенных на интервале 0,1 .
2. Целевая функция вычисляется в каждой вершине, и вершина, в которой f (x) имеет наихудшее значение, заменяется новой вершиной, находя-
щейся на прямой, проходящей через наихудшую вершину и центр тяжести оставшихся точек.
Координаты центра тяжести можно определить по формуле
|
1 |
|
|
2n |
|
|
|
|
xcj(k ) |
|
|
xij xhj |
, |
(4.3) |
|||
2n 1 |
||||||||
|
i 1 |
|
|
|
где j – номер координаты вектора xi; i – номер точки;
h – номер удаляемой точки.
61

Координаты новой точки определяются по формуле
x(k 1) |
x |
cj |
(x |
cj |
x(k ) ), |
j 1, 2, , 2n, |
(4.4) |
hj |
|
|
hj |
|
|
где 1 – коэффициент отражения (например, 1,3 ).
3. Если значение f (x) в найденной новой вершине остается наихуд-
шим, то она заменяется другой, расположенной на расстоянии, равном половине расстояния от новой вершины до центра тяжести. (Если нарушается ограничение li xi ui , то новая вершина также передвигается на половину
расстояния к центру тяжести.)
4.Поиск продолжается до тех пор, пока многогранник не будет стянут
вцентр тяжести (в пределах заданной точности).
Пример 16.
Выполнить |
минимизацию функции |
f (x) 6x 2 0,25(x |
2 |
40)2 |
, |
0 x1 6; 20 x2 |
|
1 |
|
|
|
80; 0,001 методом комплексного поиска Бокса. |
|
||||
Решение. |
|
|
|
|
|
По условию задачи, нижние границы переменных li (0; 20) , |
верхние |
||||
ui (6; 80) . |
|
из интервала 0,1 : |
|
|
|
Случайным образом выбираем значения ri |
|
|
|
||
r1 0,1; 0,8, 0,7; 0,5 , r2 0,9; 0,2, 0,3; 0,4 |
|
|
|
Строим многогранник с 4-мя вершинами, для чего выбираем 4 точки из области определения функции по формуле (4.2).
x11(0) l1 r11 u1 l1 0 0,1 20 0 2. Аналогично
x12(0) 0 0,8 20 0 16; x13(0) 0 0,7 20 0 14;
x14(0) 0 0,5 20 0 10. Аналогично
x(0) |
l |
2 |
r(0) |
|
|
u |
2 |
l |
2 |
|
6 0,9 |
|
80 6 |
|
72,6; |
|
|
|
|
||||||||||||
21 |
|
21 |
|
|
|
|
|
|
|
|
|
|
x22(0) 6 0,2 80 6 20,8; x23(0) 6 0,3 80 6 28,2;
x24(0) 6 0,4 80 6 35,6.
Вычисляем в каждой полученной вершине значение функции и выби-
раем наихудшее.
f (2; 72,6) 289,69; f (16; 20,8) 1628,16; f (14; 28,2) 1210,81; f (10; 35,6) 604,84.
62

В точке xh(0) x2(0) |
(16; 20,8) функция принимает максимальное |
(наихудшее) значение; поэтому заменяем ее другой, расположенной на прямой, проходящей через нее и центр тяжести оставшихся точек.
Координаты центра тяжести рассчитаем по формуле (4.3):
xc1 13 (2 14 10) 8,6667; xc2 13 (72,6 28,2 35,6) 45,4667.
Координаты новой точки определяем по формуле (4.4), приняв 1,1: x21(1) 8,6667 1,1 (8,6667 16) 0,6;
x22(1) 45,4667 1,1 (45,4667 20,8) 77,88.
Как видим, ограничение li xi ui не нарушается; поэтому продолжим
вычисления с новой точкой.
Процесс заканчивается при выполнении условия
f (x(k 1) ) f (x(k ) ) .
Повторяющийся случайный поиск
Метод случайного поиска представляет собой выбор наилучшего направления минимизации из многих возможных, получаемых случайным путем, и переход к новой точке с минимальным значением функции в этом направлении.
Алгоритм метода.
1.Задается начальная точка x(0) .
2.Строится случайная траектория из последовательности шагов по формуле
x |
(k 1) |
x |
(k ) |
(k ) |
|
z(k ) |
|
1 r |
(k ) |
|
|
||
|
|
|
|
|
|
|
|
|
|
, |
|||
|
|
|
|
z(k ) |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
где (k ) – |
числовой параметр, увеличивающийся при удачном и уменьша- |
|
ющийся при неудачном шаге (можно начать с (k) 1); |
– |
числовой параметр, изменяемый в процессе поиска (можно при- |
|
нять 0,5 ); |
z(k ) – вектор «предыстории», учитывающий среднее направление поиска на предыдущих шагах:
z(k 1) z(k ) 1 x(k 1) x(k ) s(k ) ;
r (k ) –
s(k ) –
–
единичный вектор, компоненты которого определяются случайным образом с помощью генератора псевдослучайных чисел на интервале [0, 1], а затем весь вектор нормируется (делится на длину);
вектор масштабных множителей ( s(k) 1); постоянный весовой множитель = 0,5.
63
3. Вектор x(k 1) будет принят или отвергнут в зависимости от того, вы-
полняется или нет неравенство |
f x(k 1) f x(k ) . |
Если x(k 1) принят, то |
||||
(k 1) |
(k ) |
(k 1) |
|
(k ) |
|
|
|
|
, если нет, то |
|
, |
1, например 1,3. |
Пример 17.
Выполнить минимизацию функции
f (x) 6x12 0,25(x2 40)2
методом повторяющегося случайного поиска. Точность вычислений
0,001.
Решение.
Задаем: |
x |
(0) |
|
|
1 |
|
|
(k ) |
1, |
0,5 , |
s |
(k ) |
1, = 0,5, |
z |
(0) |
|
1 |
|
|
||||||||||||||||||
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
. |
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Случайным образом выбираем значения ri из интервала 0,1 : |
|
||||||||||||||||||||||||||||||||||||
r(0) |
0,001; 0,193 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
x |
(1) |
x |
(0) |
|
|
(0) |
|
|
|
|
z(0) |
|
1 r |
(0) |
|
|
1 |
|
|
|
|
z |
(0) |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 0,5 |
|
|
|
|
|
|
(1 |
0,5) |
0,1 . |
||||||||||||
|
|
|
|
z |
|
|
|
|
|
|
z |
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
(0) |
|
|
|
|
|
|
|
41 |
|
|
|
(0) |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
x |
(1) |
1 1 0,5 1 1 0,5 0,001 |
1,5005; |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
1 |
41 1 0,5 0 1 0,5 0,193 41,0965; |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
x2(1) |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
f x(0) |
, x(0) f (1; 41) 6,25 ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
1 |
|
|
2 |
f (1,5005; 41,0965) 13,8096. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
f x(1) |
, x(1) |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
1 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f x(1) |
, x(1) |
f |
x(0) , x |
(0) |
|
(1) |
(0) |
|
0,5 , |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
1 |
|
|
2 |
|
|
|
|
1 |
|
|
|
|
2 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x(2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
(1,5005; 41,0965) – не принимается. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
x |
(2) |
1 0,5 0,5 1 0,5 0,091 1,27275; |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
1 |
41 0,5 0,5 0 0,5 0,014 41,0035; |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
x2(2) |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
z |
(1) |
0,5 1 1 0,5 x(1) |
|
x(0) 1 0,5 0,5 1,27275 1 0,636375; |
|||||||||||||||||||||||||||||||||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
z2(1) |
0,5 0 1 0,5 x2(1) |
|
x2(0) 1 0 0,5 41,0035 41 0,00175; |
||||||||||||||||||||||||||||||||||
x |
(2) |
x |
(0) |
|
|
(1) |
|
|
|
|
z(1) |
|
1 r |
(2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
z(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64

x(2) |
|
|
0,636375 |
|
|
|
1 0,5 0,5 |
|
0,5 0,091 |
1,27275; |
|||
|
||||||
1 |
|
|
0,6363752 0,001752 |
|
|
|
|
|
|
||||
|
|
|
|
|
|
x2(2) |
|
|
|
|
0,00175 |
|
|
|
|
41 |
0,5 0,5 |
|
|
|
0,5 0,014 |
41,10058; |
|||
0,6363752 0,001752 |
|||||||||
|
|
|
|
|
|
||||
f x(0) |
|
|
|
|
|
|
|
|
|
, x(0) |
f (1; 41) 6,25 ; |
|
|
|
|||||
1 |
2 |
f (1,27275; 41,10058) 10,02217. |
|
||||||
f x(2) |
, x(2) |
|
|||||||
1 |
2 |
|
|
|
|
|
|
|
|
f x(2) |
, x(2) |
f x(1) |
, x(1) |
(2) (1) |
0,25 |
|
|||
1 |
2 |
1 |
2 |
|
|
|
|
2
и т.д., процесс заканчивается, если выполняется условие
f (x(k 1) ) f (x(k ) ) .
Методы первого порядка
Рассмотрим методы поиска, в которых наряду со значениями функции
используется и ее градиент. |
|
|
|
в точке x(k) x1(k), x2(k) ,..., xп(k) |
||||
Напомним, что градиент функции f x |
|
|||||||
определяется формулой |
|
f x k |
|
f x k |
|
|
f x k T |
|
|
|
|
|
|||||
f (x(k ) ) |
|
|
, |
|
|
, ..., |
|
. |
x |
x |
|
x |
|||||
|
|
|
|
|
|
|||
|
|
1 |
|
2 |
|
|
n |
|
Вектор f (x(k ) ) или grad f x ортогонален линиям уровня f (x) c const ; его направление совпадает с направлением наибольшего возрастания функции f (x) в заданной точке. Следовательно, векторgrad f (x) , противоположный градиенту и называемый антиградиентом,
направлен в сторону наискорейшего убывания функции (наискорейшего спуска). В точке минимума функции grad f (x) 0 .
Метод градиентного спуска Идея метода градиентного спуска состоит в следующем. Выбираем не-
которую начальную точку и вычисляем в ней градиент рассматриваемой функции. Делаемшаг внаправлении антиградиента. Врезультатеприходим в точку, значение функции в которой обычно меньше первоначального. Если это условие не выполнено, т.е. значение функции не изменилось либо даже возросло, то нужно уменьшить шаг. В новой точке процедуру повторяем: вычисляем градиент и снова делаем шаг в обратном к нему направлении. Процесс продолжается до получения наименьшего значения целевой
65

функции. Момент окончания поиска наступит тогда, когда движение из полученной точки с любым шагом приведет к возрастанию целевой функции.
Определим итерационный процесс:
где x(k) (k)s(k) –
(k ) – s(k ) –
s(k ) f x(k ) .
f x(k )
Следовательно,
x(k 1) x(k ) x(k ) x(k ) (k ) s(k ) ,
шаг минимизации; скаляр;
единичный вектор в направлении минимизации,
x(k 1) xk |
(k ) f x(k ) |
. |
(4.5) |
f x(k ) |
Поскольку один шаг в направлении наискорейшего спуска в общем случаенеприводитвточкуминимума f (x) , формула(4.5) должнаприменяться
многократно до тех пор, пока не будет достигнут минимум. В точке минимума f x(k)
.
Процедура поиска может закончиться в стационарной точке (в которойf x(k ) 0 ) различноготипа. Поэтомуиногдаследуетопределять, является
ли данная точка точкой локального минимума (т.е. решением) или седловой точкой. Если это седловая точка, то необходимо выйти из нее, применив ка- кой-либо метод нулевого порядка, после чего минимизация может опять
продолжаться градиентным методом. Тип стационарной точки можно опре- |
|||||||
делить с помощью матрицы Гёссе |
2 |
f x |
(k ) |
|
2 f x(k ) |
: если эта матрица |
|
|
|
|
xi x j |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
является положительно-определенной, то имеем точку минимума, иначе стационарная точка является седловой.
Критерий окончания поиска основывают:
a) на значении f (x) (когда уменьшение функции не происходит ни в одном направлении);
b) на значении f x(k ) (когда вектор f x(k ) близок к 0):
где – заданная точность, |
|
f x(k 1) |
|
|
|
, |
|
|
2 |
|
|||||
|
|
|
|
|
|
||||||||||
|
|
|
|
n |
|
(k 1) |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||||||
|
f x |
(k 1) |
|
|
|
f x |
|
|
; |
||||||
|
|
|
|
|
|
|
|||||||||
|
|
|
xi |
|
|||||||||||
|
|
|
|
|
|
i 1 |
|
|
|
||||||
c) на комбинации значений |
f (x) |
и f x(k ) . |
|
|
|
66

Важным вопросом является выбор величины шага (k ) . Обычно используется один из следующих способов выбора вектора (k ) :
1)(k) const;
2)(k ) 0 при k ;
3)целевая функция минимизируется по :
min f x(k ) s(k ) .
Для этого значение может быть вычислено из уравнения
df x(k ) s(k ) |
0 . Минимум функции min f x(k ) можно определить также |
d |
|
|
каким-либо численным методом.
Теорема сходимости градиентного метода минимизации.
Если f (x) – выпуклая функция, имеющая производные до третьего по-
рядка, то метод наискорейшего спуска сходится из любого начального приближения.
При использовании градиентного спуска в задачах оптимизации основной объем расчетов приходится обычно на вычисление градиента целевой функции в каждой точке траектории спуска. Поэтому целесообразно уменьшить количество таких точек без ущерба для самого уравнения. Это дости-
гаетсявметоденаискорейшегоградиентногоспуска(рис. 8) следующимоб-
разом. После определения в начальной точке направления, противоположного градиенту целевой функции, делают не один шаг, а несколько, продолжая двигаться в этом направлении, пока целевая функция убывает, таким образом достигая минимума по направлению в некоторой точке. В этой точке снова определяют направление спуска (с помощью антиградиента) и ищут новую точку минимума целевой функции и т.д. В этом методе спуск происходит гораздо более крупными шагами, и градиент вычисляется в меньшем числе точек.
Рис. 8. Иллюстрация метода наискорейшего градиентного спуска
67

|
Пример 18. |
|
|
|
|
|
|
|
|
|
|
f x x |
2 25x |
2 |
|
|
|
|
|
|
|||||||||||||||
|
Минимизировать |
функцию |
|
методом градиентного |
|||||||||||||||||||||||||||||||
спуска. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
2 |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Решение. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2, 2 . |
|
|
|
|
|||||||
|
Возьмем фиксированную длину шага 1; x(0) |
|
|
|
|
||||||||||||||||||||||||||||||
|
Для организации итерационного процесса выбираем формулу (4.5). |
||||||||||||||||||||||||||||||||||
Найдем градиент и его норму: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
f x |
(k ) |
2x1(k ) ; |
|
|
f x |
(k ) |
50x2(k ) ; |
|
|
|
|
(k ) |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
f x(k ) 2x1 |
, |
|||||||||||||||||||||||
|
|
x1 |
|
|
|
|
|
|
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
50x(k ) |
|
|||||||
|
|
|
|
|
|
|
|
|
|
f x(k ) |
|
|
|
f x(k ) 2 |
|
|
|
|
|
|
|
2 |
|||||||||||||
|
|
|
(k ) |
|
|
|
|
|
2 |
|
|
|
|
|
(k ) 2 |
(k ) 2 |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
f x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2x1 |
50x22 |
|
||||||||
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
x |
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
42 1002 |
100,08. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
1,96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
f x(0) 104; |
f x(1) 28,842; |
|||||||||||||||||||||||
|
|
x(1) |
|
|
|
1 |
100 |
|
|
|
|
|
|
|
; |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
2 |
|
|
|
100,08 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3,92 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1,96 |
|
|
|
|
|
|
50 |
|
|
1,88 |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
x(2) |
|
|
|
|
|
|
|
|
|
|
|
и т.д. |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
50,1 |
|
|
|
0 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
В табл. 16 представлено 4 шага оптимизации. |
|
|
Таблица 1 6 |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Величина шага |
|
|
|||||
|
x1 |
x2 |
|
|
|
|
f x(k ) |
|
f x(k ) |
|
|
|
|
f x |
(k ) |
|
|
|
при переходе к |
f x(k ) |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
x1 |
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
следующему |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
этапу |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
|
x2 |
|
|
|
|
|
2 |
2 |
|
|
|
|
|
|
4 |
|
|
|
|
100 |
|
|
|
|
100,08 |
|
|
|
– 0,04 |
|
– 1 |
|
104 |
|
|||||||
|
1,96 |
1 |
|
|
|
|
|
3,92 |
|
|
|
50 |
|
|
|
|
|
50,1 |
|
|
|
– 0,078 |
|
– 1 |
|
28,842 |
|
||||||||
|
1,88 |
0 |
|
|
|
|
|
3,76 |
|
|
|
0 |
|
|
|
|
|
3,76 |
|
|
|
|
– 1 |
|
0 |
|
3,534 |
|
|||||||
|
0,88 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0,774 |
|
|
В дальнейшем для обеспечения сходимости необходимо уменьшить , |
||||||||||||||||||||||||||||||||||
иначе при подходе к минимуму x* 0, 0 |
могут возникнуть колебания зна- |
||||||||||||||||||||||||||||||||||
чений f x(k ) вокруг значения точки минимума. |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
Минимум функции f 0,0045; 0,05 0,062 |
|
с точностью 0,01 достиг- |
нут на 90-й итерации.
68
Пример 19.
Решить задачу из примера 18 методом наискорейшего градиентного спуска.
Решение.
Используя условия примера 18, имеем
|
|
|
|
4 |
|
|
|
|
|
|
|
2 |
|
|
|
1,96 |
|
|
|
x(1) |
100 |
|
f x(1) 28,842. |
||||||
|
|
|
1 |
|
|
|
; |
||
|
|
2 |
|
100 |
|
|
1 |
|
|
|
|
|
|
|
|
|
Далееиспользуемужевыбранноена1-мшагенаправление, т.е. небудем пересчитывать градиент для точек x(k 1) на последующих итерациях до тех
пор, пока функция |
f (x) будет убывать на выбранном направлении. |
|||||||||||
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
1,96 |
|
|
|
|
|
1,92 |
|
|
|||
x(2) |
1 |
100 |
|
f x(2) |
3,686; |
|||||||
|
|
|
|
|
|
|
|
; |
||||
|
|
1 |
|
|
|
100 |
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
1,92 |
|
|
|
|
|
1,88 |
|
|
|
||
x(3) |
1 |
100 |
|
f x(3) |
28,534 f x(2) . |
|||||||
|
|
|
|
|
|
|
|
; |
||||
|
|
0 |
|
|
100 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Следовательно, x(3) отбрасываеминаходимградиентвточке x(2) и, подставив его значение в итерационную формулу, определяем следующее направление минимизации.
|
|
|
|
|
|
3,84 |
|
|
|
|
|
|
1,92 |
|
|
|
0 |
|
|
0,92 |
|
|
|
x(3) |
1 |
|
|
f x(3) 0,846. |
|||||||
|
|
|
|
|
|
|
|
; |
|||
|
|
0 |
|
|
|
3,84 |
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
Процесс продолжается до достижения требуемой точности решения. В табл. 17 представлено 4 шага оптимизации:
Таблица 1 7
|
|
|
|
|
|
|
|
|
|
|
|
|
Величина шага |
|
||
x1 |
x2 |
f x(k ) |
f x(k ) |
|
|
|
|
f x |
(k ) |
|
|
|
при переходе к |
f x(k ) |
||
|
|
|
||||||||||||||
x1 |
x2 |
|
|
|
|
|
|
|
следующему |
|||||||
|
|
|
|
|
|
|
|
|
|
|
этапу |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
|
x2 |
|
2 |
2 |
4 |
100 |
|
|
|
|
|
|
|
|
|
– 0,04 |
|
– 1 |
104 |
|
|
|
|
|
|
|
100 |
|
|
|
|
|
|
|
||
1,96 |
1 |
4 |
100 |
|
|
|
|
|
|
|
|
|
– 0,04 |
|
– 1 |
28,534 |
|
|
|
|
|
|
|
100 |
|
|
|
|
|
|
|
||
1,92 |
0 |
4 |
100 |
|
|
|
|
|
|
|
|
|
– 1 |
|
0 |
3,686 |
|
|
|
|
|
|
|
100 |
|
|
|
|
|
|
|
||
0,92 |
0 |
1,84 |
0 |
|
|
|
1,84 |
|
|
|
|
|
|
0,846 |
69
Сравнивая табл. 16 и 17, можно увидеть, что в методе наискорейшего градиентного спуска процесс минимизации происходит гораздо более крупными шагами и градиент вычисляется в меньшем числе точек.
Метод сопряженного градиента Флетчера – Ривса
Пусть Qn n – положительно-определенная матрица; тогда, если для век-
торов s(k ) s1(k ) , ..., sn(k ) и s(k 1) s(k 1) , ..., sn(k 1) выполняется равенство s(k ) Q (s(k 1) )T 0 , то векторы s(k ) и s(k 1) называются сопряженными по
направлению.
Известно, что использование сопряженных направлений на каждом шаге минимизации приводит к хорошему результату. При этом в качестве матрицы Q при вычислении сопряженных направлений применяется мат-
рица Гёссе 2 f .
Известен следующий алгоритм метода сопряженного градиента Флетчера – Ривса для минимизации функции (рис. 9):
1)задается точка x(0) ;
2)вычисляется s(0) f (x(0) ) ;
3)наk-мшагеспомощьюодномерногопоискавнаправлении s(k ) находится минимум функции f (x) , что определяет точку x(k 1) ;
4)вычисляются f (x(k 1) ) и f (x(k 1) ) ;
5)направление поиска s(k ) определяется по формуле
|
|
|
|
|
|
|
|
|
|
s(k 1) f (x(k 1) ) 0s(0) , |
(4.6) |
||||||||
где 0 |
|
|
f (x(k 1) ) |
|
|
2 |
; |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
f (x(k ) ) |
|
2 |
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|||||||||||||
6) |
после n 1 -й итерации (при k n ) процедура циклически повторя- |
||||||||||||||||||
ется с заменой x(0) |
на x(n 1) : |
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
x(k 2) x(k 1) |
(k )s(k 1) , |
(4.7) |
|||||||
где (k ) – шаг; |
|
|
|
|
|
|
|
|
|
|
|
||||||||
7) алгоритм заканчивается, когда |
|
|
|
s(k ) |
|
|
|
, где – произвольная малая |
|||||||||||
|
|
|
|
величина.
Замечание. Выбор величины шага (k ) , как и в других градиентных методах, возможен одним из следующих способов: 1) (k ) const; 2) (k ) 0
при k ; 3) целевая функция минимизируется по : min f x(k ) s(k ) .
70