【统计学习笔记】拉格朗日乘数法与约束最优化问题
1. 拉格朗日函数
先考虑一下问题:
当
ϕ
(
x
,
y
,
z
)
=
0
时
,
求
函
数
F
(
x
,
y
,
z
)
的
极
值
。
当\phi(x,y,z)=0时,求函数F(x,y,z)的极值。
当ϕ(x,y,z)=0时,求函数F(x,y,z)的极值。
设曲面
F
(
x
,
y
,
z
)
−
u
=
0
F(x,y,z)-u=0
F(x,y,z)−u=0,随着u的改变,当该曲面与曲面
ϕ
(
x
,
y
,
z
)
=
0
\phi(x,y,z)=0
ϕ(x,y,z)=0相切时,u取极值。设切点为
(
x
0
,
y
0
,
z
0
)
(x_0,y_0,z_0)
(x0,y0,z0)。
两个曲面在切点处的法向量分别为:
{
n
⃗
1
=
(
F
x
,
F
y
,
F
z
)
n
⃗
2
=
(
ϕ
x
,
ϕ
y
,
ϕ
z
)
\begin{cases} \vec{n}_1=(F_x,F_y,F_z)\\ \vec{n}_2=(\phi_x,\phi_y,\phi_z) \end{cases}
{n1=(Fx,Fy,Fz)n2=(ϕx,ϕy,ϕz)
要使两曲面相切,则法向量平行,故
(
x
0
,
y
0
,
z
0
)
(x_0,y_0,z_0)
(x0,y0,z0)满足:
{
F
x
(
x
0
,
y
0
,
z
0
)
+
λ
ϕ
x
(
x
0
,
y
0
,
z
0
)
=
0
F
y
(
x
0
,
y
0
,
z
0
)
+
λ
ϕ
y
(
x
0
,
y
0
,
z
0
)
=
0
F
z
(
x
0
,
y
0
,
z
0
)
+
λ
ϕ
z
(
x
0
,
y
0
,
z
0
)
=
0
…
…
(
1
)
\begin{cases} F_x(x_0,y_0,z_0)+\lambda\phi_x(x_0,y_0,z_0)=0\\ F_y(x_0,y_0,z_0)+\lambda\phi_y(x_0,y_0,z_0)=0\\ F_z(x_0,y_0,z_0)+\lambda\phi_z(x_0,y_0,z_0)=0 \end{cases}\;\dots\dots(1)
⎩⎪⎨⎪⎧Fx(x0,y0,z0)+λϕx(x0,y0,z0)=0Fy(x0,y0,z0)+λϕy(x0,y0,z0)=0Fz(x0,y0,z0)+λϕz(x0,y0,z0)=0……(1)
因为
(
x
0
,
y
0
,
z
0
)
(x_0,y_0,z_0)
(x0,y0,z0)在曲面
ϕ
(
x
,
y
,
z
)
=
0
\phi(x,y,z)=0
ϕ(x,y,z)=0上,所以其还满足等式:
ϕ
(
x
0
,
y
0
,
z
0
)
=
0
…
…
(
2
)
\phi(x_0,y_0,z_0)=0\;\dots\dots(2)
ϕ(x0,y0,z0)=0……(2)
构造函数:
L
(
x
,
y
,
z
,
λ
)
=
f
(
x
,
y
,
z
)
+
λ
ϕ
(
x
,
y
,
z
)
L(x,y,z,\lambda)=f(x,y,z)+\lambda\phi(x,y,z)
L(x,y,z,λ)=f(x,y,z)+λϕ(x,y,z)
(1)(2)两式等价于L的所有一阶偏导数为0,L称为拉格朗日函数。直接对拉格朗日函数求偏导计算条件极值称为拉格朗日数乘法。
2. 约束最优化问题
2.1 无约束最优化
min
x
∈
R
n
f
(
x
)
\min\limits_{x\in\mathcal{R}^n}f(x)
x∈Rnminf(x)
直接对x求导,即:
▽
x
f
(
x
)
=
0
\bigtriangledown_xf(x)=0
▽xf(x)=0
2.2 等式约束最优化
{
min
x
∈
R
n
f
(
x
)
s
.
t
.
h
i
(
x
)
=
0
,
i
=
1
,
2
,
…
,
l
\begin{cases} \min\limits_{x\in\mathcal{R}^n}f(x)\\ s.t.\;\;h_i(x)=0,i=1,2,\dots,l \end{cases}
{x∈Rnminf(x)s.t.hi(x)=0,i=1,2,…,l
利用拉格朗日数乘法求解:
L
(
x
,
λ
)
=
f
(
x
)
+
∑
i
=
1
l
λ
i
h
i
(
x
)
L(x,\lambda)=f(x)+\sum\limits_{i=1}^l\lambda_ih_i(x)
L(x,λ)=f(x)+i=1∑lλihi(x)
即求解方程:
{
∂
L
∂
x
=
0
h
i
(
x
)
=
0
,
i
=
1
,
2
,
…
,
l
\begin{cases} \frac{\partial{L}}{\partial{x}}=0\\ h_i(x)=0,i=1,2,\dots,l \end{cases}
{∂x∂L=0hi(x)=0,i=1,2,…,l
2.3 不等式约束最优化
{
min
x
∈
R
n
f
(
x
)
s
.
t
.
c
j
≤
0
,
i
=
1
,
2
,
…
,
k
h
j
(
x
)
=
0
,
j
=
1
,
2
,
…
,
l
\begin{cases} \min\limits_{x\in\mathcal{R}^n}f(x)\\ s.t.\;\;c_j\leq0,i=1,2,\dots,k\\ \;\;\;\;h_j(x)=0,j=1,2,\dots,l \end{cases}
⎩⎪⎨⎪⎧x∈Rnminf(x)s.t.cj≤0,i=1,2,…,khj(x)=0,j=1,2,…,l
构建广义拉格朗日函数:
L
(
x
,
λ
,
μ
)
=
f
(
x
)
+
∑
i
=
1
k
λ
i
c
i
(
x
)
+
∑
j
=
1
l
μ
j
h
j
(
x
)
L(x,\lambda,\mu)=f(x)+\sum\limits_{i=1}^k\lambda_ic_i(x)+\sum\limits_{j=1}^l\mu_jh_j(x)
L(x,λ,μ)=f(x)+i=1∑kλici(x)+j=1∑lμjhj(x)
定义拉格朗日对偶函数:
g
(
λ
,
μ
)
=
min
x
L
(
x
,
λ
,
μ
)
=
min
x
(
f
(
x
)
+
∑
i
=
1
k
λ
i
c
i
(
x
)
+
∑
j
=
1
l
μ
j
h
j
(
x
)
)
λ
≥
0
g(\lambda,\mu)=\min\limits_xL(x,\lambda,\mu)\\ =\min\limits_x(f(x)+\sum\limits_{i=1}^k\lambda_ic_i(x)+\sum\limits_{j=1}^l\mu_jh_j(x))\;\;\lambda\geq0
g(λ,μ)=xminL(x,λ,μ)=xmin(f(x)+i=1∑kλici(x)+j=1∑lμjhj(x))λ≥0
可以证明,拉格朗日对偶函数一定是凹函数。故L的最值p*永远大于等于g。即:
g
(
λ
,
μ
)
≤
L
(
x
,
λ
,
μ
)
≤
q
∗
g(\lambda,\mu)\leq L(x,\lambda,\mu)\leq{q^*}
g(λ,μ)≤L(x,λ,μ)≤q∗
这样,我们可以由对偶函数给出一个尽可能逼近q*的值,即:
max
λ
,
μ
g
(
λ
,
μ
)
(
s
.
t
.
λ
≥
0
)
\max\limits_{\lambda,\mu}g(\lambda,\mu)\;\;(s.t.\;\;\lambda\geq0)
λ,μmaxg(λ,μ)(s.t.λ≥0)
最终,我们可以给出原问题的对偶形式:
{
max
λ
,
μ
min
x
L
(
x
,
λ
,
μ
)
s
.
t
.
λ
i
≥
0
i
=
1
,
2
,
…
,
k
\begin{cases}\max\limits_{\lambda,\mu}\min\limits_xL(x,\lambda,\mu)\;\;\\ s.t.\;\;\lambda_i\geq0\;\;i=1,2,\dots,k \end{cases}
⎩⎨⎧λ,μmaxxminL(x,λ,μ)s.t.λi≥0i=1,2,…,k