拉格朗日乘子法和KKT条件

首先,拉格朗日乘子法和kkt条件都是解决数学中最优化问题的方法。什么时候会用到这种方法呢?
比如,求解函数f(x) = x^2-2x -1,直接求f(x)关于x的一阶导数,让一阶导数为0,便得到f(x)取最小值时的最优解为1。但要是x有限制条件呢?那么就会用到上面的两种方法。

一、限制条件为等式
\begin{cases} \min_{x,y}f(x,y)\\ g(x,y)=0\\ \end{cases}
这是一个有等式约束的优化问题,如果不借助其他工具是不是很难求解,尤其是f(x,y)或g(x,y)都比较复杂的情况下。拉格朗日乘子法将这个问题转化成了无约束问题,那么就可以用求偏导的方法去求解。拉格朗日函数为:
L(x,y,\lambda)=f(x,y)+\lambda g(x,y) \\ \lambda!=0
L(x,y,\lambda)分别关于x,y,\lambda的偏导(没有找到偏导符号,用d代替):
\frac {dL(x,y,\lambda)}{dx}=0\\ \frac {dL(x,y,\lambda)}{dy}=0\\ \frac {dL(x,y,\lambda)}{d\lambda}=0\\
通过求解x,y,\lambda的偏导数为0,便可获得L(x,y,\lambda)取极值时的最优解。
那么为什么这样做呢?即L(x,y,\lambda)取极值时的最优解是否就是f(x,y)的最优解呢?其实在等式约束条件这里是非常容易理解的,因为L(x,y,\lambda)的后半分\lambda g(x,y)恒等于0,那么自然L(x,y,\lambda)f(x,y)的最优解是一致的。
从另一个角度来看,下图是对原问题的几何描述,只有当f(x,y)g(x,y)=0的切线重合的时候,原问题能够取得最优解。那么在切点的梯度有\Delta f(x,y)=\lambda \Delta g(x,y)

图1

那么限制条件为不等式呢?下面来看

二、限制条件为不等式
当最优解问题是:
\begin{cases} \min_{x,y}f(x,y)\\ g(x,y)<=0\\ \end{cases}
那么如果同样用拉格朗日函数将上述有约束问题化解为无约束问题,是否可以直接通过求L(x,y,\lambda)分别关于x,y,\lambda的偏导,令偏导数为0来获得最优解呢?答案是不能。为什么不能呢?看下图就明白了:

图2

上图中,f(x,y)的极值并没有落在切线上,这个时候g(x,y)<0,切点处的x,y,\lambda已经不是最优解了。

所以我们采用广义拉格朗日乘子法,先求L(x,y,\lambda)关于乘子的最大,再求关于x,y的最小。原始问题的拉格朗日函数为:
min_{x,y}max_{\lambda}L(x,y,\lambda)=f(x,y)+\lambda g(x,y)
这个问题很难求解,所以想要将问题转化为原问题的对偶问题:
min_{\lambda}max_{x,y}L(x,y,\lambda)=f(x,y)+\lambda g(x,y)
那么原问题和对偶问题的解是否等价呢?

所以这里我们引入KKT条件,x,y,\lambda同时是原始问题和对偶问题的解的充分必要条件就是满足以下条件:

\frac {dL(x,y,\lambda)}{d{x,y,\lambda}}=0
\lambda>=0
\lambda g(x,y)=0
g(x,y)<=0
x,y,\lambda满足上述的kkt条件时,对偶问题的解就是原始问题的解。当约束如图1所示,那么g(x,y)=0,\lambda >0;当约束如图2所示,实际上约束已经不起作用,那么g(x,y)<0,\lambda =0

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容