Lagrange乘子法与KTT条件
Date: 2021.11.20.
参考文献:
https://blog.youkuaiyun.com/lijil168/article/details/69395023
引言
在求解最优化问题中,拉格朗日乘子法
和KTT(Karush Kuhn Tucker)条件
是两种常用的方法。在有等式约束的条件下使用前者,有不等式约束情况下使用后者。
1.1 无约束优化问题
这是最简单的情况,解决方法为对函数求导,令求导函数等于0的点可能是极值点,将结果代回原函数进行验证即可。
1.2 等式约束条件
设目标函数为
f
(
x
)
f(x)
f(x),约束条件为
h
k
(
x
)
h_k(x)
hk(x),则问题:
min
f
(
x
)
s
.
t
.
h
k
(
x
)
=
0
k
=
1
,
2
,
⋯
,
l
\min f(x)\\ s.t. \quad h_k(x)=0 \quad k=1,2,\cdots,l
minf(x)s.t.hk(x)=0k=1,2,⋯,l
的解决方法为消元法
或者拉格朗日乘子法
。消元法较为简单,故不再赘述,此处主要引入拉格朗日乘子法。
首先定义拉格朗日函数
F
(
x
)
F(x)
F(x):
F
(
x
,
λ
)
=
f
(
x
)
+
∑
k
=
1
l
λ
k
h
k
(
x
)
F(x,\lambda)=f(x)+\sum_{k=1}^l\lambda_kh_k(x)
F(x,λ)=f(x)+k=1∑lλkhk(x)
其中
λ
k
\lambda_k
λk是各个约束条件的待定系数。
然后求解偏导方程:
∂
F
∂
x
=
0
i
=
1
,
⋯
,
n
∂
F
∂
λ
k
=
0
k
=
1
,
⋯
,
l
\frac{\partial F}{\partial x}=0 \quad i=1,\cdots,n \\ \frac{\partial F}{\partial \lambda_k}=0 \quad k=1,\cdots,l
∂x∂F=0i=1,⋯,n∂λk∂F=0k=1,⋯,l
如果有
l
l
l个约束条件,就应该有
l
+
1
l+1
l+1个方程,求出方程组的解得出可行解,代回原方程验证即得最优解。
1.3 不等式约束条件
设目标函数为
f
(
x
)
f(x)
f(x),不等式约束为
g
(
x
)
g(x)
g(x),有的书上还会加上等式约束
h
(
x
)
h(x)
h(x),则约束优化问题描述如下:
min
f
(
x
)
s
.
t
.
h
j
(
x
)
=
0
j
=
1
,
⋯
,
p
g
k
(
x
)
≤
0
k
=
1
,
⋯
,
q
\min f(x)\\ s.t. \quad h_j(x)=0 \quad j=1,\cdots,p\\ g_k(x)\leq 0 \quad k=1,\cdots,q
minf(x)s.t.hj(x)=0j=1,⋯,pgk(x)≤0k=1,⋯,q
则我们定义上述问题的拉格朗日函数:
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_{j=1}^p \lambda_jh_j(x)+\sum_{k=1}^q \mu_k g_k(x)
L(x,λ,μ)=f(x)+j=1∑pλjhj(x)+k=1∑qμkgk(x)
常用的方法是KKT条件
,
以下是KTT条件的推导过程:
- 证明(KTT条件):
令:
L
(
x
,
μ
)
=
f
(
x
)
+
∑
k
=
1
q
μ
k
g
k
(
x
)
L(x, \mu)=f(x)+\sum_{k=1}^q \mu_k g_k(x)
L(x,μ)=f(x)+k=1∑qμkgk(x)
其中,
μ
k
≥
0
\mu_k \geq 0
μk≥0,
g
k
(
x
)
≤
0
g_k(x)\leq 0
gk(x)≤0.
由于
{
μ
k
≥
0
g
k
(
x
)
≤
0
⇒
μ
g
(
x
)
≤
0
(1)
\begin{cases} &\mu_k \geq 0\\ &g_k(x)\leq0\\ \end{cases} \Rightarrow \mu g(x)\leq0 \tag{1}
{μk≥0gk(x)≤0⇒μg(x)≤0(1)
故
max
μ
L
(
x
,
μ
)
=
f
(
x
)
(2)
\max_{\mu} L(x,\mu)=f(x) \tag{2}
μmaxL(x,μ)=f(x)(2)
因此
min
x
f
(
x
)
=
min
x
max
μ
L
(
x
,
μ
)
(3)
\min_x f(x)=\min_x \max_{\mu}L(x,\mu) \tag{3}
xminf(x)=xminμmaxL(x,μ)(3)
又由
(
1
)
(1)
(1)式,我们有:
min
x
μ
g
(
x
)
=
{
0
μ
=
0
o
r
g
(
x
)
=
0
−
∞
μ
>
0
a
n
d
g
(
x
)
<
0
\min_x \mu g(x)= \begin{cases} &0& \mu=0&or&g(x)=0\\ &-\infin & \mu>0 & and & g(x) <0 \end{cases}
xminμg(x)={0−∞μ=0μ>0orandg(x)=0g(x)<0
因此:
max
μ
min
x
μ
g
(
x
)
=
0
μ
=
0
o
r
g
(
x
)
=
0
\max_{\mu}\min_{x} \mu g(x)=0\\ \mu=0 \quad or \quad g(x)=0
μmaxxminμg(x)=0μ=0org(x)=0
故:
max
μ
min
x
L
(
x
,
μ
)
=
min
x
f
(
x
)
+
max
μ
min
x
μ
g
(
x
)
=
min
x
f
(
x
)
μ
=
0
o
r
g
(
x
)
=
0
(4)
\max_{\mu}\min_x L(x,\mu)=\min_x f(x)+\max_{\mu}\min_x \mu g(x) =\min_x f(x)\\ \mu=0 \quad or \quad g(x)=0 \tag{4}
μmaxxminL(x,μ)=xminf(x)+μmaxxminμg(x)=xminf(x)μ=0org(x)=0(4)
联合
(
3
)
,
(
4
)
(3),(4)
(3),(4)式我们得到:
min
x
max
μ
L
(
x
,
μ
)
=
max
μ
min
x
L
(
x
,
μ
)
=
min
x
f
(
x
)
\min_x \max_{\mu}L(x,\mu)=\max_{\mu}\min_x L(x,\mu)=\min_xf(x)
xminμmaxL(x,μ)=μmaxxminL(x,μ)=xminf(x)
我们把
min
x
max
μ
L
(
x
,
μ
)
\min_x \max_{\mu}L(x,\mu)
minxmaxμL(x,μ)称为原问题,
max
μ
min
x
L
(
x
,
μ
)
\max_{\mu}\min_x L(x,\mu)
maxμminxL(x,μ)称为对偶问题,上式表明当满足一定条件时,原问题、对偶问题的解,以及
min
x
f
(
x
)
\min_xf(x)
minxf(x)是相同的,且在最优解
x
∗
x^*
x∗处
μ
=
0
\mu=0
μ=0 or
g
(
x
∗
)
=
0
g(x^*)=0
g(x∗)=0,把
x
∗
x^{*}
x∗代入
(
2
)
(2)
(2)得到
max
μ
L
(
x
∗
,
μ
)
=
f
(
x
∗
)
\max_{\mu}L(x^*,\mu)=f(x^*)
maxμL(x∗,μ)=f(x∗),由
(
4
)
(4)
(4)得到
max
μ
min
x
L
(
x
,
μ
)
=
min
x
f
(
x
∗
)
\max_{\mu}\min_xL(x,\mu)=\min_xf(x^*)
maxμminxL(x,μ)=minxf(x∗),所以
L
(
x
∗
,
μ
)
=
min
x
L
(
x
,
μ
)
L(x^*,\mu)=\min_xL(x,\mu)
L(x∗,μ)=minxL(x,μ),这说明
x
∗
x^{*}
x∗也是
L
(
x
,
μ
)
L(x,\mu)
L(x,μ)的极值点,即:
∂
L
(
x
,
μ
)
∂
x
∣
x
=
x
∗
=
0
\frac{\partial L(x,\mu)}{\partial x}|_{x=x^*}=0
∂x∂L(x,μ)∣x=x∗=0
综上讨论,有:
{
min
x
max
μ
L
(
x
,
μ
)
=
max
μ
min
x
L
(
x
,
μ
)
=
min
x
f
(
x
)
=
f
(
x
∗
)
μ
k
g
k
(
x
∗
)
≤
0
∂
L
(
x
,
μ
)
∂
x
∣
x
=
x
∗
=
0
\begin{cases} &\min_x \max_{\mu}L(x,\mu)=\max_{\mu}\min_x L(x,\mu)=\min_xf(x)=f(x^*)\\ & \mu_k g_k(x^*)\leq0\\ &\frac{\partial L(x,\mu)}{\partial x}|_{x=x^*}=0 \end{cases}
⎩⎪⎨⎪⎧minxmaxμL(x,μ)=maxμminxL(x,μ)=minxf(x)=f(x∗)μkgk(x∗)≤0∂x∂L(x,μ)∣x=x∗=0
如果我们考虑等式约束:
L
(
x
,
λ
,
μ
)
=
f
(
x
)
+
∑
i
n
λ
i
h
i
(
x
)
+
∑
k
=
1
q
μ
k
g
k
(
x
)
L(x,\lambda,\mu)=f(x)+\sum_i^n \lambda_ih_i(x)+\sum_{k=1}^q\mu_k g_k(x)
L(x,λ,μ)=f(x)+i∑nλihi(x)+k=1∑qμkgk(x)
则有:
{
min
x
max
μ
L
(
x
,
λ
,
μ
)
=
max
μ
min
x
L
(
x
,
λ
,
μ
)
=
min
x
f
(
x
)
=
f
(
x
∗
)
μ
k
g
k
(
x
∗
)
≤
0
∂
L
(
x
,
λ
,
μ
)
∂
x
∣
x
=
x
∗
=
0
\begin{cases} &\min_x \max_{\mu}L(x,\lambda,\mu)=\max_{\mu}\min_x L(x,\lambda,\mu)=\min_xf(x)=f(x^*)\\ & \mu_k g_k(x^*)\leq0\\ &\frac{\partial L(x,\lambda,\mu)}{\partial x}|_{x=x^*}=0 \end{cases}
⎩⎪⎨⎪⎧minxmaxμL(x,λ,μ)=maxμminxL(x,λ,μ)=minxf(x)=f(x∗)μkgk(x∗)≤0∂x∂L(x,λ,μ)∣x=x∗=0
Q.E.D.