尊重原创:知乎:什么是KKT条件
什么是KKT条件:
对于具有等式和不等式约束的一般优化问题
{
m
i
n
f
(
x
)
,
最
值
问
题
s
.
t
.
g
j
(
x
)
≤
0
(
j
=
1
,
2
,
3
,
.
.
.
,
m
)
不
等
式
约
束
h
k
(
x
)
=
0
(
k
=
1
,
2
,
.
.
.
,
l
)
等
式
约
束
\begin{cases} minf(x),&最值问题\\ s.t. g_j(x)\leq 0(j = 1,2,3,...,m)&不等式约束\\h_k(x) = 0(k=1,2,...,l)&等式约束\end{cases}
⎩⎪⎨⎪⎧minf(x),s.t.gj(x)≤0(j=1,2,3,...,m)hk(x)=0(k=1,2,...,l)最值问题不等式约束等式约束
KKT条件给出了判断x*是否为最优解的必要条件,即:
{
∂
f
∂
x
i
+
∑
j
=
1
m
μ
j
∂
g
j
∂
x
i
+
∑
k
=
1
l
λ
k
∂
h
k
∂
x
i
=
0
,
(
i
=
1
,
2
,
.
.
.
,
n
)
h
k
(
x
)
=
0
,
(
k
=
1
,
2
,
.
.
.
,
l
)
μ
j
g
j
(
x
)
=
0
,
(
j
=
1
,
2
,
.
.
.
,
m
)
μ
j
≥
0
\begin{cases} \frac{\partial f}{\partial {x_i}}+\sum_{j=1}^{m}\mu_j\frac{\partial {g_j}}{\partial {x_i}}+\sum_{k=1}^{l}\lambda_k\frac{\partial {h_k}}{\partial {x_i}} = 0,(i=1,2,...,n)\\h_k(x) = 0,(k=1,2,...,l)\\\mu_jg_j(x)=0,(j=1,2,...,m)\\\mu_j\geq 0\end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧∂xi∂f+∑j=1mμj∂xi∂gj+∑k=1lλk∂xi∂hk=0,(i=1,2,...,n)hk(x)=0,(k=1,2,...,l)μjgj(x)=0,(j=1,2,...,m)μj≥0
1、等式约束优化问题,这一部分其实就是Lagrange乘数法。
2、不等式约束优化问题
转化思想:将不等式约束条件转化为等式约束条件。
具体做法:引入松弛变量,松弛变量也是优化变量,求偏导也需要一视同仁。
实战
{
m
i
n
f
(
x
)
,
最
值
问
题
s
.
t
.
g
j
(
x
)
≤
0
(
j
=
1
,
2
,
3
,
.
.
.
,
m
)
不
等
式
约
束
h
k
(
x
)
=
0
(
k
=
1
,
2
,
.
.
.
,
l
)
等
式
约
束
\begin{cases} minf(x),&最值问题\\ s.t. g_j(x)\leq 0(j = 1,2,3,...,m)&不等式约束\\h_k(x) = 0(k=1,2,...,l)&等式约束\end{cases}
⎩⎪⎨⎪⎧minf(x),s.t.gj(x)≤0(j=1,2,3,...,m)hk(x)=0(k=1,2,...,l)最值问题不等式约束等式约束
对于约束
g
1
g_1
g1和
g
2
g_2
g2,我们分别引入两个松弛变量
a
1
2
a_1^2
a12和
b
1
2
b_1^2
b12,得到
h
1
(
x
,
a
1
)
=
g
1
+
a
1
2
=
0
h_1(x,a_1) = g_1 + a_1^2 = 0
h1(x,a1)=g1+a12=0和
h
2
(
x
,
b
1
)
=
g
2
+
b
1
2
=
0
h_2(x,b_1) = g_2 + b_1^2 = 0
h2(x,b1)=g2+b12=0。
为啥定义平方为松弛变量?
因为
g
1
g_1
g1和
g
2
g_2
g2这两个不等式的左边必须加上一个正数才能使不等式变为等式。如果只加上
a
1
a_1
a1和
b
1
b_1
b1,又会引入新的约束
a
1
≥
0
a_1\geq 0
a1≥0和
b
1
≥
0
b_1\geq 0
b1≥0。
所以不等式转为了等式约束:
由此我们将不等式约束转化为了等式约束,并得到Lagrange函数。
L
(
x
,
a
1
,
b
1
,
μ
1
,
μ
2
)
=
f
(
x
)
+
μ
1
(
a
−
x
+
a
1
2
)
+
μ
2
(
b
−
x
+
b
1
2
)
L(x,a_1,b_1,\mu_1,\mu_2) = f(x) + \mu_1(a-x+a_1^2) + \mu_2(b-x+b_1^2)
L(x,a1,b1,μ1,μ2)=f(x)+μ1(a−x+a12)+μ2(b−x+b12)
然后就是最其按照Lagrange乘数法进行求解。
OK,KKT条件告一段落,但是还有一部分求解未展开。
以后再提。