You are on page 1of 89

Методи одновимірної оптимізації

Задачею одновимірної оптимізації називається така


задача, в якій у цільовій функції (ЦФ) присутній
лише один проектний параметр.

При цьому, будемо передбачати, що цільові функції,


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

1
Особливості методів одновимірної
оптимізації
Пошук екстремуму функції можна порівняти з пошуком
в озері найглибшого місця. При кожному вимірі отримуємо
нову інформацію. Якщо, при наступному вимірі глибина
виявилася більша, ніж в попередньому, то отримана
інформація корисна і навпаки, якщо при наступному вимірі
отримана менша глибина, ніж у попередньому випадку, то
результат не дає ніякої корисної інформації і затрачені
зусилля були марними.
Розробляючи методи пошуку, прагнуть знайти екстремум як
можна швидше, зробивши як можна менше некорисних
спроб.
Далі розглядаються методи одновимірного пошуку
максимуму (мінімуму) цільової функції.

2
Поняття унімодальності
Функція f(х) називається УНІМОДАЛЬНОЮ на
відрізку [а; b], якщо для будь-яких х1 і х2 на [а; b], де
х1< х2 і f (х1) < f (х2)= fопт, функція f(х) задовольняє
наступним умовам:

f (х1) < f (х2) при х1< х2< хопт;

f (х1) > f (х2) при хопт< х1< х2.

3
Поняття унімодальності
Якщо функція f(x) на множині U має, окрім глобального,
локальні мінімуми, відмінні від нього, то мінімізація f (x), як
правило, значно ускладнюється. Зокрема, багато методів пошуку
точки мінімуму f(x) пристосовані лише для функцій, у яких
кожний локальний мінімум є одночасно і глобальним. Цією
властивістю володіють унімодальні функції.
Визначення. Функція f(x) називається унімодальною на
відрізку [а; b], якщо вона неперервна на [а; b] та існують
числа  ,
a      b, такі, що:
1) якщо а < , то на відрізку [a; ] функція f (x) монотонно спадає;
2) якщо  < b, то на відрізку [; b] функція f (x) монотонно зростає;
3) при х  [; ] f (x) =f * = min f ( x)
a;b

4
Постановка задачі одновимірної
оптимізації. Основні складові

Задачу одновимірної оптимізації можна сформулювати таким


чином. Відомо значення цільової функції F(x). Значення
проектного параметра х має бути розміщене в інтервалі
a xb
Приступаючи до розв’язання такої задачі, ми нічого не
знаємо про цільову функцію, окрім того, що вона
унімодальна. Інтервал зміни значень змінної х, в якому
розміщений оптимум, будемо називати “інтервалом
невизначеності”. На початку процесу оптимізації цей
інтервал має довжину b-a.

5
Постановка задачі одновимірної
оптимізації. Інтервал невизначеності

F(x)

Інтервал
невизначеності

a b

Інтервал невизначеності для функції однієї змінної


6
Приклад типового формулювання
задачі одновимірної оптимізації.
Складові задачі одновимірної оптимізації:
- цільова функція;
- обмеження;
- інтервал невизначеності;
- виконання умови унімодальності цільової функції.

Знайти оптимум (максимум/мінімум ) цільової функції:


Z min = 3X + 5X 2 ,
при виконанні наступного обмеження:

2 x6.
У наведеній задачі a = 2, b = 6. Інтервал невизначеності b-a = 6-2=4.
7
Умови існування екстремуму
функції однієї змінної (1)
Графічне представлення функції F(x) та її похідної, яка має
локальний мінімум в точці х0 і глобальний мінімум в точці
х*.
F(x )
F(x )
F(x )
x

x0 x* x

xc xT

8
Умови існування екстремуму
функції однієї змінної (2)

Представлений вище графік цільової функції та її


неперервної похідної, з якого слідує, що в точках х0 і х* є
рішеннями для цієї функції.
F(x )
= 0.
x
Точка хT, в якій досягається локальний максимум, і точка
хс, в якій є точка горизонтального перегину функції,
також задовольняє цьому рівнянню. Отже, дане рівняння
є тільки необхідною умовою, але не є достатньою умовою.

9
Умови існування екстремуму
функції однієї змінної (3)
F ( x )
Слід відмітити, що в точках х0 і х* похідна x міняє
знак з негативного на позитивний. У точці хт знак
міняється з позитивного на негативний, в той же час як в
точці хс він не міняється. Отже, похідна в мінімумі є
зростаючою функцією, а оскільки міра зростання F(x)
вимірюється другою похідною, то можна
стверджувати, що F''(x0)>0, F'' (x*)>0, тоді як F'' (x) <0.
Якщо, однак, друга похідна рівна нулю, ситуація
залишається невизначеною.

10
Умови існування екстремуму
функції однієї змінної (4)

Отримані вище результати можуть знайти надійне обгрунтування, якщо


розглянути розклад функції F(x) в ряд Тейлора в околі точки хo (або х*,
або хт), що, звичайно, вимагає неперервності функції F(x) і її похідних:

F(x0 + h) - F(x0) = hF'(x)+(h**2/2!) F''(x0)+...


Якщо в точці x0 досягається мінімум, то ліва частина розкладу буде не
від’ємною для будь-якого досить малого h (|h|<d) і перша похідна F'(x0) має
бути рівна нулю - це і є достатня і необхідна умова (див. рівняння рівності
нулю похідної).
Оскільки в наступному доданку розкладу завжди h**2>0, якщо F''
(x*)>0, то в точці x0 досягається мінімум. Якщо F'(xт)=0 і F''(xт)<0, то з
аналогічних міркувань в точці xт досягається максимум. Для визначення
відмінності між локальним і глобальним мінімумами необхідно порівняти
значення функцій F(x0) та F(x*).
11
Класифікація методів
одновимірної оптимізації
Незважаючи на те, що оптимізаційні задачі з цільовою
функцією однієї змінної найбільш простий вид
оптимізаційних задач, вони займають центральне місце в
теорії оптимізації як з теоретичної, так і з практичної
точок зору. Це пов'язано з тим, що задачі
однопараметричної оптимізації досить часто зустрічаються
в інженерній практиці і, окрім того, знаходять своє
застосування при реалізації більш складних інтерактивних
процедур багатопараметричної оптимізації.
Своєрідним індикатором важливості методів оптимізації
функції однієї змінної є величезна кількість реалізованих
алгоритмів, які умовно можна згрупувати таким чином:
- методи виключення інтервалів;
- методи поліноміальної апроксимації;
- методи з використанням похідних.
12
Особливості методів поліноміальної
апроксимацій та
методів з використанням похідних
Методи поліноміальної апроксимації. Суть цих методів базується на
теоремі Вейєрштрасса про апроксимацію, яка передбачає що
неперервну функцію в деякому інтервалі можна апроксимувати
поліномом досить високого порядку. Отже, якщо функція унімодальна
і знайдений поліном, який досить точно її апроксимує, то координати
точки оптимуму функції можна оцінити шляхом обчислення
координати точки оптимуму полінома.

Методи з використанням похідних. Доцільно передбачити, що


ефективність пошукових процедур істотно підвищиться, якщо в
доповнення до умови неперервності ввести вимогу
диференційованості цільової функції. Необхідна умова існування
оптимуму цільової функції в точці х*: F'(x*)=dF/dx=0.

13
Методи виключення інтервалів

Методи пошуку, які дають змогу визначити


оптимум функції однієї змінної шляхом
зменшення інтервалу пошуку, носять назву
методів виключення інтервалів.
Усі методи одновимірної оптимізації базуються на
припущенні, що цільова функція, в допустимій області
принаймі володіє властивістю унімодальності, оскільки
для унімодальної функції F(х) порівняння значень (F(х1)
та F(х2)) в двох різних точках (x1 і x2) інтервалу пошуку
дає змогу визначити в якому із заданих підінтервалів
точка оптимуму відсутня.

14
Звуження інтервалу
невизначеності
Обчисливши значення цільової функції F1 і F2 при значеннях
проектного параметра x1 і x 2 у вказаному інтервалі, звузимо інтервал
невизначеності. Існує декілька шляхів систематичного звуження
інтервалу.
F(x)
Звужений інтервал
невизначеності

a X1 X2 b
15
Переваги та особливості методів
виключення інтервалів
Основна перевага методів виключення інтервалів полягає
в тому, що вони засновані на обчисленні тільки значень
цільової функції і, отже, не вимагають виконання умови
диференційованості та запису в аналітичному вигляді.
Остання властивість особливо цінна при імітаційному
моделюванні.

Процес застосування методів пошуку на основі


виключення інтервалів включає два етапи:

- етап встановлення кордонів інтервалу;


- етап зменшення інтервалу.

16
Метод Свена
Цей метод передбачає вибір початкової точки, а потім на основі правила
виключення будується відносно широкий інтервал, який містить точку
оптимуму. Евристичний метод Свена передбачає, що на (k+1) кроці пробна
точка визначається за рекурентною формулою
xk +1 = xk + 2 k D, k = 0,1,2...,
де хo - довільно вибрана початкова точка; D - величина кроку, яка
підбирається інженером.

Знак D визначається шляхом порівняння значень F(x), F(xo +|D| ), F(xo -|D|):
- якщо F(xo -|D|) >= F(x) >= F(xo + |D|), то D - додатне значення;
- якщо F(xo -|D|) <= F(x) <= F(xo + |D|), то D - від’ємне значення;
- якщо F(xo -|D|) >= F(x) <= F(xo +| D|), то точка мінімуму розміщена між
xо-|D| та xо + |D| і пошук межових точок завершений;
- якщо F(xo -|D|) <= F(x) >= F(xo +|D|), то є протиріччя про унімодальність.

17
Метод Свена. Приклад
Відомо: F(x)=(100-x)**2, xo=30, |D| =5.
Визначимо знак D: F(30)=4900; F(30+5)=4225; F(30-5)=5625.

Виконується умова F(xo -|D|) >= F(x) >= F(xo + |D|), відповідно,
D - є додатнє значення; х*=30.
x 1 = x 0 + 2 0 D = 35 ,
x 2 = x 1 + 21 D = 45 , F(45)=3025 < F(xl) → x*>35;
x 3 = x 2 + 2 2 D = 65 , F(65)=1225 < F(x2) → x*>45;
x 4 = x 3 + 2 3 D = 105 , F(105)=25 < F(x3) ) → x*>>65;
x 5 = x 4 + 2 4 D = 185 , F(185)=7225 > F(x4) ) → x*>185.
Отже, шуканий інтервал 65<х*<185.

18
Метод Свена. Приклад
f ( x) = −70 x + 60 x 2 − 14 x 3 + x 4

19
Методи розв’язання задач
одновимірної оптимізації

- Методи виключення інтервалів (метод загального


перебору, метод ділення інтервалу пошуку на половину,
метод золотого січення, метод Фібоначчі).

- Методи поліноміальної апроксимації (метод Пауела,


метод кубічної апроксимації).

- Методи з використанням похідних (метод Ньютона-


Рафсона, метод середньої точки, метод хорд).

20
Правило виключення інтервалів.
Формулювання
Нехай F(х) унімодальна функція на відрізку [a, b], а її мінімум
досягається в точці х*. Розглянемо точки x1 і x2 , які розташовані а< x1<
x2<b.
1) Якщо F(x1)>F(x2), то точка мінімуму для цільової функції
F(х) не лежить в інтервалі (a, x1), тобто х* належить відрізку (x1, b).
2) Якщо F(x1)<F(x2), то точка мінімуму для цільової функції
F(х) не лежить в інтервалі (x2, b), тобто х* належить відрізку (a, x2).
Це правило дає змогу реалізувати процедуру пошуку шляхом
послідовного виключення частин початкового обмеженого інтервалу.
Пошук завершується тоді, коли підінтервал, що залишився меншає до
досить малих розмірів.

21
Правило виключення інтервалів.
Графічне представлення
f (x) f (x)

1)
F(x1)
→ F(x1)

F(x2) F(x2)

0 a x1 x2 b x 0 a x1 x2 b x
f (x) f (x)
F(x2)

F(x2)
2) F(x1)
F(x1)

0 a x1 x2 b x 0 a x1 x2 b x
22
Метод загального перебору. Ідея
Найбільш природним шляхом звуження інтервалу
невизначеності для одновимірної унімодальної цільової
функції є розбиття його на декілька рівних частин з
подальшим обчисленням значень цільової функції у вузлах
отриманої сітки. В результаті, інтервал
Початкова величина інтервалу невизначеності вужчає до
f (x) Звужений інтервал двох кроків сітки.
Завершуємо пошук
тоді, коли
виконується одна з
двох умов:
b−a ε ,
x F (b) − F (a)  ε .
0 a x1 x2 x3 x4 x5 x6 x7 b
23
Метод загального перебору.
Коефіцієнт дроблення
Досить часто виникає проблема оцінити результати пошуку
оптимуму чи порівняти з іншим методом. В таких випадках
використовують параметр дроблення (параметр ефективності методу).
Цей параметр визначає у скільки разів зменшено інтервал
невизначеності по відношенню до початкового за n ітерацій.
Якщо початковий інтервал невизначеності позначимо через L0, а
інтервал, який отримаємо після n ітерацій Ln, то вираз для обчислення
даного відношення буде наступним:
L
f (n ) = n
L0 .
У випадку, коли задано точність розв’язання задачі, то для обчислення
кількості ітерацій використовується наступний вираз (метод загального
перебору): n =
2
−1
f ( n)
.
24
Метод загального перебору. Коефіцієнт
дроблення
Дроблення інтервалу невизначеності характеризується
коефіцієнтом f (у скільки разів зменшено інтервал
невизначеності). Розділивши інтервал невизначеності на n
частин, отримаємо n+1 вузол, і тоді коефіцієнт f можна
визначити за наступною формулою
2 .
f ( n) =
n +1
Для прикладу, щоб отримати значення параметра f = 0,01,
потрібно обчислити цільову функцію в 199 вузлах, а при f =
0,001 - n має бути рівним 1999. Зрозуміло, що ефективність
цього методу при зменшенні інтервалу невизначеності
швидко падає, яка визначається як кількість обчислень
значень цільової функції.
25
Модифікований метод загального
перебору

Інший шлях розв’язання цієї задачі.


Для того, щоб отримати f = 0,01, необхідно обчислити
спочатку функцію в 19 вузлах і отримаємо f = 0,1.
Потім, обчисливши ще 19 значень функції на звуженому
інтервалі невизначеності, отримаємо f = 0,01,
зробивши, при цьому, всього 38, а не 199 обчислень
значень цільової функції.
Таким чином, при деякій винахідливості ефективність
даного методу пошуку можна різко підвищити.

26
Алгоритм методу загального
перебору. Блок-схема алгоритму
Початок

Введення вхідних
даних a, b, 

1 Визначення числа
відрізків розбиття
n  (b − a) / 
2
Визначення значень
функції у кожному вузлі

3
Визначення найменшого
значення функції

Вивести
результати

Кі нець

27
Метод загального перебору.
Приклад

Розв’язати задачу одновимірної оптимізації.


Цільова функція - f ( x) = −70 x + 60 x − 14 x + x.
2 3 4

Інтервал невизначеності - [0; 2].


Визначити мінімум функції використовуючи
модифікований метод загального перебору.

28
Метод загального перебору. Приклад
min f ( x) = −70 x + 60 x 2 − 14 x3 + x 4

29
Метод загального перебору. Приклад
Розв’язати задачу f (х)=x4+e–x → min, x  [0; 1] з точністю  = 0,1.
Функція f (х) унімодальна на відрізку [0; 1]. Визначимо число n
відрізків розбиття:
1− 0
n = 10.
0,1
Отже, можна взяти n = 10. Обчислити значення f (xi), де xi=0,1i, i = 0, .., 10
та запишемо їх в табл.

xi 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
f (xi) 1.00 0,90 0,82 0.75 0,7 0,67 0.68 0,74 0,86 1,06 1,37

В цій таблиці підкреслено мінімальне значення з обчислених значень f (x).


Таким чином, х*  0,5, f *  0,67.

30
Переваги та недоліки методу

Переваги:
1. Простота методу та його реалізації на ПК.
2. Можна застосувати для не унімодальних цільових
функцій
Недолік:
Великий об’єм обчислень (необхідно обчислити
значення ЦФ у кожному вузлі та порівняти їх між
собою). Частково покращити можна цей
параметр використанням модифікованого методу
загального перебору.

31
Метод ділення інтервалу пошуку
на половину (дихотомії)

У методі загального перебору, який розглянули вище, точки


xi, в яких визначали значення f(xi), вибирали наперед. Якщо
для вибору наступної точки та значення функції f(xi)
використати інформацію, яка отримана з попередніх вже
обчислених значеннь f (xi-1), то пошук точки мінімуму
можна зробити більш ефективним, тобто значно скоротити
число обчислених значень f(xi), так як, для прикладу, в
методі ділення інтервалу пошуку на половину.

32
Метод ділення інтервалу
пошуку на половину (1)
Метод поділу інтервалу пошуку наполовину
дає змогу зменшити інтервал пошуку в два
рази при кожній ітерації. ЦФ – унімодальна.

f (x) xm =
(b − a)
,
2
L =b−a,
L
x1 = x m − ,
4
x L
x2 = xm + .
x1 xm 4
0 a x2 b
Визначити значення цільової функції F ( x1 ), F ( x m ), F ( x 2 ).
33
Метод ділення інтервалу пошуку
на половину (2)
Якщо F (x1 )  F (xm )  F (x2 ), f (x) F ( x1 )
F ( xm )
f (x) F ( x1 ) F ( x2 )
F ( xm )
F ( x2 )
→ x
0 a x1 xm x2 b
x ↓
0 a x1 xm x2 f (x) F ( xm )
b
то виключити a, xm , x
і a = xm , xm = x2 . 0 a xm b
34
Метод ділення інтервалу
пошуку на половину (3)
Якщо F (x1 )  F (xm )  F (x2 ), то виключити xm , b  , і b = x m , x m = x1.
f (x) F ( x2 )
F ( xm )
f (x) F ( x2 ) F ( x1 )
F ( xm ) → x
F ( x1 )

x
0 a x1 xm
↓ x2 b
f (x) F ( xm )
0 a x1 xm x2 b
x
0 a xm b
35
Метод ділення інтервалу
пошуку на половину (4)
Якщо F (x1 )  F (xm )  F (x2 ) , f (x) F ( x1 ) F ( x2 )
F ( xm )
f (x) F ( x2 )
F ( x1 )
F ( xm )

x
0 a x1 xm x2 b
x f(x) ↓
F ( xm )
0 a x1 xm x2 b
то виключити a, x1 , та x 2 , b  x
і a = x1 , b = x2 .
0 a xm b 36
Умови завершення та блок-
схема алгоритму методу.
Умова завершення обчислень: b − a  ε.
1
Введення вхідних L
Початок L = b - a, x m = , F(x m ).
даних a, b, F(x),  2

так
3 2 L L
Виключити інтервал x1 = a + , x2 = b − ,
(x m , b), та b = x m , x m = x 1 F(x 1 )  F(x m ). 4 4
F(x1 ), F(x 2 ).
ні

Виключити інтервал так


(a, x 1 ) та (x 2 , b)і
4 Виключити інтервал
F(x 2 )  F(x m ).
a = x1 , b = x 2 . (a, x m ), та a = x m , x m = x 2
ні

ні
5 Вивести
так
L =b−a L
результати

Кінець

37
Метод ділення інтервалу пошуку на
половину. Приклад
min f ( x) = −70 x + 60 x 2 − 14 x3 + x 4

38
Метод дихотомії
В цьому методі точки x1 та х2 разміщують досить близько
до середини наступного відрізка [а; b].
b + a − b + a +
x1 = , x2 = ,
2 2
де  > 0 – мале число. При цьому відношення довжин нового
та початкового відрізків
b − x1
x −a
= = 2
b−a b−a
близьке до 1/2, цим і пояснюється назва методу.
Умова завершення пошуку оптимуму
b−a
 .
2
39
Алгоритм методу дихотомії
Крок 1. Визначити x1 та х2 . Обчислити f (x1) та f (x2).
Крок 2. Порівняти f (x1) і f (x2). Якщо f ( x1)  f ( x2 ) ,
то перейти до відрізка [а; x2], покласти b = x2 , інакше – до відрізка
[x1; b], присвоївши а = x1 .
b−a
Крок 3. Знайти досягнуту точність  n = .
2
Якщо  n   , то перейти до наступної ітерації (до кроку 1).
Якщо  n   , то завершити пошук і перейти до кроку 4.
− a+b −
Крок 4. Покласти *
x x= *
, f  ( x ).
2
Число  вибирають з інтервалу (0;2).
b − a − b−a
n  log 2  (N ) =  N =
2 −  2
N
+1
2
40
Метод ділення інтервалу пошуку на
половину. Приклад 2
f ( x) = x 4 + e − x → min , x  [0;1] , =0,1.

Виберемо =0,02.
Ітерація 1.
Крок 1. x1 = 0,49, x2 = 0,51. f (x) = 0,670, f (x2) = 0,688.
Крок 2. f (x1) > f (x2), тому присвоюємо a = x1 = 0,49.
Крок 3. (b–а)/2 = 0,255 > 0,1, тобто переходимо до наступної ітерації.
Результати обчислення інших ітерацій зведено в таблицю.
b–a Порівняння
Номер ітерації а b x1 x2 f (x1) f (x2)
2 f (x1) та f (x2)
2 0,49 1 0,26 0,735 0,755 0,771 0,792 f (x1) < f (x2)

3 0,49 0,755 0,13 0,613 0,633 0,683 0,691 f (x1) < f (x2)

4 0.49 0,633 0,07 0,07 < 0,1 – точність досягнута


0,49 + 0,633
x*   0,56 , f *  f (0,56)  0,67
2
41
Переваги та недоліки методу.
Переваги:
1) Значення середньої точки X m інтервалів невизначеності
завжди співпадає з однією з пробних точок X 1 , X 2 , X m , які
отримані на попередньому кроці. Тому, на кожній ітерації
необхідно обчислити не більше двох значень цільової
функції.
2) Після n ітерацій довжина інтервалу невизначеності буде
рівною L = (0.5) n .
1

Недолік:
Як випливає з алгоритму, з кожних трьох значень
цільової функції F(х), обчислених в інтервалі пошуку,
надалі використовується тільки дві, а третє не дає
додаткової інформації і надалі не використовується.

42
Метод “золотого січення”
В методі золотого січення цільова функція обчислюється в
точках інтервалу, які розташовані таким чином, щоб
кожне обчислене значення цільової функції давало б нову
корисну інформацію.
Основна ідея методу золотого січення полягає в тому, що інтервал пошуку
ділиться на дві частини так, щоб відношення довжини великого

F(x) відрізка до довжини всього


Z інтервалу було таке, що дорівнює
відношенню
z1 z2
= =k
Z1 Z2 z z1 .

a x b
43
Метод “золотого січення”.
Визначення коефіцієнта поділу k.
z z
З рисунка видно, що z = z1 + z 2 . Тоді вираз 1
= 2
z z1
перепишемо у вигляді Z 12 = ZZ 2 = (Z 1 + Z 2 )Z 2 = Z 1 Z 2 + Z 22
,
або Z1Z 2 + Z 22 − Z12 = 0 .
2
Розділимо ліву частину рівняння на 1 отримаємо
z
2 2
z2  z2   z2  z2 z2
+   − 1 = 0 , або  z  + z − 1 = 0. Беручи до уваги =x
z1  z1   1 1
z1
отримаємо квадратне рівняння x + x −1 = 0 ,
2

де a = 1; b = 1; c = −1.
−b D ( 5 − 1)
xi = D = b 2 − 4ac, D = 1 − 4 * 1 * (−1) = 5 , k =  0,618 .
2a , 2 44
Метод “золотого січення”(1)

В методі золотого січення можливі два варіанти


отриманих ситуацій:

1) F (x1 )  F (x2 ) 2) F ( x2 )  F ( x1 )

f (x) F ( x2 ) f (x) F ( x1 )
F ( x1 ) F ( x2 )

x x
0 a x1 x2 b 0 a x1 x2 b
45
Метод “золотого січення” (2)

1) F (x1 )  F (x2 ) → b = x2 , x2 = x1 , F ( X 2 ) = F ( X 1 ),
k = 0,618 , x1 = a + (1 − k )(b − a ) .

F ( x2 ) f (x) F ( x2 )
f (x) ←
F ( x1 ) F ( x1 )

x x
0 a x1 x2 b 0 a x1 ← x2 ← b

46
Метод “золотого січення”(3)

2) F ( x2 )  F ( x1 ) → a = x1 , x1 = x 2 , F ( X 1 ) = F ( X 2 ),
k = 0,618 , x 2 = a + k (b − a ) .

f (x) F ( x1 ) f (x) F ( x1 )

F ( x2 ) → F ( x2 )

x x
0 a x1 x2 b 0 a → x1 → x2 b

47
Метод “золотого січення”.
Блок-схема алгоритму.
1
Початок Введення вхідних ( 5 − 1)
даних a, b,  k= , J=0,
2
2
J=1 x1 = a + (1 − k )(b − a),
F (x1 )

так 3
Кінець x 2 = a + k (b − a),
J=0
F ( x2 )
ні

x = ( x1 + x2 ) / 2, так 4
... m x1 − x2  
F (xm )
ні
так
6 5
b = x 2 , x2 = x1 , a = x1 , x1 = x2 ,
F (X 2 ) = F (X1 ) F (x2 )  F (x1 )
F (X1 ) = F (X 2 )
ні
48
Метод “золотого січення”.
Приклад.
min f ( x) = −70 x + 60 x 2 − 14 x3 + x 4

49
Переваги та недоліки методу
1. Якщо початковий інтервал має одиничну довжину, то
довжина після ітерацій рівна .

Необхідна кількість ітерацій для забезпечення заданої точності ітерації


 2   2 
n  ln  ln  −2,1ln 
b −a b −a
Досягнута точність на N-й ітерації
N −1
1  5 − 1
 ( N ) =  N − 1 =   (b − a )
2  2 

50
Порівняння методів виключення інтервалів
(кількість обчислень значень ЦФ)

Точність, ɛ

Метод
0,1 0,01 0,001 0,0001 0,00001

Загального 22 33 44 55 66
перебору
Поділу 11 17 23 31 37
наполовину
Золотого 9 14 18 23 28
січення

51
Порівняння методів виключення
інтервалів (точність)
Методи Кількість обчислень ЦФ f (x)
мінімізації
N=5 N = 11 N = 21 N = 51

Метод золотого 0,073 4,1 10–3 3,3 10–5 1,8 10–11


січення

Методи поділу 0,125 1,6 10–2 4,9 10–4 1,5 10–8


відрізка
пополам *)

Метод загального 0,250 0,100 0,050 0,020


перебору

52
Методи поліноміальної
апроксимації
Пошук точки мінімуму методами виключення інтервалів
грунтується на порівнянні значень цільової функції в двох
точках. При такому порівнянні різниці значень ЦФ f(x) в
цих точках не враховуються, важливі лише їх знаки.
Враховують інформацію про відносні значення зміни
значень ЦФ f(x) в пробних точках методи поліноміальної
апроксимації.

Окрім унімодальності висуваються вимоги неперервності


та гладкості (диференційованості) ЦФ.

53
Поняття неперервності та
гладкості функції (1)

54
Теорема Вейєрштрасса

В математиці існує декілька теорем, названих на честь Карла Вейєрштрасса:


1. апроксимаційна теорема Вейєрштра́сса;
2. теорема Вейєрштра́сса про цілі числа;
3. теорема Вейєрштра́сса про функцію, яка є неперервною.

У математиці апроксимаційною теоремою Вейєрштра́сса


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

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

Отже, якщо функція унімодальна і знайдений поліном,


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

56
Особливості забезпечення точності
методів поліноміальної апроксимації
Для підвищення точності апроксимації можна, по–перше,
збільшити порядок полинома і, по–друге, зменшити
довжину відрізка апроксимації. Перший шлях призводить
до швидкого ускладнення обчислювальних процедур, тому
на практиці використовують апроксимуючі поліноми не
вище третього порядку. В то й же час зменшення відрізка,
що містить точку мінімуму унімодальної функції, не
представляє особливих труднощів.
1. Квадратичний апроксимаційний поліном (метод Пауела)
f ( x ) = Ax 2 + Bx + C .
2. Кубічний апроксимаційний поліном
f ( x ) = Ax 3 + Bx 2 + Cx + D .
3. . . .
57
Метод Пауела (метод парабол).
Основні співвідношення
( )
Якщо відомі значення функції f x в трьох різних точках x1 , x 2 , x3
( )
Відповідно f 1 , f 2 , f 3, то функція f x може бути апроксимована
квадратичною функцією f ( x ) = Ax 2 + Bx + C . Відповідно, маємо 3
рівняння та 3 невідомі
f1 = Ax1 + Bx1 + C, f 2 = Ax 2 2 + Bx 2 + C , f 3 = Ax 3 + Bx3 + C .
2 2

Після перетворень цих рівнянь отримуємо


A = ( x3 − x 2 ) f1 + ( x1 − x3 ) f 2 + (x 2 − x1 ) f 3 /  ,
( ) ( ) (
B = x 22 − x32 f1 + x32 − x12 f 2 + x12 − x 22 f 3 /  , ) 
C = x 2 x3 (x3 − x 2 ) f1 + x3 x1 ( x1 − x3 ) f 2 + x1 x 2 ( x 2 − x3 ) f 3 /   ,
де:  = ( x1 − x 2 )( x 2 − x3 )( x3 − x1 ) .
Зрозуміло, що f (x ) буде мати мінімум в точці x = −
B
2A
, якщо A  0 .
B
f ' ( x ) = 0 = ( Ax 2 + Bx + C ) ' = 2 Ax + B → x=− .
2A
58
Метод Пауела.
Блок-схема алгоритму (1)
Крок 1. x2 = x1 + х.
Крок 2. Обчислити значення функцій f(x1) і f(x2).
Крок 3. Якщо f(x1) > f(x2), то x3 = x1 + 2х, а
Якщо f(x1)< f(x2), то x3 = x1 - х.
Крок 4. Обчислити f(x3) і знайти fmin= min{ f(x1), f(x2), f(x3)}, xmin = xi, яка
відповідає fmin.
Крок 5. По x1, x2, x3 обчислити х*, використовуючи формулу для оцінки
з допомогою квадратичної апроксимації.
Крок 6. Перевірка закінчення роботи алгоритму:
Якщо  fmin - f(х*)<, то закінчити пошук. В іншому випадку перехід до
кроку 7.
Якщо  xmin - х* < , то закінчити пошук. В іншому випадку перехід до
кроку 7.
Крок 7. Вибрати xmin або х* і дві точки по обидві сторони від неї.
Визначити в природному порядку і перейти до кроку 4.
59
Крок 1 - 3.
Метод Пауела.
Блок-схема алгоритму (2)
Якщо f(x1) > f(x2), то x3 = x1 + 2х
f (x) F ( x1 ) f (x) F ( x1 )
F ( x2 ) F ( x2 )
х
мінімум
→ х х
F ( x3 )

x x
0 a x1 x2 b 0 a x1 x2 x3 b
Якщо f(x1)< f(x2), то x3 = x1 - х

f (x) F ( x2 ) f (x) F ( x2 )
F ( x1 ) F ( x1 )
х → F ( x3 )
х х
мінімум
x x
0 a x1 x2 b 0 a x3 x1 x2 b
60
Крок 5-6.
Метод Пауела.
Блок-схема алгоритму (3)

F ( x1 )
f (x)
F ( x2 ) If  fmin - f(х*)< → End
F ( x3 ) ↓
fmin → ↨ ←f поліном =Ах**2+Вх+С
xmin
↓ f(х*) x
0 a x1 x2 x3↔ х*=-B/2A
↑ b
If  xmin - х* <  → End 61
Метод Пауела. Приклад (1)
Розглянемо процедуру оцінки координати точки мінімуму функції
F ( x) = 2 x 2 + (16 ) . Нехай в інтервалі 1  x  5 x1 = 1 , x3 = 5 , а x 2
x
є середньою точкою інтервала, тобто x 2 =. 3
Вирахуємо відповідні значення функції:F1 = 18, F2 = 23,33 , F3 = 53,2 .
Для того, щоб оцінити значення x  , необхідно знайти значення параметрів
a1 та a 2 апроксимуючої функції. Відповідно отримаємо:
23,33 − 18 8 1  53,2 − 18 8  46
a1 = = , a2 =  − = .
3 −1 3 5 − 3  5 −1 3  15
Підставимо ці значення в x  = ( x2 + x1 ) −  a1  і отримаємо
2  2a 2  ,
формулу
(3 + 1) (8 / 3)
x = − = 1,5874 .
2 2(46 / 15)
Точне значення мінімуму досягається при x  = 1,5874 .

62
Метод Пауела. Приклад (2)
min f ( x) = −70 x + 60 x 2 − 14 x3 + x 4

63
Метод Пауела
Точність, ɛ
0,1 0,01 0,001 0,0001 0,00001
Метод
Загального 22 33 44 55 66
перебору
Поділу 11 17 23 31 37
наполовину
Золотого 9 14 18 23 28
січення
Метод 5 8 9 10 11
Пауела

64
Метод Пауела

Переваги:
1. Найефективніший серед вищерозглянутих.
2. Пошук мінімуму можна проводити при відсутності
аналітичного виразу для ЦФ.

Недоліки:
Унімодальність, неперервність та
гладкість(диференційованість) ЦФ.

65
Метод Ньютона-Рафсона.
Ідея методу (градієнтний метод)
Метод Ньютона-Рафсона вимагає, що функція f була двічі
диференційована. Робота алгоритму починається в точці xк, яка
представляє початкове наближення (чи початкову оцінку) координати
стаціонарної точки, або кореня рівняння f'(х)=0.
Потім будується лінійна
апроксимація функції f'(х)
в точці xк, і точка, в якій
апроксимуюча лінійна
функція рівна нулю,
приймається як наступне
наближення.
Цей ітераційний процес
повторюється до
виконання умови
f ' (x )  
66
Метод Ньютона-Рафсона.
Графічна інтерпретація. Ідеї методу

f ' ( x1 )
'
f ( x) f ' ( x)

f ' ( x2 )

' * f ' ( x3 )
f (x )
x3 x
x0 x* x2 x1

a b
0 ← ------
67
Метод Ньютона-Рафсона.
Основні співвідношення
Якщо точка xk (як правило її на першій ітерації позначають хо )
прийнята як поточне наближення до стаціонарної точки, то лінійна
функція, апроксимуюча функцію f'(х) в точці x k , записується у вигляді
f ' (x; xk ) = f ' (xk ) + f '' (xk )(x − xk ) .

Прирівнявши праву частину рівняння до нуля, отримаємо наступне


наближення:
f ' (xk ) + f '' (xk )(x − xk ) = 0 → f '' (xk )(x − xk ) = − f ' (xk ) → ( x − x k ) = − f ' ( x k ) / f '' ( x k )


xk +1 = xk − f (xk ) / f (xk )' ''
 .

68
Метод Ньютона-Рафсона. Особливості
збіжності ітераційного процесу (1)

На жаль, в залежності від вибору початкової точки і виду цільової


функції алгоритм може як сходитися до істинної стаціонарної точці,
так і розбігтися. Якщо початкова точка розташована правіше за x0, то
ті, що отримуються внаслідок послідовних наближень точки
віддаляються від стаціонарної точки x.

Збіжний процес Відсутня збіжність

69
Метод Ньютона-Рафсона. Особливості
збіжності ітераційного процесу (2)

f ' ( x0 )

f ' ( x)
f ' ( x1 )
f ' ( x2 )
f ' ( x* )
x* x0 x1 x2 x

0 a - - - - - - - - - - - -b→

70
Метод Ньютона-Рафсона.
Блок-схема алгоритму
Початок

Введення вхідних
даних x0 , 

k =0

1 Визначення першої
та другої похідних
f ' (xk ), f '' (xk )

2

xk+1 = xk − f ' (xk )/ f '' (xk ) 
ні
4 3
k = k +1 f ' ( xk )  

так

Вивести
результати

Кінець

71
Метод Ньютона-Рафсона.
Приклад (1)
Розв’яжемо наступну задачу: min f (x ) = 2 x 2 + (16/ x ) .
Для того щоб визначити стаціонарну точку функції f(х), скористаємося
методом Ньютона -Рафсона, поклавши x1 = 1 :

( )
f ' ( x ) = 4 x − 16 / x 2 , ( )
f '' ( x ) = 4 + 32 / x 3 .
Ітерація 1. x1 = 1, f ' (x1 ) = −12 , f '' (x1 ) = 36 , x2 = 1 − (− 12 / 36 ) = 1,33 .
x
Ітерація 2. 2 = 1,33 , f '
( x 2 ) = − 3, 73 , f ''
(x2 ) = 17,6 ,
x3 = 1,33 − (− 3,73 / 17 ,6) = 1,54 .
Ітерації продовжуються доти, поки не буде виконана нерівність F ' ( xk )  ε ,

де  - заздалегідь встановлена величина допустимого відхилення.

72
Метод Ньютона-Рафсона.
Приклад (2)
min f ( x) = −70 x + 60 x 2 − 14 x3 + x 4

73
Метод Ньютона-Рафсона
Точність, ɛ
0,1 0,01 0,001 0,0001 0,00001
Метод
Загального перебору 22 33 44 55 66

Поділу наполовину 11 17 23 31 37

Золотого січення 9 14 18 23 28

Метод Пауела 5 8 9 10 11

Метод Ньютона- 8 10 10 10 10
Рафсона

74
Метод Ньютона-Рафсона
Переваги:
Один з найефективніших серед вищерозглянутих.

Недоліки:
1. Може розбігатися розв’язання задачі.
2. ЦФ має бути мінімум двічі диференційованою.
3. Необхідно обчислювати першу та другу похідні.

75
Метод середньої точки.
Ідея методу (1)
Цільова функція має бути диференційованою.
Використовується необхідна умова існування оптимуму, тобто – перша похідна
від ЦФ має бути рівною нулю.
Спершу визначаються значення першої похідної на границях інтервалу
невизначеності (a,b), які мають мати різні знаки ( f ' (a ) , 0 f ' (b ) ).0
Шуканий оптимум буде розміщений між цими точками.
Ділимо інтервал невизначеності ' f ' (b )  0
наполовину і визначаємо значення f ( x )
координати a + b та значення
z=
2
похідної в цій точці f ' ( z ) .
a z b x
Якщо f ' ( z )  0 , то виключаємо (z,b).
Якщо f ' ( z )  0 , то виключаємо (a,z).

f ' (a )  0

76
Метод середньої точки.
Ідея методу (2)

f (x )
' f ' (b )  0

a z b x

f ' (a )  0
77
Метод середньої точки.
Алгоритм
Введення даних.
Крок 1. Обчислити перші похідні в точці a та b (необхідно зауважити,
що f ' (b )  0 , f ' (a )  0 ).
a+b
Крок 2. Визначити z= та f ' (z ) .
2
Крок 3. Якщо ( z )   , то заверш. обчислення та перехід до кроку 5,
'
f
в іншому випадку перехід до кроку 4.
Крок 4. Якщо f ' ( z )  0 , то виключаємо (z,b), b=z. Перехід до кроку 2.
Якщо f ' ( z )  0, то виключаємо (a,z), a=z. Перехід до кроку 2.
Крок 5. Виведення даних.

78
Метод середньої точки. Приклад
2
Мінімізувати функцію f ( x) = 2 x + (16 / x) на інтервалі 1  x  5  = 0,1.
dF ( x) 16
f ' ( x) = = 4x − .
dx x2
Ітерація 1. Крок 1. b = 5 , a = 1 , f ' (b) = 19.36, f ' (a ) = −12.
Крок 2. z = (5 + 1) / 2 = 3, f ' ( z ) = 10,22  0 .
.

Крок 3.f ( z ) = 10,22  0.1( ) .


'

Крок 4.f ' ( z ) = 10,22  0 , то b = 3 .

Ітерація 2. Крок 1.b = 3, a = 1 , f ' (b) = 10,22 , f ' (a) = −12 .


Крок 2. z = (3 + 1) / 2 = 2,
.
f ' ( z) = 4  0 .
Крок 3. f ( z ) = 4  0.1( ).
'

Крок 4. f ' ( z ) = 4  0 , то b = 2 .
Ітерації продовжуються до тих пір, поки не буде виконуватись нерівність
| f ' ( z ) |  . 79
.
Метод середньої точки
Переваги:
Простота реалізації.

Недоліки:
1. ЦФ має бути мінімум диференційованою.
2. Необхідна значна кількість ітерацій.
3. Необхідно обчислювати першу похідну від ЦФ.

80
Метод хорд. Ідея методу (1)

Визначення похідної: границя відношення приросту


функції до приросту аргумента, якщо значення аргумента
прямує до нуля.
f ( xn ) − f ( xn −1 )
f ( xn ) = lim , при xn − xn −1 −  0 .
'

xn − xn −1
Розкладемо функцію N(x) в ряд Тейлора в околі точки x 0 :
f  2 f (Δ x ) nf (Δ x )
2 2

f (x 0 + Δ x ) = f (x 0 ) + Δx+ + ... + .
x x  xn

0 2 0 0
2! n!
f f (x 0 + Δ x )-f ( x0 )  n f Δx
x = - * ,n . 2
x
f
0

f n+1 n
↓- f Δx x n
n!
n = + Θ (Δ x )
x Δ xn
. 81
Метод хорд. Ідея методу (2)

У методі Ньютона потрібно обчислювати похідну f ' ( x n ) ,


що не завжди зручно. Якщо її замінити скінченою
різницею першого порядку, обчисленою на двох
останніх ітераціях
f ( xn ) − f ( xn −1 )
f ( xn ) = f ( xn −1 ; xn ) =
'
.
xn − xn −1

xk +1 = xk − f ' ( xk ) / f '' ( xk ) . 
то з ітераційної формули методу Ньютона отримаємо формулу
узагальненого методу хорд:

xn − xn −1
xn +1 = xn − ' f '
( xn ), n = 1,2,....
f ( xn ) − f ( xn −1 )
'

82
Метод хорд. Геометрична
інтерпретація
Геометрична інтерпретація методу хорд наступна: дотичну до точки
( xn , f ( xn )) замінює січна, проведена через точки ( xn −1 , f ( xn −1 )) і
( xn , f ( xn )) . Геометричну інтерпретацію методу показано на рисунку.
y
y=F(x)

83
Метод хорд. Алгоритм

Введення даних.
Крок 1. Обчислити перші похідні в точці a та b (необхідно зауважити,
що f ' (b )  0, f ' (a )  0).
f ' (b )(b − a )
Крок 2. Визначити z = b − ()
та f '
z .
f (b ) − f (a )
' '
Крок 3. Якщо f ( z )  , то заверш. обчислення та перехід до кроку 5,
'
в іншому випадку перехід до кроку 4.
Крок 4. Якщо f ' ( z )  0 , то виключаємо (z,b), b=z. Перехід до кроку 2.
Якщо f ' ( z )  0, то виключаємо (a,z), a=z. Перехід до кроку 2.
Крок 5. Виведення даних.

84
Метод хорд. Приклад
Мінімізувати функцію F ( x) = 2 x 2 + (16 / x) на інтервалі1  x  5 ,  = 0,1 .
dF ( x) 16
F ' ( x) = = 4x − 2 .
dx x
Ітерація 1.
Крок 1. b = 5 , a = 1 , F ' (b) = 19 .36 , F (a) = −12 .
'

.
19.36
Крок 2. z = 5 − = 2.53 .
(19.36 + 12) / 4
Крок 3. F ( z ) = 7.62  0 ; покласти b = 2.53 .
'

Ітерація 2.
7.62
Крок 2. z = 2.53 − = 1.94.
(7.62 + 12) / 1.53
Крок 3.F ' ( z ) = 3.51  0; покласти b = 1.94 . Ітерації продовжуються
до тих пір, поки не буде виконуватись нерівність | F ' ( z ) |  .

85
Порівняння методу хорд та
Ньютона (1)
У таблиці наведено хід ітерацій для процедури отримання
квадратного кореня з числа a = 16 . Початкове наближення вибрано
однаковим: x 0 = 2 . З таблиці видно, що для даного випадку метод
хорд збігається повільніше.
Номер ітерації xn за методом Ньютона за методом хорд
0 2.0000 2.0000
1 5.0000 5.0000
2 4.1000 3.7143
3 4.0012 3.9673
Метод хорд має повільнішу збіжність, ніж метод Ньютона, однак у ньому не
потрібно обчислювати на кожному кроці значення похідної . Якщо
зафіксувати кінцеву точку відрізка, для якої виконується співвідношення
F ( x) F ' ( x)  0 , і позначити її через x F, то отримаємо традиційну формулу
xn − x F
методу хорд x n+1 = x n − F ( x n ) , n = 1,2,....
F ( xn ) − F ( x F )
86
Порівняння методів одновимірної
оптимізації (1)

Отримані результати дають змогу стверджувати, що найбільш


ефективним є метод поліноміальної апроксимації. Хорошими
результатами володіє метод Ньютона-Рафсона та метод золотого
січення з методів ділення інтервалу.

Методи одновимірної оптимізації


Цільова функція Загального Половинног Золотого Квадратичної Ньютона-
перебору о ділення січення апроксимації Рафсона
f ( x) = x 4 − 14 x 3 + 60 x 2 − 70 x 44 23 18 9 10
f ( x) = −0.3333 x 3 + e x + 2 x 66 37 28 7 12
f ( x) = x 3 − 3 sin( x) 55 33 25 7 10

87
Порівняння методів одновимірної
оптимізації (2)

1. Для швидкого отримання попередніх результатів


(початкової точки для застосування інших
методів), а також, якщо необхідна надійна робота
алгоритму при невідомій наперед цільовій функції,
краще використати один з методів виключення
інтервалів.
2. Якщо необхідне точне рішення, слід скористатися
градієнтним методом. З іншої сторони, якщо
необхідна висока точність, але функція не задана
аналітично, краще скористатися методами
точкової оцінки, так як при використанні
градієнтних методів накопичується похибка при
скінчено-різницевій апроксимації похідних.

88
Порівняння методів одновимірної
оптимізації (3)

3. Якщо порівняти методи з точки зору поставленої задачі


та виду функції, то при мінімумі інформації про вид
функції слід використати метод виключення інтервалів.

4. Якщо функція квадратична чи близька до такої, то


необхідно використовувати метод Пауела.

5. Якщо функція двічі диференційована, неперервна та


задана аналітично, то необхідно використовувати
градієнтні методи.

6. Методи точкового оцінювання при інших рівних умовах


(інтервали, гладка функція) швидші (ефективніші)
методів виключення інтервалів.

89

You might also like