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

Лекция 13: Решение задач нелинейного программирования с ограничениями. Геометрическая интерпретация задач нелинейного программирования

< Лекция 12 || Лекция 13: 1234
Аннотация: Данная лекция рассматривает методы решения задач нелинейного программирования при наличии различного рода ограничений, в частности, метод штрафных функций, метод SUMT Фиакко и Маккормика, метод барьерных поверхностей (метод Кэрролла); выявляются их преимущества и недостатки. Кроме того, дается геометрическая интерпретация задач нелинейного программирования.

В области нелинейного программирования с ограничениями ( условная оптимизация ) методы решения задач менее разработаны по сравнению с областью нелинейного программирования без ограничений (безусловная оптимизация). Здесь встречаются большие трудности по той же причине, что искомое решение должно подчиняться дополнительным требованиям, выраженных в виде ограничений.

1. Метод штрафных функций

Имеются несколько подходов при разработке методов решения задач нелинейного программирования с ограничениями. Для учета ограничений большое распространение получил метод штрафных функций.

Основная идея метода штрафной функции состоит в преобразовании задачи минимизации функции

z=f(x)

с соответствующими ограничениями, наложенными на x, в задачу поиска минимума без ограничений функции

Z=f(x)+P(x).

Функция Р(х) является штрафной. Необходимо, чтобы при нарушении ограничений она "штрафовала" функцию Z, т.е. увеличивала ее значение. В этом случае минимум Z будет находиться внутри области ограничений. Функция Р(х), удовлетворяющая этому условию, может быть не единственной. Задачу минимизации можно сформулировать следующим образом:

\text{минимизировать функцию } z=f(x) ( 1.1)
\text{при ограничениях } c_j(x) > 0, \; j=1,2,\ldots,m. ( 1.2)

Замечание. Ограничение вида "меньше или равно", h(х) \le 0, всегда может быть записано как -h(x) \ge 0, поэтому в приведенной выше формулировке нет потери общности.

Функцию Р(х) удобно записать следующим образом:

P(x) = r \sum_{j=1}^m \frac{1}{c_j(x)} . ( 1.3)
где r - положительная величина. Тогда функция Z = \varphi(х,r) принимает вид
Z = \varphi (x, r) = f(x) + \sum_{j=1}^m \frac{1}{c_j(x)} . ( 1.4)

Если x принимает допустимые значения, т.е. значения, для которых c_j(х) \ge 0, то Z принимает значения, которые больше соответствующих значений f(х) (истинной целевой функции данной задачи), и разность можно уменьшить за счет того, что r может быть очень малой величиной. Но если x принимает значения, которые хотя и являются допустимыми, но близки к границе области ограничений, и по крайней мере одна из функций cj(x) близка к нулю, тогда значения функции Р(х) и, следовательно, значения функции Z станут очень велики. Таким образом, влияние функции Р(х) состоит в создании "гребня с крутыми краями" вдоль каждой границы области ограничений. Следовательно, если поиск начинается из допустимой точки и осуществляется поиск минимума функции \varphi(х,r) без ограничений, то минимум, конечно, будет достигаться внутри допустимой области для задачи с ограничениями. Полагая r достаточно малой величиной, для того чтобы влияние Р(х) было малым в точке минимума, мы можем сделать точку минимума функции \varphi(х,r) без ограничений совпадающей с точкой минимума функции f(х) с ограничениями.

В общем случае невозможно аналитически определить положение минимума функции \varphi (x,r), рассматривая ее как обычную функцию от r. Для его определения необходимо обратиться к численным методам.

Следует отметить, что если целевая функция f(х) выпукла, а функция сj(х) вогнута, то функция \varphi (х, r), заданная уравнением (1.4), также является выпуклой функцией в области ограничений, которая сама является выпуклой. Следовательно, \varphi (х, r) имеет для данного значения r единственный минимум.

Если x1 и x2 - точки, принадлежащие допустимой области, т.е. с_j(х_1) \ge 0 и c_j(х_2) \ge 0 для j = 1,2,...,m, то при 0 < \Theta < 1 справедливо неравенство

c_j (\Theta x_2 + (1 - \Theta)x) \ge \Theta c_j (x_2) + (1 - \Theta) c_j (x_1) \ge 0 ,
так как функция сj(х) выпукла. Следовательно, допустимая область является выпуклой.

Таким образом, точка х_2 + (1 - \Theta) x_1 при 0 < \Theta < 1 также является допустимой. Кроме того, функция 1/сj(х) является выпуклой для всех x, которые удовлетворяют неравенству c_j(х) \ge 0. Если h(х) = 1/сj(х), то

\nabla h (x) = \frac{-\nabla c_j (x)}{[c_j(x)]^2} .
где c(х)_{ik} = \partial^2 с_j(x)/\partial x_i \partial x_k есть гессиан функции сj(х). Тогда, если p - произвольный вектор, то справедливо равенство
p^T \mathbf{H} (x) p = 
-\frac{p^T C(x)p}{[c_j (x)]^2} +
 \frac{2[p^T \nabla c_j (x)]^2}{[c_j (x)]^3} ,

где всегда рTН(х)р > 0, так как С(х) - отрицательно определенная матрица ввиду того, что сj(х) - выпуклая функция и c_j(х) \ge 0. Тогда матрица Н(х) положительно определена и 1/сj(х) выпукла во вcей области. Eсли r > 0, то функция Р(х), заданная уравнением (1.3), и функция \varphi (х, r), заданная уравнением (1.4), также выпуклы.

Предположим, что x^*_1, х^*_2, \ldots , х^*_k - минимальные точки функции \varphi (х, r) для убывающей последовательности значений r1, r2, ..., rk, ..., стремящейся к нулю. Тогда последовательность точек x^*_1, х^*_2, \ldots , х^*_k, сходится к оптимальному решению задачи с ограничениями (см. уравнения (1.1) и (1.2)) при r_k \rightarrow 0. Следовательно,

\lim x_k^* = x^* ( 1.5)
и
\lim_{r_k \rightarrow 0} [\min \varphi (x, r_k)] = f(x^*) ( 1.6)

Полученный результат можно доказать следующим образом. Поскольку f(х) непрерывная функция и f(х^*) \le f(х) для всех допустимых точек, то, задав произвольное достаточно малое значение \varepsilon, можно найти допустимую точку х', такую, что

f(x') < f(x^*) + \varepsilon / 2 . ( 1.7)

Поскольку rk - убывающая последовательность, стремящаяся к нулю, можно найти такое значение K, что для k \ge K справедливо неравенство

r_k \leqslant 
\left\{ \frac{\varepsilon}{2m} \min_j 
\left[ \frac{1}{c_j (x')}
\right] \right\}. ( 1.8)

Поскольку P(x) > 0 из определения функции \varphi(x, r), имеем

f(x^*) \leqslant \min \varphi (x, r_k) = \varphi (x_k^*, r_k) . ( 1.9)
где х^*_k - минимальная точка функции \varphi(х, r_k) для задачи без ограничений. Кроме того, если k > К, то rk < rK и справедливо неравенство
\varphi(x_k^*, r_k) \leqslant \varphi(x_K^*, r_k). ( 1.10)

Это следует из того, что, поскольку х^*_k минимизирует функцию \varphi(х, r_k) в любой другой точке области x, в частности в точке х^*_k, функция будет принимать значение, большее чем \varphi(х_k^*, r_k). Поэтому

\begin{aligned}
\varphi(x_K^*, r_K) & = f(x_K^*) + r_K \sum_{j=1}^m \frac{1}{c_j(x_K^*)} > \\
& > f(x_K^*) + r_k \sum_{j=1}^m \frac{c_j}{x_K^*} ,
\end{aligned}
поскольку rk<rK.

Следовательно,

\varphi(x_K^*,r_K) > \varphi(x_K^*,r_k)

Тогда

f(x^*) \leqslant \varphi(x_k^*,r_k) \leqslant \varphi(x_K^*,r_k) < \varphi(x_K^*,r_K). ( 1.11)

Но так как значение x^*_K минимизирует функцию \varphi(x, r_K), то

\varphi(x_K^*,r_K) \leqslant \varphi(x',r_K) =
f(x') + r_K \sum_{j=1}^m \frac{1}{c_j(x')} . ( 1.12)

Следовательно, из уравнений (1.11) и (1.12) получим

f(x^*) \leqslant \varphi (x_k^*,r_k) \leqslant f(x') +r_K \sum_{j=1}^m \frac{1}{c_j(x')} ( 1.13)

Из уравнения (1.8) следует, что

f(x') + r_K \sum_{j=1}^m \frac{1}{c_j(x')} \leqslant f(x') + \frac{\varepsilon}{2} . ( 1.14)

Тогда из уравнения (1.7) следует, что

f(x^*) \leqslant \varphi (x_k^*, r_k) < f(x^*) + \frac{\varepsilon}{2} + \frac{\varepsilon}{2} .
и
\varphi (x_k^*, t_k) - f(x^*) < \varepsilon . ( 1.15)

Поскольку \varepsilon может быть выбрано произвольно малым, всегда можно найти такое значение k, при котором

f(x^*) < \varphi (x_k^*,r_k) < f(x^*) + \varepsilon

Таким образом, при k \rightarrow \infty \; (r_k \rightarrow 0)

\lim_{r_k \rightarrow 0} \varphi(x_k^*,r_k)=f(x^*). ( 1.16)

Из приведенного выше доказательства следует, что при r_k \rightarrow 0

f(x_k^*) \rightarrow f(x^*) \quad \text{и} \quad r_k \sum_{j=1}^m \frac{1}{c_j(x_k^*)} \rightarrow 0. ( 1.17)

В качестве упражнения оставлено доказательство того, что f(х^*_1), f(х^*_2), \ldots, f(x^*_3) образуют убывающую последовательность, такую, что

f(x_{k+1}^*) < f(x_k^*). ( 1.18)

Очевидно, что если функция f(х) выпукла, а функция cj(х) при j = 1,...,n вогнута, то функция f(х) при наличии ограничении имеет единственный минимум.

< Лекция 12 || Лекция 13: 1234