- •Міністерство освіти і науки України одеська державна академія холоду
- •Методи синтезу та оптимізації
- •Анотація
- •Іноді до системи обмежень (1.6) додають ще рівності
- •Тема: "Задача цілочисельного лінійного програмування. Метод гілок і кардонів"
- •Контрольні питання:
- •Лабораторна робота №9 Тема: " Метод найшвидшого спуску"
- •Лабораторна робота №10
- •(2 Години)
- •Лабораторна робота №11
- •(2 Години)
- •Тема: " Транспортна задача. Метод потенціалів"
- •Лабораторна робота №13 Тема: "Задача про призначення. Угорський метод"
- •Тема: "Задача опуклого квадратичного програмування. Квадратичний симплекс-метод"
- •Сєніна Тамара Іллівна, Іванова Олена Миколаївна методи синтезу та оптимізації
- •65082, Одеса, вул. Дворянська, 1/3
Тема: "Задача опуклого квадратичного програмування. Квадратичний симплекс-метод"
(2 години)
Ціль роботи: ознайомитися з задачами нелінійного програмування та методами їх розв`язання.
Теоретичні відомості:
Постановка задачі нелінійного програмування.
Знайти вектор x=(x1,...,xn), що мiнiмiзує (максимізує) функцію
F(x) = F(x1,...,xn) (14.1)
i задовольняє систему обмежень
Gi(x1,...,xn) Ri 0, i=1,...,m, (14.2)
де символ Ri замінює один із знаків £, =, ³.
Якщо хоча б одна з функцій F, Gi (i=1,...,m) є нелінійною, то вказана постановка визначає задачу нелінійного програмування (ЗНЛП).
Сукупність точок (векторів) x, що задовольняють (14.2), зветься допустимою областю (множиною) i позначається через D.
Довільна точка D зветься допустимим розв'язком (точкою, планом, вектором).
Функція F(x) співвідношення (14.1) зветься цільовою функцією.
Постановка задачі опуклого програмування.
Знайти вектор x=(x1,...,xn), що мiнiмiзує цільову функцію
F(x) = F(x1,...,xn) (14.3)
i задовольняє систему обмежень
Gi(x1,...,xn)£0, i=1,...,m, (14.4)
xj³0, j=1,...,n, (14.5)
де функції F, Gi (i=1,...,m) опуклі.
Таким чином, для задачі опуклого програмування (ЗОП) цільова функція (14.3) опукла, обмеження (14.4)(14.5) визначають опуклу допустиму множину.
Постановка задачі опуклого квадратичного програмування.
Знайти вектор x, що мiнiмiзує цільову функцію
F(x) = x D xТ + c xТ (14.6)
i задовольняє систему обмежень
A xТ £ bТ, x ³ 0, (14.7)
де c=(c1,...,cn), x=(x1,...,xn), D=||dkl||, k,l=1,...n, A=||aij||, i=1,...,m, j=1,...,n, b=(b1,...,bm), матриця D симетрична та невід'ємно визначена.
Таким чином, для задачі опуклого квадратичного програмування (ЗОКП) цільова функція (14.6) опукла квадратична, обмеження (14.7) лінійні 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.
Основні твердження.
Означення. Множина W зветься опуклою, якщо для довільних точок x,yÎW, та tÎ[0,1] виконується tx+(1t)yÎW.
Означення. Функція H(x), xÎWÌEn, де W опукла множина, зветься опуклою, якщо для довільних точок x,yÎW та tÎ[0,1] виконується нерівність H(tx+(1t)y)£tH(x)+(1t)H(y).
Теорема. Множина {x:H(x)£0}, де функція H(x) опукла, є опуклою.
Теорема. Перетин опуклих множин є опуклою множиною.
Теорема. Квадратична функція F(x)=xDxТ+cxТ опукла, якщо матриця D невід'ємно визначена.
Теорема. Матриця D невід'ємно визначена, якщо всі її діагональні мінори невід'ємні:
det(D(k))³0, D(k)=||dij||, i,j=1,...k.
Теорема Куна-Таккера-1.
Нехай допустима область D={xÎEn:Gi(x)£0,i=1,...,m,x³0} задачі опуклого програмування (18.3)(18.5) задовольняє умову Слейтера: існує 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,...,xn)³0, u=(u1,...,um)³0.
Кажуть, що точка (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* є оптимальним розв'язком задачі опуклого програмування (14.3)(14.5) тоді 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.
Для задачі (14.6)(14.7) опуклого квадратичного програмування останні співвідношення набувають вигляду
c+2xD+uA ³0, (14. 8)
(c+2xD+uA)xТ=0, (14. 9)
xAТb £0, (14.10)
(xAТb)uТ =0, (14.11)
x ³ 0, u ³ 0.
Допоміжна ЗЛП для ЗОКП.
Якщо ввести вектори y=(y1,...,yn)³0 та v=(v1,...,vm)³0, то співвідношення (14.8)(14.11) матимуть вигляд:
c + 2 x D + u A y = 0, (14.12)
x AТ b + v = 0, (14.13)
y xТ = 0, v uТ = 0, (14.14)
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.
Система (14.12)(14.13) складається з n+m лінійних рівнянь відносно 2(m+n) невідомих xj, yj (j=1,...,n), ui, vi (i=1,...,m).
Крім того, як випливає з умов (14.14), повинно бути:
якщо xj > 0, то yj = 0, (14.15)
якщо yj > 0, то xj = 0, (14.16)
якщо ui > 0, то vi = 0, (14.17)
якщо vi > 0, то ui = 0. (14.18)
Отже, шуканим розв'язком системи (14.12)(14.13) може бути довільний невід'ємний базисний її розв'язок, але такий, що змінні xj та yj (а також ui та vi) з однаковими індексами не можуть бути водночас базисними. Для відшукання такого розв'язку можна застосувати будь-який із відомих методів ЛП, зокрема, метод штучного базису. З цією метою запишемо систему (14.12)(14.13) у вигляді
2 x D + u A y = c, (14.19)
x AТ + v = b. (14.20)
Не обмежуючи загальності, будемо вважати, що праві частини цієї системи невід'ємні: c³0, b³0 (оскільки, в іншому випадку відповідні рівняння, їх праву i ліву частину, досить помножити на 1). Згідно методу штучного базису в кожне рівняння системи (14.19)(14.20), яке не містить базисної змінної, вводимо штучну змінну. Оскільки змінні vi (i=1,...,m) можна вважати базисними, то штучні змінні z=(z1,...,zn)³0 вводимо тільки в рівняння (14.19) i розглядаємо допоміжну КЗЛП
z iТ ® min, (14.21)
2 x D + u A y + z = c, (14.22)
x AТ+ v = b, (14.23)
x ³ 0, u ³ 0, y ³ 0, v ³ 0, z ³ 0, (14.24)
де i=(1,1,...,1) n-вимірний одиничний вектор.
Квадратичний симплекс-метод.
Задача (14.21)(14.24) розв'язується симплекс-методом.
Якщо знайдений ДБР цієї задачі задовольняє умови доповнюючої нежорсткостi (14.15)(14.18), то він визначає оптимальний розв'язок вихідної ЗОКП. Інакше треба перейти до нового ДБР. При цьому до базисних включається нова змінна з нульовою оцінкою.
Симплекс-метод з умовами (14.15)(14.18) для розв'язування допоміжної КЗЛП (14.21)(14.24), побудованої на основі задачі опуклого квадратичного програмування (14.6)(14.7), i називають квадратичним симплекс-методом (алгоритм звичайного симплекс-методу, а також всі зв'язані з ним означення i твердження наведені в методичних вказівках до виконання лабораторної роботи №3).
Якщо в оптимальному розв'язку допоміжної КЗЛП (14.21)(14.24) всі штучні змінні zj (j=1,...,n) приймають нульові значення, то, відкидаючи їх, отримаємо ДБР системи (14.19)(14.20). Та його частина, яка відповідає змінним початкової задачі опуклого квадратичного програмування (14.6)(14.7), i буде її оптимальним розв'язком.
Якщо ж в оптимальному розв'язку допоміжної КЗЛП (14.21)(14.24) значення хоча б однієї із штучних змінних відмінне від нуля, то система (14.19)(14.20) розв'язків не має, а, отже, множина сiдлових точок функції Лагранжа початкової задачі опуклого квадратичного програмування порожня.
Порядок виконання роботи:
Ознайомитися з теоретичними відомостями;
Вибрати варіант завдання, згідно списку підгрупи у журналі;
Написати програму в середовище Delphi;
За допомогою програми, виконати завдання, згідно варіанту;
Написати висновки до роботи.
Варіанти завдань:
Розв'язати квадратичним симплекс-методом задачі опуклого квадратичного програмування наступні задачі.
У всіх задачах виконуються умови: x1 ³ 0, x2 ³ 0.
1) |
x12 + x22 2 x1 4 x2 ® min, |
2) |
2 x12 3 x22 + 4 x1 x2 + 12 x2 ® max, |
|
2 x1 + 3 x2 £ 6; |
|
3 x1 + 4 x2 £ 12; |
3) |
2 x12 + x22 x1 x2 x1 ® min, |
4) |
x12 + 3 x22 x1 2 x2 ® min, |
|
x1 + 2 x2 £ 1; |
|
x1 + 4 x2 £ 7; |
5) |
2 x12 3 x22 + 16 x1+ 24 x2 ® max, |
6) |
x12+ x22 3 x1 8 x2 ® min, |
|||
|
2 x1 + x2 £ 4; |
|
x1 +2 x2 £ 4; |
|||
7) |
x12 x22 + x1 + 2 x2 ® max, |
8) |
x12 x22 + x1 x2 + 5 x1 + 2 x2 ® max, |
|
||
|
x1 + 2 x2 £ 16; |
|
2 x1 +3 x2 £ 15. |
|
Зміст звіту:
Титульний лист, згідно встановленого образка;
Основні теоретичні відомості;
Варіант завдання;
Код програми, яка реалізує даний метод;
Розв`язок з поясненнями;
Висновок.
Контрольні питання:
Які функції називають опуклими?
Як формулюється задача нелінійного програмування?
Алгоритм опуклого симплекс-метода.
ЛІТЕРАТУРА
Галеев Э.М. Оптимизация: теория, примеры, задачи: Учебное пособие. – М.: Едиториал УРСС, 2002, –304с.
Капустин В.Ф. Практические занятия по курсу математического программирования. Л., Узд-во Ленингр. ун-та, 1976, –192с
Карманов В.Г. Математическое программирование: Учебное пособие.-5е изд., стереотип.-М; ФИЗМАТЛИТ, 2004 – 264с.
Ковалев М.М. Дискретная математика (целочисленное программирование). Изд. 2-е, стереотипное. М.: Едиториал УРССР, 2003. – 192с.
Коршунов Ю.М. Математические основы кибернетики: Учебное пособие для вузов. – М. Энергоатомиздат, 1987. – 496с.: ил.
Лунгу К.Н. Линейное программирование. Руководство к решению задач – М.: ФИЗМАТЛИТ, 2005, –128с.
Моисеев Н.Н., Иванилов Ю.П., Столярова Е.М. Методы оптимизации –М.: Наука, 1978.-352с.
Полак Э. Численные методы оптимизации. - М.: Мир,1974.