拉格朗日乘子法与KKT条件
引言
约束条件可分为等式约束和不等式约束。如果是等式约束,可以直接利用拉格朗日乘子法(Lagrange Multiplier)求解最优值。对于不等式约束,可以转化为满足 KKT(Karush-Kuhn-Tucker) 条件后再利用拉格朗日乘子法求解。但是在一般情况下,这两个方法求得的结果只是必要条件,也就是可行解。而当目标函数是凸函数的情况下,才是充分必要条件,求得最优解。
无约束优化
假设存在 f ( x ) f(x) f(x) 是定义在 R n R^n Rn 上的连续可微函数,考虑无约束优化,求: min x f ( x ) \min_xf(x) xminf(x)
我们可以直接使它导数为 0 0 0 即可。
等式约束优化
原始问题
假设存在 f ( x ) , h i ( x ) f(x), h_i(x) f(x),hi(x) 是定义在 R n R^n Rn 上的连续可微函数,考虑等式优化,求: min x f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , 3 , … , m \min_xf(x)\\ s.t.\ \ \ \ h_i(x) = 0,i=1,2,3,\dots,m xminf(x)s.t. hi(x)=0,i=1,2,3,…,m
( s . t . s.t. s.t. 是 s u b j e c t t o subject\ to subject to 的缩写,意为“受限于”,表示约束条件)
其中, h i ( x ) = 0 h_i(x) = 0 hi(x)=0 表示存在 m m m 条形如 h ( x ) = 0 h(x) = 0 h(x)=0 的这种约束条件。
有等式约束条件的情况下,会把解限定在一个可行域内,即同时满足所有约束条件。
求解
我们尝试去理解利用约束函数和目标函数的法向量平行的性质去解决问题:这个链接
我们用拉格朗日乘子法构造拉格朗日函数:
L ( x , α ) = f ( x ) + ∑ i = 1 m α i h i ( x ) \mathscr{L}(x,\alpha)=f(x) + \sum_{i=1}^m\alpha_ih_i(x) L(x,α)=f(x)+i=1∑mαihi(x)
其中