Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММДО.DO_ukr_new.doc
Скачиваний:
165
Добавлен:
16.05.2015
Размер:
5.09 Mб
Скачать

Розділ 6. Нелінійне програмування. Методи умовної оптимізації

6.1 Класична задача математичного програмування

Класична задача математичного програмування має такий вигляд:

F(x1,…,xn) extrem,

gi(x1,…,xn)=bi,i=1,m, m<n.

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

а) (n = 1, m = 0);

б) (n > 1, m = 0); в) (n > 1, m 0) 

Щоб класичним методом можна було відшукати екстремальні точки, функції F(X) та g(Х) мають бути неперервними та диференційованими і мати неперервні похідні хоча б до другого порядку включно.

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

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

Якщо маємо функцію двох змінних, то достатні умови існування максимуму полягають у від’ємності матриці Гессе, тобто у, виконанні умов:

В інших випадках достатні умови мають досить складний ха­рактер.

Метод множників Лагранжа застосовується для знаходження умовно­го екстремуму, тобто екстремуму функції F(x1,…,xn) на множині точок, які є розв'язками системи рівнянь виду gi(x1,…,xn) =bi, ,m<n. Цю задачу замінимо простішою задачею знаходження відповідного екстремального значення так званої функції Лагранжа, яка має структуру

L(X,)= F(x1,…,xn)+,

де =1, m - множники Лагранжа.

Необхідні умови існування екстремуму функції Лагранжа поля­гають у виконанні рівнянь

.

Розв'язання цієї системи щодо змінних Xj та дає можливість визначити позиції стаціонарної точки. Аналіз функції F(x) у визначеній точці дає змогу з’ясувати вид екстремуму функції F(x).

Приклад 6.1. Знайти F(x)=(x1 -1)2+ x22 extrem

за умови g(x) =x12x2 +1= 0.

Розв’яжемо умову g(x) = 0 щодо х2: x2 = x12 +1.

Замінивши х2 у функції мети, дістанемо функцію однієї змінної

F(x1) = x14 + 3x12 - 2x1 + 2.

Стаціонарна точка цієї функції задовольняє умову

,

яка має розв’язок x*1= 0,313.

Оскільки друга похідна у цій точці додатна, то функціяF(x1) має мінімум. При цьому х*2 =1,098, aF(x*1, x*2) = 1.678.

Приклад 6.2. Для розглянутої вище задачі функція Лагранжа має вигляд

L(X,) = (x1-1)2 + x22 + (x12 - x2+1).

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

Розв’язок цієї системи рівнянь дає х1*= 0,313,х2*= 1,098,*= 2,196.

Виконаємо аналіз функції у точці X*= (0.313; 1,098) за допомогою матриці Гессе. Знайдемо

Оскільки тобтото матриця Гессе достатньо визначена, а тому функціяF(x) опукла і у точці X* досягає мінімуму.

6.2 Задача опуклого квадратичного програмування.

Постановка задачі опуклого програмування (ЗОП). Знайти вектор x = (x1,...,xn), що мiнi­мi­зує (максимізує) функцію F(x) = F(x1,...,xn) i задовольняє систему обмежень

Gi(x1,...,xn0, i=1,..., m, xj³0, j=1,...,n,

де функції F, Gi (i=1,...,m) — опуклі.

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

Постановка задачі опуклого квадратичного програмування. Знайти вектор x, що мiнiмiзує цільову функцію F(x) = x D xТ + c xТ i задовольняє систему обмежень:

A xТ £ bТ, x ³ 0,

де c=(c1,...,cn), x=(x1,...,xn), D=||dkl||, k,l=1,...n, A=||aij||, i=1,...,m, j=1,...,n, b=(b1,...,bm), матриця D симетрична та невід'ємно визначена.

Таким чином, для задачі опуклого квадратичного програмування (ЗОКП) цільова функція - опукло-квадратична, а обмеження - лінійні i визначають опуклу допустиму множину.

Зауважимо, що для випадку n=2, m=1 ЗОКП має вигляд:

d11 x12 + d22 x22 + 2 d12 x1 x2 + c1 x1 + c2 x2 ® min,

a11 x1 + a12 x2 £ a10, xj ³ 0, j=1,2,

до того ж D=||dkl||, k,l=1,2, d12 = d21.

Основні твердження і теореми

Означення 6.1. Множина W називається опуклою, якщо для довільних точок x,yÎW, та tÎ[0,1] виконується tx+(1–t)yÎW.

Означення 6.2. Функцiя H(x), xÎWÌEn, де W — опукла множина, зветься опуклою, якщо для довільних точок x,yÎW та tÎ[0,1] виконується нерівність H(tx+(1–t)ytH(x)+(1–t)H(y).

Теорема 6.1. Множина {x:H(x0}, де H(x) опукла, є опуклою.

Теорема 6.2. Перетин опуклих множин є опуклою множиною.

Теорема 6.3. Квадратична функція F(x)=xDxТ+cxТ опукла, якщо матриця D - невід'ємно визначена.

Теорема 6.4. Матриця D - невід'ємно визначена, якщо всі її діагональні мінори невід'ємні:

det(D(k))³0, D(k)=||dij||, i,j=1,...k.

Теорема Куна-Таккера-1. Нехай допустима область

D={xÎEn:Gi(x0,i=1,...,m,x³0}

задачі опуклого програмування задовольняє умову Слейтера: існує xÎD таке, що для всіх i=1,...,m Gi(x)<0, тобто множина D має внутрішні точки. Тоді для того, щоб вектор x* був оптимальним розв'язком задачі опуклого програмування, необхідно i достатньо, щоб існував вектор u*³0 такий, що пара (x*,u*) є сiдловою точкою функції Лагранжа:

L(x,u)= F(x)+(u1 G1(x) +...+ um Gm(x)),

x=(x1,...,xn0, u=(u1,...,um0.

Кажуть, що точка (x*,u*) є сiдловою точкою функції L(x,u), якщо для всіх x³0, u³0 мають місце нерівності

L(x*,u) £ L(x*,u*) £ L(x,u*).

Теорема Куна-Таккера-2. Для неперервно диференцiйовних функцій F(x), Gi(x), i=1,...,m, теорема Куна-Таккера може бути переформульована таким чином. Вектор x* є оптимальним розв'язком задачі опуклого програмування тоді i лише тоді, коли існує вектор u*³0 такий, що для пари (x*,u*) виконуються умови:

ÑxL(x*,u*0, ÑxL(x*,u*)(x*)Т=0, j=1,...,n,

ÑuL(x*,u*0, ÑuL(x*,u*)(u*)Т=0, i=1,...,m.

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

c+2xD+uA ³0;

(c+2xD+uA)xТ=0;

xAТ–£0;

(xAТ–b)uТ=0;

x ³ 0, u ³ 0.

Допомiжна ЗЛП для ЗОКП. Якщо ввести вектори y=(y1,...,yn0 та v=(v1,...,vm0, то вищенаведені співвідношення матимуть вигляд:

c+2xD+uA–y=0;

xAТ–b+v=0;

y xТ = 0;

v uТ = 0;

x ³ 0, u ³ 0, y ³ 0, v ³ 0.

Зауважимо, що для випадку n=2, m=1 матимемо

2 d11 x1 + 2 d12 x2 + a11 u – y1 = – c1 ,

2 d12 x1 + 2 d22 x2 + a12 u – y2 = – c2 ,

a11 x1 + a12 x2 + v = a10 ,

x1 y1 = 0, x2 y2 = y2, u v = 0,

x1, x2, u, y1, y2, v ³ 0.

Наведена вище система складається з n+m лінійних рівнянь щодо 2(m+n) невідомих xj, yj (j=1,...,n), ui, vi (i=1,...,m). Крiм того повинні виконуватись такі умови: якщо xj > 0, то yj = 0, якщо yj > 0, то xj = 0, якщо ui > 0, то vi = 0, якщо vi > 0, то ui = 0.

Отже, шуканим розв'язком системи може бути довільний невід'ємний базисний її розв'язок, але такий, що змінні xj та yj (а також ui та vi) з однаковими індексами не можуть бути водночас базисними. Для відшукання такого розв'язку можна застосувати будь-який із відомих методів ЛП, зокрема, метод штучного базису. З цією метою запишемо досліджувану систему у вигляді

2xD+uA–y = –c;

xAТ+v =b.

Не обмежуючи загальності, будемо вважати, що праві частини цієї системи невід'ємні: –c³0, b³0 (оскільки, в іншому випадку відповідні рівняння, їх праву i ліву частину, досить помножити на –1). Згiдно методу штучного базису у кожне рівняння отриманої системи, яке не містить базисної змінної, вводимо штучну змінну. Оскiльки змінні vi (i=1,...,m) можна вважати базисними, то штучні змінні z=(z1,...,zn0 вводимо тільки в перше рівняння вищенаведеної системи i розглядаємо допоміжну КЗЛП

ZiТ®min,

2xD+uA–y+z = – c;

xAТ+v=b;

x ³ 0, u ³ 0, y ³ 0, v ³ 0, z ³ 0,

де i=(1,1,...,1) — n-вимірний одиничний вектор.

Квадратичний симплекс-метод. Описана вище задача розв'язується симплекс-методом. Якщо знайдений допустимий розв’язок цієї задачі задовольняє умови доповнюючої нежорсткостi, то він визначає оптимальний розв'язок вихідної ЗОКП. Iнакше треба перейти до нового розв’язку. При цьому до базисних включається нова змінна з нульовою оцінкою.

Симплекс-метод з умовами для розв'язування допоміжної КЗЛП, побудованої на основі вихідної задачі опуклого квадратичного програмування , i називають квадратичним симплекс-методом (алгоритм звичайного симплекс-методу. Якщо в оптимальному розв'язку допоміжної КЗЛП всі штучні змінні zj (j=1,...,n) приймають нульові значення, то, відкидаючи їх, отримаємо розв’язок, частина якого відповідає змінним початкової задачі опуклого квадратичного програмування, i буде її оптимальним розв'язком. Якщо ж в оптимальному розв'язку допоміжної КЗЛП значення хоча б однієї із штучних змінних відмінне від нуля, то система не має розв'язкiв, а, отже, множина сiдлових точок функції Лагранжа початкової задачі опуклого квадратичного програмування порожня.