Page 1

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

Метод покоординатного спуску. Метод покоординатного спуску. Ідея методу покоординатного спуску полягає в тому, що відбувається спуск вздовж ламаної лінії, яка утворюється з відрізків прямих, паралельних до осей координат (рис. 28.5).

x2

x* x*

(1,1)

x

e2

+

+

x(1,2)

e1

x(0,1) x(0,2)

x1

Рис. 28.5. Цей метод є одним з найпростіших серед детермінованих способів визначення напряму спуску, оскільки за цей напрям вибирається один з координатних векторів  e1 ,  e2 , ...,  en , внаслідок чого в кожній точці ітераційного процесу змінюється лише одна координата. Існують численні варіанти методу покоординатного спуску (див., наприклад, [18], [57], [73]). Розглянемо один з таких варіантів. Ітераційний процес методу покоординатного спуску складається з «внутрішніх» і «зовнішніх» ітерацій. Одна зовнішня ітерація містить n внутрішніх ітерацій, на яких по черзі відбувається спуск паралельно до осей координат. Опишемо початкову зовнішню ітерацію. Нехай x ( 0,1)  ( x1( 0,1) , x2( 0,1) ,..., xn( 0,1) ) – початкове наближення, де перший верхній індекс визначає номер зовнішньої ітерації, а другий – номер тієї координати, за якою відбувається спуск. Наступна точка внутрішньої ітерації визначається за формулою x ( 0, 2 )  x ( 0,1)  h0,1 g ( 0,1) , де g ( 0,1)  e1 або g ( 0,1)  e1 , при цьому за напрям руху g ( 0,1) обирається той з двох напрямів e1 або  e1 , який є напрямом спадання цільової функції в точці x ( 0,1) . Крок h01 добирається так, щоб було f ( x ( 0, 2 ) )  f ( x ( 0,1) ) . Після чого наступна внутрішня ітерація відбувається при g ( 0, 2 )  e2 або g ( 0, 2 )  e2 і т.д. Після n внутрішніх ітерацій знаходиться точка x

(1,1)

(див. рис. 28.5), яка визначається за формулою

x (1,1)  x ( 0,n )  h0,n g ( 0,n ) , де g ( 0,n )  en або g ( 0,n )  en . Нехай на k-й зовнішній ітерації відбувається спуск за j-ю координатою. Тоді рекурентна формула, яка визначає наступне наближення до точки мінімуму, має такий вигляд:


x ( k , j 1)  x ( k , j )  hk , j g ( k , j ) ,

(28.29)

де g ( k , j )  e j або g ( k , j )  e j , j  1, n , k  0,1,2,... , або, в координатній формі,

xi

( k , j 1)

 xi

(k , j)

i  j,

,

xi ( k , j 1)  xi ( k , j )  hk , j g i( k , j ) , i  j , де g i( k , j )  1 або g i( k , j )  1 , i  1, n, j  1, n, k  0, 1, 2, ... , при вибирається так, щоб виконувалась умова

цьому крок

f ( x ( k , j 1) )  f ( x ( k , j ) ) .

hk , j

(28.30)

Після того, як стане j  n , лічильник зовнішніх ітерацій k збільшується на одиницю, а індекс j набуває значення 1. Якщо в точці x ( k , j ) жоден з напрямів e j або  e j не є напрямом спадання цільової функції (це може бути коли, наприклад,

f ( x ( k , j ) )  0 ), то при x j

j  n індекс

j

збільшується на одиницю і відбувається наступна внутрішня ітерація, коли ж j  n , тоді лічильник зовнішніх ітерацій k збільшується на одиницю, а індексу j надається значення 1 і процес продовжується. Для того, щоб на k-й зовнішній ітерації при поточному j визначити, який з напрямів e j чи  e j є напрямом спадання цільової функції, можна скористатися правилом парної проби, яке полягає в тому, щоб знайти дві пробні точки y (1)  x ( k , j )  e j ,

y ( 2 )  x ( k , j )  e j , де   0 – довжина пробного кроку (досить мале число), а потім в якості вектора g ( k , j ) в (28.29) взяти вектор

g ( k , j )  sign( f ( y ( 2 ) )  f ( y (1) ))  e j . Величина кроку hk , j в (28.29), що задовольняє умову (28.30), добирається за одним з правил, описаних в пункті 1 цього параграфа. При цьому, якщо hk , j  h  const , то маємо покоординатний спуск з постійним кроком. Якщо ж hk , j добирається з умови

f ( x ( k , j )  hk , j g ( k , j ) )  min f ( x ( k , j )  hg ( k , j ) ),

(28.31)

h 0

то одержуємо покоординатний аналог методу найшвидшого спуску, який називається методом Гаусса-Зейделя. Сформулюємо умови збіжності методу покоординатного спуску (28.29), (28.30). X 0*,1  X 0,1  X * , де множина X 0,1  {x  R n | f ( x)  f ( x ( 0,1) )} , а Нехай X *  {x*  R n | f ( x*)  On } – множина

стаціонарних

точок

функції

f (x ) . Будемо

вважати, що крок hk , j в точці x ( k , j ) добирається так, що виконується умова

f ( x ( k , j )  hk , j g ( k , j ) )  (1   k , j ) f ( x ( k , j ) )   k , j wk , j , де

j  1, n, k  0, 1, 2, ... ,

wk , j  inf f ( x ( k , j )  hg ( k , j ) ) , h0

(28.32)

 k , j  (0; 1) – параметр,

який

характеризує точність розв’язку задачі одновимірної мінімізації (28.31). Т е о р е м а 28.3. Нехай функція f (x ) диференційовна і обмежена знизу на множині X 0 ,1 , а її градієнт задовольняє умову Ліпшиця:

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


для будь-яких x  R n , y  R n , де K  0 . Якщо множина X 0*,1 – непорожня і послідовність точок {x ( k , j ) } , яка генерується за методом (28.29) з вибором кроку за правилом (28.31), (28.32), така, що

lim || x ( k , j 1)  x ( k , j ) ||  0 ,

k 

(28.33)

то * lim ( x ( k , j ) , X 01 )  0.

k 

Доведення теореми можна знайти, наприклад, в [57]. З а у в а ж е н н я. В [57] також показано, що умова (28.33) виконується, якщо функція f ( x) не є сталою на обмеженій замкненій множині X 0 ,1 , а для послідовності

{x ( k , j ) } виконується умова

[ x ( k , j ) ; x ( k , j 1) ]  X 0 ,1 і

f ( x ( k , j ) )  f ( y )  f ( x ( k , j 1) ) y  [ x ( k , j ) ; x ( k , j 1 ] при j  1, n, k  0, 1, 2, ... .

Pokoordunatnuj spysk  
Read more
Read more
Similar to
Popular now
Just for you