首先,拉格朗日乘子法和kkt条件都是解决数学中最优化问题的方法。什么时候会用到这种方法呢?
比如,求解函数,直接求关于x的一阶导数,让一阶导数为0,便得到取最小值时的最优解为1。但要是x有限制条件呢?那么就会用到上面的两种方法。
一、限制条件为等式
这是一个有等式约束的优化问题,如果不借助其他工具是不是很难求解,尤其是或g(x,y)都比较复杂的情况下。拉格朗日乘子法将这个问题转化成了无约束问题,那么就可以用求偏导的方法去求解。拉格朗日函数为:
求分别关于的偏导(没有找到偏导符号,用d代替):
通过求解的偏导数为0,便可获得取极值时的最优解。
那么为什么这样做呢?即取极值时的最优解是否就是的最优解呢?其实在等式约束条件这里是非常容易理解的,因为的后半分恒等于0,那么自然和的最优解是一致的。
从另一个角度来看,下图是对原问题的几何描述,只有当和的切线重合的时候,原问题能够取得最优解。那么在切点的梯度有
那么限制条件为不等式呢?下面来看
二、限制条件为不等式
当最优解问题是:
那么如果同样用拉格朗日函数将上述有约束问题化解为无约束问题,是否可以直接通过求分别关于的偏导,令偏导数为0来获得最优解呢?答案是不能。为什么不能呢?看下图就明白了:
上图中,的极值并没有落在切线上,这个时候,切点处的已经不是最优解了。
所以我们采用广义拉格朗日乘子法,先求关于乘子的最大,再求关于x,y的最小。原始问题的拉格朗日函数为:
这个问题很难求解,所以想要将问题转化为原问题的对偶问题:
那么原问题和对偶问题的解是否等价呢?
所以这里我们引入KKT条件,同时是原始问题和对偶问题的解的充分必要条件就是满足以下条件:
当满足上述的kkt条件时,对偶问题的解就是原始问题的解。当约束如图1所示,那么;当约束如图2所示,实际上约束已经不起作用,那么。