Задачі опуклого програмування

Означення 1. Функція задачі опуклого програмування - student2.ru , яка задана на опуклій множині задачі опуклого програмування - student2.ru , називається опуклою, якщо для довільних двох точок задачі опуклого програмування - student2.ru і задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru і довільного задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru , правильна нерівність

задачі опуклого програмування - student2.ru . задачі опуклого програмування - student2.ru

Означення 2. Функція задачі опуклого програмування - student2.ru називається строго опуклою, якщо в умові задачі опуклого програмування - student2.ru знак задачі опуклого програмування - student2.ru замінено на задачі опуклого програмування - student2.ru і задачі опуклого програмування - student2.ru .

Означення 3. Функція задачі опуклого програмування - student2.ru називається вгнутою на опуклій множині задачі опуклого програмування - student2.ru , якщо для довільних задачі опуклого програмування - student2.ru і задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru і довільного задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru , виконується:

задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru

Формули (1), (2) дають одночасно методи дослідження функції на опуклість. Але часто так досліджувати складно. У ряді випадків дослідження на опуклість спрощується.

Нехай задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru (x1,…,xn) має неперервні частинні похідні другого порядку. Розглянемо матрицю

задачі опуклого програмування - student2.ru ,

де задачі опуклого програмування - student2.ru .

Матриця задачі опуклого програмування - student2.ru називається матрицею Гессе функції задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru (x1,…,xn).

Теорема. Нехай задачі опуклого програмування - student2.ru – опукла множина і задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru . Для того, щоб функція задачі опуклого програмування - student2.ru була строго опукла в деякому околі точки задачі опуклого програмування - student2.ru необхідно і досить, щоб в цьому околі були додатні всі головні мінори її матриці задачі опуклого програмування - student2.ru . Якщо всі непарні головні мінори від’ємні, а парні – додатні, то функція задачі опуклого програмування - student2.ru строго вгнута в околі точки задачі опуклого програмування - student2.ru .

Якщо наведені умови опуклості виконуються для всіх задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru , то функція є строго опуклою скрізь на задачі опуклого програмування - student2.ru .

Приклад 15.1 Вивчити поведінку функції

задачі опуклого програмування - student2.ru в околі точки задачі опуклого програмування - student2.ru .

Розв’язання.

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru ,

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru .

задачі опуклого програмування - student2.ru – від задачі опуклого програмування - student2.ru не залежить.

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru .

Отже, задачі опуклого програмування - student2.ru строго вгнута для всіх задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru .

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

1. Якщо задачі опуклого програмування - student2.ru – опукла (вгнута) функція, задана на замкненій опуклій множині задачі опуклого програмування - student2.ru , то всякий локальний мінімум (максимум) функції задачі опуклого програмування - student2.ru на області задачі опуклого програмування - student2.ru є глобальним.

2. Якщо глобальний мінімум (максимум) досягається у двох різних точках, то він досягається у кожній точці відрізка, що з’єднує дані точки.

3. Якщо задачі опуклого програмування - student2.ru – строго опукла (вгнута) функція, то її глобальний мінімум (максимум) на опуклій множині задачі опуклого програмування - student2.ru досягається в єдиній точці.

4. Нехай задачі опуклого програмування - student2.ru – опукла (вгнута) на опуклій множині задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru – має неперервні похідні першого порядку всередині задачі опуклого програмування - student2.ru . Нехай задачі опуклого програмування - student2.ru – стаціонарна точка задачі опуклого програмування - student2.ru . Тоді задачі опуклого програмування - student2.ru досягає в точці задачі опуклого програмування - student2.ru глобального мінімуму (максимуму).

Ці результати дають змогу розв’язувати задачі нелінійного програмування у випадку коли задачі опуклого програмування - student2.ru – опукла (вгнута), множина допустимих розв’язків задачі опуклого програмування - student2.ru опукла. Якщо при цьому задачі опуклого програмування - student2.ru має неперервні частинні похідні першого порядку в задачі опуклого програмування - student2.ru , то для знаходження мінімуму (максимуму) досить знайти стаціонарну точку функції задачі опуклого програмування - student2.ru .

Розглянемо задачу опуклого програмування з обмеженнями-нерівностями виду

задачі опуклого програмування - student2.ru ; задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru ; задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru

де функції задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru – опуклі вгору.

Нехай задача (1)-(3) задовольняє умову регулярності Слейтера: існує хоч одна точка задачі опуклого програмування - student2.ru , в якій

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru .

Метод множників Лагранжа можна поширити і на задачі (1)-(3), де обмеження задані нерівностями.

Означення4. Функцією Лагранжа задачі (1)-(3) називають

задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru

Означення 5. Точка задачі опуклого програмування - student2.ru називається сідловою точкою Лагранжа задачі опуклого програмування - student2.ru , якщо для всіх

задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru

Теорема Куна-Таккера. Нехай задача (1)-(3) задовольняє умову регулярності Слейтера, функції задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru є опуклими вгору. Вектор задачі опуклого програмування - student2.ru є оптимальним розв’язком задачі задачі опуклого програмування - student2.ru - задачі опуклого програмування - student2.ru тоді і тільки тоді, коли існує такий вектор задачі опуклого програмування - student2.ru , що задачі опуклого програмування - student2.ru є сідловою точкою функції Лагранжа задачі опуклого програмування - student2.ru .

Отже, задача опуклого програмування (1)-(3) зводиться до задачі знаходження сідлових точок функції Лагранжа: треба знайти точки, в яких функція Лагранжа досягає максимуму по задачі опуклого програмування - student2.ru і мінімуму по задачі опуклого програмування - student2.ru . Ця задача називається задачею максимінімізації і може бути записана так:

задачі опуклого програмування - student2.ru .

Якщо функції задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru диференційовані, то можна довести, що необхідними і додатними умовами того, що задачі опуклого програмування - student2.ru – сідлова, є такі:

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru ; задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru . задачі опуклого програмування - student2.ru

Зауваження. Ці умови називаються локальними умовами Куна-Таккера (умовами ортогональності пари двоїстих задач лінійного програмування). По аналогії і у нелінійному програмуванні говорять про двоїсті задачі, причому одна з них задачі опуклого програмування - student2.ru ,

друга: задачі опуклого програмування - student2.ru ,

де задачі опуклого програмування - student2.ru – множина допустимих розв’язків, визначена системою (2),(3).

Використовуючи ці результати, можна розглянути задачі нелінійного програмування у найзагальнішому вигляді:

задачі опуклого програмування - student2.ru ;

задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru .

Зведемо всі обмеження до одного типу:

задачі опуклого програмування - student2.ru

Складемо функцію Лагранжа

задачі опуклого програмування - student2.ru

Знайдемо її частинні похідні:

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru ;

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru ;

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru .

У цьому випадку умови теореми Куна-Таккера формулюються так. Нехай задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru - диференційовані функції. Для того, щоб вектор задачі опуклого програмування - student2.ru був оптимальним розв’язком задачі, необхідно, щоб існував вектор задачі опуклого програмування - student2.ru такий, що виконуються умови:

1) задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru ;

2) задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru ; задачі опуклого програмування - student2.ru

3) задачі опуклого програмування - student2.ru , причому якщо задачі опуклого програмування - student2.ru , то задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru .

Якщо точка задачі опуклого програмування - student2.ru задовольняє ці умови, функція задачі опуклого програмування - student2.ru є опуклою вверх, задачі опуклого програмування - student2.ru – опуклі вверх, задачі опуклого програмування - student2.ru – опуклі вниз, то задачі опуклого програмування - student2.ru є сідловою точкою функції Лагранжа задачі опуклого програмування - student2.ru , а задачі опуклого програмування - student2.ru є оптимальним розв’язком задачі нелінійного програмування.

Приклад 15.1 Розв’язати задачу опуклого програмування

задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru

Розглянемо функцію

задачі опуклого програмування - student2.ru .

Запишемо функцію Лагранжа

задачі опуклого програмування - student2.ru

Запишемо умови Куна- Таккера

задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru

Розв’яжемо задачу методом штучного базису:

задачі опуклого програмування - student2.ru

задачі опуклого програмування - student2.ru

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 задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru
Аw1 задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru
Аw2 задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru
Аw3 задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru
m+1  

задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru .

Перевіримо умови Куна-Таккера:

задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru задачі опуклого програмування - student2.ru

0·8=0 задачі опуклого програмування - student2.ru ·0=0 0· задачі опуклого програмування - student2.ru =0 0· задачі опуклого програмування - student2.ru =0 0· задачі опуклого програмування - student2.ru =0

Отже, сідлова точка задачі опуклого програмування - student2.ru .

задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru .

Тоді оптимальний розв’язок: задачі опуклого програмування - student2.ru , задачі опуклого програмування - student2.ru .

Наши рекомендации