设目标函数f(x),不等式约束约束为g(x),等式约束为h(x),那么可以将优化问题描述如下
min
f
(
X
)
s
.
t
.
h
j
(
X
)
=
0
j
=
1
,
2
,
.
.
.
,
p
g
k
(
X
)
≤
0
k
=
1
,
2
,
.
.
.
q
\begin{aligned} \min \quad&f(X)\\ s.t. \quad&h_j(X)=0\quad j=1,2,...,p\\ &g_k(X)\le 0 \quad k=1,2,...q\\ \end{aligned}
mins.t.f(X)hj(X)=0j=1,2,...,pgk(X)≤0k=1,2,...q
我们定义不等式约束下的拉格朗日函数L,则L的表达式为
L
(
X
,
λ
,
μ
)
=
f
(
X
)
+
∑
j
=
1
p
λ
j
h
j
(
X
)
+
∑
k
=
1
q
μ
k
g
k
(
X
)
L(X, \lambda, \mu)=f(X)+\sum\limits_{j=1}^{p}{\lambda_jh_j(X)}+\sum\limits_{k=1}^q{\mu_k\mathrm{g}_k(X)}
L(X,λ,μ)=f(X)+j=1∑pλjhj(X)+k=1∑qμkgk(X)
对于有约束的情况下能取到极值点的地方可能有两种情况:
- 在h(x) 和 等值线相切的地方
- f(x) 的极值点本身就在可行域里面。
若要求解上述优化问题,必须满足下述的条件,即求解条件:
∂ L ∂ x ∣ X = X ∗ = 0 λ j ≠ 0 μ k ≥ 0 μ k g k ( X ∗ ) = 0 h j ( X ∗ ) = 0 j = 1 , 2 , . . . , p g k ( X ∗ ) ≤ 0 k = 1 , 2 , . . . q \begin{aligned} &\frac{\partial L}{\partial x}\bigg|_{X=X^*}=0\\ &\lambda_j\neq0\\ &\mu_k\geq0\\ &\mu_kg_k(X^*)=0\\ &h_j(X^*)=0 \quad j=1,2,...,p\\ &g_k(X^*)\leq0 \quad k=1,2,...q \end{aligned} ∂x∂L∣∣∣∣X=X∗=0λj=0μk≥0μkgk(X∗)=0hj(X∗)=0j=1,2,...,pgk(X∗)≤0k=1,2,...q
这些求解条件就是KKT条件。
(1)是对拉朗格朗日函数取极值时的必要条件
(2)是拉格朗日系数等式约束
(3)是拉格朗日系数不等式约束
(4)是互补松弛条件
(5)(6)原约束条件