拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。前提是:只有当目标函数为凸函数时,使用这两种方法才保证求得的是最优解。
对于无约束最优化问题,有很多经典的求解方法,参见无约束最优化方法。
拉格朗日乘子法
先来看拉格朗日乘子法是什么,再讲为什么。
这里(1)是目标函数,(2)是约束条件。s.t. = subject to,受限制于
。利用拉格朗日乘子法,该问题可以转化为:
其中 λi≠0 ,称为拉格朗日乘子。
下面就是求式(3)的最优值,可以通过对式(3)各个参数求导取零,联立等式进行求取,这个在高等数学里面有讲,但是没有讲为什么这么做就可以,下面将简要介绍其思想。
为什么要这么求能得到最优值?先说拉格朗日乘子法,设想我们的目标函数
z=f(x)
,
x
是向量,