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) при возрастающей последовательности rk→∞r_k \to \infty.

Чем больше rkr_k, тем сильнее штраф и тем ближе минимум PP к истинному решению. В пределе rk→∞r_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)+r B(x)P(x, r) = f(x) + r\, B(x), причём параметр r>0r > 0 теперь убывает: rk→0r_k \to 0. При приближении xx к границе (gi(x)→0−g_i(x) \to 0^-) барьер B(x)→+∞B(x) \to +\infty, не давая точке покинуть область. По мере уменьшения rkr_k барьер становится всё «тоньше», и минимум приближается к границе, если оптимум лежит именно там. Логарифмический барьер - основа методов внутренней точки, на которых построены современные solver-ы линейного и выпуклого программирования.

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

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

  • внешний штраф: rk+1=c rkr_{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=1p2r hj(x) ∇hj(x)=0,\nabla f(x) + \sum_{j=1}^{p} 2 r\, h_j(x)\, \nabla h_j(x) = 0,

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

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

Для задачи min⁡f(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)+rk∑i(max⁡{0,gi(x)})2P(x, r_k) = f(x) + r_k \sum_i (\max\{0, g_i(x)\})^2.
  3. Решить безусловную задачу min⁡xP(x,rk)\min_x P(x, r_k) любым подходящим методом (градиентный спуск, Ньютон), стартуя с xk−1x_{k-1}; получить xkx_k.
  4. Проверить останов: если суммарное нарушение ограничений <ε< \varepsilon - стоп, xkx_k - приближённое решение.
  5. Иначе увеличить штраф rk+1=c rkr_{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 и выпуклая допустимая область). В невыпуклом случае метод штрафов, как любой метод спуска, находит локальный оптимум, зависящий от стартовой точки.

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

Коротко

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

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

Открыть EssayAI

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

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

Метод минимального элемента: транспортная задача

Метод минимального элемента: транспортная задача

Метод минимального элемента в транспортной задаче: пошаговый алгоритм начального плана, таблица тарифов, критерий оптимальности. Примеры и частые ошибки.

17 июня 20266 минут
Бинарный поиск по ответу: метод и примеры задач

Бинарный поиск по ответу: метод и примеры задач

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

11 июня 20267 минут
Метод наискорейшего спуска: формула шага и зигзаг

Метод наискорейшего спуска: формула шага и зигзаг

Метод наискорейшего спуска простыми словами: как выбрать оптимальную длину шага через точный линейный поиск, почему траектория зигзагит и как число обусловленности влияет на скорость сходимости.

11 июня 20268 минут
Метод сопряжённых градиентов: формулы и пример

Метод сопряжённых градиентов: формулы и пример

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

11 июня 20268 минут
Метод золотого сечения: поиск минимума функции

Метод золотого сечения: поиск минимума функции

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

11 июня 20268 минут
Условный экстремум: множители Лагранжа без зубрёжки

Условный экстремум: множители Лагранжа без зубрёжки

Условный экстремум функции нескольких переменных через множители Лагранжа: функция Лагранжа, система уравнений, проверка на минимум и максимум, окаймлённый гессиан и типичные ошибки.

25 марта 20267 минут