Задачі опуклого програмування
Означення 1. Функція , яка задана на опуклій множині
, називається опуклою, якщо для довільних двох точок
і
і довільного
,
, правильна нерівність
.
Означення 2. Функція називається строго опуклою, якщо в умові
знак
замінено на
і
.
Означення 3. Функція називається вгнутою на опуклій множині
, якщо для довільних
і
і довільного
,
, виконується:
Формули (1), (2) дають одночасно методи дослідження функції на опуклість. Але часто так досліджувати складно. У ряді випадків дослідження на опуклість спрощується.
Нехай
(x1,…,xn) має неперервні частинні похідні другого порядку. Розглянемо матрицю
,
де .
Матриця називається матрицею Гессе функції
(x1,…,xn).
Теорема. Нехай – опукла множина і
. Для того, щоб функція
була строго опукла в деякому околі точки
необхідно і досить, щоб в цьому околі були додатні всі головні мінори її матриці
. Якщо всі непарні головні мінори від’ємні, а парні – додатні, то функція
строго вгнута в околі точки
.
Якщо наведені умови опуклості виконуються для всіх
, то функція є строго опуклою скрізь на
.
Приклад 15.1 Вивчити поведінку функції
в околі точки
.
Розв’язання.
,
,
,
,
.
– від
не залежить.
,
.
Отже, строго вгнута для всіх
,
.
Основною властивістю опуклих функцій є те, що їх локальний екстремум є одночасно і глобальним. Сформулюємо точно ці результати.
1. Якщо – опукла (вгнута) функція, задана на замкненій опуклій множині
, то всякий локальний мінімум (максимум) функції
на області
є глобальним.
2. Якщо глобальний мінімум (максимум) досягається у двох різних точках, то він досягається у кожній точці відрізка, що з’єднує дані точки.
3. Якщо – строго опукла (вгнута) функція, то її глобальний мінімум (максимум) на опуклій множині
досягається в єдиній точці.
4. Нехай – опукла (вгнута) на опуклій множині
,
– має неперервні похідні першого порядку всередині
. Нехай
– стаціонарна точка
. Тоді
досягає в точці
глобального мінімуму (максимуму).
Ці результати дають змогу розв’язувати задачі нелінійного програмування у випадку коли – опукла (вгнута), множина допустимих розв’язків
опукла. Якщо при цьому
має неперервні частинні похідні першого порядку в
, то для знаходження мінімуму (максимуму) досить знайти стаціонарну точку функції
.
Розглянемо задачу опуклого програмування з обмеженнями-нерівностями виду
;
;
,
,
де функції ,
– опуклі вгору.
Нехай задача (1)-(3) задовольняє умову регулярності Слейтера: існує хоч одна точка , в якій
,
.
Метод множників Лагранжа можна поширити і на задачі (1)-(3), де обмеження задані нерівностями.
Означення4. Функцією Лагранжа задачі (1)-(3) називають
Означення 5. Точка називається сідловою точкою Лагранжа
, якщо для всіх
Теорема Куна-Таккера. Нехай задача (1)-(3) задовольняє умову регулярності Слейтера, функції ,
є опуклими вгору. Вектор
є оптимальним розв’язком задачі
-
тоді і тільки тоді, коли існує такий вектор
, що
є сідловою точкою функції Лагранжа
.
Отже, задача опуклого програмування (1)-(3) зводиться до задачі знаходження сідлових точок функції Лагранжа: треба знайти точки, в яких функція Лагранжа досягає максимуму по і мінімуму по
. Ця задача називається задачею максимінімізації і може бути записана так:
.
Якщо функції ,
диференційовані, то можна довести, що необхідними і додатними умовами того, що
– сідлова, є такі:
,
,
,
;
,
,
,
.
Зауваження. Ці умови називаються локальними умовами Куна-Таккера (умовами ортогональності пари двоїстих задач лінійного програмування). По аналогії і у нелінійному програмуванні говорять про двоїсті задачі, причому одна з них ,
друга: ,
де – множина допустимих розв’язків, визначена системою (2),(3).
Використовуючи ці результати, можна розглянути задачі нелінійного програмування у найзагальнішому вигляді:
;
,
.
Зведемо всі обмеження до одного типу:
Складемо функцію Лагранжа
Знайдемо її частинні похідні:
,
;
,
;
,
.
У цьому випадку умови теореми Куна-Таккера формулюються так. Нехай ,
- диференційовані функції. Для того, щоб вектор
був оптимальним розв’язком задачі, необхідно, щоб існував вектор
такий, що виконуються умови:
1) ,
,
;
2) ,
;
3) , причому якщо
, то
,
.
Якщо точка задовольняє ці умови, функція
є опуклою вверх,
– опуклі вверх,
– опуклі вниз, то
є сідловою точкою функції Лагранжа
, а
є оптимальним розв’язком задачі нелінійного програмування.
Приклад 15.1 Розв’язати задачу опуклого програмування
Розглянемо функцію
.
Запишемо функцію Лагранжа
Запишемо умови Куна- Таккера
Розв’яжемо задачу методом штучного базису:
i | Б | СБ | В | -М | ||||||||||
Ах1 | Ах2 | Аλ1 | Аλ2 | Аλ3 | Аv1 | Аv2 | Аw1 | Аw2 | Аw3 | Аy1 | ||||
Аv1 | -8 | -1 | -2 | -1 | ||||||||||
Аy1 | -М | -1 | ||||||||||||
Аw1 | ||||||||||||||
Аw2 | ||||||||||||||
Аw3 | ||||||||||||||
m+2 | -2 | -8 | -1 | -1 | -2 | -1 | ||||||||
Аv1 | -8 | -1 | -2 | -1 | ||||||||||
Ах2 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ||||||||
Аw1 | ![]() | ![]() | ![]() | ![]() | ![]() | |||||||||
Аw2 | ![]() | ![]() | ![]() | ![]() | ![]() | |||||||||
Аw3 | ![]() | ![]() | ![]() | ![]() | ![]() | |||||||||
m+1 |
.
Перевіримо умови Куна-Таккера:
0·8=0 ·0=0 0·
=0 0·
=0 0·
=0
Отже, сідлова точка .
,
.
Тоді оптимальний розв’язок: ,
.