不等式约束优化问题的KKT条件
我们将在这里尽量详细的介绍不等式约束优化问题的 KKT condition ,我会尽量以符合直观,并且严谨的方式来写。
特别的,阅读本文应该需要一定的凸优化基础。方便起见,文中的向量就不加粗了。
KKT 条件
- KKT(Karush, Kuhn, Tucker)条件是 Lagrange
条件在一般优化问题中的推广。具体的,现在我们考虑以下的优化问题:
其中的所有函数均要求可微。仍记其可行集为 。现在我们先考虑其与等式约束问题的关系。为此,对于任意 与 ,我们称约束 在 是活跃的,当且仅当 ,并定义活跃集 。现在考察 处的情况,由于约束是有限的,我们可以找到一个 的邻域 使其位于所有不活跃的约束的可行域内部,因此我们可以抛开这些不活跃的约束。那么对于优化问题: 同样是以下问题的极值点: 而后者是等式约束问题,可以使用 Lagrange 条件刻画。以上说法是局部的,不严谨的直观,严格的叙述则在以下给出。
极值点的 KKT 条件
首先我们仍然要定义正则点这一概念。对于
,我们称其正则,当且仅当 线性无关。由以上的讨论,加上 Lagrange 条件,对于正则的极值点 与 Lagrange 乘子 就应该有: 再令不活跃约束处的 ,就得到了: 而该条件可以被进一步加强,即 。这就是以下的 KKT 条件。 - 【定理 5】若
是优化问题的正则极值点,则存在拉格朗日乘子 使得以下的 KKT 条件成立: - 驻点性。
。 - 乘子非负性。
。 - 互补松弛性。
。
- 驻点性。
为了严格表述 KKT 的直观和证明,我们先引入一些概念。对于
,称 为 在 处的切向量,若存在可微的路径 ,使得 ,且 。 处的切向量的全体构成了该处的切锥,记作 ,其意义是“全体可行方向”。再定义法锥为 张成的锥。 那么 KKT 的直观是,因为我们要考察局部的性质,所以我们要通过微分做局部的线性化。此时等式约束的可行域基本是一个超平面,而不等式约束的可行域则基本是半空间。在仅有等式约束的情况下,若干约束的可行域的交是一个子空间(切空间),其正交补为法空间,包含了极值点处
的梯度;而在包含不等式约束时,若干约束的可行域的交则是一个锥(切锥),极值点处 的梯度同样落在其极锥(法锥)中。 上图是一个例子,(a) 描述了三个不等式约束,其中
在 处是活跃的,下方的区域即为它们的可行域的交,是一个锥;而上方由 张成的锥恰为切锥的法锥, 应落在该法锥中。(b) 描述了一个不等式约束和一个等式约束, 是唯一可行的方向,其法锥为红色区域,由 张成,包含了 。这暗示我们可以将一个等式约束拆分成两个不等式约束。 - 【定理 5】若
KKT 条件的证明
以上,驻点性和互补松弛性是自然的,主要的问题是乘子的非负性。我们先试着将原先 GEC 的证明推广到 KKT 中来。不失一般性的,现在我们只考虑不等约束。对于在
处活跃的约束 ,应有: 这就是说 一定是法锥的极锥的子集。我们仍然期待这两者是相等的,因为由【引理 1】,这样便可以保证极值点处 的梯度落在法锥中。但这件事不一定总是成立,考虑下例:可以看出切锥为红线,法锥为
和 所在的直线,它们显然不是互为极锥的,而正则性则规避了这一情况。现在我们希望说明法锥的极锥同样是 的子集,为此我们希望构造一条路径使其满足以上所述的要求,然而这却是比较繁琐的,可能需要一些高级的定理1,因此我们先停在这里。
不妨尝试反证法。此处的直观是,假设有:
使得存在某一 ,那么由正则性,我们取 与其余梯度正交的分量 。由于正交性,且 应是 附近使得 的合法方向,我们可以直接沿用 GEC 中的构造得到一可行的路径使其从 出发恰沿 ,并且 也为 下降的方向,从而导出矛盾。现在我们将以上直观严格化。即假设存在某一
使得 ,记 ,以及: 由正则性, ,则取 与 正交的分量 ,显然 。由于 ,由【引理 2】 ,必然存在路径 ,使得 , ,且 。注意到: 那么在 充分小时必然有 ,这就是说 是可行的路径。由 KKT 条件: 从而在 充分小时必然有 ,产生矛盾,说明不存在 。
凸优化的 KKT 条件
我们先前讨论过对于带有等式约束的凸优化问题,Lagrange 条件是充分必要的,而我们也可以期待类似的事情在带有不等式约束的凸优化上成立。具体的,我们先前已经证明了 KKT 条件是正则极值点的充分条件,现在我们可以证明凸优化问题中满足 KKT 条件的点一定是全局最优点。2
考虑任意满足 KKT 条件的点
,由于 是凸的,只需 。我们有: 考虑到所有等式约束都是仿射的,显然 ,从而只需: 考虑到所有 都是凸的,同样有: 由 KKT 条件,有 ,从而 ,那么充分性得证。
- 标题: 不等式约束优化问题的KKT条件
- 作者: RPChe_
- 创建于 : 2025-07-18 00:00:00
- 更新于 : 2025-07-21 23:55:25
- 链接: https://rpche-6626.github.io/2025/07/18/OPT/kkt/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。