UTF8gbsn
多约束的拉格朗日乘子问题.
f ( x ) h 1 ( x ) = 0 ⋮ h m ( x ) = 0 \left. \begin{aligned} \quad & f(x)\\ \quad& h_1(x)=0\\ & \quad \quad \vdots\\ & h_m(x)=0 \end{aligned} \right. f(x)h1(x)=0⋮hm(x)=0
假设这个问题的解是
x
∗
x^{*}
x∗. 那么, 以下命题成立
∇
f
(
x
∗
)
=
∑
i
=
1
m
λ
i
∇
h
i
(
x
∗
)
\nabla f(x^{*}) = \sum_{i=1}^{m} \lambda_i\nabla h_i(x^{*})
∇f(x∗)=i=1∑mλi∇hi(x∗)
接下来, 我们就要来证明这个命题.
证明:
假设所有约束条件的相交部分组成一个hypersurface
S
S
S. 并且
x
∗
x^{*}
x∗是
S
S
S
上的一点. 接下来先来证明
∇
f
(
x
∗
)
\nabla f(x^{*})
∇f(x∗) 垂直于过点
x
∗
x^{*}
x∗,
S
S
S的切平面
T
T
T. 假设
x
(
t
)
x(t)
x(t)是
S
S
S上任意一条曲线,
切满足
x
(
0
)
=
x
∗
x(0)=x^{*}
x(0)=x∗.那么可得.
f ( x ) = f ( x ( t ) ) f ( x ∗ ) = f ( x ( 0 ) ) ∇ f ( x ∗ ) = ∇ f ( x ∗ ) ⋅ ∇ x ( 0 ) = 0 \left. \begin{aligned} &f(x)=f(x(t))\\ &f(x^{*})=f(x(0))\\ &\nabla f(x^{*})=\nabla f(x^{*}) \cdot \nabla x(0) = 0 \end{aligned} \right. f(x)=f(x(t))f(x∗)=f(x(0))∇f(x∗)=∇f(x∗)⋅∇x(0)=0
最后一个等式之所以是0, 是因为对于一元可导函数
f
(
x
(
t
)
)
f(x(t))
f(x(t))来说,
极值点的导数为0. 又因为
x
(
t
)
x(t)
x(t)为任意曲线. 所以
∇
f
(
x
∗
)
\nabla f(x^{*})
∇f(x∗)
垂直于过点
x
∗
x^{*}
x∗,
S
S
S的切平面
T
T
T.
- 至此我们证明了 ∇ f ( x ∗ ) \nabla f(x^{*}) ∇f(x∗) 垂直于切平面 T T T
接下来, 我们需要设一个假设,
也就是假设
∇
h
i
(
x
∗
)
,
i
∈
1
,
2
,
⋯
,
m
\nabla h_{i}(x^{*}), i\in {1, 2, \cdots,m}
∇hi(x∗),i∈1,2,⋯,m 线性无关.
我们把这种条件下的极值点
x
∗
x^{*}
x∗叫做regular point.
接下来定义一个集合如下.
M = { y ∣ ∑ i = 1 m y i ∇ h i ( x ∗ ) = 0 ( m ) } , y ∈ R m , ∇ h i ( x ∗ ) ∈ R m , 0 ( m ) ∈ R m M=\{y|\sum_{i=1}^{m}y_i\nabla h_{i}(x^{*})=0^{(m)}\}, y\in R^{m}, \nabla h_{i}(x^{*}) \in R^m, 0^{(m)}\in R^m M={y∣i=1∑myi∇hi(x∗)=0(m)},y∈Rm,∇hi(x∗)∈Rm,0(m)∈Rm
接下来, 我们需要证明
T
≡
M
T \equiv M
T≡M, 如果证明
T
≡
M
T\equiv M
T≡M,
那么就可以说
∇
f
(
x
∗
)
∈
s
p
a
n
{
∇
h
i
(
x
∗
)
}
,
i
∈
{
1
,
2
,
⋯
,
m
}
\nabla f(x^{*})\in span\{\nabla h_{i}(x^{*})\}, i\in \{1,2,\cdots, m\}
∇f(x∗)∈span{∇hi(x∗)},i∈{1,2,⋯,m},
也就是说
∇
f
(
x
∗
)
\nabla f(x^{*})
∇f(x∗)可以由
∇
h
i
(
x
∗
)
,
i
∈
{
1
,
2
,
⋯
,
m
}
\nabla h_{i}(x^{*}), i\in \{1,2,\cdots, m\}
∇hi(x∗),i∈{1,2,⋯,m}线性表示出来.
∇ f ( x ∗ ) = ∑ i = 1 m λ i ∇ h i ( x ∗ ) \nabla f(x^{*}) = \sum_{i=1}^{m} \lambda_i\nabla h_i(x^{*}) ∇f(x∗)=i=1∑mλi∇hi(x∗)
证明 T=M
还是分两步走 T ⊂ M T\subset M T⊂M 和 M ⊂ T M\subset T M⊂T来证明 T = M T=M T=M.
T ⊂ M T\subset M T⊂M
切平面上的向量, 根据定义必然垂直于约束的表面法向量.
所以可得
T
⊂
M
T\subset M
T⊂M.
M ⊂ T M\subset T M⊂T
反过来, 现在需要证明对于任意的
y
∈
M
y\in M
y∈M, 在
S
S
S上存在一条曲线
x
(
t
)
x(t)
x(t)
它在
x
∗
x^{*}
x∗ 处的导数为
y
y
y. 也就是证明
M
⊂
T
M\subset T
M⊂T. 现在假设
h ( x ∗ + t y + ∇ h T ( x ∗ ) u ( t ) ) = 0 ( m ) , 0 ( m ) ∈ R m h(x^{*}+ty+\nabla h^T(x^{*})u(t))=0^{(m)}, 0^{(m)}\in R^m h(x∗+ty+∇hT(x∗)u(t))=0(m),0(m)∈Rm
注意,
∇
h
T
(
x
∗
)
\nabla h^{T}(x^{*})
∇hT(x∗)是一个
n
×
m
n\times m
n×m的矩阵,
假设
x
∈
R
n
,
u
(
t
)
∈
R
m
x\in R^n, u(t)\in R^{m}
x∈Rn,u(t)∈Rm,
现在假设
A
=
s
p
a
n
{
∇
h
i
(
x
∗
)
,
i
∈
{
1
,
2
,
⋯
,
m
}
}
A=span\{\nabla h_i(x^{*}), i\in \{1,2,\cdots, m\}\}
A=span{∇hi(x∗),i∈{1,2,⋯,m}},
因为
∇
h
i
(
x
∗
)
,
i
∈
{
1
,
2
,
⋯
,
m
}
\nabla h_{i}(x^{*}), i\in \{1,2,\cdots, m\}
∇hi(x∗),i∈{1,2,⋯,m}是线性无关的.
而
M
=
N
u
l
l
(
A
)
M=Null(A)
M=Null(A),可见
r
a
n
k
(
A
)
+
r
a
n
k
(
M
)
=
n
rank(A)+rank(M)=n
rank(A)+rank(M)=n.即然如此,
t y + ∇ h T ( x ∗ ) u ( t ) ∈ R n ty+\nabla h^T(x^{*})u(t) \in R^{n} ty+∇hT(x∗)u(t)∈Rn
就可以表示空间中任意的一条向量. 所以取合适的
u
(
t
)
∈
R
m
u(t)\in R^m
u(t)∈Rm, 可使得
h
(
x
∗
+
t
y
+
∇
h
(
x
∗
)
T
u
(
t
)
)
=
0
m
,
0
m
∈
R
m
h(x^{*}+ty+\nabla h(x^{*})^Tu(t))=0^{m}, 0^{m}\in R^m
h(x∗+ty+∇h(x∗)Tu(t))=0m,0m∈Rm 成立.
下面我们要证明
x
∗
+
t
y
+
∇
h
(
x
∗
)
T
u
(
t
)
∈
S
x^{*}+ty+\nabla h(x^{*})^Tu(t) \in S
x∗+ty+∇h(x∗)Tu(t)∈S 而且其连续可导.
-
先来对 u u u进行求导得 ∇ h ( x ∗ ) ∇ h ( x ∗ ) T \nabla h(x^{*}) \nabla h(x^{*})^T ∇h(x∗)∇h(x∗)T
这个Jacobian矩阵, 是非奇异的. 因为 ∇ h i ( x ∗ ) \nabla h_{i}(x^{*}) ∇hi(x∗)线性无关.
在 t = 0 t=0 t=0处,有一个解为 u ( 0 ) = 0 u(0)=0 u(0)=0, 由此可见我们可以根据隐函数定理得.
根据约束方程组 h ( x ∗ + t y + ∇ h ( x ∗ ) T u ( t ) ) = 0 ( m ) , 0 ( m ) ∈ R m h(x^{*}+ty+\nabla h(x^{*})^Tu(t))=0^{(m)}, 0^{(m)}\in R^m h(x∗+ty+∇h(x∗)Tu(t))=0(m),0(m)∈Rm.
可得一系列连续可导的方程解 u ( t ) u(t) u(t), 注意 u ( t ) u(t) u(t)是一个函数向量,
里面有m个函数.
这里有一个逻辑就是只要 u ( t ) u(t) u(t)连续可导.那么下面的这条曲线也是连续可导的.
x ( t ) = x ∗ + t y + ∇ h ( x ∗ ) T u ( t ) x(t)=x^{*}+ty+\nabla h(x^{*})^Tu(t) x(t)=x∗+ty+∇h(x∗)Tu(t)并且 x ( t ) ∈ S x(t)\in S x(t)∈S.
-
因为 h ( x ∗ + t y + ∇ h ( x ∗ ) T u ( t ) ) = 0 ( m ) , 0 ( m ) ∈ R m h(x^{*}+ty+\nabla h(x^{*})^Tu(t))=0^{(m)}, 0^{(m)}\in R^m h(x∗+ty+∇h(x∗)Tu(t))=0(m),0(m)∈Rm
是恒等于 0 ( m ) 0^{(m)} 0(m).所以以下导数成立0 ( m ) = ∇ h ( x ( t ) ) ∣ t = 0 = ∇ h ( x ∗ ) y + ∇ h ( x ∗ ) ∇ h ( x ∗ ) u ( 0 ) 0^{(m)}=\nabla h(x(t))|_{t=0}=\nabla h(x^{*}) y+\nabla h(x^{*}) \nabla h(x^{*})u(0) 0(m)=∇h(x(t))∣t=0=∇h(x∗)y+∇h(x∗)∇h(x∗)u(0)
因为 u ( 0 ) = 0 u(0)=0 u(0)=0, 最后可得
∇ h ( x ∗ ) y = 0 \nabla h(x^{*}) y = 0 ∇h(x∗)y=0
对 S S S上参数曲线 x ( t ) = x ∗ + t y + ∇ h ( x ∗ ) T u ( t ) x(t)=x^{*}+ty+\nabla h(x^{*})^Tu(t) x(t)=x∗+ty+∇h(x∗)Tu(t), 求导可得
x ˙ ( 0 ) = y + ∇ h ( x ∗ ) T x ˙ ( 0 ) = y \dot{\mathbf{x}}(0)=\mathbf{y}+\nabla \mathbf{h}\left(\mathbf{x}^{*}\right)^{T} \dot{\mathbf{x}}(0)=\mathbf{y} x˙(0)=y+∇h(x∗)Tx˙(0)=y
最后得证,
∀
y
∈
M
,
∃
x
(
t
)
∈
S
→
x
˙
(
0
)
=
y
⇒
M
⊂
T
\forall y\in M, \exists x(t) \in S \rightarrow \dot{x}(0)=y \Rightarrow M \subset T
∀y∈M,∃x(t)∈S→x˙(0)=y⇒M⊂T
于是原命题
∇
f
(
x
∗
)
=
∑
i
=
1
m
λ
i
∇
h
i
(
x
∗
)
\nabla f(x^{*}) = \sum_{i=1}^{m} \lambda_i\nabla h_i(x^{*})
∇f(x∗)=∑i=1mλi∇hi(x∗)得证.
多约束拉格朗日乘子
L ( x ) = f ( x ) + ∑ i = 1 m λ i h i ( x ) L(x)=f(x)+\sum_{i=1}^{m}\lambda_i h_i(x) L(x)=f(x)+i=1∑mλihi(x)
求导并令其等于0正好就是我们的原命题要求的点.
∇ f ( x ) + ∑ i = 1 m λ i h i ( x ) = 0 \nabla f(x)+\sum_{i=1}^{m}\lambda_ih_i(x)=0 ∇f(x)+i=1∑mλihi(x)=0