其他分享
首页 > 其他分享> > 有关KKT条件

有关KKT条件

作者:互联网

来源:https://zhuanlan.zhihu.com/p/26514613

0.什么是KKT条件

本文从本科高数(微积分)中的有条件极值的Lagrange乘数法入手,一步步推导到KKT条件. 但在讲述推导过程之前,我想先给出KKT条件:

对于具有等式和不等式约束的一般优化问题

[公式]

KKT条件给出了判断[公式]是否为最优解的必要条件,即:

[公式]

1. 等式约束优化问题(Lagrange乘数法)

对于这部分内容,其实本科高数课程中已学过,因此本文直接给出结论,并补充一些我的理解与总结,它能帮助理解不等式约束中的一些内容,具体的推导过程在同济7版的高数下册(P.116-118)中已写的较详细。

所谓的等式约束优化问题是指

[公式]
[公式]

我们令[公式],函数[公式]称为Lagrange函数,参数[公式]称为Lagrange乘子.

再联立方程组:[公式]

得到的解为可能极值点,由于我们用的是必要条件,具体是否为极值点需根据问题本身的具体情况检验. 这个方程组称为等式约束的极值必要条件.

上式我们对[公式][公式][公式][公式]分别求偏导,回想一下在无约束优化问题[公式]中,我们根据极值的必要条件,分别令[公式],求出可能的极值点. 因此可以联想到:等式约束下的Lagrange乘数法引入了[公式]个Lagrange乘子,或许我们可以把[公式]也看作优化变量([公式]就叫做优化变量). 相当于将优化变量个数增加到[公式]个,[公式][公式]一视同仁,均为优化变量,均对它们求偏导.

2. 不等式约束优化问题

以上我们讨论了等式约束的情形,接下来我们来介绍不等式约束的优化问题.我们先给出其主要思想:转化的思想——将不等式约束条件变成等式约束条件.具体做法:引入松弛变量.松弛变量也是优化变量,也需要一视同仁求偏导.

 

具体而言,我们先看一个一元函数的例子:

 

[公式]
[公式]

(注:优化问题中,我们必须求得一个确定的值,因此不妨令所有的不等式均取到等号,即[公式]的情况.)

 对于约束[公式][公式],我们分别引入两个松弛变量[公式][公式],得到[公式][公式].注意,这里直接加上平方项[公式][公式]而非[公式][公式],是因为[公式][公式]这两个不等式的左边必须加上一个正数才能使不等式变为等式.若只加上[公式][公式],又会引入新的约束[公式][公式],这不符合我们的意愿.

 

 

由此我们将不等式约束转化为了等式约束,并得到Lagrange函数

[公式]

 

我们再按照等式约束优化问题(极值必要条件)对其求解,联立方程

 

(注:这里的[公式][公式]先承认,我们待会再解释!(先上车再买票,手动斜眼)实际上对于不等式约束前的乘子,我们要求其大于等于0)

 

得出方程组后,便开始动手解它. 看到第3行的两式[公式][公式]比较简单,我们就从它们入手吧~

对于[公式],我们有两种情况:

情形1: [公式]

此时由于乘子[公式],因此[公式]与其相乘为零,可以理解为约束[公式]不起作用,且有[公式].

情形2: [公式]

此时[公式][公式] ,可以理解为约束[公式]起作用,且有[公式].

合并情形1和情形2得:[公式],且在约束起作用时[公式][公式];约束不起作用时[公式][公式].

 

同样地,分析[公式],可得出约束[公式]起作用和不起作用的情形,并分析得到[公式].

 

由此,方程组(极值必要条件)转化为

 

[公式]

这是一元一次的情形.类似地,对于多元多次不等式约束问题

[公式]

我们有

[公式]

上式便称为不等式约束优化问题的KKT(Karush-Kuhn-Tucker)

标签:不等式,KKT,有关,Lagrange,约束,等式,条件,优化
来源: https://www.cnblogs.com/nlpers/p/14939888.html