码迷,mamicode.com
首页 > 其他好文 > 详细

拉格朗日乘子法和KKT条件

时间:2017-11-16 22:06:50      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:范围   梯度   区域   问题   约束   根据   最小   就是   center   

1. 拉格朗日乘子(Lagrange Multiplier)法

假设函数z=f(x,y),求该函数的最小值,如果没有约束条件,则可以表示为minf(x,y),要求出minf(x,y)很简单,根据Fermat定理,分别对x和y求导数并让其等于0,如果是凸函数,则求出来的点就是函数取得最小值的点,该点的函数值即f(x,y)的最小值。

如果有等式约束条件g(x,y)=c,g(x,y)=c为(x,y)平面上的一条曲线,想象f(x,y)的等高线下降,当等高线和g(x,y)=c有交点时,满足约束条件,但肯定不是最优值,因为还可以继续下降。只有当下降到f(x,y)和g(x,y)=c相切时,这时两条曲线的切点处的f(x,y)的值才是最优值,如下图所示。

技术分享

由上图可知,在切点处,两条曲线拥有共线的法向量,所以两条曲线的梯度(Gradient)成正比,即技术分享,相当于把目标函数和约束条件写成一个函数,然后对该函数求导等于0,即可求得最优值。如果约束条件有多个,方法也是一样的。

所以,对于这类问题可以表示为:

技术分享

解决的方法是将目标函数和约束条件写成一个式子:

技术分享

分别对xi求导数并让其等于0,可求得最优值。

2. KKT条件

以上是等式约束,如果是不等式约束的话,问题变成了:

技术分享

可以想象,多个约束条件构成了一个区域,这个区域就是自变量的范围。最优值肯定在这个区域的某一个顶点处取得,此时和这个顶点相关的约束条件等于0,和这个顶点不相关的约束条件(即不需要考虑的约束条件)不等于0。如下图所示,g1(x)、g2(x)、g3(x)围成了一个区域,最优值在g1(x)和g3(x)的交点处取得,此时g2(x)不需要考虑,则g1(x)和g3(x)的值为0,前面的系数可以不为0,g2(x)不为0,前面的系数必须为0。

技术分享

因此,同样的可以把目标函数和约束条件写成一个式子:

技术分享

 

对于技术分享,要么b=0,要么g(xi)=0,所以必须有技术分享

如果同时存在等式约束和不等式约束,则

技术分享

那么最优值必须满足以下3个条件:

(1) L对xi求导等于0;

(2)技术分享

(3)技术分享

以上就是KKT条件。 

拉格朗日乘子法和KKT条件

标签:范围   梯度   区域   问题   约束   根据   最小   就是   center   

原文地址:http://www.cnblogs.com/mstk/p/7846100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!