不等式约束优化问题及KKT条件理解
我们只考虑不等式约束下的优化问题,如:
m
i
n
f
(
x
)
minf(x)
minf(x)
s . t . g ( x ) ≤ 0 s.t.g(x)\leq0 s.t.g(x)≤0
这里 x x x是多维的向量,约束不等式 g ( x ) ≤ 0 g(x)\leq0 g(x)≤0表示的是多维空间上的一个区域,因此我们定义可行性域 K = x ∈ R n ∣ g ( x ) ≤ 0 K={x\in R^n|g(x)\leq0} K=x∈Rn∣g(x)≤0 。假设 x ∗ x^* x∗为满足约束条件的最佳解,那么我们可以分成两种情况讨论,而这两种情况的最佳解具有不同的必要条件。
( 1 ) (1) (1) g ( x ) ≤ 0 g(x)\leq0 g(x)≤0 ,最佳解位于 K K K的内部,称为内部解,这时约束条件是无效的, g ( x ) g(x) g(x)不起作用,约束优化退化为无约束优化,因此驻点 x ∗ x^* x∗满足 ∇ f = 0 \nabla f =0 ∇f=0 ,且因为是无条件约束,没有必要使用 g ( x ) g(x) g(x)所以拉格朗日乘数法中的 λ = 0 \lambda=0 λ=0。
( 2 ) (2) (2) g ( x ) = 0 g(x)=0 g(x)=0 ,最佳解落在 K K K的边界上,称为边界解,此时约束条件是有效的,不等式约束变成等式约束 g ( x ) = 0 g(x)=0 g(x)=0,利用拉格朗日乘数法可得存在 λ \lambda λ使得 ∇ f = − λ ∇ g \nabla f=-\lambda\nabla g ∇f=−λ∇g。因为我们希望最小化 f f f,梯度 ∇ f ( \nabla f( ∇f(函数 f ( x ) f(x) f(x)在 x x x处的最陡上升方向)应指向可行性域 K K K的内部(因为你的最优解最小值是在边界取得的,如果函数 f ( x ) f(x) f(x)的梯度不是这样的指向,说明边界内有更小的值,这就和最优解最小值是在边界取得的相矛盾了!),但 ∇ g \nabla g ∇g指向 K K K的外部(即 g ( x ) > 0 g(x)>0 g(x)>0的区域,因为梯度方向总是指向使函数增大最快的方向)且必与 ∇ f \nabla f ∇f方向相反,因此, λ ≥ 0 \lambda\ge0 λ≥0,这称为对偶可行性。
综合以上两种情况我们有:
{
内
部
解
时
,
λ
=
0
,
使
得
λ
g
(
x
)
=
0
边
界
解
时
,
g
(
x
)
=
0
,
使
得
λ
g
(
x
)
=
0
\left\{ \begin{array}{c} 内部解时,\lambda=0,使得 \lambda g(x)=0\\ 边界解时,g(x)=0,使得 \lambda g(x)=0\\ \end{array} \right.
{内部解时,λ=0,使得λg(x)=0边界解时,g(x)=0,使得λg(x)=0
因此,无论是内部解或边界解,
λ
g
(
x
)
=
0
\lambda g(x)=0
λg(x)=0恒成立,这称为互补松弛性。再综合所有的情况我们可以得到不等式约束下最佳解的必要条件为:
{
g
(
x
)
≤
0
λ
≥
0
λ
g
(
x
)
=
0
\left\{ \begin{array}{c} g(x)\leq0\\ \lambda\ge0\\ \lambda g(x)=0 \end{array} \right.
⎩⎨⎧g(x)≤0λ≥0λg(x)=0
此即为KKT条件。