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

3172

.pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
3.23 Mб
Скачать

Итерация 1

 

 

 

 

 

0.

Зададим x0=(4,5). Выберем

=0.01.

 

1.

f (x 0 ) =(4, 8),

||

f (x 0 ) ||> .

 

2. Решим задачу одномерной минимизации по α:

 

Ф( )

f (x0

f (x0 )) (4 4 )2

 

(5 8

)2

4(4 4 )

2(5

8 ) min .

 

α*=0.5.

 

 

 

 

 

 

х00- α* f (x0 ) =(4-4·0.5, 5-8·0.5)=(2,1).

Итерация 2

 

 

 

 

 

3.

f (x 0 ) =(0,0), ||

 

f (x 0 ) ||=0<

- останов, найдено

 

точное решение.

 

 

 

 

Графическая иллюстрация решения приведена на рис.2.3.3. В данном случае линии уровня являются концентрическими окружностями. Вектор-градиент, вычисленный в любой точке, всегда перпендикулярен касательной к линии уровня, проведенной через эту точку. Поэтому первое же выбранное направление проходит через центр окружностей, т. е. через точку минимума. Вычислив оптимальный шаг (по правилу наискорейшего спуска), за одну итерацию получаем решение задачи.

Рисунок 2.3.3.

43

Ответ: x1* 2; x2* 1; fmin

5.

Пример 2. Решить задачу

f (x) 2x12 x22 x1 x2 min

методом наискорейшего спуска.

Решение.

 

f (x) (4x1

x2 ,2x2

x1 )

Итерация 1

 

 

 

10. Зададим x0=(0.5,1),

=0.4. (рис. 2.3.4.)

11. f (x 0 ) =(3, 2.5), ||

f (x 0 ) ||=3.9> .

3. Решим задачу одномерной минимизации по α :

( )

f(х0

f (x0 )) 2(0.5 3 ) 2

(1

2.5 ) 2

(0.5

3 )(1

2.5 ) min

α*=0.24.

х00- α* f (x0 ) =(0.5-3·0.24, 1-2.5·0.24)=(-0.22,0.4).

Рисунок 2.3.4.

44

Итерация 2

 

 

 

 

 

 

 

4.

f (x0 ) =(-0.48, 0.58), ||

f (x0 ) ||=0.752> .

 

 

5.

Решим задачу одномерной минимизации .

 

 

 

Ф(

)

 

f (x0

f (x0 ))

2( 0.22 0.48 )2

 

 

(0.4

0.58

)2

( 0.22

0.48

)(0.4

0.58

)

min

 

α* = 0.546.

 

 

 

 

 

 

 

x0

x0

 

 

*

f (x0 )

( 0.22 0.48

,0.4

0.58

)

(0.04,0.08)

 

Итерация 3

12.f (x0 ) = (-0.24,0.2),

||

f (x 0 ) || = 0.312< .

x*

x0

(0.04, 0.08).

Ответ: x*

0.04; x*

0.08;

f

min

0.0128.

 

1

 

2

 

 

 

 

Заданная точность

достигнута,

однако

оптимальное решения

xmin (0, 0)

за

2

итерации

найдено

не

было. Из графической

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

2.3.2.3. Система Н-сопряженных направлений

Даже для квадратичных функций сходимость градиентных методов за конечное число итераций не гарантирована. Однако если квадратичная функция n переменных приведена к виду суммы полных квадратов, то ее оптимум может быть найден в результате реализации n одномерных поисков по преобразованным координатным направлениям. Процедура преобразования квадратичной функции

f (x) a bxT 1

xHxT

2

 

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

заданная квадратичная форма xHxT путем преобразования x=zQ приводится к виду

45

xHxT = zQT HQz T zD zT ,

где D -диагональная матрица. Пусть q j - j - тая строка матрицы Q. Тогда преобразование x= zQ позволяет записать каждый вектор x в виде линейной комбинации векторов q j :

x = zQ =

z q1

z

2

q2

.. z

n

qn

1

 

 

 

.

Другими словами, осуществляется переход к новой системе координат, задаваемой векторами q j (заметим, что это

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

функции. Для полученной системы векторов q j будут выполняться равенства

qi H (q j )T

0, i j.

Определение.

Система линейно независимых векторов q j ,

для которой выполняются равенства

 

qi H (q j )T

0, i j ,

называется системой H-сопряженных направлений.

Итак, если заданы любые n

H-сопряженных направлений

q1, q2 ,..., qn , то процедура

 

 

x k

1 x k

k q k ,

где

 

 

 

k

arg min f (xk

qk ), k 1, 2..n,

позволяет найти минимум квадратичной функции.

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

46

Построение системы H-сопряженных направлений возможно различными способами. Рассмотрим некоторые из них.

2.3.2.4.Метод сопряжѐнных направлений Пауэлла

Итерационный процесс в методе Пауэлла организуется без предварительного построения H-сопряженных векторов, которые последовательно находятся в процессе минимизации с использованием свойства параллельного подпространства.

Утверждение ( свойство параллельного подпространства). Если точка y1 найдена в результате поиска из точки x1

вдоль каждого из m (m<n) сопряженных направлений, а точка y2 получена в результате поиска из точки x2 вдоль каждого из тех же m сопряженных направлений q1, q2 ,..., qm , то вектор y2 y1 задает

направление, сопряженное со всеми выбранными m направлениями. Алгоритм может быть организован следующим образом.

____

Изначально полагается q j e j , j 1, n (затем эти направления будут последовательно заменяться построенными сопряженными направлениями). Вводится вспомогательное направление q0 en . Находится минимум функции f (x) при последовательном

движении из некоторой начальной точки x0 по (n+1) направлениям q0 , q1 ,.., qn , , при этом каждая получаемая точка используется в

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

сопряжено с qn . Далее заменяется q1 на q2 , q2 на q3 и т.д. В качестве направления qn выбирается полученное сопряженное направление, после чего повторяется поиск по (n+1) направлениям (уже не содержащим старого направления q1 ). Для квадратичных

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

Алгоритм метода сопряжѐнных направлений.

Шаг 0. Задать параметр точности , выбрать х0 Rn , положить

47

к=0,i=0 , q j e j , j 1, n, q0 en , y0 x0 .

Шаг 1. Найти

yi 1 yi

i

qi ,

 

 

 

 

 

 

 

где

 

 

 

 

 

i

arg min f ( yi

i

qi ).

 

 

 

 

Шаг 2. Проверить условие i=n .

а) Если оно выполняется, то выяснить успешность поиска по n последним направлениям. Если yn+1=y1, поиск завершить, полагая x*= yn+1.

b) Если i<n, положить i=i+1 и перейти к шагу 1. Шаг 3. Положить хk+1=yn+1 и проверить критерий останова

(например, ||x0-x1||<

или

|f(x0)-f(x1)|< ).

Если он выполнен, то вычисления завершить, полагая

x*=xk+1 .

 

 

Шаг 4. Положить

 

 

________

 

 

q j q j 1 , j 1, n 1, q0

qn yn 1 y1 , y0 xk 1 ,

i 0, k k 1

и перейти к шагу 1. Пример 2. Решить задачу

f (x)

 

2x 2

x 2

x x

2

min

 

 

1

2

1

 

методом сопряженных направлений.

 

 

 

Решение.

 

 

 

 

 

 

 

0. Выберем x0

(

1

,1) , положим

 

 

2

 

 

 

 

 

 

 

 

 

q0

e2 , q1

e1 , q 2

 

e2 ,

 

 

y0

x0

( 1 ,1)

.

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

1.

y1

( 1 ,1)

0

(0,1)

( 1

,1

 

0

)

.

 

2

 

2

 

 

 

 

Решим задачу одномерной минимизации :

 

 

 

( )

(1

)2

 

1

(1

 

) min

 

 

 

 

 

 

 

2

 

 

 

48

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

y1

 

 

(

1

,

 

 

 

 

1 )

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Так как i<2,

 

положим i=1 и перейдем к шагу 1.

 

 

 

 

 

 

 

3.

y 2

(

1 ,

 

 

1 )

 

 

 

 

 

 

 

1

(1,0)

 

 

 

(

1

 

 

 

 

 

 

1

,

 

 

 

1 )

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

Решим задачу одномерной минимизации :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

 

)

 

 

 

2 (

1

 

 

 

 

 

)2

 

 

 

 

1

 

( 1

 

 

 

 

 

 

 

)

 

 

 

 

min

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

y 2

 

 

 

 

 

(

1

 

,

 

 

1 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

 

16

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

4. Так как i<2,

 

положим i=2 и перейдем к шагу 1.

 

 

 

 

 

 

 

 

y 3

(

1

 

 

,

 

1 )

 

 

 

 

 

2

(0,1)

 

 

(

1

 

,

 

 

 

 

 

2

 

 

 

 

 

1 )

 

 

 

 

 

 

 

 

 

5.

16

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

Решим задачу одномерной минимизации :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф(

 

)

 

(

 

 

 

1

 

 

)2

 

 

 

 

 

1

(

 

 

1

 

 

 

 

 

)

 

 

 

 

min

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

16

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

y3

 

 

 

(

1

 

,

 

 

 

 

1

 

).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.

Так как i=2 и y3

 

 

 

y1 , положим x1

 

 

 

 

 

y3

 

 

(

 

1

 

,

 

 

1

 

) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

 

32

 

 

7.

Положим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q1

e2 , q0

 

 

 

 

 

q 2

 

 

 

 

 

y 3

 

 

 

 

y1

 

 

 

 

 

 

(

7

,

7

),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

32

 

 

 

 

 

y0

(

 

1

 

 

,

 

 

1

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

,

i=0 , к=2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и перейдем к шагу 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

1

(

 

 

1

 

,

 

1

 

)

 

 

 

0

 

(

 

 

7

 

,

7

 

 

 

)

(

1

7

 

0

 

,

 

1

 

7

0

)

 

8.

 

16

 

 

32

 

 

 

 

 

16

 

32

 

 

 

16

 

 

 

 

 

 

32

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решим задачу одномерной минимизации :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( )

2(

1

 

7

 

0

)

2

 

 

 

(

 

 

 

1

 

7

0

)

2

 

 

 

 

(

1

7

 

 

0

)(

 

 

1

 

7

 

0

 

)

 

 

 

min

 

 

 

 

16

 

 

 

 

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

16

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

1

 

 

 

 

 

y

1

 

 

 

(0,0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9. Так как i<2,

 

положим i=1 и перейдем к шагу 1.

 

 

 

 

 

 

 

49

10. y2

(0,0)

 

 

 

1 (0,1)

(0, 1 ) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решим задачу одномерной минимизации :

 

 

 

 

 

 

 

 

 

 

 

(

 

)

 

 

 

2

 

min

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

0

 

 

 

y2

 

(0,0) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11. Так как i<2,

положим i=2 и перейдем к шагу 1.

 

 

 

 

y

3

(0,0)

 

 

2 (

 

7

 

,

 

7

)

 

 

(

 

 

7

2

,

7

2

)

 

 

 

 

 

 

16

 

32

 

 

 

 

 

16

 

 

32

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решим задачу одномерной минимизации :

 

 

 

 

 

 

 

 

(

) 2(

7

2

 

)

2

(

7

2

)

2

 

7

2

7

 

2

 

 

 

 

min

 

 

16

 

 

32

 

 

 

 

 

16

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

0

 

y3

 

 

(0,0) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12. Так как i=2 и y3 = y1 , положим x*= y3 =(0,0).

 

 

 

 

 

 

Графическая

 

иллюстрация

 

 

 

решения

 

 

приведена на

рис.2.3.5.

Рисунок 2.3.5.

Ответ: x1* 0; x2* 0; fmin 0.

50

x k 1 имеет вид

2.3.2.5.Метод сопряжѐнных градиентов

Данный

метод

позволяет получать

сопряженные

направления p k для квадратичной функции f(x) с использованием

ее производных. В качестве p0 выбирается вектор-антиградиент, а остальные направления вычисляются по формуле

 

 

 

_________

pk 1

f (xk 1)

k

pk , k 0, n 1,

 

 

 

где

 

 

 

k

|| f (x k 1 ) || 2 || f (x k ) || 2 .

Формула пересчета точки

хk+1k+ αk pk ,

причем шаг αk ищется по правилу наискорейшего спуска.

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

Алгоритм метода сопряжѐнных градиентов.

Шаг 0.

Задать параметр точности

, выбрать

 

х0 Rn ,вычислить f(x0).

 

Шаг 1.

Положить к=0, p0= - f (x0 ) ;

Шаг 2.

Решить задачу одномерной минимизации

 

Ф( ) f (x0

pk )

min ,

 

 

 

0

т.е. найти αk. Шаг 3. Положить

хk+1k+ αk pk . .

Проверить критерий останова: || f (xk 1 ) ||< .

Если он выполнен, то вычисления завершить, полагая x*=xk+1, f*=f(xk+1) .

51

Шаг 4. Проверить условие к+1=n . Если оно выполняется, то положить

x0=xk+1, f(x0)=f(xk+1) и перейти к шагу 1 (обновление метода).

Шаг 5. Вычислить коэффициент

k

||

f (x k 1 ) || 2 || f (x k ) || 2

 

 

и найти новое направление поиска

pk+1= -

 

f (x k 1 ) + k pk .

Положить к=к+1 и перейти к шагу 2.

За м е ч а н и е 1. Описанный метод является методом первого порядка, поэтому для решения задачи одномерной минимизации на шаге 2 целесообразно использовать, например, метод хорд, выбирая

вкачестве интервала поиска α отрезок [0,1].

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

Пример. Найти методом сопряжѐнных градиентов точку минимума функции

f (x) 4x

2

3x 2

4x x

2

x

,

 

1

2

1

1

начав поиск с точки x0

(0, 0) .

 

 

 

 

 

Решение.

 

 

 

 

 

 

 

f (x) =(8x1-4x2+1;6x2-4x1).

 

 

 

Итерация 1

 

 

 

 

 

 

 

0. Зададим =0,01, x0=(0,0),

f (x0 ) = (1,0), ||

f (x0 ) ||=1.

1. Положим к=0, p0= -

f (x0 ) =(-1,0).

 

 

 

2. Решим задачу одномерной минимизации по α:

(

,0)

4

2

min .

 

 

α0=1/8.

 

 

 

 

 

 

 

3. Найдем

 

 

 

 

 

 

 

х100p0=(-1/8,0),

f (x1 )

(0,1/2),

 

 

 

|| f (x1 ) ||

1/2

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

52

 

 

 

 

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