这得需要一点拉格朗日乘子法的认识。大家可能都很熟悉这个著名的方法。但是还是有很多入门的朋友忘记了具体过程的,所以还是希望大家看一下这个来系统的认识一下此方法《拉格朗日乘子法》
建议战斗人员多啃几遍,最好可以做到自己可以手推公式。
原函数问题
我们重新回到那个一般情况下的约束问题:
其拉格朗日函数为:
我们令:
由《拉格朗日乘子法》里所述的不等式约束情况下的推导,可知如下:
所以考虑极小化问题:
这与原始问题的解是等价的。因为最小化将给去掉了。这个最新的极小化问题称为广义拉格朗日函数的极小极大问题。我们定义:
对偶问题
我们再定义:
则:
被称为原始问题的对偶问题。同样的,我们也定义:
称为对偶问题的值。
原始问题与对偶问题的关系
若原始问题和对偶问题都有最优值,则:
证明:
对于任意的和
,有
即
由于原始问题和对偶问题均有最优值,所以,
即:
由此我们便可以推论出若,则如果
为原始问题与对偶问题的可行解,那便是最优解。
在KKT条件之下,原始问题和对偶问题的最优解相等,即。这时候我们求解对偶问题便可得到原始问题的解。如果朋友们不太理解KKT条件,则可以看这篇文章《拉格朗日乘子法》。
片尾彩蛋——手推KKT条件与对偶关系。
我们对于最优化问题:
有如下拉格朗日函数:
我们注意到,这里我们令,原因同上文所述。则
,那么:
继而我们得到:
我们先停在这,换一条主线:
我们由对偶问题展开:
我们需要注意这里的和
都是向量,所以我去掉了下标
,由于
与
无关,所以上式成立。
又易知:
那我们也有
那么这样的话,结合前面停下来的式子,我们便有:
这就是对偶问题与原问题相等。而这一切都建立在什么条件上呢?我们总结可得KKT条件:
在此条件下,原问题和对偶问题相同,并且与相同。在最优解初
或者
,此最优值也是
的极值点。当然这一切都是在凸函数的前提下提出的。如果是非凸函数的话,KKT条件只能算是必要条件,而且也不存在比较好用的其他充要条件。
由此我们得到了KKT条件。由上文有完整KKT条件介绍