Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012_лр6_методи порядку 0.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
271 Кб
Скачать
☆

3. Побудова відображеної точки

Крок 4. Побудова нового симплекса.

Обчислюємо f(uk). При цьому можливий один із двох випадків:

а) ;

б) .

Випадок а): вершина xmax заміняється на uk, чим визначається набір вершин (к+1)-й ітерації й к-я ітерація закінчується.

Випадок б): у результаті відображення отримується нова точка uk, значення функції в якій ще гірше, ніж у точці xmax, тобто відображати симплекс нікуди. Тому в цьому випадку виконується пропорційне зменшення симплекса (наприклад, в 2 рази) в бік вершини xmin(k):

,

На цьому к-я ітерація закінчується.

Крок 5. Перевірка збіжності.

Якщо

,

то пошук мінімуму закінчується й приймається

.

У противному випадку к=к+1 і відбувається перехід до кроку 2.

Рис.

4. Схема алгоритму методу симплекса

1.1.4. Метод деформуючого симплекса (метод Нелдера-Міда).

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

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

Схема алгоритму методу Нелдера-Міда

Крок 1. Побудова початкового симплекса.

Задаються:

х0(0) — початкова точка

l — довжина ребра.

Формуються інші вершини симплекса:

xi(0)=x0(0)+lei (i=1, 2, …, n),

де ei — одиничні вектори.

Крок 2. Визначення напрямку поліпшення розв'язання.

На кожній ітерації обчислюються значення цільової функції в кожній вершині симплекса. Нехай для всіх i

де min, m, max, i — номера відповідних вершин симплекса. Визначимо центр ваги всіх точок, крім точки xmax(k),

Тоді напрямок поліпшення розв'язання визначається вектором

Крок 3. Побудова нового симплекса.

Заміна вершини xmax(k) з максимальним значенням цільової функції на нову точку за допомогою операції відбиття, результат якої є нова точка , де  — коефіцієнт відображення.

Рис.

Крок 4. Побудова нового симплекса.

Обчислюємо f(uk), при цьому можливо один із трьох випадків:

а) f(uk)< f(xmin(k));

б) f(uk)>f(xm(k));

в) f(xmin(k)) f(uk) f(xm(k)).

Випадок а): відбита точка є точкою з «найкращим» значенням цільової функції. Тому напрямок відбиття є перспективним і можна спробувати розтягти симплекс у цьому напрямку. Для цього будується точка

,

де  >1 — коефіцієнт розтягнення.

Якщо , то вершина xmax(k) заміняється на vk, у противному випадку на uk і k-а ітерація закінчується.

Випадок б): в результаті відображення отримується нова точка uk, яка, якщо замінити xmax(k), сама стане «найгіршою». Тому в цьому випадку виконується стиск симплексу. Для цього будується точка vk:

де 0<γ<1 — коефіцієнт стиску.

Рис. 

5. Побудова нового симплекса

Якщо , то вершина xmax(k) заміняється на vk.

У противному випадку вершинам xi(k+1) (i=0, 1, 2, …, n) привласнюється значення:

і на цьому k-а ітерація закінчується.

Випадок в): вершина xmax(k) заміняється на uk, чим визначається набір вершин (k+1)-ї ітерації та k-а ітерація закінчується.

Шаг 5. Перевірка збіжності.

Якщо

то пошук мінімуму закінчується й покладається

.

У противному випадку к=к+1 і відбувається перехід до кроку 2.

Досвід використання описаного алгоритму показує, що доцільно брати наступні значення параметрів:

=1, =2, =0.5.

Рис. 6.

Алгоритм методу Нелдера-Міда