Модели, методи и алгоритми на нелинейното програмиране



страница1/3
Дата13.10.2018
Размер268.41 Kb.
#84859
  1   2   3

МОДЕЛИ, МЕТОДИ И АЛГОРИТМИ НА НЕЛИНЕЙНОТО ПРОГРАМИРАНЕ


За разлика от симплекс-метода на ЛП, не съществува универсален метод или алгоритъм, който може да решава ефективно всякакви специфични задачи на НЛП. Съществуват обаче ефективни алгоритми за важни специални класове нелинейни задачи, които са създадени на базата на определени предположения за вида и свойствата на целевата функция и ограниченията. По-нататък се представят някои важни класове нелинейни задачи и избрани работоспособни методи и алгоритми за безусловна и условна оптимизация.


10.1. МЕТОДИ ЗА БЕЗУСЛОВНА ОПТИМИЗАЦИЯ
Разглеждат се представители на две основни групи: методи на пряко търсене и градиентни методи. Алгоритмите от двете групи се използуват самостоятелно или като елементи на по-сложни процедури за условна оптимизация.
10.1.1. МЕТОД НА ПРЯКОТО ЕДНОМЕРНО ТЪРСЕНЕ
Методите на пряко търсене са разработени основно за функции от една променлива. Те се използуват и като елементи на алгоритми за функции от няколко променливи. Предполага се, че оптимизираната функция е строго унимодална върху интервала на търсене.
Основната идея на тези методи се състои в идентифицирането на начален интервал - интервал на неопределеност, който съдържа точката на екстремума x* и в последователно свиване на този интервал, докато точката х* бъде определена с желана точност. Широко известии са ме-тодът на дихотомното търсене и методът на средната точка. Тук се разглежда първият от тях, като се предполага задача за максимизация.

Нека

началният

интервал

е




зада-




ден от а < х < b. Определят се две




точки

x1

и

х2

симетрично

спрямо а




и

b,

така

че

интервалите а

< х < х2




и

x1

< х

< b

се припокриват

с част




е - фиг.10.1. От предположението за




строга унимодалност

следват

следни-




те очевидни случаи, конто

обоснова-







фиг 10..
















ват

правилата за намаляване на на-

чалния интервал: а) f(x1) > f(x2), точката х* е


между а и х2, а < х* < х2; б)f(x1) < f(x2 ), точката х* е между x1 и b, x1 < х* < b; в) f(x1) = f(x2), точката х* е между x1 и х 2, x1< х* < х2. На всяка стъпка се
отстранява интервалът, който не съдържа х*, така че накрая интервалът на неопределеност може да се намали до е. Точките x1 и х2 се определят по следния начин. Нека хл и хд са лявата и дясната граница на текущия интервал, като в началото хл = а , а хд = 6. Припокриващите се интервали хл < х < х2 и x1 < х < хд са построени така, че x 1 — хл = хд — х2 и е = х2 - x1. Оттук


Пример 10.1.



Нека = 0,002.

На първата стъпка хл = 0, хд = 4. Резултатите от пресмятанията са представени в табл.10.1.

Означенията л (д) в таблицата показват, че на следващата стъпка хл (хд)

е равно на х1 (х2).


На последната стъпка хл = 2,9985 и хд = 3,0043. Следователно точката х* е в интервала 2,9985 < х * < 3,0043. Като оценка на х* често се приема средната точка= 3,0014. Тази стойност е твърде близка до стойността на точния оптимум, която е х* = 3,0.
10.1.2. ГРАДИЕНТНИ МЕТОДИ
Предполага се, че функцията /(X) е два пъти непрекъснато ди-ференцируема по компонентите на X и че е вдлъбната или изпъкнала върху областта на търсене на екстремум, съответно при задачите за максимизация или минимизация.
Разглежданите методи са итерационни. На всяка итерация от те-кущата точка X се извършва стъпка в посоката на най-бързото на-растване (намаляване) на /(X), с определена големина. Тъй като тази


















Таблица 10.1




хл

Хд

x1

Х2

f(x1)

f(x1)


































0

4

1,9990л

2,0010

7,9960

8,0040




1,9990

4

2,9985л

3,0005

11,9940

12,9999




2,9985

4

3,4982

3,5002д

11,8754

11,8749




2,9985

3,5002

3,2484

3,2504д

11,9379

11,9374




2,9985

3,2504

3,1234

3,1254д

11,9691

11,9686




2,9985

3,1234

3,0600

3,0619д

11,9850

11,9845




2,9985

3,0619

3,0292

3,0312д

11,9927

11,9922




2,9985

3,0312

3,0139

3,0159д

11,9965

11,9960




2,9985

3,0159

3,0061

3,0082д

11,9984

11,9979




2,9985

3,0082

3,0023

3,0043д

11,9994

11,9989




2,9985

3,0043




































посока се определя от вектора на градиента (антиградиента), методи-те се наричат градиентни методи. Сред тях широко приложение има методьт на най- стрьмното изкачване (спускане), при който големина-та на стъпката се избира така, че да се максимизира изменението на функцията f(X). Именно този метод се представя по-нататък.


Нека f(X) се максимизира и Х0 е началната точка, от която за-почва търсенето. Акоf(X ) означава градиента в точката Xk, после-дователността от точки се определя от рекурентното съотношение



където стойността

на параметъра

задава големината на стъпката и е

избрана така, че да се максимизира функцията от една променлива

За определяне на оптималната стойност

се използува метод за едно-мерно

търсене, като се предполага, че

е унимодална функция.

В задача за минимизация знакът плюс в дясната страна на реку-

рентното съотношение за Xk+1 се заменя с минус.




Изчисленията се прекратяват, когато се постигне Xk+1 Xk , т.е. когато

Последното условие е еквивалентно на

f(Xk)

0, тъй като

винаги, освен в случая когато началната точка X0 е

точка на екстремум.










Пример 10.2. Да се максимизира функцията







f(X) = 2х1 + 3х2 - 3х1

2 - 3x1x2 - 3х2

2

От необходимите условия лесно се намират х* 1 = 1/90,1111 x*2 = 4/9 0,4444. Тъй като хесиановата матрица Н < 0, X* е точка на максимум.


За да се реши задачата по метода на най-стръмното изкачване, се задава X0 = [1,1] и се записва градиентът


Итерация 1

Следователно


Итерация 2

Фиг. 10.2.



Итерация 3



След заместване в израза заот условието = 0 се определи 0.19707, на което съответствува




Итерация 4

След извършване на изчисленията по схемата от предишните итерации се определят:



Итерация 5


/(X4)[-0,0648,0,0178].
Тъй катоf(X4)[0,0], изчисленията може да се прекратят. Прибли-зителното оптимално решение е
X4[0,1275,0,4333], X4X*.
Процесът на търсене е показан на фиг.10.2.

10.2. МЕТОДИ ЗА УСЛОВНА ОПТИМИЗАЦИЯ


Методите за условна оптимизация се класифицират на непреки и преки методи. Непреките методи използуват преобразуване на начал-ната нелинейна задача в една или няколко линейни задачи, конто се ре-шават като задачи на ЛП. От този клас тук се разглеждат методите на сепарабелното,

квадратичното и геометричното програмиране.


При преките методи нелинейната условна задача се решава непо-средствено, като се преобразува в безусловна задача и се използуват мо-дификации на градиентните методи. Към този клас се отнасят ал-горитъмът на Франк- Уолф и методът на последователната безусловна оптимизация,

конто са представени по-нататък.


Предполага се, че целевата функция f(X) и ограниченията g(X) са непрекъснато диференцируеми, като ограниченията g(X) < 0 обхващат и условията X > 0.
10.2.1. СЕПАРАБЕЛНО ПРОГРАМИРАНЕ
Сепарабелното програмиране е специален случай на НЛП, при конто целевата функция и ограниченията са сепарабелни функции. Една функция f ( x 1 , x 1 , . . . , x n ) e сепарабелна, ако може да бъде представена като сума от п функции от една променлива f1 (x 1 ), f2 (x 2 ), ... , fn(x n )

Именно поради това, че функцията f ( x 1 , x 2 , ... , х п) е разделена на части fj, (xj), всяка от които включва само едно хj и конто се сумират, тази функция се нарича сепарабелна.


Най-прост пример на сепарабелна функция е целевата функция в за.дачата на ЛП. Някои нелинейни функции, които не са сепарабелни, се преобразуват в такива чрез подходяща субституция. Например за-дачата за максимизиране на J = x1x2,x3 чрез полагането и = x1x2x3 се преобразува в следната задача:
Да се максимизира J = и при ограниченията
lп и = ln x1+ ln х2 + lпх3, x 1 , х2,х3 > 0.
Ако променливите x 1 ,х 2 и х3 могат да имат неотрицателни стойности (x 1 > 0, i = 1,2,3), се дефинират нови строго положителни променливи

откъдето



Полагат се и1 = z1z2z3, и2 = z1z2, и3 = z1z3, u4 = z2z3 и началната задача се преобразува в еквивалентната сепарабелната задача




Да се максимизира ,

при ограниченията
ln u1 = ln z1 + ln z2 + ln z3 ln u2 = ln z1 + ln z2 ln u3 = ln z1 + ln z3 ln u4 = lnz 2 + ln z3.
По подобен начин могат да бъдат преобразувани функциите

cx1+x2+x3 и X1x2xЗ


Решаването на сепарабелни задачи се основава на апроксимира-нето на функциите от една променлива fj(xj) с линейни по участъци функции и използуването на метод на СЦП или на симплекс-метода на ЛП. Нека сепарабелната задача е от вида

Да се максимизира (минимизира)


при ограниченията

Апроксимацията на функцията fi(хi) (или на gji(хi)) върху интервала [аi,bi] се извършва по следния начин. Задават се L, точки на прекъсване xi1 <


хi2 < ... < xiLi, така че х i1 = xi, и xiLi = bi, конто определят Li - 1 линейни участъци на fi(xt) (или на gji(хi)). На фиг.10.3 е показан случай с Li = 5. Тогава

коя и да е точка xi [аi, bi] може да се представи във вида




където е тегловният коефициент на k-та точка на прекъсване на i-та променлива и

ФИГ. 10.3


При това, тъй като точката xi е в един от подинтервалите на [аi,bi] или

на грацццата на такъв подинтервал, не повече от два коефициента

могат

да бъдат положителни, и ако са два, те са винаги съседни,

например

или

На фиг.10.З е показана стойността xi, за която







Очевидно за

точката




а всички останали

са нулеви.




Функцията fi(xi) се апроксимира по подобен начин




където за стойностите на са справедливи току-що изложените огра-ничения. Например линейният сегмент над интервала [xi3, xi4] на




фиг.10.3 се задава от



където






Сподели с приятели:
  1   2   3




©obuch.info 2024
отнасят до администрацията

    Начална страница