拉格朗日乘子法
要解决的问题
拉格朗日乘子法要解决的就是有等式限制条件的凸优化问题。形式如下:
求解方式
例如:
令
令导数为0,得到:
求解出x, y, z即为最优解,同时也会求出λ,但是没什么用。
直观理解
关于拉格朗日乘子法的直观理解网上已经有很多解释了,此处仅简要描述。如下图中的f和g,虚线为f的等高线,g限制条件,可以看出,f一定是在和g相切的地方取到最大(小)值,所以两者在此处的梯度方向相同,仅相差一个比例因子(即公式中的λ)。
注意g(x)=0是一条曲线,如果有多个限制条件则有多条曲线,此时将g(x)看做一个函数,则g(x)=0是g的一个等高线,函数与等高线垂直的方向一定是增加最快的方向,即梯度方向。f和g梯度方向一样,所以有:
然后再外加一个所求的点一定在曲线g上的方程(即F(x)对λ的导数为0),以上公式和拉格朗日乘子法得出的公式是等价的。
理论证明
证明来自于参考文献1KKT条件
要解决的问题
拉格朗日乘子法仅适用于等式约束条件,那如果约束条件为不等式怎么办呢?
答: 当约束条件为不等式时候,结合KKT条件,依然可以用拉格朗日乘子法求解,实际上KKT条件可以把不等式约束转化为等式约束。即,KKT条件求解的问题的形式为:
求解方法
待续。。。
网友评论