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

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

задача выпуклого программирования - student2.ru (4.7)

на множестве допустимых решений, заданных ограничениями

задача выпуклого программирования - student2.ru , задача выпуклого программирования - student2.ru (4.8)

причем:

1) целевая функция задача выпуклого программирования - student2.ru является дифференцируемой и вогнутой, т.е. для нее выполняется условие:

задача выпуклого программирования - student2.ru при любых задача выпуклого программирования - student2.ru ,

2) а левые части всех ограничений задача выпуклого программирования - student2.ru — дифференцируемыми и выпуклыми функциями, т.е. для них выполняются условия:

задача выпуклого программирования - student2.ru при любых задача выпуклого программирования - student2.ru ,

Тогда задача (4.7)-(4.8) называется задачей выпуклого программирования.

Любая линейная функция одновременно удовлетворяет условиям и выпуклости, и вогнутости; т.е. её можно считать как выпуклой, так и вогнутой. Это позволяет считать линейные задачи частным случаем задач выпуклого программирования.

Если для задач математического программирования в общем случае пока отсутствует стройная теория существования и устойчивости решения, то для задач выпуклого программирования такая теория есть.

Введём три определения:

1). Функцией Лагранжа задачи выпуклого программирования (4.7)-(4.8) называется функция:

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

задача выпуклого программирования - student2.ru , (4.9)

2). Говорят, что задача выпуклого программирования (4.7)-(4.8) удовлетворяет условию регулярности, если существует хотя бы одна внутренняя точка множества допустимых решений задача выпуклого программирования - student2.ru , определяемого строгими неравенствами, полученными из (4.8) (т.е. задача выпуклого программирования - student2.ru ).

3). Точка задача выпуклого программирования - student2.ru называется седловой точкой функции задача выпуклого программирования - student2.ru , если для всех задача выпуклого программирования - student2.ru выполнено:

задача выпуклого программирования - student2.ru (4.10)

Если целевая функция (убрать)

В теории нелинейного программирования центральное место занимает теорема Куна-Таккера, обобщающая классический метод множителей Лагранжа на случай, когда ограничения нелинейной задачи наряду с ограничениями в виде равенств содержат также и ограничения в виде неравенств.

Теорема Куна-Таккера. Если задача выпуклого программирования (4.7)-(4.8) удовлетворяет условию регулярности, то точка задача выпуклого программирования - 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

В данном случае седловой точкой является пара задача выпуклого программирования - student2.ru , задача выпуклого программирования - student2.ru .

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

Теорема Куна-Таккера обосновывает сведение задачи выпуклого программирования к задаче поиска седловой точки функции Лагранжа. Чтобы такое сведение имело практический смысл, необходимо, чтобы получившаяся задача была в чём-то проще исходной. Это происходит не всегда, поэтому разработан ряд прямых методов поиска решения нелинейной задачи (4.5), (4.6). Рассмотрим некоторые из них.

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