1. 基本概念
前面我们有提到,拉格朗日乘子法和KKT求解约束优化问题的思路就是:
将有约束的问题转化为无约束的问题 (最优化问题(一))。转换的主要思想是将约束条件函数与原函数联立,从而求出使原函数取得极值的各个变量的解。
等式约束时使用拉格朗日乘子法,不等约束时使用KKT条件。
2. 数学定义
考虑约束优化问题:
2.1 等式约束
对于等式约束问题,
拉格朗日乘子法的做法是对原目标函数进行改造,一般包含如下几个步骤:
1)构造拉格朗日函数
2)解变量的偏导方程
3)带入目标函数
拉格朗日乘子法构造的新目标函数如下:
F ( x , δ ) = f ( x ) + ∑ j = 1 l δ j h j ( x ) F(x, \delta)=f(x)+\sum_{j=1} ^ l \delta_j h_j(x) F(x,δ)=f(x)+∑j=1lδjhj(x)
其中, f ( x ) f(x) f(x)是原始目标函数, h j ( x ) h_j(x) hj(x)为第 j j j个不等式约束, δ j \delta_j δj为对应的约束系数。相当于是将目标函数和约束项加权求和。
然后,分别对每一个变量求导,注意:此时权重 δ \delta δ 也是自变量。相当于:
∂ F ∂ x i = 0 \dfrac{\partial F}{\partial x_i}=0 ∂xi∂F=0,……
∂ F ∂ δ j = 0 \dfrac{\partial F}{\partial \delta_j}=0 ∂δj∂F=0,……
下面我们结合例子理解一下。给定椭圆:
x 2 a 2 + y 2 b 2 + z 2 c 2 = 1 \dfrac{x^2}{a^2} + \dfrac{y^2}{b^2} + \dfrac{z^2}{c^2} = 1 a2x2+b2y2+c2z2=1
求这个椭球内接长方体的最大体积。
这个问题实际上就是条件极值问题,即在条件