Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1017

.pdf
Скачиваний:
0
Добавлен:
16.06.2024
Размер:
1.05 Mб
Скачать

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]