分类目录:《算法设计与分析》总目录
相关文章:
·拉格朗日乘子法(一):等式约束的拉格朗日乘子法
·拉格朗日乘子法(二):不等式约束与KKT条件
现在接着《拉格朗日乘子法(一):等式约束的拉格朗日乘子法》的思路考虑不等式约束 g ( x ) ≤ 0 g(x)\leq0 g(x)≤0的情景。如下图所示,此时最优点 x ∗ x^* x∗或在 g ( x ) < 0 g(x)<0 g(x)<0的区域中,或在边界 g ( x ) = 0 g(x)=0 g(x)=0上。
- g ( x ) < 0 g(x)<0 g(x)<0的情况:约束 g ( x ) ≤ 0 g(x)\leq0 g(x)≤0不起作用,可直接通过条件 ∇ f ( x ) = 0 \nabla f(x)=0 ∇f(x)=0来获得最优点。这等价于将 λ \lambda λ置零然后对 ∇ x L ( x , λ ) \nabla_xL(x,\lambda) ∇xL(x,λ)置零得到最优点。
-
g
(
x
)
=
0
g(x)=0
g(x)=0的情况:类似于《拉格朗日乘子法(一):等式约束的拉格朗日乘子法》中等式约束的分析,但需注意的是,此时梯度
∇
g
(
x
∗
)
\nabla g(x^*)
∇g(x∗)的方向和梯度
∇
f
(
x
∗
)
\nabla f(x^*)
∇f(x∗)的方向必须相反,即存在常数
λ
>
0
\lambda>0
λ>0使得
∇
f
(
x
∗
)
+
λ
∇
g
(
x
∗
)
=
0
\nabla f(x^*)+\lambda\nabla g(x^*)=0
∇f(x∗)+λ∇g(x∗)=0。
整合这两种情形,必满足入 λ g ( x ) = 0 \lambda g(x)=0 λg(x)=0。因此在约束 g ( x ) ≤ 0 g(x)\leq0 g(x)≤0下最小化 f ( x ) f(x) f(x),可转化为在如下约束下最小化式的拉格朗日函数:
{ g ( x ) ≤ 0 λ > 0 μ j g j ( x ) = 0 \left\{ \begin{aligned} g(x)&\leq 0\\ \lambda&>0\\ \mu_jg_j(x)&=0 \end{aligned} \right. ⎩⎪⎨⎪⎧g(x)λμjgj(x)≤0>0=0
上式称为Karush-Kuhn-Tucker(KKT)条件。上述做法可推广到多个约束。考虑具有 m m m个等式约束和 n n n个不等式约束:
min x f ( x ) s.t. h i ( x ) = 0 , i = 1 , 2 , ⋯ , m g j ( x ) ≤ 0 , j = 1 , 2 , ⋯ , n \begin{aligned} \min_x&\quad f(x)\\ \text{s.t.}&\quad h_i(x)=0\qquad ,i=1,2,\cdots,m\\ &\quad g_j(x)\leq0\qquad ,j=1,2,\cdots,n\\ \end{aligned} xmins.t.f(x)hi(x)=0,i=1,2,⋯,mgj(x)≤0,j=1,2,⋯,n
引入拉格朗日乘子
λ
=
(
λ
1
,
λ
2
,
⋯
,
λ
m
)
T
\lambda=(\lambda_1, \lambda_2, \cdots, \lambda_m)^T
λ=(λ1,λ2,⋯,λm)T和
μ
=
(
μ
1
,
μ
2
,
⋯
,
μ
n
)
T
\mu=(\mu_1, \mu_2, \cdots,\mu_n)^T
μ=(μ1,μ2,⋯,μn)T,相应的拉格朗日函数为:
L
(
x
,
λ
,
μ
)
=
f
(
x
)
+
∑
i
=
1
m
λ
i
h
i
(
x
)
+
∑
j
=
1
n
μ
j
g
j
(
x
)
L(x, \lambda, \mu)=f(x)+\sum_{i=1}^m\lambda_ih_i(x)+\sum_{j=1}^n\mu_jg_j(x)
L(x,λ,μ)=f(x)+i=1∑mλihi(x)+j=1∑nμjgj(x)由不等式约束引入的KKT条件:
{
∇
X
L
(
x
,
λ
,
μ
)
=
∇
f
+
λ
i
∇
h
i
+
μ
j
∇
g
j
=
0
h
i
(
x
)
=
0
g
j
(
x
)
≤
0
μ
j
≥
0
μ
j
g
j
(
x
)
=
0
\left\{ \begin{aligned} \nabla_X L(x,\lambda, \mu)&=\nabla f+\lambda_i\nabla h_i+\mu_j\nabla g_j=0\\ h_i(x)&=0\\ g_j(x)&\leq 0\\ \mu_j&\geq0\\ \mu_jg_j(x)&=0 \end{aligned} \right.
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∇XL(x,λ,μ)hi(x)gj(x)μjμjgj(x)=∇f+λi∇hi+μj∇gj=0=0≤0≥0=0
即可求解。