拉格朗日乘数法解含不等式约束的最优化问题
拉格朗日乘子法(Lagrange Multiplier)和 KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。当然,这两个方法求得的结果只是必要条件,只有当目标函数是凸函数的情况下,才能保证是充分必要条件。
带有不等式约束的最优化问题通常可以表述为如下形式:
\[\begin{aligned}&\min f(X) \\ s.t.\quad & g_k(X)\le 0, k = 1,2,\dots,q \end{aligned} \]
还是看一个具体的例子
\[\begin{aligned}\min f(d_1,d_2) &= d_1^2 + d_2^2 - 2d_2 + 2 \\ s.t.\quad & d_1^2 + d_2^2 \le 4\end{aligned} \]
-
首先写出拉格朗日函数
\[g(d_1,d_2,\lambda, \eta) = f(d_1, d_2) + \lambda (d_1^2 + d_2^2 - 4 + \eta^2) \] -
\(\lambda\)是拉格朗日乘子,引入的新的\(\eta\) 是一个松弛变量,目的是为了将不等式约束经过松弛后,变为等式约束,注意\(\lambda \ge 0\) 。 这是不等式约束与等式约束最优化问题拉格朗日乘数法的一个重要区别。
-
然后对四个未知量分别求导,且令导函数为0,有
\[\begin{cases}2\eta\lambda = 0 \\d_1^2+d_2^2-4 + \eta^2 = 0\\2d_2 - 2 + 2\lambda d_2 = 0\\ 2d_1 + 2\lambda d_1 = 0\\ \lambda\ge 0\end{cases} \] -
由\(d_1 + \lambda d_1 = 0\) 知\(d_1 = 0\) ,\(\eta\lambda = 0\) 情况需要分开判断,假设\(\lambda = 0\) 则\(d_2 = 1, \eta = \sqrt{3}\), 若\(\lambda > 0\),则\(\eta =0\), 求出\(\eta < 0\) 与假设矛盾