EssayAI
Блог
Блог
Математика и алгоритмы

Метод штрафных функций: оптимизация с ограничениями

10 мая 2026Время чтения: 7 минут
#метод штрафных функций#оптимизация#ограничения#барьерные функции#безусловная минимизация
Метод штрафных функций: оптимизация с ограничениями

Большинство реальных задач оптимизации формулируется с ограничениями: минимизировать расход материала, но не выйти за пределы прочности; максимизировать прибыль, но уложиться в бюджет. Прямые методы безусловной минимизации (градиентный спуск, метод Ньютона) такие условия учитывать не умеют. Метод штрафных функций решает эту проблему элегантно: он «вшивает» ограничения в саму целевую функцию через добавочное слагаемое-штраф, которое резко растёт при их нарушении. В результате задача с ограничениями сводится к последовательности обычных безусловных задач, для которых уже есть весь стандартный арсенал. Разберём идею, виды штрафов и типичную пошаговую схему.

В чём идея метода штрафных функций

Пусть требуется минимизировать f(x)f(x) при ограничениях gi(x)0g_i(x) \le 0, i=1,,mi = 1, \dots, m и hj(x)=0h_j(x) = 0, j=1,,pj = 1, \dots, p. Метод штрафных функций строит вспомогательную функцию

P(x,r)=f(x)+rΦ(x),P(x, r) = f(x) + r \cdot \Phi(x),

где Φ(x)\Phi(x) - штрафная функция, измеряющая степень нарушения ограничений, а r>0r > 0 - коэффициент штрафа. Идея в том, что Φ(x)\Phi(x) равна нулю (или близка к нему) в допустимой области и положительна вне её. Минимизируя P(x,r)P(x, r) как безусловную задачу, мы заставляем алгоритм «не вылезать» за границы: любое нарушение немедленно дорого обходится. Меняя rr по определённому правилу и решая серию безусловных задач, мы получаем последовательность точек x(r)x(r), сходящуюся к решению исходной задачи с ограничениями.

Ключевое достоинство метода - универсальность: он не требует выпуклости, линейности или дифференцируемости ограничений в каком-то особом виде, а опирается на надёжные методы безусловной оптимизации. Прежде чем вручную подбирать штраф, попробуйте собрать корректную постановку через инструмент ниже - он сформулирует вспомогательную функцию и выберет подходящую схему.

Внешний штраф: подход извне допустимой области

Метод внешних штрафных функций (exterior penalty) допускает движение по недопустимым точкам и наказывает за выход за границы. Классическая квадратичная штрафная функция выглядит так:

Φ(x)=i=1m(max{0,gi(x)})2+j=1phj(x)2.\Phi(x) = \sum_{i=1}^{m} \big(\max\{0,\, g_i(x)\}\big)^2 + \sum_{j=1}^{p} h_j(x)^2.

Для неравенств штраф включается только при gi(x)>0g_i(x) > 0 (ограничение нарушено), для равенств - при любом отклонении hj(x)0h_j(x) \ne 0. Вспомогательная задача - минимизировать P(x,r)=f(x)+rΦ(x)P(x, r) = f(x) + r\,\Phi(x) при возрастающей последовательности rkr_k \to \infty.

Чем больше rkr_k, тем сильнее штраф и тем ближе минимум PP к истинному решению. В пределе rkr_k \to \infty точки x(rk)x(r_k) сходятся к оптимуму исходной задачи. Важная особенность: на конечных итерациях приближение лежит, как правило, вне допустимой области (ограничения слегка нарушены) - отсюда и название «внешний». Это допустимо, если небольшое нарушение ограничений в процессе расчёта не критично.

Внутренний (барьерный) штраф: движение изнутри

Метод внутренних штрафных функций, или барьерных функций (interior / barrier), наоборот, держит траекторию строго внутри допустимой области и ставит «стену» на границе. Применяется только к ограничениям-неравенствам gi(x)0g_i(x) \le 0. Две классические барьерные функции:

B(x)=i=1m1gi(x)(обратная),B(x)=i=1mln(gi(x))(логарифмическая).B(x) = -\sum_{i=1}^{m} \frac{1}{g_i(x)} \quad \text{(обратная)}, \qquad B(x) = -\sum_{i=1}^{m} \ln\big(-g_i(x)\big) \quad \text{(логарифмическая)}.

Вспомогательная функция здесь P(x,r)=f(x)+rB(x)P(x, r) = f(x) + r\, B(x), причём параметр r>0r > 0 теперь убывает: rk0r_k \to 0. При приближении xx к границе (gi(x)0g_i(x) \to 0^-) барьер B(x)+B(x) \to +\infty, не давая точке покинуть область. По мере уменьшения rkr_k барьер становится всё «тоньше», и минимум приближается к границе, если оптимум лежит именно там. Логарифмический барьер - основа методов внутренней точки, на которых построены современные solver-ы линейного и выпуклого программирования.

Выбор коэффициента штрафа и условия сходимости

Коэффициент штрафа нельзя ставить сразу очень большим (для внешнего) или очень малым (для барьерного): это делает вспомогательную функцию плохо обусловленной - её линии уровня вытягиваются в узкие овраги, и безусловный метод сходится медленно или «застревает». Поэтому работает итеративная схема с обновлением параметра:

  • внешний штраф: rk+1=crkr_{k+1} = c\, r_k, c>1c > 1 (типично c=10c = 10);
  • барьерный штраф: rk+1=rk/cr_{k+1} = r_k / c, c>1c > 1.

На каждом шаге решается безусловная задача, а её решение x(rk)x(r_k) берётся стартовой точкой для следующего шага - это резко ускоряет сходимость (тёплый старт). Останов - когда нарушение ограничений (для внешнего) либо изменение точки между шагами стало меньше заданного допуска ε\varepsilon. Для выпуклых задач последовательность x(rk)x(r_k) гарантированно сходится к глобальному оптимуму; в невыпуклом случае - к локальному, как и у любого метода спуска.

Связь с множителями Лагранжа

Метод штрафов тесно связан с классической теорией условного экстремума. Если в задаче только равенства hj(x)=0h_j(x) = 0 и взять квадратичный штраф, то условие стационарности P(x,r)=0\nabla P(x, r) = 0 даёт

f(x)+j=1p2rhj(x)hj(x)=0,\nabla f(x) + \sum_{j=1}^{p} 2 r\, h_j(x)\, \nabla h_j(x) = 0,

и величина λj=2rhj(x)\lambda_j = 2 r\, h_j(x) в пределе rr \to \infty стремится к множителю Лагранжа из условий стационарности функции Лагранжа. То есть штраф неявно восстанавливает множители Лагранжа - об этой теории подробнее в статье про условный экстремум и множители Лагранжа. Развитие этой связи - метод модифицированной функции Лагранжа (augmented Lagrangian), который добавляет штраф к лагранжиану и не требует устремлять rr к бесконечности, избегая плохой обусловленности.

Пошаговая схема решения

Для задачи minf(x)\min f(x) при gi(x)0g_i(x) \le 0 методом внешних штрафов:

  1. Задать стартовую точку x0x_0, начальный коэффициент r0r_0 (например r0=1r_0 = 1), множитель c=10c = 10 и допуск ε\varepsilon.
  2. Сформировать P(x,rk)=f(x)+rki(max{0,gi(x)})2P(x, r_k) = f(x) + r_k \sum_i (\max\{0, g_i(x)\})^2.
  3. Решить безусловную задачу minxP(x,rk)\min_x P(x, r_k) любым подходящим методом (градиентный спуск, Ньютон), стартуя с xk1x_{k-1}; получить xkx_k.
  4. Проверить останов: если суммарное нарушение ограничений <ε< \varepsilon - стоп, xkx_k - приближённое решение.
  5. Иначе увеличить штраф rk+1=crkr_{k+1} = c\, r_k, перейти к шагу 2.

Для барьерного метода схема та же, но x0x_0 обязана быть строго внутри допустимой области, а rr на шаге 5 уменьшается: rk+1=rk/cr_{k+1} = r_k / c.

Частые ошибки

  • Сразу берут огромный rr. Вспомогательная функция становится крайне плохо обусловленной, и безусловный метод не сходится. Нужно наращивать rr постепенно, переиспользуя предыдущую точку.
  • Барьерный метод стартуют из недопустимой точки. Логарифм или дробь от gi(x)0g_i(x) \ge 0 не определены - алгоритм сразу падает. Для барьеров стартовая точка обязана быть строго внутри области.
  • Путают направление изменения параметра. Для внешнего штрафа rr растёт, для барьерного - убывает. Перепутав, получают расходимость.
  • Забывают про max{0,gi(x)}\max\{0, g_i(x)\}. Если в штраф для неравенства подставить просто gi(x)2g_i(x)^2, метод начнёт «наказывать» и за нахождение глубоко внутри допустимой области, искажая решение.
  • Ожидают точного попадания в допустимую область. У внешнего метода приближение почти всегда чуть нарушает ограничения - это нормально, контролируется допуском ε\varepsilon.

FAQ

Чем внешний штраф отличается от внутреннего? Внешний (квадратичный) допускает недопустимые точки и наказывает за выход за границу, коэффициент rr растёт к бесконечности. Внутренний (барьерный) держит траекторию строго внутри области, ставя бесконечную «стену» на границе, коэффициент rr убывает к нулю. Барьерный работает только с неравенствами.

Гарантирует ли метод глобальный минимум? Только для выпуклых задач (выпуклая ff и выпуклая допустимая область). В невыпуклом случае метод штрафов, как любой метод спуска, находит локальный оптимум, зависящий от стартовой точки.

Зачем нужен метод модифицированной функции Лагранжа, если есть штрафы? Чистый штраф требует rr \to \infty, что порождает плохую обусловленность. Augmented Lagrangian добавляет к штрафу слагаемое с оценками множителей Лагранжа и сходится при конечных rr, поэтому численно устойчивее.

Коротко

Метод штрафных функций превращает задачу оптимизации с ограничениями в последовательность безусловных задач, добавляя к цели штрафное слагаемое rΦ(x)r\,\Phi(x). Внешний (квадратичный) штраф наказывает за нарушение ограничений и требует роста rr \to \infty; внутренний (барьерный, логарифмический) удерживает точку внутри допустимой области при r0r \to 0. Коэффициент штрафа меняют постепенно, переиспользуя предыдущее решение как тёплый старт, а сама конструкция в пределе восстанавливает множители Лагранжа, связывая метод с классической теорией условного экстремума.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также