Page 1

Матеріали взято з книги: М. І. Жалдак, Ю. В. Триус Основи теорії і методів оптимізації: Навчальний посібник. – Черкаси: Брама-Україна, 2005. – С. 351-355. Симплексний метод Досить ефективною в методах нульового порядку виявилась стратегія пошуку локального екстремуму функції багатьох змінних за допомогою симплексу. Цей підхід покладено в основу так званого симплексного методу, який було запропоновано американськими вченими Спендлі, Текстом, Хімсвортом і розвинуто у роботах Нелдера і Міда (див., наприклад, [135]). Процедура симплексного пошуку базується на використанні правильного або неправильного симплексу (див. означення 11.11) для знаходження напряму руху до екстремальної точки. Ідея методу при розв’язуванні задачі мінімізації полягає у порівнянні значень цільової функції в n  1 вершині симплекса, визначенні серед них таких точок, де функція набуває найбільшого і найменшого значень, визначенні за їх допомогою напряму спадання цільової функції і одержанні нової точки, яка стає новою вершиною симплекса замість «найгіршої» вершини, тобто вершини з найбільшим значенням цільової функції. Після побудови нового симплекса перевіряються умови зупинки ітераційного процесу і якщо вони виконуються, то за наближений розв’язок береться «найкраща» вершина симплексу, тобто вершина з найменшим значенням цільової функції, у протилежному випадку пошук продовжується. При цьому будується послідовність симплексів, які у загальному випадку можуть мати різну форму, і значення цільової функції у вершинах цих симплексів стають все менші і менші. Розміри симплексів також зменшуються і самі вони стягуються до точки локального мінімуму. Для прискорення збіжності симплексного методу при знаходженні нової вершини використовуються такі основні операції: відбиття, розтягування, стискання і зменшення (редукція). Розглянемо одну із схем алгоритму роботи за симплексним методом для розв’язування задачі мінімізації і дамо її геометричну інтерпретацію. Задати досить мале число   0 і довільну початкову вершину симплексу X (1)  R n . К р о к 1. (Побудова початкового симплекса). Знайти решту n точок симплекса за правилом: X ( i )  X (1)  ei 1 , i  2, n  1 , де ei 1  (0, ...,1, ..., 0) – одиничний базисний вектор в R n ,   0 – довжина кроку, і i 1

обчислити значення цільової функції у вершиних симплекса: f (1)  f ( X (1) ), f ( 2 )  f ( X ( 2 ) ), ..., f ( n1)  f ( X ( n1) ) . К р о к 2. (Упорядкування вершин симплекса). Серед вершин симплексу визначити X (b ) – вершину, в якій цільова функція набуває найменшого значення серед усіх інших вершин симплекса, тобто f ( b )  min f ( i ) (назвемо цю вершину найкращою (від i 1,n 1

англ. best – найкращий)), де b – порядковий номер відповідної вершини симплекса; X ( w) – вершину в якій цільова функція набуває найбільшого значення серед усіх інших вершин симплекса, тобто f ( w)  max f ( i ) (назвемо цю вершину найгіршою (від i 1,n 1

англ. worse – найгірший)), де w – порядковий номер відповідної вершини симплекса;


X ( g ) – вершину, в якій цільова функція набуває найбільшого значення серед усіх вершин за виключенням вершини X ( w ) , тобто f ( g )  max f ( i ) (назвемо цю вершину i 1,n 1, i  w

корисною (наступною за найгіршою) (від англ. good – гарний, корисний)), де g – порядковий номер відповідної вершини симплекса. К р о к 3. (Знаходження центру ваги). Знайти центр ваги всіх вершин симплекса, за виключенням найгіршої вершини X ( w) : 1 Xm   X (i ) , n i 1,n1, i  w і обчислити f m  f ( X m ) . К р о к 4. (Відбиття). Знайти точку виду: X r  X m  ( X m  X (w) ) , де   0 – коефіцієнт відбиття (рис. 28.6), і обчислити f r  f ( X r ) . Якщо f r  f ( g ) , то перейти до виконання кроку 5, інакше, тобто коли f r  f ( g ) , при виконанні умови f r  f ( w) в симплексі замінити найгіршу точку X ( w) на точку X r (рис. 28.6), покласти f ( w)  f r і перейти до виконання кроку 8 (перевірка умови зупинки для нового симплексу), інакше перейти до виконання кроку 6. К р о к 5. (Розтягування). Якщо f ( b )  f r , то знайдена точка краща, ніж точки

X ( w) і X ( g ) , але гірша за точку X (b ) , тому в симплексі замінити найгіршу точку X ( w) на точку X r , покласти f ( w)  f r і перейти до виконання кроку 8, інакше, оскільки обраний напрям X m  X ( w) є напрямом спадання цільової функції, виконати розтягування в цьому напрямі з коефіцієнтом    , тобто знайти точку X l виду

X l  X m  ( X m  X (w) ) ,

(28.34)

та обчислити f l  f ( X l ) . Якщо f l  f (b ) , то в симплексі замінити найгіршу точку X ( w) на точку X l (рис. 28.7), покласти f ( w)  f l і перейти до виконання кроку 8, інакше в симплексі замінити точку X ( w) на точку X r , покласти f ( w)  f r і перейти до виконання кроку 8. К р о к 6. (Стискання). Якщо f r  f ( g ) і f r  f ( w) , то можливо зроблено занадто великий крок у напрямі X m  X ( w) , і тому варто виконати процедуру стискання симплексу, яка полягає у наступному: знайти точки

X u  X m  (1   ) X ( w) , X v  X m  (1   ) X r , які належать відрізкам X ( w) X r і X m X r відповідно (рис. 28.8), де   (0; 1) – коефіцієнт стискання. Серед точок X u і X v визначити таку точку X c , в якій цільова функція набуває меншого значення, тобто f ( X c )  min{ f ( X u ), f ( X v )} , і покласти f c  f ( X c ) . Якщо f ( X u )  f ( X v ) , то в якості точки X c можна обрати будь-яку з точок X u і X v . Якщо f с  f ( w) , то в симплексі замінити точку X ( w) на точку X c , покласти

f ( w)  f c і перейти до виконання кроку 8.


К р о к 7. (Зменшення або редукція). Якщо f c  f ( w) , то виконати процедуру зменшення симплексу до найкращої точки X (b ) , яка полягає у тому, щоб замінити всі точки симплекса, крім точки X (b ) , на нові точки за правилом (рис. 28.9): X ( i )  (1  ) X ( i )  X ( b )  X ( i )  ( X ( b )  X ( i ) ) , i  1, n  1, i  b ,

які належать відрізкам X ( i ) X ( b ) , де   (0; 1) – коефіцієнт редукції, обчислити значення f (i ) , i  1, n  1, i  b , цільової функції у вершинах нового симплексу і перейти до виконання кроку 8. К р о к 8. (Перевірка умов зупинки). Знайти середнє квадратичне відхилення значень цільової функції у вершинах симплекса n 1



 ( f (i )  f ) 2 i 1

,

n 1

де n 1

f 

 f (i ) i 1

n 1

,

і величину

  max || X ( i )  X ( b ) || . i 1,n , i b

Якщо    і    , то це означає, що всі значення f ( i ) , i  1, n  1 , досить близькі і вершини симплексу знаходяться в  -околі точки X (b ) , тому можна покласти x*  X ( b ) , f *  f ( b ) і завершити роботу, інакше перейти до виконання кроку 2. Кінець.

X(w)

Xm (g)

X(b)

x*

X

– +

– +

– +

l f(X(b)) l f(X(g)) Xr

l f(X(w)) Рис. 28.6.

Xl X(b)

Xr Xm

lf(Xl) (g)

X(w)

– + – + – +

x*

X

l f(X(b))

l f(X(g))

l f(X(w))


Рис. 28.7.

X(w)

Xu= Xc x* X(g)

X

Xm

–+

– +

(b)

– +

l f(X(b)) l f(X(g))

Xv

l f(X(w)) Xr Рис. 28.8. З а у в а ж е н н я. 1. На кроці 1 можна використовувати й інші способи побудови початкового симплексу, при цьому треба, щоб вершини X ( b ) , X ( g ) , X ( w) були різними, а також бажано щоб виконувалась умова f ( X ( b ) )  f ( X ( g ) )  f ( X ( w) ) . 2. На кроці 4 відбувається відбиття вершини X ( w) відносно центру ваги X m грані симплексу, яка лежить проти цієї вершини, оскільки природно припустити, що цільова функція буде спадати у напрямі X m  X ( w) , бо значення цільової функції у напрямах

X ( g )  X ( w) і X ( b )  X ( w) спадають (рис. 28.6). 3. З урахуванням попереднього зауваження замість співвідношення (28.34) для визначення точки X l можна скористатися іншим правилом, наприклад

X l  arg min f ( X m  h( X m  X ( w) )) . h 1

(28.35)

4. На кроці 8 для спрощення процедури зупинки ітераційного процесу можна шукати одну з величин  або  і перевіряти одну з умов    або    . 5. Параметри методу , , , ,  можна покласти, наприклад, рівними:   1 ,   1 ,   2 ,   0.5 ,   0.5 , які добре себе зарекомендували при чисельній реалізації методу. 6. Результати чисельних експериментів показують, що симплексний метод є надійним при мінімізації не дуже яристих функцій і одним з найефективніших при n  6 . Завдяки цьому він використовується в багатьох математичних пакетах, зокрема в пакеті Matlab, для розв’язування задач безумовної оптимізації.

X(w) Xu X(g)

l f(X(w)) Xs

– + X(b)

Xm x* Xv

Xr Рис. 28.9.


П р и м і т к а. На рис. 28.9 показано результат операції стягування, при цьому вершинами нового зменшеного симплекса є точки X m , X s , X ( b ) . На рис. 28.10 показано продовження процесу побудови симплексів, який розпочато на рис. 28.7, за описаною схемою симплексного методу з параметрами методу   1 ,   1 ,   1 ,   0.5 ,   0.5 , при цьому симплекс S 2 одержано в результаті розтягування початкового симплексу S1 , S 3 – в результаті стискання S 2 , S 4 – в результаті відбиття S 3 ,

S 5 – в результаті стискання S 4 , симплекс S 6 – в результаті стискання S 5 .

S5 X(b)

x*

S3

– + – + – +

S6 S1 X(w)

S2

S4

l f(X(b)) l f(X(g)) l (w) f(X )

X(g)

Рис. 28.10. Описаний симплексний метод та його численні модифікації відносяться до методів нелокальної лінійної апроксимації. За допомогою симплексів також можна будувати методи нелокальної нелінійної апроксимації. До таких методів відноситься, наприклад, метод баріцентричних координат, який є методом квадратичної апроксимації (див., наприклад, [82]). .

Simpleksnuj  
Read more
Read more
Similar to
Popular now
Just for you