4.4. Метод штрафных функций
Пусть дана задача нелинейного программирования
(40)
Один из подходов к решению задачи (40) основан на замене этой задачи последовательностью задач безусловной минимизации [1], [7]
(41)
где
- функции, которые с ростом
во все большей степени учитывают ограничения, определяющие допустимое множество
исходной задачи.
В методе штрафных функций функции
подбираются так, чтобы при больших
функция
из (41) мало отличалась от
при
и быстро возрастала при удалении точки
от допустимого множества
.
Определение 3. Пусть
- заданное множество. Последовательность функций
, определенных в
и обладающих свойством

называется последовательностью штрафных функций множества
.
Рассмотрим один из вариантов метода штрафных функций, применимый для решения следующей задачи нелинейного программирования [7]:
(42)
считая, что функции
,
заданы во всем пространстве
.
Положим
,
где
(43)

Равенства (43) определяют последовательность штрафных функций допустимого множества задачи (42).
При определенных условиях последовательность решений задач безусловной минимизации (41), (43) сходится к решению
задачи (42). Поэтому для достаточно больших
полагают
,
![]()
Критерием достижения требуемой точности решения задачи (42) может служить неравенство
![]()
где
- четное число.
Если в задаче (42)
- выпуклая квадратичная функция, а
- линейные функции, то точное решение вспомогательной задачи (41) можно найти из системы линейных уравнений
, определяющих стационарную точку функции
.
Пример 6. Методом штрафных функций решить следующую задачу нелинейного программирования:

Решение. Функция
- выпуклая квадратичная функция, а ограничения
- линейные функции. Поэтому решение вспомогательной задачи (41) для любого
может быть найдено из условия
. Так как функция
задана по-разному в различных областях
, то при составлении вспомогательной функции
следует сделать определенные предположения относительно расположения точки минимума
.
Шаг 1. Предположим, что в точке
безусловного минимума функции
все ограничения исходной задачи нарушаются, т.е.
.
Тогда
поэтому считаем, что
![]()
Решив систему уравнений
![]()

![]()
находим
![]()
Так как
при всех
, то предположение
не подтвердилось.
Шаг 2. Предположим, что
. Тогда
поэтому считаем, что
![]()
Отсюда находим
(44)
Легко проверить, что сделанное предположение подтверждается, т.е. равенства (44) определяют точку безусловного минимума
вспомогательной функции
. Окончательно находим
![]()