拉格朗日乘子法和KKT条件

文章来源:http://www.cnblogs.com/zhangchaoyang/articles/2726873.html

拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。前提是:只有当目标函数为凸函数时,使用这两种方法才保证求得的是最优解。

对于无约束最优化问题,有很多经典的求解方法,参见无约束最优化方法

拉格朗日乘子法

拉格朗日乘子法和KKT条件

转换为

拉格朗日乘子法和KKT条件

系数λi称为拉格朗日乘子。

下面看一下wikipedia上是如何解释拉格朗日乘子法的合理性的。

现有一个二维的优化问题:

拉格朗日乘子法和KKT条件

我们可以画图来辅助思考。

拉格朗日乘子法和KKT条件

绿线标出的是约束g(x,y) = c的点的轨迹。蓝线是f的等高线。箭头表示斜率,和等高线的法线平行。

从图上可以直观地看到在最优解处,f和g的斜率平行。

拉格朗日乘子法和KKT条件             λ ≠ 0

一旦求出λ的值,将其套入下式,易求在无约束极值和极值所对应的点。

拉格朗日乘子法和KKT条件 = 拉格朗日乘子法和KKT条件

新方程拉格朗日乘子法和KKT条件在达到极值时与拉格朗日乘子法和KKT条件相等,因为拉格朗日乘子法和KKT条件达到极值时拉格朗日乘子法和KKT条件总等于零。

KKT条件

对于带约束优化问题

拉格朗日乘子法和KKT条件

KKT条件指出,在最优解处X*应该满足:

拉格朗日乘子法和KKT条件