Россия |
Лекция 13: Решение задач нелинейного программирования с ограничениями. Геометрическая интерпретация задач нелинейного программирования
В области нелинейного программирования с ограничениями ( условная оптимизация ) методы решения задач менее разработаны по сравнению с областью нелинейного программирования без ограничений (безусловная оптимизация). Здесь встречаются большие трудности по той же причине, что искомое решение должно подчиняться дополнительным требованиям, выраженных в виде ограничений.
1. Метод штрафных функций
Имеются несколько подходов при разработке методов решения задач нелинейного программирования с ограничениями. Для учета ограничений большое распространение получил метод штрафных функций.
Основная идея метода штрафной функции состоит в преобразовании задачи минимизации функции
z=f(x)
с соответствующими ограничениями, наложенными на x, в задачу поиска минимума без ограничений функции
Z=f(x)+P(x).
Функция Р(х) является штрафной. Необходимо, чтобы при нарушении ограничений она "штрафовала" функцию Z, т.е. увеличивала ее значение. В этом случае минимум Z будет находиться внутри области ограничений. Функция Р(х), удовлетворяющая этому условию, может быть не единственной. Задачу минимизации можно сформулировать следующим образом:
![]() |
( 1.1) |
![]() |
( 1.2) |
Замечание. Ограничение вида "меньше или равно", , всегда может быть записано как
, поэтому в приведенной выше формулировке
нет потери общности.
Функцию Р(х) удобно записать следующим образом:
![]() |
( 1.3) |
![Z = \varphi(х,r)](/sites/default/files/tex_cache/33931dcf020f0c67a0b9a4736cc80687.png)
![]() |
( 1.4) |
Если x принимает допустимые значения, т.е. значения,
для которых , то Z принимает
значения, которые больше соответствующих значений f(х)
(истинной целевой функции
данной задачи), и разность можно уменьшить
за счет того, что r может быть очень малой величиной.
Но если x принимает значения, которые хотя и являются
допустимыми, но близки к границе области ограничений, и по крайней
мере одна из функций cj(x) близка к нулю,
тогда значения функции Р(х) и, следовательно, значения
функции Z станут очень велики. Таким образом, влияние
функции Р(х) состоит в создании "гребня с крутыми
краями" вдоль каждой границы области ограничений. Следовательно,
если поиск начинается из допустимой точки и осуществляется поиск
минимума функции
без ограничений, то минимум,
конечно, будет достигаться внутри допустимой
области для задачи с
ограничениями. Полагая r достаточно малой величиной,
для того чтобы влияние Р(х) было малым в точке минимума,
мы можем сделать точку минимума функции
без
ограничений совпадающей с точкой минимума функции f(х)
с ограничениями.
В общем случае невозможно аналитически определить положение
минимума функции , рассматривая ее как
обычную функцию от r. Для его определения необходимо
обратиться к численным методам.
Следует отметить, что если целевая
функция f(х)
выпукла, а функция сj(х) вогнута, то
функция , заданная уравнением (1.4),
также является выпуклой функцией в области ограничений, которая
сама является выпуклой. Следовательно,
имеет для данного значения r единственный минимум.
Если x1 и x2 -
точки, принадлежащие допустимой
области, т.е. и
для j = 1,2,...,m, то при
справедливо неравенство
![c_j (\Theta x_2 + (1 - \Theta)x) \ge \Theta c_j (x_2) + (1 - \Theta) c_j (x_1) \ge 0 ,](/sites/default/files/tex_cache/51d71dae30a75a7f6329714b39dcb8fa.png)
Таким образом, точка при
также является допустимой.
Кроме того, функция 1/сj(х) является
выпуклой для всех x, которые удовлетворяют
неравенству
. Если h(х) = 1/сj(х), то
![\nabla h (x) = \frac{-\nabla c_j (x)}{[c_j(x)]^2} .](/sites/default/files/tex_cache/37fe1196dcd9d90e0da6513c512aaef9.png)
![c(х)_{ik} = \partial^2 с_j(x)/\partial x_i \partial x_k](/sites/default/files/tex_cache/3d7b433c9078e79819b10e2fb7b04269.png)
![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} ,](/sites/default/files/tex_cache/aee2a52d17b2e494a8bb6e6edc7ce4e5.png)
где всегда рTН(х)р > 0, так как С(х) - отрицательно определенная матрица ввиду того,
что сj(х) - выпуклая функция и . Тогда матрица Н(х)
положительно определена и 1/сj(х) выпукла
во вcей области. Eсли r > 0, то функция Р(х), заданная уравнением (1.3), и функция
, заданная уравнением (1.4), также выпуклы.
Предположим, что -
минимальные точки функции
для убывающей
последовательности значений r1, r2, ..., rk, ...,
стремящейся к нулю. Тогда последовательность точек
, сходится к оптимальному
решению задачи с ограничениями (см. уравнения (1.1) и (1.2)) при
. Следовательно,
![]() |
( 1.5) |
![]() |
( 1.6) |
Полученный результат можно доказать следующим образом.
Поскольку f(х) непрерывная функция и для всех допустимых точек,
то, задав произвольное достаточно малое значение
, можно найти допустимую точку х', такую, что
![]() |
( 1.7) |
Поскольку rk - убывающая
последовательность, стремящаяся к нулю, можно найти
такое значение K, что для
справедливо неравенство
![]() |
( 1.8) |
Поскольку P(x) > 0 из определения функции , имеем
![]() |
( 1.9) |
![х^*_k](/sites/default/files/tex_cache/25137ee46c8773cb51c71460c2dcc4b0.png)
![\varphi(х, r_k)](/sites/default/files/tex_cache/a23d4f0404f5cec80840b14882145de6.png)
![]() |
( 1.10) |
Это следует из того, что, поскольку
минимизирует функцию
в любой
другой точке области x, в частности в точке
, функция будет принимать значение,
большее чем
. Поэтому
![\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}](/sites/default/files/tex_cache/714710dc354e32d1baab1cf1bfc4216a.png)
Следовательно,
![\varphi(x_K^*,r_K) > \varphi(x_K^*,r_k)](/sites/default/files/tex_cache/d6d4c04f2eee548d036ed78ab8ad247f.png)
Тогда
![]() |
( 1.11) |
Но так как значение минимизирует функцию
, то
![]() |
( 1.12) |
Следовательно, из уравнений (1.11) и (1.12) получим
![]() |
( 1.13) |
Из уравнения (1.8) следует, что
![]() |
( 1.14) |
Тогда из уравнения (1.7) следует, что
![f(x^*) \leqslant \varphi (x_k^*, r_k) < f(x^*) + \frac{\varepsilon}{2} + \frac{\varepsilon}{2} .](/sites/default/files/tex_cache/afe90c5e2a3fac58ed24710a7f5e137a.png)
![]() |
( 1.15) |
Поскольку может быть выбрано произвольно
малым, всегда можно найти такое значение k, при котором
![f(x^*) < \varphi (x_k^*,r_k) < f(x^*) + \varepsilon](/sites/default/files/tex_cache/2a00a1b39964acb06b229676e1fd5a08.png)
Таким образом, при
![]() |
( 1.16) |
Из приведенного выше доказательства следует, что при
![]() |
( 1.17) |
В качестве упражнения оставлено доказательство того, что образуют
убывающую последовательность, такую, что
![]() |
( 1.18) |
Очевидно, что если функция f(х) выпукла, а функция cj(х) при j = 1,...,n вогнута, то функция f(х) при наличии ограничении имеет единственный минимум.