深入理解 KKT 条件
INFO
本节将对上一小节最优性条件中提出的 KKT 条件进行深入的理解和分析。
KKT 条件究其本质,是优化问题取得最优解的必要条件。下面我们首先从我们最熟悉的知识开始。
等式约束优化问题
我们在《高等数学》课程中学习过多元函数的极值问题,其中提到了 Lagrange 乘子法。其本质就是运用《凸优化》课程当中讲的 Lagrange 函数,求解等式优化问题。只不过《高等数学》课程中不涉及不等式约束,仅仅只有等式约束。为了更贴近也更容易回忆起《高等数学》所学内容,我们在这里仅考虑二元函数,并且只有一个等式约束。此时,这个约束优化问题记为
这里只有一个等式约束,因此只需要引入一个 Lagrange 乘子
计算
解上面的方程组就可以得到最优解
不等式约束优化问题
我们注意到,在刚才在求解的过程中,我们其实一点也不关心
我们先考虑仅含有一个不等式的约束的二元函数优化问题
我们先来讨论最优解
,说明最优解位于可行域的内部,称为内部解。此时约束条件是无效的。 ,说明最优解位于可行域的边界,称为边界解。此时约束条件是有效的。
这两种情况的最优解具有不同的必要条件:
- 内部解:原问题退化为无约束优化问题,只要驻点
满足 且 。 - 边界解:原问题转变为等式约束优化问题,这与之前讨论的情况相同。可以证明的一点是,最优解处的
和 的梯度方向是反向,即 使得 。这里 的正负性是有意义的。由于我们希望最小化 ,梯度 的值表示函数值上升最快的方向,因而负梯度方向 应该指向可行域的内部。 指向可行域的外部,即 的区域,因为约束 。因此这里的 ,这就是之前几节讲的对偶可行性。

边界解的情况可以通过上图加深理解。图中表示的是二元函数
更一般地,如果有多个不等式约束,对应到上图中就是有若干平面
而不论是内部解还是边界解,
小结
回顾了等式约束优化和不等式约束优化之后,我们可以从中提炼出一种转化的思想:
- 无约束优化问题:令梯度向量为零即可。
- 等式约束优化问题:引入 Lagrange 乘子,将原目标函数转化为 Lagrange 函数,将原问题转化为无约束优化问题。
- 不等式约束优化问题:引入松弛变量,将原不等式约束函数转化为等式约束函数,将原问题转化为等式约束优化问题。
KKT 条件的本质
综合上面的讨论与分析,我们再来看看 KKT 条件:
其中一个包含了四个条件,它们分别是:
- Lagrange 函数的定常方程式:上式最后一行
。 - 原始可行性:即满足等式约束和不等式约束,上式第一行
和第二行 。 - 对偶可行性:即上式第三行
。 - 互补松弛性:即上式第四行
。
简单的例子
考虑下面的问题
写出 Lagrange 函数
KKT 条件方程组如下
分别由 (1) 式和 (2) 式求出
代入等式约束
再代入式 (5) 和 (6) 中,消去
最后再加入不等式约束,得到
下面对参数
- 若
,不难验证 。此时满足所有的 KKT 条件,约束不等式是无效的。 是内部解。 - 若
, 。此时满足所有的 KKT 条件,约束不等式是有效的。 是边界解。 - 若
, 。此时约束不等式是有效的。 , 。

本题的几何意义如图所示。目标函数对应的曲面
参考