Issuu on Google+

Матеріали взято з книги: М. І. Жалдак, Ю. В. Триус Основи теорії і методів оптимізації: Навчальний посібник. – Черкаси: Брама-Україна, 2005. – С. 376-383.

Методи спряжених напрямів Розглянемо методи першого порядку, швидкість збіжності яких наближається до швидкості збіжності квазіньютонівських методів, але які вигідно відрізняються від них тим, що їх трудомісткість порівняно невелика. Нехай задано квадратичну функцію від n змінних виду

1 f ( x )   Ax, x  b, x , (30.1) 2 де n n, A – симетрична додатно визначена матриця порядку T n T n x  (x1 , ..., x n )  R , b  (b1 , ..., bn )  R . Основна ідея методів спряжених напрямів полягає в тому, щоб знайти такі напрями спуску g ( 0) , g (1) ,..., g ( n 1) , що послідовність точок { x (k ) } , яка визначається співвідношеннями x ( k 1)  x ( k )  hk g ( k ) ,

(30.2)

f ( x ( k )  hk g ( k ) )  min f ( x ( k )  hg ( k ) ) , k  0,1,... ,

(30.3)

h 0

за n (або менше) кроків приводила до відшукання точки мінімуму функції виду (30.1) при будь-якому початковому наближенні x ( 0)  R n , тобто f ( x ( n ) )  minn f ( x ) . x R

Виявляється, що таку властивість мають напрями, які взаємно спряжені відносно матриці A . 1. Спряжені напрями та їх властивості. О з н а ч е н н я 30.1. Два вектори x і y з простору R n називають A спряженими (спряженими відносно матриці A ), якщо вони не є нульвекторами і (30.4)  Ax, y   0 . Спряженість двох векторів можна вважати узагальненням поняття ортогональності, оскільки при A  E , де E – одинична матриця, вектори x і y ортогональні.

s( 0) , s(1) ,..., s( k ) О з н а ч е н н я 30.2. Вектори (напрями) з Rn називаються A - спряженими (взаємно спряженими відносно матриці A ), якщо всі вони не є нуль-векторами і

 As (i ) , s ( j )   0 , i  j , i  0, k , j  0, k .

(30.5)


Розглянемо метод спряжених напрямів для мінімізації квадратичної функції виду (30.1), який визначається співвідношеннями (30.2), (30.3), де вектори g ( k ) , k  0, n  1, взаємно спряжені відносно матриці A :

 Ag ( i ) , g ( j )   0 , i  j , i  0, n  1, j  0, n  1 .

(30.6)

Доведемо, що цей метод розв’язує поставлену задачу не більше ніж за n кроків. Але спочатку розглянемо одне допоміжне твердження. Л е м а 30.1. A -спряжені вектори g ( 0) , g (1) ,..., g ( n 1) лінійно незалежні. Д о в е д е н н я. Припустимо, що це не так, тобто для деякого вектора (k ) g існують числа  i ( i  I k  {0, 1, ..., n  1} \ {k} ), не всі рівні нулю, такі, що g (k ) 

 i g (i ) .

iI k

Тоді  Ag ( k ) , g ( k )    Ag ( k ) ,   i g ( i )   iI k

  i  Ag ( k ) , g ( i )   0 ,

iI k

(k )

що можливо лише тоді, коли g – нуль-вектор, оскільки матриця A додатно визначена (див. §9). Але згідно означення 30.2 g ( k ) не є нуль-вектором. Одержана суперечність і доводить лему. Т е о р е м а 30.1. Якщо в методі (30.2), (30.3) x ( 0)  R n – довільна початкова точка і напрями g ( 0) , g (1) ,..., g ( k ) ,..., g ( n 1) A -спряжені, то точка x ( n)  x ( n1)  hn1 g ( n1)

співпадає з точкою мінімуму x * квадратичної функції f ( x ) виду (30.1). Д о в е д е н н я. Враховуючи співвідношення (30.2), (30.3), маємо x

(n)

x

( 0)

n 1

  hk g ( k ) .

(30.7)

k 0

Згідно леми 28.1, розв’язком задачі (30.3) одновимірної мінімізації за змінною h квадратичної функції f ( x ) (30.1) є  f ( x ( k ) ), g ( k )  hk   . (30.8)  Ag ( k ) , g ( k )  Тоді з (30.7) одержуємо n1  f ( x ( k ) ), g ( k )  (n) (0) x x  g (k ) . (30.9) (k ) (k ) ,g  k 0  Ag Враховуючи те, що вектори g ( 0) , g (1) ,..., g ( k ) A -спряжені і f  ( x )  Ax  b , маємо k 1    f ( x ( k ) ), g ( k )    Ax( k )  b, g ( k )    A x ( 0 )   hi g ( i )   b, g ( k )   i 0  


  Ax

(0)

 b, g

(k )

 k 1 ( i )  ( k )    A  hi g , g    Ax( 0 )  b, g ( k )    i 0 

k 1

  hi  Ag ( i ) , g ( k )    Ax( 0 )  b, g ( k )    f ( x ( 0 ) ), g ( k )  . i 0

Тоді (30.9) буде мати такий вигляд

x

(n)

x

(0)

n1 



k 0

f ( x ( 0 ) ), g ( k )  ( k ) g .  Ag ( k ) , g ( k ) 

(30.10)

Нехай x *– точний розв’язок задачі f ( x )  min, x  R n .

Тоді f  ( x*)  Ax * b  On і x*   A 1b . Легко перевірити, що

x*  x ( 0)  A 1 f  ( x ( 0) ) .

(30.11)

Оскільки вектори g ( k ) , k  0, n  1, згідно леми 30.1 лінійно незалежні, то вектор x *  x ( 0) можна подати у вигляді їх лінійної комбінації n1

x *  x (0)    k g ( k ) k 0

або x*  x

(0)

n1

  k g (k ) .

(30.12)

k 0

Можна показати (див. [88], стор. 97), що в умовах теореми має місце подання n 1 g ( k ) ( g ( k ) )T A1   , (k ) (k )  Ag , g  k 0 (k ) (k ) T де g – вектор-стовпчик, ( g ) – вектор-рядок, а g ( k ) ( g ( k ) )T – їх добуток. Тоді з (30.11) одержуємо  n1 g ( k ) ( g ( k ) )T   f ( x ( 0 ) ) x*  x ( 0 )    (k ) (k )   k 0  Ag , g   або, в іншій формі, n1  f ( x ( 0 ) ), g ( k )  (0) x*  x   g (k ) . (30.13) (k ) (k ) ,g  k 0  Ag З (30.12) і (30.13) в силу єдиності подання вектора x * через систему лінійно незалежних векторів g ( k ) , k  0, n  1, маємо, що

 f ( x ( 0 ) ), g ( k )  k   , k  0, n  1.  Ag ( k ) , g ( k ) 

(30.14)


Порівнюючи праву частину (30.10) з правою частиною (30.12) з  k виду (30.14), одержуємо x ( n )  x*  A 1b . Отже, за методом (30.2), (30.3), (30.6) дійсно можна знайти мінімум квадратичної функції (30.1) за n кроків. Для того, щоб скористатися розглянутим методом спряжених напрямів, необхідно знати n напрямків g ( k ) , k  0, n  1, взаємно спряжених відносно матриці A . В залежності від їх вибору можна побудувати різні варіанти методу спряжених напрямів. Одним з найбільш відомих варіантів цього методу є метод Флетчера-Рівса або метод спряжених градієнтів. 2. Метод спряжених градієнтів. Метод спряжених градієнтів був запропонований Р. Флетчером і К. Рівсом у 1964 р. в [120]. Ідея методу полягає в тому, що вибір A -спряжених напрямів відбувається спільно з одновимірною мінімізацією за змінною h функції f ( x ) , при цьому кожний з напрямів g ( k ) , k  0, n  1, є лінійною комбінацією антиградієнта в точці x ( k ) і попереднього напряму спуску g ( k 1) . Отже, в методі спряжених градієнтів система A -спряжених напрямів будується за правилом g ( 0 )   f ( x ( 0 ) ), g

(k )

  f ( x ( k ) )   k 1 g ( k 1) , k  1.

(30.15)

З умови A -спряженості векторів g ( k 1) , g ( k ) і (30.15) маємо  g ( k ) , Ag ( k 1)    f ( x ( k ) ), Ag ( k 1)    k 1  g ( k 1) , Ag ( k 1)   0 .

Звідси

k 1 

 f ( x ( k ) ), Ag ( k 1)  .  g ( k 1) , Ag ( k 1) 

(30.16)

Для обґрунтування того, що метод (30.2), (30.3), (30.15), (30.16) належить до методів спряжених напрямів, необхідно навести деякі твердження, доведення яких можна знайти, наприклад, в [73], [88], [98]. Л е м а 30.2. Має місце співвідношення f  ( x ( k 1) )  f  ( x ( k ) )  hk Ag ( k ) .

(30.17)

Л е м а 30.3. Вектори f ( x ( k ) ), f ( x ( k 1) ) ортогональні між собою, тобто  f ( x ( k 1) ), f ( x ( k ) )  0 . Л е м а 30.4. Нехай x ( 0)  R n – довільне початкове наближення, точки x ( k ) , k  0, n  1, вектори g ( k ) , k  0, n  1, одержані за методом спряжених градієнтів (30.2), (30.3), (30.15), (30.16) і f ( x ( k ) )  On , k  0, n  1. Тоді


вектори

g ( 0) , g (1) ,..., g ( n 1) взаємно спряжені відносно матриці

A, а

градієнти f ( x ( 0) ), f ( x (1) ), ..., f ( x ( n1) ) взаємно ортогональні. Доведення даної леми можна провести методом математичної індукції (див., наприклад, [73], [98]). Отже, метод спряжених градієнтів відноситься до методів спряжених напрямів. Тому згідно теореми 30.1 має місце наступне твердження. Т е о р е м а 30.2. Метод спряжених градієнтів (30.2), (30.3), (30.15), (30.16) розв’язує задачу мінімізації квадратичної функції (30.1) не більше ніж за n кроків. При практичній реалізації методу Флетчера-Рівса для визначення параметра  k 1 в (30.15) краще використовувати співвідношення

 f ( x ( k ) ), f ( x ( k ) )  f ( x ( k 1) ) || f ( x ( k ) ) ||2  k 1   , (30.18)  f ( x ( k 1) ), f ( x ( k 1) ) || f ( x ( k 1) ) ||2 яке одержується з (30.16), (30.17) і умови ортогональності градієнтів f ( x ( k ) ), f ( x ( k 1) ) . На рис. 30.1 подано геометричну інтерпретацію методу спряжених градієнтів для квадратичної функції від двох змінних. f '(x(1))

0g(0) g(1)

x*

x(1)

+

+

(1)

-f '(x ) (0)

x

f '(x(0))

Рис. 30.1. П р и к л а д 30.1. За методом спряжених градієнтів знайти точку мінімуму квадратичної функції f ( x1 , x2 )  3x12  3x1 x2  4 x2 2  2 x1  x2 при x ( 0 )  (0,0) T . Ця задача була нами розв’язана за квазіньютонівськими методами за два кроки T 1 1  (див. приклад 29.2), при цьому x*   , 0  і f ( x*)   . 3 3  Згідно теореми 30.2 точка мінімуму квадратичної функції f ( x) повинна бути знайдена за методом спряжених градієнтів (30.2), (30.3), (30.15), (30.16) також за два кроки. Оскільки за методом спряжених градієнтів визначення першого наближення x (1) здійснюється так само, як і за методом найшвидшого спуску, то скористаємось результатами, одержаними в прикладі 29.2: x (1)  x ( 0)  h0 g ( 0) ,


g ( 0 )   f ( x ( 0 ) )  ( 2, 1)T  ( 2,  1)T , h0  

 f ( x ( 0 ) ), g ( 0 )  5 ,  (0) (0) 44  Ag , g  T

5 5   5 ( 2,  1) T   ,   . 44 44   22 (1) Для знаходження наступного напряму спуску g скористаємось співвідношенням x (1)  (0, 0) T 

g (1)   f ( x (1) )   0 g ( 0) , де T

 5 5 26   5   5    13 f ( x )   6   3      2,  3  8      1    ,   , 22 44   44   44    44  22 ( 0) а параметр  обчислюється за формулою (30.18): T

(1)

( 0 )

26   13  ,   44   44  || ( 2, 1) || 2

2

13 2 . 44 2

Одержуємо T

T

26  132  13  910 975  g (1)    ,    2 ( 2,  1) T   2 , 2  . 44  44  44  44 44  (2) Остання точка ітераційного процесу x  x * визначається співвідношенням x ( 2)  x (1)  h1 g (1) ,  f ( x (1) ), g (1)  44 де h1 згідно (30.8) дорівнює h1   . Тоді  195  Ag (1) , g (1)  T

T

T

5  44  910 975   5 1  x  ,    2 , 2    , 0 . 44  195  44 44   22 3  Наведений приклад свідчить про те, наскільки точно треба виконувати обчислення параметрів ітераційного процесу методу спряжених градієнтів для того, щоб одержати точний розв’язок задачі за відповідну кількість кроків. Отже даний метод, як і квазіньютонівські методи, досить чутливий до похибок обчислень, тому при його реалізації на комп’ютері, як правило, одержується наближений розв’язок задачі мінімізації квадратичної функції. ( 2)

3. Мінімі��ація неквадратичних функцій. Розглянемо, як можна використовувати метод спряжених градієнтів для мінімізації неквадратичних функцій. В цьому випадку, як правило, розв’язок вже не одержується за скінченну кількість кроків, оскільки вектори g ( 0) , g (1) ,..., g ( k ) ,... , які одержуються під час ітераційного процесу, взагалі кажучи, не будуть взаємно спряженими відносно якої-небудь матриці, а задача (30.3) вибору параметру hk розв’язується наближено. Але навіть в цих умовах метод спряжених градієнтів є досить ефективним методом першого порядку, який для деяких класів функцій збігається з квадратичною швидкістю. Для того щоб зменшити вплив похибок обчислень, які накопичуються в процесі наближеного розв’язування задачі одновимірної мінімізації (30.3), до методу спряжених градієнтів вводиться процедура «оновлення», яка полягає в тому, що, коли k  0, n, 2n, 3n, ..., процедура (30.16) для обчислення  n1 ,  2 n1 ,  3n1 , ... не виконується, а вони покладаються рівними нулю, при


цьому g ( k )   f ( x ( k ) ) . Тоді модифікований метод Флетчера-Рівса для мінімізації неквадратичних функцій має такий вигляд: x ( k 1)  x ( k )  hk g ( k ) ,

(30.19)

де hk визначається з умови f ( x ( k )  hk g ( k ) )  min f ( x ( k )  hg ( k ) ) , k  0,1, ... , h 0

(30.20)

g ( 0 )   f ( x ( 0 ) ), g ( k )   f ( x ( k ) )   k 1 g ( k 1) , k  1,

(30.21)

  f ( x ( k ) ), f ( x ( k ) )  f ( x ( k 1) )  , k mod n  0,  (30.22)  k 1    f ( x ( k 1) ), f ( x ( k 1) )   0 , k mod n  0.  Опишемо загальну схему розв’язування задачі мінімізації неквадратичної функції за методом спряжених градієнтів. Нехай x ( 0)  R n – довільне початкове наближення,   0 – досить мале число. К р о к 0. Покласти k: 0 і обчислити вектор g ( 0)   f ( x ( 0) ) . К р о к 1. Знайти точку

x ( k 1)  x ( k )  hk g ( k ) , де hk визначається з умови f ( x ( k )  hk g ( k ) )  min f ( x ( k )  hg ( k ) ) . h0

( k 1)

( k 1)

К р о к 2. Обчислити f ( x ) і f ( x ). ( k 1) К р о к 3. Якщо || f ( x ) ||  , то точка x ( k 1) – наближений розв’язок задачі, покласти x*:  x ( k 1) , f *:  f ( x ( k 1) ) і перейти до виконання кроку 5. К р о к 4. Якщо k  1  n , то покласти g ( 0) :   f ( x ( k 1) ) , k: 0 і перейти до виконання кроку 1, інакше знайти вектор g ( k 1) із співвідношення

g

( k 1)

  f ( x

( k 1)

 f ( x ( k 1) ), f ( x ( k 1) )  f ( x ( k ) ) ( k ) ) g ,  f ( x ( k ) ), f ( x ( k ) )

покласти k: k  1 і перейти до виконання кроку 1. К р о к 5. Вивести: x*, f *, k . Кінець.

Оскільки при k  0, n, 2n, 3n, ... в методі (30.19)-(30.22) відбувається крок методу найшвидшого спуску, то можна очікувати, що при досить незначних обмеженнях на функцію f (x ) модифікований метод спряжених градієнтів повинен збігатися до деякої стаціонарної точки цієї функції. Дійсно, як показано в [88], має місце Т е о р е м а 30.3. Якщо функція f (x ) диференційовна на обмежена знизу, а її градієнт задовольняє умову Ліпшиця:

Rn

і


|| f ( x)  f ( y ) || K || x  y ||

для будь-яких x  R n , y  R n , де K  0 , то в методі (30.19)-(30.22) lim || f ( x ( k ) ) || 0 .

k 

Т е о р е м а 30.4. Нехай f (x ) – тричі диференційовна і сильно опукла на R n функція. Тоді послідовність { x (k ) } , яка генерується за методом (30.19)-(30.22), збігається до точки x * мінімуму функції f (x ) , причому має місце оцінка || x ( k n )  x* || C || x ( k )  x* ||2

(30.23)

для всіх k  0, n, 2n, 3n, ..., k  M , де C  0 і M – деякі константи. Доведення цієї теореми можна знайти в [81]. Порівнюючи оцінку, наведену в теоремі 29.1, з оцінкою (30.23), можна зробити висновок, що n кроків модифікованого методу спряжених градієнтів приблизно еквівалентні одному кроку методу Ньютона. Отже метод спряжених градієнтів є методом першого порядку, але має досить високу швидкість збіжності і, як свідчать чисельні експерименти, за ефективністю майже не поступається квазіньютонівським методам, при цьому він вимагає менше ресурсів оперативної пам’яті комп’ютера.


Metod spraijenux gradientiv