在前文非线性规划与KKT(一)中, 我们已经给出了几个定义,并且证明了一个重要的定理:
一个凸集的局部最优解一定为全局最优解
它的证明,使用了反证法。
然后,我们还介绍了Epigraph的定义。以上的这些,都是为了一个终极的定理:KKT条件。
KKT条件是可以被推广到很多很多场景下的。但是,在这里,我们只阐述最简单的条件,即面对NLP问题的KKT条件。
假设,有如下的NLP:
如果满足以下的限定条件:
有Slater Point;
是可行解;
对于对应的索引所形成的集合,对所有都有,存在着一个梯度。
满足以上条件之后,会有以下的等价结论:
对KKT条件的阐述
对于各个限定条件,我们都来进行说明:
这个要求保证了可行域也是凸集。前文非线性规划与KKT(一)中已经阐述过这个引理。
有Slater Point;
其实Slater Point就是可行解一个种类,它满足Slater Condition。
Salter’s condition: There exists an such that 也就是说,存在着一个点,满足它在可行域的内部(非任何一个边的边界上)。
为什么要叫Slater Point呢?因为Slater提出了如下的定理:
Slater’s theorem: strong duality holds, if Slater’s condition holds and the problem is convex. 当问题为凸时,可以由Slater condition 强对偶定理成立。
也就是说,Slater Point的存在保证了有强对偶是可用的。
是可行解
无它,最优解必是可行解。
对于对应的索引所形成的集合,对所有都有,存在着一个梯度。
这个条件事实上,保证了在这点的梯度的存在的;即函数在这点上可微。因此,也就是说,本文所针对的问题,仅仅是可微时的问题。
我们先给出在一个向量圆锥(cone)内的一个例子:
我们其实可以看出,cone其实意思就是所有起作用的(留给读者:为什么它起作用?)的法向量的线性组合。
也就是说,其实它的这个要求,代表着一件事:我们一定可以找到这个向量,使得是的线性组合。
也就是说,我们一定可以找到一个梯度,与目标函数的梯度一致。
文章浅谈最优化问题的KKT条件中详细介绍了这样一个几何理解,大家可以去看看。
告一段落
事实上,KKT在NLP的理解便告一段落了。实际上,在本文所介绍的KKT,仅仅是对一个约束条件函数在最值处可微、且为可行域凸集的情况下;其作用其实偏弱(因为限定条件强呀)。
本文仅仅是介绍了KKT在NLP处的用法,并不涉及其推导。其实KKT条件是由对偶、拉格朗日乘子法推导出来的,下面给出了一些讨论。
P.S.
国外给出了这样的讨论,搬运如下:
(1) optimality + strong duality ⟹ KKT (for all problems)
(2) KKT ⟹ optimality + strong duality (for convex/differentiable problems)
(3) Slater’s condition + convex⟹ strong duality, so then we have, GIVEN that strong duality holds,
(3a) KKT ⇔ optimality