Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mm_konsp.doc
Скачиваний:
89
Добавлен:
10.02.2016
Размер:
1.66 Mб
Скачать

5.7.8. Метод Нелдера-Мида

Метод Нелдера-Мида є розвитком симплексного методу Спендли, Хекста і Химсворта. Ідея методу складається в порівнянні значень функції в n+1 вершинах симплекса і переміщенні симплекса в напрямку оптимальної крапки за допомогою ітераційної процедури.

У даному методі симплекс переміщається за допомогою трьох операцій: відображення, розтягання і стиски. Зміст цих операцій стане зрозумілим при розгляді кроків процедури.

А. Знайдемо значення функції у вершинах симплекса.

f1 = f(x1); f2=f(x2);.....fn+1=f(xn+1)

Б.Серед обчислених значень знайдемонайбільшезначення функціїfmax, що випливає за найбільшим значенням функціїfcp,найменшезначення функції fminі відповідні їм крапки Xmax, Xcp, і Xmin.

В. Знайдемо центр ваги всіх крапок, за винятком крапки Xmax (тобто середину грані, яка розташована проти крапки Xmax ).

Обчислимо f(XO)=f .

Г. Зручніше за все почати переміщення від крапки Хmax. Відбивши крапку Хmax щодо крапки Хо, одержимо крапку Хr і знайдемо f(Хr) = f. Якщо α - коефіцієнт відображення, то положення крапки Xr визначається в такий спосіб:

Хr - Хо = α.( Хо - Хmax)

чи

Хr = (1 + α) Хо - α .Хmax,

де α = │ Хr - Хо│∕│ Хо - Хmax

Д. Порівняємо значення функцій f і fmin.

1. Якщо f < fmin, то в знайденій крапці одержали найменше значення функції. Напрямок із крапки Хо в крапку Хr найбільше доцільно для переміщення. Тому, ми робимо розтягання в цьому напрямку і знаходимо крапку Хe і значення функції f = f(Xe). Коефіцієнт розтягання γ > 1 можна знайти з наступних співвідношень:

Xe - Xo = γ (Xr - Xo),

тобто

Xe = γ. Xr + (1 - γ ) Xo,

де γ = │Xe - Xo│ / │Xr - Xo│.

а) Якщо f < fmin, те заміняємо крапку Xmax на крапку XE і перевіряємо (n + 1)- ую крапку симплекса на збіжність до мінімуму (див. крок 3). Якщо збіжність досягнута, то процес зупиняється; у противному випадку повертаємося на крок Б.

б) Якщо f > fmin, те відкидаємо крапку XE. Очевидно, ми перемістилися занадто далеко від крапки Xo до крапки Xr. Тому варто замінити крапку Xmax на крапку Xr, у якій було отримане поліпшення (крок Д, 1), перевірити збіжність і, якщо вона не досягнута, повернутися на крок В.

2. Якщо f > fmin, але f ≤ fcp, те Xr є кращою крапкою в порівнянні з іншими двома крапками симплекса і ми заміняємо крапку Xmax на крапку Xr і, якщо збіжність не досягнута, повертаємося на крок Б.

3. Якщо f > fmin, і f > fcp, то перейдемо на крок Е.

Е. Порівняємо значення функцій f і fmax.

1. Якщо f > fmax, то переходимо безпосередньо до кроку стиску Е,2.

Якщо f < fmax, то заміняємо крапку Xmax на крапку Xr і значення функції fmax на значення функції f. Запам'ятовуємо значення

f > fcp із кроку Д.2, приведеного вище. Потім переходимо на крок Е, 2.

2. Так як у цьому випадку f > fmax, тому ясно, що ми перемістилися занадто далеко від крапкиXmax до крапкиXo. Спробуємо виправити це, знайшовши крапкуXc (а потімf) c допомогою крокустиску.

Якщо f > fmax, то відразу переходимо до кроку стиску і знаходимо крапку Xc зі співвідношення

Xc - Xo = β (Xmax - Xo),

де (0 < β < 1) - коефіцієнт стиску.

Тоді

Xc= β. Xmax+ (1 - β) Xo.

Якщо f < fmax, то спочатку замінимо крапку Xmax на крапку Xr, потім

зробимо стиск. Тоді крапку Xc знайдемо зі співвідношення

Xc - Xo = β (Xr - Xo),

тобто

Xc = β Xr + (1 - β ) Xo (Рис. 4).

Ж. Порівняємо значення функцій f і fmax.

1.Якщо f < fmax, то заміняємо крапку Xmax на Xc, і якщо збіжність не досягнута, то повертаємося на крок Б.

2.Якщо f > fmax, то очевидно, що всі наші спроби знайти значення менше fmax закінчилися невдачею, тому ми переходимо на крок З.

З. На цьому кроці ми зменшуємо розмірність симплекса розподілом навпіл відстані від кожної крапки симплекса до Xmin - крапки визначальної найменше значення функції.

Таким чином, крапка Xi заміняється на крапку Xi + 1/2(Xi-Xmin),

тобто заміняємо крапку Xi крапкою 1/2(Xi-Xmin).

Потім обчислюємо fi для i = 1,2,..., (n + 1), перевіряємо збіжність і, якщо вона не досягнута, повертаємося на крок В.

И.Перевірка збіжності заснована на тім, щоб стандартне відхилення (n + 1) -го значення функції було менше деякого заданого малого значення ε . У цьому випадку обчислюється

де .

Якщо σ < ε, те всі значення функції дуже близький друг до друга

і тому вони, можливо, лежать поблизу крапки мінімуму функції Xmin. Тому такий критерій збіжності є розумним.

Коефіцієнти α, β і γ є відповідно коефіцієнтами відображення, стиски і розтягання. Автори рекомендують брати α=1; β = 0.5; γ = 2. Початковий симплекс вибирається довільно.

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