Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 (2).docx
Скачиваний:
25
Добавлен:
22.02.2016
Размер:
1.03 Mб
Скачать

2. Методи пошуку мінімуму для унімодальних функцій

Метод дихотомії

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

Нехай функція унімодальна на відрізку.

У процесі роботи методу дихотомії будується послідовність вкладених відрізків

,

кожен з яких містить хоча б одну точку мінімуму функціїна.

Нехай задані числа (необхідна точність визначення точки) і.

Пошук точки мінімуму функції на відрізкупочинається з вибору двох точок,за правилом:

, .

Точки розміщені симетрично відносно середини відрізкаі при малихділять відрізок майже навпіл (звідси назва методу).

Перехід від відрізка до відрізкавідбувається так:

якщо , то покладають(рис. 5 а), в протилежному випадку(рис. 5 б).

а) б)

Рис. 5.

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

або і

Для зручності подальших обрахунків для визначення будемо використовувати співвідношення

. (2)

Рис. 6.

Нехай вже отриманий відрізок такий, що, при цьому, з урахуванням (2), його довжина дорівнює

.

Отже,

. (3)

Якщо , то задача розв'язана із заданою точністюі за наближення до деякої точкимножиниможна взяти точку, якщо, або, якщо, а значеннябуде наближенням для.

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

.

Якщо ж величина , то визначаються точки

, .

і обчислюються значення і.

Якщо , то покладають,, інакше,.

Згідно з (3), довжина отриманого відрізка дорівнює

і . Після чого повторюється перевірка умовиі т.д.

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

Алгоритм 2.

(методу дихотомії)

Нехай задано ,і відрізок, де функціяунімодальна. Покласти.

Крок 1. Знайти точки

,

і обчислити ,.

Крок 2. Якщо , то покласти,,інакше,,.

Крок 3. Якщо , то покластиі перейти на крок 4, в протилежному випадку покластиі перейти до виконання кроку 1.

Крок 4. Вивести ,. Кінець алгоритму.

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

. (4)

Звідси випливає, що число кроків алгоритму задовольняє умову

.

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

В цьому випадку нерівність (4) дає можливість оцінити точність отриманого наближення післяобчислень значень функції:

.

Примітки:

1. Величина в методі дихотомії вибирається в залежності від кількості ймовірних десяткових знаків при обчисленні аргументуі не може бути меншою за машинний нуль конкретної ЕОМ, яка використовується при розв'язуванні задачі.

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

Метод золотого перерізу

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

В основу цього методу покладено властивості золотого перерізу відрізка.

Поділ відрізка на дві нерівні частини так, що відношення довжини всього відрізка до довжини його більшої частини дорівнює відношенню довжини більшої частини до довжини меншої частини відрізка називається золотим перерізом цього відрізка.

Визначимо точки, якi здійснюють золотий переріз заданого відрізка .

Очевидно, що таких точок буде дві (рис. 7. а).

a) б)

Рис. 7.

Згідно означення золотого перерізу, можна скласти два рівняння відносно невідомих iвідповідно :

(5)

(6)

Розв'язок рівнянь (5) i (6) будемо шукати у вигляді:

,

де і(рис. 7. б).

Одержуємо два квадратних рівняння

,

,

коренями яких є

і ,

і .

Оскільки для точок ii, то золоті перерізи визначаються точками

, (7)

. (8)

Ці точки розташовані симетрично відносно середини відрізка i, при цьому шукане відношення між довжинами відрізків у золотому перерізі, наприклад, з (5) і (7) дорівнює

. (9)

Точка u називається першою точкою золотого перерізу, а точка v – другою.

Зауважимо, що точка є, в свою чергу, другою точкою золотого перерізу відрізка. Дійсно, із означення золотого перерізу i формул (7), (8) маємо нерівністьі рівність. Тоді, враховуючи (9),

тобто

Аналогічно можна показати, що точка є першою точкою золотого перерізу відрізка.

Знаючи одну з точок золотого перерізу відрізка , іншу можна знайти за однією з формул:

або .

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

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

(10)

i обчислимо значення функції у цих точках:.

Якщо (рис. 8 а)), то покласти,,, знайтиi обчислити.

а) б)

Рис. 8.

Якщо (рис 8 б)), то покласти,,, знайтиi обчислити.

В силу унімодальності функції на, відрізокмає хоча б одну спільну точку з множиноюточок мінімумуна. При цьому довжина відрізкадорівнює

(11)

Дійсно, при ,і тоді

,

а при ,і тоді

Нехай вже визначений відрізок , знайдені точки, значення,, при цьому, в загальному випадку,і

(12)

Якщо , то процес обчислень закінчується, i за наближений розв'язок задачі можна взяти точку, якщо, або, якщо, при цьому похибка наближення, з урахуванням (27.7), не перевищує величину

. (13)

Якщо ж то припокласти,,,, знайтиі обчислити, інакше покласти,,, знайтиi обчислити.

Після чого треба повторити перевірку умови i т.д.

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

.

Розглянемо алгоритм, який реалізує описаний метод золотого перерізу.

Алгоритм 3

(методу золотого перерізу)

Нехай задано i відрізок, на якому функціяунімодальна.

Крок 1. Знайти точки і обчислити,.

Крок 2. Якщо , то покласти,,,, знайтиі обчислити;

інакше () покласти,,,,,, знайтиі обчислити.

Крок 3. Якщо , то перейти на виконання кроку 4, інакше перейти до виконання кроку 2.

Крок 4. Вивести . Кінець алгоритму.

Зауваження. На жаль чисельна реалізація описаного алгоритму, а отже і методу золотого перерізу, призводить до того, що він стає практично незастосовним навіть при невеликих . Це викликано тим, що значенняв ЕОМ обчислюється наближено і вже перші точки ітераційного процесу (див.(27.6)) будуть знайдені з деякою похибкою, яка при збільшеннідосить швидко накопичується, а це призводить до того, що порушується властивість симетричності методу.

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

Алгоритм 3

(модифікованого методу золотого перерізу)

Нехай задано і відрізок, на якому функціяунімодальна.

Крок 1. Знайти точки і обчислити,.

Крок 2. Якщо , то покласти,,,, знайтиі якщо, то обчислити;

інакше () покласти,,,,,, знайтиі якщо, то обчислити.

Крок 3. Якщо , то перейти на виконання кроку 5.

Крок 4. Якщо , то перейти до виконання кроку 2, інакше перейти на виконання кроку 1.

Крок 5.Вивести . Кінець алгоритму.

Зауваження. Розглянутий алгоритм методу золотого перерізу можна застосовувати на практиці і для більш широкого класу неперервних функцій, але отриманий при цьому розв'язок може виявитися далеким від точку глобального мінімуму.

Метод Фібоначчі.

У тих випадках, коли обчислення значень функції пов'язане з певними труднощами, важливого значення набувають найбільш економічні методи, які дозволяють розв'язати задачу мінімізації з потрібною точністю при якомога меншій кількості обчислень значень функції, що мінімізується. Розглянемо один з таких методів, який є оптимальним, для класу унімодальних функцій i тісно пов'язаний із числами Фібоначчі.

Як відомо, числа Фібоначчі визначаються співвідношеннями:

(14)

Наведемо кілька перших чисел Фібоначчі:

, ,,,,,,,,,,,,…,,…,

За методом індукції можна довести, що - те число Фібоначчі можна подати у вигляді :

формула Біне.

Звідси випливає, що при досить великому

(15)

тобто числа Фібоначчі із зростанням зростають досить швидко.

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

Метод Фібоначчі, як i метод золотого перерізу, відноситься до класу симетричних методів i визначається заданням на відрізку двох точок, симетричних відносно його середини (рис. 9):

і .

Рис. 9.

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

Розглянемо перші кроки методу Фібоначчі. Нехай ,. Знайдемо,, де,– відповідні числа Фібоначчі при заданому, які знаходяться за допомогою рекурентного співвідношення (14) або за формулою Біне.

Якщо , то наступним відрізком локалізації є відрізок, де,. У цьому випадку точкабуде визначати точку, тобто, а точка. Крім того, можна легко перевірити, що.

Якщо ж , то наступним відрізком локалізації є відрізок, де,. У цьому випадку точкабуде визначати точку, тобто, а точка. Крім того, можна легко перевірити, що.

За методом індукції можна показати, що на -му кроці методу Фібоначчі буде отримана трійка, яка локалізує хоча б одну точкуз множиниточок мінімуму функціїi така, що

, (16)

, а точка , для якої,

співпадає з однією з точок

(17)

які розташовані на відрізку симетрично відносно його середини. Припроцес закінчується. В цьому випадку згідно формул (14), (16), (17) довжина відрізкадорівнює

, (18)

а точки

співпадають () і є серединою відрізка.

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

.

Зауваження. Після кроків методу Фібоначчі відношення довжини відрізка локалізації(див. (28.3)) до довжини більшого відрізка(див. (17)), дорівнює. Тоді, враховуючи (15), при досить великихмаємо

.

Крім того, ,, тобто при досить великомупочаткові точкиметодів Фібоначчі та золотого перерізу практично співпадають.

Це зауваження свідчить про тісний зв’язок між методами Фібоначчі та золотого перерізу.

Розглянемо алгоритм, який реалізує метод Фібоначчі.

Алгоритм 5

(методу Фібоначчі)

Нехай задано – число обчислень значень функціїi відрізок, на якому ця функція унімодальна.

Крок 0. Покласти .

Крок 1. Знайти точки

і обчислити ,.

Крок 2. Якщо , то покласти,,,, знайтиі обчислити;

інакше покласти ,,,,,, знайтиі обчислити.

Крок 3. Якщо , то перейти на виконання кроку 4, інакше покластиперейти до виконання кроку 2.

Крок 4.Вивести . Кінець алгоритму.

Зауваження.

1. Числа Фібоначчі ,при заданомуна кроці 1 алгоритму 5 знаходяться за допомогою рекурентного співвідношення (14) або за формулою Біне.

2. При практичній реалізації описаного алгоритму, а отже і методу Фібоначчі, треба мати на увазі, що число , взагалі кажучи, є нескінченним періодичним дробом, тому перша точкабуде знайдена наближено. В зв’язку з цим похибка у визначенні цієї точки, як правило, призводить до швидкого зростання похибки на наступних ітераціях методу, і вже при не дуже великихсиметричність методу порушується.

Розглянемо модифікований алгоритм 5, який у випадку порушення симетричності методу, а, точніше, коли на деякому кроці буде, обчислює для поточного відрізкаточкуза рекурентним співвідношенням (17), а точкуза формулою, що забезпечує його практичну застосовність до розв’язування задач одновимірної мінімізації.

Алгоритм 6

(модифікованого методу Фібоначчі)

Нехай задано – число обчислень значень унімодальної функціїi відрізок.

Крок 0. Покласти .

Крок 1. Знайти точки

,

і обчислити ,.

Крок 2. Якщо , то покласти,,,, знайтиі якщо, то обчислити;

інакше () покласти,,,,,, знайтиі якщо, то обчислити.

Крок 3. Якщо , то перейти на виконання кроку 5.

Крок 4. Покласти . Якщо, то перейти до виконання кроку 2, інакше перейти на виконання кроку 1.

Крок 5. Вивести . Кінець алгоритму.

Зауваження.

1. Якщо задана точність обчислень результату , то з (18) випливає, що числов методі Фібоначчі треба вибирати з умови.

2. Алгоритм 6 можна застосовувати на практиці і для більш широкого класу неперервних функцій, але отриманий при цьому розв'язок може виявитися далеким від точку глобального мінімуму.

Метод парабол.

Існують досить широкі класи функцій, які зручно апроксимувати, наприклад, многочленом другого степеня. Тоді за наближене значення мінімуму функції доцільно взяти точку мінімуму цього многочлена. Оскільки графік многочлена другого степеня має вигляд параболи, то такий метод називаютьметодом парабол. Цей метод дає хороші результати при мінімізації гладких унімодальних функцій, тому що в околі точки графіки таких функцій досить "близькі" до параболи.

Для побудови апроксимуючого многочлена другого степеня необхідно мати три точки такі, що

,

i значення функції в цих точках.

Тоді інтерполяційний многочлен Лагранжа другого степеня має вигляд:

,

або у більш зручній для диференціювання формі:

. (19)

Нехай унімодальна нафункція i.

Означення 2. Трійка чисел називаєтьсявдалою, якщо

і

.

Остання умова означає, що точки ,,не лежать на прямій, паралельній осі абсцис (рис. 10).

Із означення вдалої трійки випливає, що точка мінімуму функціїміститься всередині відрізка.

Рис. 10.

Нехай знайдена вдала трійка чисел . Тоді хоча б одна з нерівностейістрога i коефіцієнт при старшому члені многочлена (19) додатній.

Визначивши похідну многочлена (19) i прирівнявши її до нуля, можна показати, що мінімум досягається в точці

, (20)

при цьому .

Отримана точка i обирається за точку наступного обчислення значення функції (рис. 11).

Можливий випадок, коли (рис. 12). Тоді за точку наступного обчислення обирається одна з точок

або .

Рис. 11. Рис. 12.

Далі із точок треба вибрати нову вдалу трійкуi повторити обчислення за формулою (20) і т.д.

Закінчити пошук наближеного значення точки мінімуму можна, якщо виконується умоваi покласти при цьому,.

Метод парабол доцільно застосовувати після того, як знайдено відрізок локалізації мінімуму досить малої довжини. Наприклад, такий відрізок може бути отриманий після кроків методу дихотомії або золотого перерізу.

Чисельні експерименти показують, що якщо функція добре апроксимується параболою в околі множини розв’язків, то цей метод виявляється більш ефективним, ніж інші методи мінімізації.

Розглянемо один з алгоритмів, який реалізує метод парабол.

Спочатку опишемо процедуру знаходження вдалої трійки для функції на відрізкулокалізації точки мінімуму цієї функції.

Нехай задані точки такі, що, і відомі значення функціїу цих точках:причомуi.

Якщо , то покласти,,. Якщо, то покласти,,. Якщо, тоi будь-яка трійкаабобуде вдалою. При цьому вибирають ту, якій відповідає менший з відрізківабо.

Алгоритм 6.

(методу парабол)

Нехай задані відрізок локалізації точки мінімуму функціїі(досить мале число).

Крок 0. На відрізку визначити першу вдалу трійкуі обчислити,,.

Крок 1. Знайти точку

і обчислити .

Крок 2. Якщо , то покласти,i кінець алгоритму, інакше якщо, то покласти,,,, інакше покласти,,,.

Крок 3. Для одержаних точок знайти вдалу трійку, обчислити значенняі перейти до виконання кроку 1.

Кінець алгоритму.