Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет. опт. решений, пособие.doc
Скачиваний:
191
Добавлен:
22.03.2016
Размер:
5.2 Mб
Скачать
    1. Задача выпуклого программирования

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

(4.7)

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

, (4.8)

причем:

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

при любых ,

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

при любых ,

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

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

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

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

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

,

, (4.9)

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

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

(4.10)

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

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

Теорема КунаТаккера. Если задача выпуклого программирования (4.7)(4.8) удовлетворяет условию регулярности, то точка является оптимальным решением этой задачи тогда и только тогда, когда существует такая точкас неотрицательными координатами, чтоявляется седловой точкой функции Лагранжа данной задачи.

Условия КарушаКунаТаккера в дифференциальной форме:

Если функция Лагранжа является выпуклой по, вогнутой пои непрерывно дифференцируемой по всеми, то для того чтобы парабыла седловой точкой функции Лагранжа, необходимо и достаточно, чтобы выполнялись следующие условия:

,

,

,

Пример.

Найти максимум функции

на множестве допустимых решений .

Решение:

Функция является вогнутой, система ограничений содержит только линейные неравенства, поэтому задача является задачей выпуклого программирования.

Составим функцию Лагранжа

Найдём седловую точку функции Лагранжа из условий:

.

В данном случае седловой точкой является пара ,.

Ответ:

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

    1. Метод кусочно-линейной аппроксимации

Этот метод удобно использовать для некоторых задач специального вида, а именно в случае, когда целевая функция (4.5) и ограничивающие функции из (4.6) являются сепарабельными. Напомним, что функция называетсясепарабельной, если её можно представить в виде суммы функций, зависящих только от одной переменной: .

Пусть дана задача:

(4.11)

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

, (4.12)

. (4.13)

Такую задачу можно свести к ЗЛП. Для этого:

 определяем максимально возможные значения (чаще всего по соображениям здравого смысла), т.е. полагаем, что;

 разбиваем интервал на равных промежутков длиныточками:,, ...,,....,. где.

Очевидно, можно записать

(4.14)

получаем естественные ограничения

для ; (4.15)

 заменяем кусочно-линейной аппроксимацией, т.е. представляем в виде

; (4.16)

 также обходимся с ограничивающими функциями , представив их в виде

. (4.17)

Учитывая, что значения ,известны при любых, подставляем (4.144.16) в (4.114.13) и получаем задачу линейного программирования с неизвестными .

Решение исходной задачи получим, найдя искомые значения по (4.14) и вычислив по (4.11) оптимум целевой функции. Точность решения зависит отпринятых шагов разбиения. Чем мельче шаги, тем точнее решение.

Пример:

Найти максимум целевой функции:

при условиях:

.

Решение:

В целевой функции

нелинейным является только первое слагаемое , второе слагаемоелинейно.

Из вида области допустимых решений следует, что . Разбиваем этот промежуток на 8 частей точками:

и вычисляем в этих точках значения:

,

,.

По (4.14), (4.16) находим:

В итоге получаем задачу линейного программирования:

Найти максимум целевой функции с десятью неизвестными

при условиях:

,

,

,

Решив линейную задачу, найдем, что достигает максимума при

Переходя к исходной нелинейной задаче, получаем

Ответ:

,

.