Методы оптимизации

2026-04-17

Условия Каруша-Куна-Таккера

Методы оптимизации

Введение

В безусловной оптимизации локальный минимум гладкой функции ищется из естественного требования: в точке минимума не должно существовать малого сдвига, уменьшающего значение функции. Если f:RnRf:\mathbb{R}^{n}\to\mathbb{R} дифференцируема и xx^* является локальным минимумом, то обязательно

f(x)=0.\nabla f(x^*) = 0.

Эта формула выражает простую геометрическую идею: градиент задаёт направление наискорейшего роста, а значит, если градиент не равен нулю, то в направлении f(x)-\nabla f(x^*) функция убывает и точка не может быть минимумом.

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

Именно из этой идеи и рождается метод множителей Лагранжа, а затем и условия Каруша-Куна-Таккера. Они формализуют вопрос: как выглядит аналог условия f(x)=0\nabla f(x^*)=0, если разрешено двигаться только вдоль ограничений?

Задача условной оптимизации

Будем рассматривать общую задачу математического программирования

minxRnf0(x), при fi(x)0, i=1,m   и   hj(x)=0, j=1,p\min_{x\in\mathbb{R}^{n}} f_0(x),\quad\text{ при } f_i(x)\le 0,\ i=\overline{1,m}\; \text{ и }\; h_j(x)=0,\ j=\overline{1,p}

Допустимое множество определяется как

S={xRnfi(x)0, hj(x)=0}.S=\{x\in\mathbb{R}^{n}\mid f_i(x)\le 0,\ h_j(x)=0\}.

Если безусловный минимум функции f0f_0 уже лежит в SS, то ограничения в некотором смысле не мешают, и задача выраждается в безусловную оптимизацию, а вот когда безусловный минимум вне допустимого множества оптимальная точка часто лежит на границе SS (так как если мы не уперлись в допустимое множество, мы можем сделать шаг в направлении антиградиента), то есть часть ограничений-неравенств становится активной и начинает вести себя как равенства.

Почему появляются множители Лагранжа

Начнём с простейшего случая одного ограничения-равенства

minxRnf(x)при h(x)=0.\min_{x\in\mathbb{R}^{n}} f(x) \quad \text{при } h(x)=0.

Пусть xx^* — локальный минимум, причём h(x)0\nabla h(x^*)\neq 0. Рассмотрим малое допустимое смещение δx\delta x. Чтобы не выйти из множества h(x)=0h(x)=0, необходимо, чтобы в первом порядке сохранялось равенство

h(x+δx)h(x)+h(x),δx=0.h(x^*+\delta x)\approx h(x^*)+\langle \nabla h(x^*),\delta x\rangle = 0.

Так как h(x)=0h(x^*)=0, для допустимого направления должно выполняться

h(x),δx=0.\langle \nabla h(x^*),\delta x\rangle = 0.

Значит, допустимые малые сдвиги ортогональны градиенту ограничения. С другой стороны, если бы существовало допустимое направление δx\delta x, в котором

f(x),δx<0,\langle \nabla f(x^*),\delta x\rangle < 0,

то вдоль этого направления функция уменьшалась бы, и xx^* не могла бы быть точкой минимума. Следовательно, в точке локального минимума градиент функции должен быть ортогонален всем допустимым направлениям.

Но множество всех допустимых направлений — это подпространство, ортогональное h(x)\nabla h(x^*). Если вектор ортогонален всему этому подпространству, то он должен лежать в линейной оболочке нормали к ограничению. Значит, существует число ν\nu^* такое, что

f(x)+νh(x)=0.\nabla f(x^*)+\nu^* \nabla h(x^*) = 0.

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

Лагранжиан и задача с ограничениями-равенствами

Чтобы записывать это условие компактно, вводят лагранжиан

L(x,ν)=f(x)+νh(x).L(x,\nu)=f(x)+\nu h(x).

Тогда найденное выше условие принимает вид

xL(x,ν)=0.\nabla_x L(x^*,\nu^*)=0.

При этом само ограничение тоже должно выполняться:

h(x)=0.h(x^*)=0.

Но последнее можно записать как

νL(x,ν)=0.\nabla_\nu L(x^*,\nu^*)=0.

Поэтому для задачи с равенствами естественная система необходимых условий выглядит так:

xL(x,ν)=0,νL(x,ν)=0.\nabla_x L(x^*,\nu^*)=0, \qquad \nabla_\nu L(x^*,\nu^*)=0.

Для нескольких ограничений-равенств

hj(x)=0,j=1,,ph_j(x)=0,\quad j=1,\dots,p

лагранжиан принимает вид

L(x,ν)=f(x)+j=1pνjhj(x)=f(x)+νh(x),L(x,\nu)=f(x)+\sum_{j=1}^{p}\nu_j h_j(x)=f(x)+\nu^\top h(x),

а необходимые условия переписываются как

xL(x,ν)=0,h(x)=0.\nabla_x L(x^*,\nu^*)=0, \qquad h(x^*)=0.

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

Переход к ограничениям-неравенствам

Теперь рассмотрим задачу

minxRnf(x)при g(x)0.\min_{x\in\mathbb{R}^{n}} f(x) \quad \text{при } g(x)\le 0.

Здесь есть два принципиально разных случая.

Если в оптимальной точке xx^* ограничение неактивно, то есть

g(x)<0,g(x^*)<0,

то вокруг xx^* существует маленькая окрестность, целиком лежащая в допустимом множестве. Значит, ограничение локально не влияет на задачу, и мы снова получаем обычное условие

f(x)=0.\nabla f(x^*)=0.

Если же в оптимуме ограничение активно:

g(x)=0,g(x^*)=0,

то двигаться можно только вдоль границы. Локально это уже почти та же геометрия, что и в задаче с равенством g(x)=0g(x)=0. Поэтому в этом случае должно существовать λ0\lambda^*\ge 0 такое, что

f(x)+λg(x)=0.\nabla f(x^*)+\lambda^*\nabla g(x^*)=0.

Знак λ0\lambda^*\ge 0 не случаен. Если бы он был отрицательным, нормаль к ограничению указывала бы не в ту сторону: это соответствовало бы попытке компенсировать градиент функции в направлении, которое не блокируется допустимым множеством. Для задачи на минимум активное ограничение может только препятствовать спуску, а не помогать ему с внешней стороны, поэтому множитель должен быть неотрицательным.

Оба случая удобно объединяются условием

λg(x)=0.\lambda^* g(x^*)=0.

Это условие называется дополняющей нежёсткостью. Оно означает следующее:

  • либо ограничение неактивно, то есть g(x)<0g(x^*)<0, и тогда обязательно λ=0\lambda^*=0;
  • либо множитель положителен, и тогда ограничение обязано быть активным, то есть g(x)=0g(x^*)=0.

Именно эта логика позволяет перейти от метода Лагранжа для равенств к условиям KKT для неравенств.

Условия Каруша-Куна-Таккера

Для общей задачи

minxRnf0(x)\min_{x\in\mathbb{R}^{n}} f_0(x)

при ограничениях

fi(x)0,i=1,,m,hj(x)=0,j=1,,pf_i(x)\le 0,\quad i=1,\dots,m, \qquad h_j(x)=0,\quad j=1,\dots,p

вводится лагранжиан

L(x,λ,ν)=f0(x)+i=1mλifi(x)+j=1pνjhj(x).L(x,\lambda,\nu)=f_0(x)+\sum_{i=1}^{m}\lambda_i f_i(x)+\sum_{j=1}^{p}\nu_j h_j(x).

Если xx^* — локальный минимум и выполнены условия регулярности, то существуют множители λRm\lambda^*\in\mathbb{R}^{m} и νRp\nu^*\in\mathbb{R}^{p}, для которых выполняются условия Каруша-Куна-Таккера:

(1)xL(x,λ,ν)=0,(2)fi(x)0,(3)hj(x)=0,(4)λi0,(5)λifi(x)=0,\begin{array}{l} (1)\quad \nabla_x L(x^*,\lambda^*,\nu^*)=0,\\ (2)\quad f_i(x^*)\le 0,\\ (3)\quad h_j(x^*)=0,\\ (4)\quad \lambda_i^*\ge 0,\\ (5)\quad \lambda_i^* f_i(x^*)=0, \end{array}

Эту систему удобно читать по частям.

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

f0(x)+i=1mλifi(x)+j=1pνjhj(x)=0.\nabla f_0(x^*) + \sum_{i=1}^{m}\lambda_i^* \nabla f_i(x^*) + \sum_{j=1}^{p}\nu_j^* \nabla h_j(x^*) = 0.

Прямая допустимость просто требует, чтобы точка удовлетворяла исходным ограничениям.

Двойственная допустимость фиксирует правильный знак множителей при неравенствах.

Дополняющая нежёсткость отбрасывает неактивные ограничения из стационарности: если fi(x)<0f_i(x^*)<0, то автоматически λi=0\lambda_i^*=0, и соответствующее ограничение не влияет на баланс градиентов.

В результате KKT можно воспринимать как строгую запись интуиции: в оптимуме никакое допустимое направление не должно давать спуск.

Почему KKT естественны

Есть полезный способ мыслить о KKT без запоминания формул. Внутри допустимого множества оптимум ведёт себя как безусловный минимум, поэтому должен исчезать обычный градиент. На границе ситуация меняется: часть направлений запрещена, и потому ненулевой градиент допустим. Но он может иметь компоненту только вдоль нормалей к активным ограничениям. Иначе осталась бы касательная компонента, вдоль которой можно двигаться, не нарушая ограничения, и уменьшать функцию.

Именно поэтому стационарность KKT содержит только градиенты активных ограничений. Неактивные ограничения геометрически далеки от точки и никак не влияют на локальную структуру допустимого множества.

Условия регулярности

Сами по себе KKT не всегда являются необходимыми. Нужны дополнительные предположения, гарантирующие, что допустимое множество в окрестности оптимума устроено достаточно регулярно, а активные ограничения действительно задают корректную локальную геометрию.

Одно из самых простых условий — линейная квалификация ограничений: если все fif_i и hjh_j аффинны, то дополнительных проблем не возникает, и стандартный вывод KKT работает.

Более общее и часто используемое условие — линейная независимость градиентов активных ограничений (LICQ). Оно требует, чтобы в точке xx^* векторы

fi(x),iI(x),hj(x),j=1,,p,\nabla f_i(x^*), \quad i\in I(x^*), \qquad \nabla h_j(x^*), \quad j=1,\dots,p,

были линейно независимы, где

I(x)={ifi(x)=0}I(x^*)=\{i\mid f_i(x^*)=0\}

— множество активных ограничений-неравенств.

Смысл LICQ в том, что активные ограничения не должны локально дублировать друг друга. Если они вырождены, то нормальное пространство определяется неоднозначно, множители могут не существовать или быть неединственными, и стандартная теория ломается.

Условие Слейтера и выпуклый случай

Особенно красива теория KKT в выпуклой оптимизации. Предположим, что

  • f0f_0 выпукла;
  • все fif_i выпуклы;
  • все hjh_j аффинны.

Тогда любая локальная точка минимума автоматически является глобальной. Но этого ещё недостаточно, чтобы KKT были полным критерием оптимальности. Для этого нужно условие Слейтера: существует такая точка xˉ\bar{x}, что

hj(xˉ)=0,j=1,,p,h_j(\bar{x})=0,\quad j=1,\dots,p,

и одновременно

fi(xˉ)<0,i=1,,m.f_i(\bar{x})<0,\quad i=1,\dots,m.

Такая точка называется строго допустимой.

Условие Слейтера важно потому, что оно гарантирует нулевой зазор двойственности. А это означает, что у задачи есть достаточно сильная двойственная структура, чтобы KKT стали не только необходимыми, но и достаточными условиями оптимальности.

Доказательство достаточности KKT в выпуклом случае

Это один из самых важных результатов, потому что именно он превращает систему KKT из набора необходимых условий в реальный критерий оптимальности.

Пусть функции удовлетворяют выпуклым предположениям, и пусть найдены xx^*, λ\lambda^*, ν\nu^*, удовлетворяющие KKT. Докажем, что xx^* — глобальный минимум.

Возьмём произвольную допустимую точку xx. Выпуклость f0f_0 даёт неравенство первого порядка

f0(x)f0(x)+f0(x),xx.f_0(x)\ge f_0(x^*) + \langle \nabla f_0(x^*), x-x^* \rangle.

Из стационарности KKT имеем

f0(x)=i=1mλifi(x)j=1pνjhj(x).\nabla f_0(x^*) = -\sum_{i=1}^{m}\lambda_i^* \nabla f_i(x^*) - \sum_{j=1}^{p}\nu_j^* \nabla h_j(x^*).

Подставим это в предыдущее неравенство:

f0(x)f0(x)i=1mλifi(x),xxj=1pνjhj(x),xx.f_0(x)\ge f_0(x^*) - \sum_{i=1}^{m}\lambda_i^* \langle \nabla f_i(x^*),x-x^*\rangle - \sum_{j=1}^{p}\nu_j^* \langle \nabla h_j(x^*),x-x^*\rangle.

Теперь используем выпуклость каждого fif_i:

fi(x)fi(x)+fi(x),xx,f_i(x)\ge f_i(x^*) + \langle \nabla f_i(x^*),x-x^*\rangle,

откуда

fi(x),xxfi(x)fi(x).\langle \nabla f_i(x^*),x-x^*\rangle \le f_i(x)-f_i(x^*).

Для аффинных hjh_j имеем точное равенство

hj(x)=hj(x)+hj(x),xx.h_j(x)=h_j(x^*)+\langle \nabla h_j(x^*),x-x^*\rangle.

Так как и xx, и xx^* допустимы, то hj(x)=hj(x)=0h_j(x)=h_j(x^*)=0, поэтому

hj(x),xx=0.\langle \nabla h_j(x^*),x-x^*\rangle = 0.

Следовательно,

f0(x)f0(x)i=1mλi(fi(x)fi(x)).f_0(x)\ge f_0(x^*) - \sum_{i=1}^{m}\lambda_i^*\bigl(f_i(x)-f_i(x^*)\bigr).

Раскроем сумму:

f0(x)f0(x)i=1mλifi(x)+i=1mλifi(x).f_0(x)\ge f_0(x^*) - \sum_{i=1}^{m}\lambda_i^* f_i(x) + \sum_{i=1}^{m}\lambda_i^* f_i(x^*).

Теперь используем два свойства KKT.

Во-первых, по двойственной допустимости λi0\lambda_i^*\ge 0, а по прямой допустимости fi(x)0f_i(x)\le 0. Значит,

λifi(x)0.-\lambda_i^* f_i(x)\ge 0.

Во-вторых, по дополняющей нежёсткости

λifi(x)=0.\lambda_i^* f_i(x^*)=0.

Поэтому

f0(x)f0(x).f_0(x)\ge f_0(x^*).

Так как xx была произвольной допустимой точкой, xx^* действительно является глобальным минимумом.

Содержательно это доказательство очень прозрачно: стационарность связывает градиент цели с градиентами ограничений, выпуклость позволяет заменить градиенты на приращения функций, а дополняющая нежёсткость зануляет активный вклад в самой точке оптимума.

Замечание о вторых порядках

Условия первого порядка описывают баланс градиентов, но не различают минимум, максимум и седло в невыпуклой задаче. Поэтому в общей нелинейной оптимизации появляются условия второго порядка, связанные с гессианом лагранжиана

xx2L(x,λ,ν).\nabla_{xx}^{2}L(x^*,\lambda^*,\nu^*).

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

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

Пример: проекция на единичный симплекс

Рассмотрим задачу

minxRn12xy22\min_{x\in\mathbb{R}^{n}} \frac{1}{2}\|x-y\|_{2}^{2}

при ограничениях

x1=1,x0.x^\top \mathbf{1}=1, \qquad x\ge 0.

Это задача проекции точки yy на единичный симплекс. Она важна не только как упражнение на KKT: такая проекция регулярно возникает в задачах вероятностного моделирования, оптимизации на вероятностных векторах и методах зеркального спуска.

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

Запишем лагранжиан:

L(x,λ,ν)=12xy22i=1nλixi+ν(x11).L(x,\lambda,\nu)=\frac{1}{2}\|x-y\|_{2}^{2} - \sum_{i=1}^{n}\lambda_i x_i + \nu(x^\top \mathbf{1}-1).

Здесь знак у λi\lambda_i выбран так, чтобы ограничение xi0x_i\ge 0 было переписано в стандартной форме xi0-x_i\le 0.

Условия KKT дают:

Lxi=xiyiλi+ν=0,\frac{\partial L}{\partial x_i}=x_i-y_i-\lambda_i+\nu = 0, λi0,\lambda_i\ge 0, λixi=0,\lambda_i x_i = 0, xi0,i=1nxi=1.x_i\ge 0, \qquad \sum_{i=1}^{n}x_i=1.

Теперь разберёмся, что из этого следует. Из стационарности

xi=yi+λiν.x_i = y_i + \lambda_i - \nu.

Если xi>0x_i>0, то по дополняющей нежёсткости λi=0\lambda_i=0, и тогда

xi=yiν.x_i = y_i - \nu.

Если же xi=0x_i=0, то из стационарности получаем

λi=νyi0,\lambda_i = \nu - y_i \ge 0,

то есть

yiν0.y_i-\nu \le 0.

Оба случая объединяются одной формулой:

xi=max(yiν,0).x_i = \max(y_i-\nu,0).

Остаётся подобрать число ν\nu так, чтобы выполнялось условие нормировки:

i=1nmax(yiν,0)=1.\sum_{i=1}^{n}\max(y_i-\nu,0)=1.

Это и есть окончательное описание проекции на симплекс. Смысл формулы очень красив: мы одновременно сдвигаем все координаты на одно и то же значение ν\nu, а затем отсекаем отрицательные. Геометрически это ровно то, что нужно, чтобы оказаться на гиперплоскости суммы, не выходя из неотрицательного ортанта.

Практически ν\nu ищут после сортировки координат yy, что даёт алгоритм сложности O(nlogn)O(n\log n).