Смекни!
smekni.com

Оптимізація балансу АКБ "Правекс-Банк" з метою покрашення його фінансових показників (стр. 6 из 13)

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

2.1.2 Метод Ньютона

Якщо виходити з того, що необхідним етапом знаходження рішення задачі:

(2.10)

де f:Rm  R, є етап знаходження стаціонарних точок, тобто точок, задовольняючих рівнянню:

(2.11)

(позначення F для f  ми зберігатимемо), тож можна спробувати вирішувати рівняння (2.11) відомим методом Ньютона рішення нелінійних рівнянь:

xn+1 = xn [F (xn)]1F(xn). (2.12)

Для задачі (2.10) цей метод називається методом Ньютона безумовній оптимізації і задається формулою:

xn+1 = xn [f (xn)]1f (xn).(2.13)

Формулу (2.12) можна вивести, виходячи з таких міркувань. Припустімо, що xn — деяке наближене рішення рівняння (2.11). Тоді якщо замінити функцію F в рівнянні (2.11) її лінійним наближенням:


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

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

(2.15)

Та на початку для подальшого використання виведених формул, необхідно довести деякі твердження - якщо f (xn) > 0, то рішення задачі (2.15) задається формулою (2.13).

Рисунок 2.1 - Геометрична інтерпретація формул (2.12) і (2.13) відповідно

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

2.1.2.1 Метод Льовенберга — Маркардта

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

,

де ln— деякий параметр (свій на кожному кроці). Перші три додатки у визначенні функції є квадратичною апроксимацією функції f, а останній доданок — "штраф", що не дозволяє точці xn+1 відходити далеко від точки xn. Мінімум (принаймні стаціонарна точка) функції обчислюється в явному вигляді з наступного рівняння (щодо x):

Q = (x) = f (xn) + f (xn)(xxn) + ln(xxn).

Як легко побачити:

xn+1 = argmin (x) = xn [f (xn) + lnI]1f (xn). (2.16)

Остання формула і є метод Льовенберга-Маркардта.

Очевидно, що якщо ln= 0, то (2.22) і є метод Ньютона, а якщо lnвелике, то (оскільки [f (xn) + lnI]1 (ln)1I при великих ln) формула (2.16) близька до градієнтного метода. Тому, підбираючи значення параметра ln, можна добитися, щоб метод (2.16), по-перше сходиться глобально, і по-друге квадратично. Можна, наприклад, вибирати lnз наступних міркувань: кут між напрямами кроку і антиградієнтом повинен бути гострим, а значення функції на кожному кроці повинне кваліфіковано убувати. В цьому випадку ln повинне задовольняти наступним умовам (тут ми позначаємо „анти напрямок” кроку [f (xn) + lnI]1f (xn) через yn):

f(xn+1) f(xn) 2(yn, f (xn)),

де 1 (0, 1) и 2 (0, 1/2) - параметри.

Проте, як завжди, існує ще один недолік методу Ньютона, тому розглянемо - модифікований метод Ньютона. В деяких задачах більш істотним недоліком методу Ньютона є його велика обчислювальна трудність: на кожному кроці потрібне обчислення оператора (матриці) f (xn)і його (її) обіг, що при великих розмірностях коштує в обчислювальному плані дуже дорого. Один із способів обходу цих труднощів полягає в „заморожуванні” оператора f (xn) - використовуванні на [f (x0)]1 замість [f (xn)]1:

xn+1 = xn [f (x0)]1f (xn). (2.17)


Рисунок 2.2 - Геометрична інтерпретація модифікованого методу Ньютона

Можна показати, що при природних обмеженнях модифікований метод Ньютона сходиться лише лінійно (це платня за зменшення об'єму обчислень). Можна також не заморожувати оператор [f (xn)]1 назавжди, а обновляти його через певнечисло кроків, скажімо до:

xn+1 = xn [f (x[n/kk)]1f (xn), (2.18)

Можна довести, що якщо функція f сильно випукла і f задовольняє умові Липшиця, то

||xn+kx*|| C||xnx*||k+1,

тобто за k кроків порядок погрішності зменшується в k+1 разів, що відповідає наступній оцінці погрішності на кожному кроці:

||xn+1x*|| C||xnx*||kk+1.

Іншими словами, метод (2.18) є методом kk+1-го порядку збіжності. Таким чином, метод (2.18) займає проміжне положення між методом Ньютона (k=1) і модифікованим методом Ньютона (2.17) (k=) як по швидкості збіжності, так і за об'ємом обчислень.

Інший спосіб зменшення об'єму роботи, пов'язаного з обчисленням функції f (xn) можна описати так. Метод січних рішення рівняння (2.11) полягає в наближеній заміні функції F в рівнянні не дотичної y=F(xn)+F (xn)(x-xn), а січною гіперплощиною. Наприклад, в одновимірному випадку - прямою y=F(xn)+(F(xn)F(xn1))(x-xn)/(xnxn1) (див. рис.2.3). Ця заміна призводить (в скалярному випадку!) до наступного методу рішення задачі (2.10):

(2.19)

який і називається методом січних. Відомо, що для достатньо гладких випуклих функцій порядок сходимісті цього методу рівний , де =(+1)/21.618 - відома константа (звана золотим перетином).

Рисунок 2.3. - Геометрична інтерпретація одновимірного випадку метода січних рішень

В багатовимірному випадку поступають таким чином. Хай xn, xn1, ..., xnm - вже обчислені m + 1 ітерації. Для кожної компоненти fj функції f (j=1..., m) побудуємо в Rm+1 гіперплощину Sj, що проходить через m+1 точку (xi, fj(xi)) (i = nm,..., n) графіка цієї компоненти. Хай P — „горизонтальна гіперплощина, яка проходить через нуль” в Rm+1: P = {(x, y) Rm×R; y = 0}. Як xn+1 візьмемо точку перетину гіперплощин P і Sj:


(в загальному положенні ця точка єдина).

Нескладні міркування показують, що xn+1 можна обчислювати так. Хай 0,...,n - рішення системи

(2.20)

Тоді

Потім описані дії повторюються для точок xn+1, xn, ..., xnm+1.

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

Відзначимо, що метод сікучих, на відміну від методів, що раніше розглядалися, не є одно кроковим в тому значенні, що для обчислення наступної ітерації йому не достатньо інформації, отриманої на попередньому кроці потрібна інформація, отримана на m + 1 попередніх кроках. Такі методи називаються багатокроковими. Методи ж Ньютона і градієнтний є одно кроковими: для обчислення xn+1 вимагається знати поведінку функції і її похідних тільки в точці xn.