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

Большинство реальных задач оптимизации формулируется с ограничениями: минимизировать расход материала, но не выйти за пределы прочности; максимизировать прибыль, но уложиться в бюджет. Прямые методы безусловной минимизации (градиентный спуск, метод Ньютона) такие условия учитывать не умеют. Метод штрафных функций решает эту проблему элегантно: он «вшивает» ограничения в саму целевую функцию через добавочное слагаемое-штраф, которое резко растёт при их нарушении. В результате задача с ограничениями сводится к последовательности обычных безусловных задач, для которых уже есть весь стандартный арсенал. Разберём идею, виды штрафов и типичную пошаговую схему.
В чём идея метода штрафных функций
Пусть требуется минимизировать при ограничениях , и , . Метод штрафных функций строит вспомогательную функцию
где - штрафная функция, измеряющая степень нарушения ограничений, а - коэффициент штрафа. Идея в том, что равна нулю (или близка к нему) в допустимой области и положительна вне её. Минимизируя как безусловную задачу, мы заставляем алгоритм «не вылезать» за границы: любое нарушение немедленно дорого обходится. Меняя по определённому правилу и решая серию безусловных задач, мы получаем последовательность точек , сходящуюся к решению исходной задачи с ограничениями.
Ключевое достоинство метода - универсальность: он не требует выпуклости, линейности или дифференцируемости ограничений в каком-то особом виде, а опирается на надёжные методы безусловной оптимизации. Прежде чем вручную подбирать штраф, попробуйте собрать корректную постановку через инструмент ниже - он сформулирует вспомогательную функцию и выберет подходящую схему.
Внешний штраф: подход извне допустимой области
Метод внешних штрафных функций (exterior penalty) допускает движение по недопустимым точкам и наказывает за выход за границы. Классическая квадратичная штрафная функция выглядит так:
Для неравенств штраф включается только при (ограничение нарушено), для равенств - при любом отклонении . Вспомогательная задача - минимизировать при возрастающей последовательности .
Чем больше , тем сильнее штраф и тем ближе минимум к истинному решению. В пределе точки сходятся к оптимуму исходной задачи. Важная особенность: на конечных итерациях приближение лежит, как правило, вне допустимой области (ограничения слегка нарушены) - отсюда и название «внешний». Это допустимо, если небольшое нарушение ограничений в процессе расчёта не критично.
Внутренний (барьерный) штраф: движение изнутри
Метод внутренних штрафных функций, или барьерных функций (interior / barrier), наоборот, держит траекторию строго внутри допустимой области и ставит «стену» на границе. Применяется только к ограничениям-неравенствам . Две классические барьерные функции:
Вспомогательная функция здесь , причём параметр теперь убывает: . При приближении к границе () барьер , не давая точке покинуть область. По мере уменьшения барьер становится всё «тоньше», и минимум приближается к границе, если оптимум лежит именно там. Логарифмический барьер - основа методов внутренней точки, на которых построены современные solver-ы линейного и выпуклого программирования.
Выбор коэффициента штрафа и условия сходимости
Коэффициент штрафа нельзя ставить сразу очень большим (для внешнего) или очень малым (для барьерного): это делает вспомогательную функцию плохо обусловленной - её линии уровня вытягиваются в узкие овраги, и безусловный метод сходится медленно или «застревает». Поэтому работает итеративная схема с обновлением параметра:
- внешний штраф: , (типично );
- барьерный штраф: , .
На каждом шаге решается безусловная задача, а её решение берётся стартовой точкой для следующего шага - это резко ускоряет сходимость (тёплый старт). Останов - когда нарушение ограничений (для внешнего) либо изменение точки между шагами стало меньше заданного допуска . Для выпуклых задач последовательность гарантированно сходится к глобальному оптимуму; в невыпуклом случае - к локальному, как и у любого метода спуска.
Связь с множителями Лагранжа
Метод штрафов тесно связан с классической теорией условного экстремума. Если в задаче только равенства и взять квадратичный штраф, то условие стационарности даёт
и величина в пределе стремится к множителю Лагранжа из условий стационарности функции Лагранжа. То есть штраф неявно восстанавливает множители Лагранжа - об этой теории подробнее в статье про условный экстремум и множители Лагранжа. Развитие этой связи - метод модифицированной функции Лагранжа (augmented Lagrangian), который добавляет штраф к лагранжиану и не требует устремлять к бесконечности, избегая плохой обусловленности.
Пошаговая схема решения
Для задачи при методом внешних штрафов:
- Задать стартовую точку , начальный коэффициент (например ), множитель и допуск .
- Сформировать .
- Решить безусловную задачу любым подходящим методом (градиентный спуск, Ньютон), стартуя с ; получить .
- Проверить останов: если суммарное нарушение ограничений - стоп, - приближённое решение.
- Иначе увеличить штраф , перейти к шагу 2.
Для барьерного метода схема та же, но обязана быть строго внутри допустимой области, а на шаге 5 уменьшается: .
Частые ошибки
- Сразу берут огромный . Вспомогательная функция становится крайне плохо обусловленной, и безусловный метод не сходится. Нужно наращивать постепенно, переиспользуя предыдущую точку.
- Барьерный метод стартуют из недопустимой точки. Логарифм или дробь от не определены - алгоритм сразу падает. Для барьеров стартовая точка обязана быть строго внутри области.
- Путают направление изменения параметра. Для внешнего штрафа растёт, для барьерного - убывает. Перепутав, получают расходимость.
- Забывают про . Если в штраф для неравенства подставить просто , метод начнёт «наказывать» и за нахождение глубоко внутри допустимой области, искажая решение.
- Ожидают точного попадания в допустимую область. У внешнего метода приближение почти всегда чуть нарушает ограничения - это нормально, контролируется допуском .
FAQ
Чем внешний штраф отличается от внутреннего? Внешний (квадратичный) допускает недопустимые точки и наказывает за выход за границу, коэффициент растёт к бесконечности. Внутренний (барьерный) держит траекторию строго внутри области, ставя бесконечную «стену» на границе, коэффициент убывает к нулю. Барьерный работает только с неравенствами.
Гарантирует ли метод глобальный минимум? Только для выпуклых задач (выпуклая и выпуклая допустимая область). В невыпуклом случае метод штрафов, как любой метод спуска, находит локальный оптимум, зависящий от стартовой точки.
Зачем нужен метод модифицированной функции Лагранжа, если есть штрафы? Чистый штраф требует , что порождает плохую обусловленность. Augmented Lagrangian добавляет к штрафу слагаемое с оценками множителей Лагранжа и сходится при конечных , поэтому численно устойчивее.
Коротко
Метод штрафных функций превращает задачу оптимизации с ограничениями в последовательность безусловных задач, добавляя к цели штрафное слагаемое . Внешний (квадратичный) штраф наказывает за нарушение ограничений и требует роста ; внутренний (барьерный, логарифмический) удерживает точку внутри допустимой области при . Коэффициент штрафа меняют постепенно, переиспользуя предыдущее решение как тёплый старт, а сама конструкция в пределе восстанавливает множители Лагранжа, связывая метод с классической теорией условного экстремума.
Читайте также

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

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

Венгерский алгоритм: задача о назначениях
Венгерский алгоритм (Hungarian, Кун–Манкр) для задачи о назначениях: минимальное паросочетание в двудольном графе, ЛП-двойственность, и сравнение с потоковыми и аукционными методами.