Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мотс 2.pdf
Скачиваний:
66
Добавлен:
24.02.2016
Размер:
1.96 Mб
Скачать

5-й шаг. Вычислим F(x2 )T = [0, 0]. Таким образом, x2 = x* . Решение по-

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

4.2.4. Метод Дэвидона-Флетчера-Пауэла (ДФП) (метод переменной мет-

рики). В отличие от метода наискорейшего спуска весьма эффективен в тех случаях, когда точка поиска xk находится вблизи точки минимума.

Последовательность итераций строится в соответствии с формулой xk +1 = xk + αk S k , где S k направление поиска на k-м шаге, определяемое выражением Sk =−Ak F(xk ). Здесь Аk – квадратная матрица порядка n, которая изме-

няется на каждой итерации и носит название метрики.

Начальная точка x0 выбирается произвольно, матрица А0 является единичной матрицей, т.е. А0 = I, поэтому направление S 0 = − F(x0 ) = −g 0 . Поиск вдоль этого направления на первом шаге дает такой же результат, как в методе наискорейшего спуска: x1 = x0 λ0 F(x0 ) = x0 λ0 g 0 .

Рекуррентное соотношение для вычисления матрицы А имеет вид

Ak = Ak 1 +

xk 1(xk 1)T

+

 

Ak 1g k 1(g k 1)T Ak 1

.

(4.24)

(xk 1)T g k 1

 

(g k 1)T Ak 1g k 1

 

 

 

 

 

Здесь изменение переменной xk

= xk1 xk , а изменение градиента при пе-

реходе от точки xk к точке xk+1 равно g k

= g k +1 g k . Величина шага λk вычисляет-

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

Метод ДФП обеспечивает убывание целевой функции при переходе от итерации к итерации и широко используется при решении различных практических задач.

4.2.5. Метод Бройдена-Флетчера-Гольдфарба-Шенно (БФГШ). В методе БФГШ последовательность итераций вычисляется в соответствии с выражением xk +1 = xk − αk Ak F(xk ) .

Полагая, что F(xk ) = g k

и A0 = I , рекуррентную формулу для вычисления пе-

ременной матрицы А можно записать следующим образом:

 

 

 

 

xk (g k )T T

 

x k (g k )T

 

xk (xk )T

.

(4.25)

Ak +1 = I

 

Ak I

 

+

 

(xk )T g k

 

(xk )T g k

 

(xk )T g k

 

 

 

75

Величина шага αk вычисляется в результате одномерного поиска минимума

функции по параметру α в рассматриваемом направлении S k . Одно из главных преимуществ метода – слабая зависимость от точности вычислений при проведении одномерного поиска.

4.2.6. Обобщенный градиентный алгоритм. Сходство рассмотренных ранее методов дает основание для разработки блок-схемы обобщенного градиентного алгоритма, приведенной на рис. 4.13.

В приведенном алгоритме можно использовать различные методы путем

определения направлений поиска S k по соответствующим формулам.

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

При рассмотрении градиентных методов предполагалось, что элементы градиента F(x) можно вычислить с достаточной степенью точности. На практике

получение аналитического выражения для градиента иногда затруднено. В этом случае используют численную оценку составляющих вектора F(x) . Простейшей

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

 

F (x)

=

F (x + ∆x) F (x)

.

(4.25)

x

 

 

x

 

В тоже время величина x , которая при малых значениях дает весьма точные оценки, должна выбираться достаточно большой, чтобы числитель выражения (4.25) был отличен от нуля. Если же x оказывается меньше, чем минимальная точность расчетов на ПЭВМ, то числитель обращается в нуль.

4.2.7. Метод Ньютона. Метод Ньютона использует информацию о вторых производных целевой функции. Вычисление каждой очередной точки осуществляется по формуле xk+1 = xk H 1(xk ) F(xk ), где H(xk ) = 2 F(xk ) – квадратная матрица порядка n вторых производных функции F(x), вычисленных в точке xk . Матрицу H(x) называют матрицей Гессе, или гессианом функции F(x). H 1 (xk ) –

матрица, обратная гессиану, вычисленному в точке xk . Метод Ньютона имеет квадратичную скорость сходимости на классе выпуклых функций. Однако при исследовании неквадратичных функций метод Ньютона не отличается высокой надежностью, если точка x0 находится на значительном расстоянии от точки x*. В этом случае прибегают к модификации метода, чтобы обеспечить уменьшение целевой функции от итерации к итерации и на первых шагах осуществляют поиск вдоль направления, как в методе наискорейшего спуска. Последовательность итераций осуществляется в соответствии с формулой

xk +1 = xk − αk H 1(xk ) F(xk ) .

(4.26)

76

нет

S(xk ) =− F(xk )

Напечатать «возврат: неудачное направление»

нет

k = k +1

Начало

Задать

M , N , x 0 , ε1 , ε2

Положить k = 0

Вычислить F (xk )

да

F ( x k ) ε1

нет

да

K = M ?

нет

Вычислить S(xk )

FT (xk )S(xk ) < 0?

да

Вычислить αk , используя параметр ε 2

xk+1 =xk +αkS(xk )

нет

F(xk+1) <F(xk )?

да

x

xk ≤ ε1 ?

да

M - максимально допустимое количество итераций; N - количество переменных; х0 - начальное приближение к х*; ε1 - параметр сходимости алгоритма; ε2 - параметр сходимости для поиска вдоль прямой

Напечатать «сходимость: Конец градиент»

Напечатать «окончание поиска К=М»

Напечатать «окончание поиска: нет уменьшения функции»

Напечатать «окончание поиска: нет продвижения к решению»

Рис. 4.13. Блок-схема обобщенного градиентного алгоритма

77

Выбор αk осуществляется так, чтобы F(xk +1 ) в рассматриваемом направле-

нии принимала минимальное значение. Это гарантирует выполнение неравенства

F(xk+1) F(xk ).

Если функция цели квадратичная, экстремум находится за один шаг.

Пример 4.7.

 

 

 

 

 

 

Найти максимальное значение функции F(x) = 18x

+12x

2

2x x

2

2x2

x2

1

 

1

1

2

методом Ньютона, если x0 = [2,1] .

Очередная точка поиска вычисляется в соответствии с выражением xk +1 = xk H 1(xk ) F(xk ) ,

где H (x) – матрица Гессе функции F(x) ; H 1 (x ) – обратная по отношению к H (x) матрица.

 

F

 

 

 

F

 

=[4x1

+18 2x2 ;2x1 2x2 +12];

F(x0 ) =[8, 6];

F(x) =

 

 

 

 

x1

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 F

 

 

 

 

2 F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

4

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H (x) =

 

x1

 

 

 

x1x2

;

H (x) =

 

;

H 1 =

AdjH,

 

 

 

 

det H

 

 

 

2 F

 

 

 

 

2 F

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2

x

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

 

 

 

 

где det H – определитель матрицы H ; AdjH – присоединенная к H матрица (транспонированная матрица алгебраических дополнений).

Найдем алгебраические дополнения элементов матрицы H : ij = (1)i + j mij , тогда

11 = −2 , 12 = 2, 21 = 2 , 22 = −4 .

Тогда

2

2

det H = 4;

0,5

0,5

AdjH =

2

;

H 1 =

0,5

;

 

4

 

 

1

x1

 

2

0,5

0,5 8

2

4 + 3

2

 

1

3

 

2

 

=

1

 

0,5

 

6

 

=

1

 

4 6

 

=

1

 

2

 

=

;

 

x2

 

 

 

 

1

 

 

 

 

 

 

3

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F (x1 )T

= [12 +18 6;6 6 +12] = [0,0].

 

 

 

 

78