Донецкий национальный технический университет
Опубликован: 09.07.2007 | Доступ: свободный | Студентов: 2918 / 623 | Оценка: 4.34 / 4.12 | Длительность: 13:54:00
Специальности: Программист

Лекция 8: Задача нелинейного программирования при ограничениях – неравенствах. Седловая точка и задача нелинейного программирования. Применение теоремы Куна – Таккера для задачи выпуклого программирования

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >

3. Применение теоремы Куна – Таккера для задачи выпуклого программирования

Выше была рассмотрена задача НП в виде (1.1), (1.2), когда на переменные xj не накладывались условия неотрицательности. Тем не менее часто в задачах исследования операций приходится решать задачи, в которых переменные xj по физическим условиям должны удовлетворять условию x_j \ge 0 для всех j=\overline{1,n}.

Покажем, как основные положения изложенной теории можно распространить и на этот случай. Действительно, пусть задача НП имеет вид:

\text{минимизировать} \; f(x) ( 3.1)
при ограничениях
g_i(x) \le 0, \quad i=\overline{1,m} ; ( 3.2)
x_j \ge 0, \quad j=\overline{1,n} ( 3.3)

Введем обозначения x_j = -h_j(x). Тогда ограничения (3.3) можно записать в общем виде:

h_j(x) \le 0, \quad j=\overline{1,n} ( 3.4)

Теперь задача задана в каноническом виде (1.1), (1.2). Применим к ней теорему Куна-Таккера, для чего составим функцию Лагранжа:

L(x, \Lambda, u) = f(x) + \sum_{i=1}^m \lambda_i g_i(x) + \sum_{j=1}^n u_j h_j (x), ( 3.5)
где u_j \ge 0 - множители, связанные с ограничениями h_j(x) \le 0. Условия теоремы Куна-Таккера для (3.5) выглядят так:
\nabla L(x, \Lambda, u)= \nabla j(x) 
+ \sum_{i=1}^m \lambda_i \nabla g_i(x) 
+ \sum_{j=1}^n u_j \nabla h_j(x) = 0 ,
или
\frac{\partial L(x, \Lambda, u)}{\partial x_j} =
\frac{\partial f(x)}{\partial x_j} +
\sum_{i=1}^m \lambda_i \frac{\partial g_i(x)}{\partial x_j}
-u_j = 0; \quad j=\overline{1,n} ( 3.6)
u_j x_j = 0, \; u_j \ge 0 , ( 3.7)
\lambda_i g_i(x)=0, \; \lambda_i \ge 0. ( 3.8)

Условия (3.5), (3.6), (3.7) можно записать в следующей эквивалентной форме:

\frac{\partial L(x, \Lambda)}{\partial x_j} =
\frac{\partial f(x)}{\partial x_j} +
\sum_{i=1}^m \lambda_i \frac{\partial g_i(x)}{\partial x_j} = u_j \ge 0, ( 3.9)
\frac{\partial L(x, \Lambda)}{\partial x_j} \cdot x_j =0, \quad j=\overline{1,n} ( 3.10)

Нетрудно увидеть, что условия (3.10) представляют собой условия дополняющей нежесткости для ограничений неотрицательности.

Таким образом, найдены необходимые условия для оптимального решения задачи НП вида (3.1) - (3.3), которые можно сформулировать в следующей теореме.

Теорема 3.1. Пусть задача НП задана в виде (3.1) - (3.3), а функции f(x) и g1(x), g2(x), ..., gm(x) дифференцируемы и выпуклы (по x ). Вектор x^0 \ge 0 является оптимальным решением задачи НП тогда и только тогда, когда существует такой вектор \Lambda \ge 0, что пара (x^0 \Lambda_0) является седловой точкой функции Лагранжа, то есть выполняются такие условия:

\frac{\partial L(x^0, \Lambda^0)}{\partial x_j} \ge 0, \; j=\overline{1,n} ; ( 3.11)
\frac{\partial L(x^0, \Lambda^0)}{\partial x_j} \cdot x_j^0 = 0, \; j=\overline{1,n} ; ( 3.12)
\frac{\partial L(x^0, \Lambda^0)}{\partial \lambda_i} = g_i(x^0) \le 0, \; i=\overline{1,m} ; ( 3.13)
\frac{\partial L(x^0, \Lambda^0)}{\partial \lambda_i} \cdot \lambda_i^0 = g_i(x^0)\lambda_i^0 = 0, \; i=\overline{1,m} . ( 3.14)

Задача (3.1) - (3.3) при условиях, что все f()x, gi(x) - выпуклые функции, является задачей выпуклого программирования. Ограничения g_i(x) \le 0, i=\overline{1,m}, определяют выпуклое множество, и требуется найти минимум выпуклой функции f(x) на выпуклом множестве решений R(x)= \left\{ x: g_i(x) \le 0, \; i=\overline{1,m} , \; x \ge 0 \right\}. Рассмотрим задачу вогнутого программирования.

\text{максимизировать} f(x) ( 3.15)
при ограничениях
\left.
\begin{aligned}
g_1(x) \ge 0, \\
g_2(x) \ge 0, \\
.\;.\;.\;.\;.\;.\;.\;.\; \\
g_m(x) \ge 0,
\end{aligned}
\right\} ( 3.16)
x \ge 0. ( 3.17)
где f(x) и все функции gi(x) вогнуты по x.

Покажем ее эквивалентность задаче выпуклого программирования (3.1) - (3.3). Для этого обозначим f'(x) = -f(x), \; g'_i(x) = -g_i(x), и так как \max f \sim \min - f(x), то приходим к задаче:

\text{минимизировать} f(x) ( 3.18)
при ограничениях
g'_i(x) \le 0, \; i=\overline{1,m} ; ( 3.19)
x \ge 0 . ( 3.20)

Легко увидеть, что все функции f(x), g'_i(x) будут выпуклы по x, а поэтому задача (3.18) - (3.20) - это задача выпуклого программирования. Итак, эквивалентность задач (3.15) - (3.17) и (3.1) - (3.3) установлена.

Нетрудно получить соответствующие признаки оптимальности для задачи (3.15) - (3.17), аналогичные условиям (3.11) - (3.14).

Теорема 3.2. Пусть задача НП задана в виде (3.15) - (3.17), а функции f(x), g_i(x), i=\overline{1,m}, - дифференцируемы . Для того чтобы вектор x0 являлся оптимальным решением этой задачи, необходимо, чтобы существовал такой вектор \Lambda^0 \ge 0, для которого выполнялись бы такие условия:

\text{а)} \qquad \frac{\partial L (x^0, \Lambda^0)}{\partial x_j} 
\le 0, \; j=\overline{1,n} ( 3.21)
\text{б)} \qquad \frac{\partial L (x^0, \Lambda^0)}{\partial x_j} 
\cdot x_j^0 = 0, \; j=\overline{1,n} ( 3.22)
\text{в)} \qquad \frac{\partial L (x^0, \Lambda^0)}{\partial \lambda_i} 
= g_i(x^0) \ge 0, \; i=\overline{1,m} ( 3.23)
\text{г)} \qquad \frac{\partial L (x^0, \Lambda^0)}{\partial \lambda_i} 
\cdot \lambda_i^0 = g_i(x^0) \lambda_i^0 = 0, \; i=\overline{1,m} ( 3.24)

Если функции f(x), g_i(x) вогнуты, то условия (3.21) - (3.24) оказываются и достаточными.

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >
Максим Земан
Максим Земан
Россия, Омск, ОмГТУ, 2005
Олег Корсак
Олег Корсак
Латвия, Рига