有关KKT条件

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

0.什么是KKT条件

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

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

有关KKT条件

KKT条件给出了判断有关KKT条件是否为最优解的必要条件,即:

有关KKT条件

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

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

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

有关KKT条件
有关KKT条件

我们令有关KKT条件,函数有关KKT条件称为Lagrange函数,参数有关KKT条件称为Lagrange乘子.

再联立方程组:有关KKT条件

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

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

2. 不等式约束优化问题

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

有关KKT条件

 

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

 

有关KKT条件
有关KKT条件

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

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

有关KKT条件

 

 

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

有关KKT条件

 

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

 

有关KKT条件

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

 

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

对于有关KKT条件,我们有两种情况:

情形1: 有关KKT条件

此时由于乘子有关KKT条件,因此有关KKT条件与其相乘为零,可以理解为约束有关KKT条件不起作用,且有有关KKT条件.

情形2: 有关KKT条件

此时有关KKT条件有关KKT条件 ,可以理解为约束有关KKT条件起作用,且有有关KKT条件.

合并情形1和情形2得:有关KKT条件,且在约束起作用时有关KKT条件有关KKT条件;约束不起作用时有关KKT条件有关KKT条件.

 

同样地,分析有关KKT条件,可得出约束有关KKT条件起作用和不起作用的情形,并分析得到有关KKT条件.

 

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

 

有关KKT条件

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

有关KKT条件

我们有

有关KKT条件

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

有关KKT条件

上一篇:Hadoop期末复习第五章-MapReduce


下一篇:AD 单端走线等长