序列(逐步)二次规划法(SQP)
一种直接有效求解非线性约束问题的方法是基于问题中的函数 f ( x ) f(x) f(x) 和 c i ( x ) c_i(x) ci(x) 的某种近似迭代法,尤其是利用约束函数 c i ( x ) c_i(x) ci(x) 的线性近似。基于这种思想的一个方法是利用 Newton 法求解 Lagrange 函数的稳定点,因此也被称为 Lagrange-Newton 法。
等式约束问题—— KKT 条件解方程
例 考虑非线性规划问题
min
x
1
+
x
2
s
.
t
.
x
1
2
=
x
2
\begin{aligned} \min ~~& x_1 + x_2\\ \mathrm{s.t.} ~~& x_1^2 = x_2 \end{aligned}
min s.t. x1+x2x12=x2
- 解析法求解
构造 Lagrange 函数
L
=
x
1
+
x
2
+
λ
(
x
1
2
−
x
2
)
\mathcal{L} = x_1 + x_2 + \lambda(x_1^2 - x_2)
L=x1+x2+λ(x12−x2)
其 KKT 条件为
1
+
2
λ
x
1
=
0
1
−
λ
=
0
x
1
2
−
x
2
=
0
\begin{aligned} 1 + 2\lambda x_1 & = 0\\ 1 - \lambda & = 0\\ x_1^2 - x_2 & = 0 \end{aligned}
1+2λx11−λx12−x2=0=0=0
解析法求得
x
∗
=
(
−
1
2
,
1
4
)
x^* = (-\frac{1}{2}, \frac{1}{4})
x∗=(−21,41),
λ
∗
=
1
\lambda^* = 1
λ∗=1。
- 以 x ( 0 ) = ( 0 , 0 ) x^{(0)} = (0,0) x(0)=(0,0), λ ( 0 ) \lambda^{(0)} λ(0) 为初始点,用数值方法求 KKT 点
出发点:解方程组的 Newton 法,线性近似的思想
设 ϕ ( t ) : R → R \phi(t): \mathbb{R} \to \mathbb{R} ϕ(t):R→R,求 ϕ ( t ) \phi(t) ϕ(t) 的根,即解方程组 ϕ ( t ) = 0 \phi(t) = 0 ϕ(t)=0。
等式约束问题——解方程组的 Newton 法
设
z
∈
R
n
z \in \mathbb{R}^n
z∈Rn,解方程组
r
1
(
z
)
=
0
r
2
(
z
)
=
0
⋮
r
n
(
z
)
=
0
\begin{aligned} r_1(z) &= 0\\ r_2(z) &= 0\\ \vdots \\ r_n(z) &= 0\\ \end{aligned}
r1(z)r2(z)⋮rn(z)=0=0=0
给定近似解
z
(
k
)
z^{(k)}
z(k),令
s
(
k
)
=
z
(
k
+
1
)
−
z
(
k
)
s^{(k)} = z^{(k + 1)} - z^{(k)}
s(k)=z(k+1)−z(k)
r
(
k
)
=
[
r
1
(
z
(
k
)
)
r
2
(
z
(
k
)
)
⋮
r
n
(
z
(
k
)
)
]
r^{(k)} = \begin{bmatrix} r_1(z^{(k)})\\ r_2(z^{(k)})\\ \vdots\\ r_n(z^{(k)})\\ \end{bmatrix}
r(k)=⎣⎢⎢⎢⎡r1(z(k))r2(z(k))⋮rn(z(k))⎦⎥⎥⎥⎤
J ( z ( k ) ) = [ ∇ r 1 ( z ( k ) ) T ∇ r 2 ( z ( k ) ) T ⋮ ∇ r n ( z ( k ) ) T ] J(z^{(k)}) = \begin{bmatrix} \nabla r_1(z^{(k)})^T\\ \nabla r_2(z^{(k)})^T\\ \vdots\\ \nabla r_n(z^{(k)})^T\\ \end{bmatrix} J(z(k))=⎣⎢⎢⎢⎡∇r1(z(k))T∇r2(z(k))T⋮∇rn(z(k))T⎦⎥⎥⎥⎤
形成冰求解线性方程组
l
1
(
s
)
:
=
r
1
(
z
(
k
)
)
+
∇
r
1
(
z
(
k
)
)
T
s
=
0
l
2
(
s
)
:
=
r
2
(
z
(
k
)
)
+
∇
r
2
(
z
(
k
)
)
T
s
=
0
⋮
l
n
(
s
)
:
=
r
n
(
z
(
k
)
)
+
∇
r
n
(
z
(
k
)
)
T
s
=
0
\begin{aligned} l_1(s) &:= r_1(z^{(k)}) + \nabla r_1(z^{(k)})^T s = 0\\ l_2(s) &:= r_2(z^{(k)}) + \nabla r_2(z^{(k)})^T s = 0\\ \vdots \\ l_n(s) &:= r_n(z^{(k)}) + \nabla r_n(z^{(k)})^T s = 0\\ \end{aligned}
l1(s)l2(s)⋮ln(s):=r1(z(k))+∇r1(z(k))Ts=0:=r2(z(k))+∇r2(z(k))Ts=0:=rn(z(k))+∇rn(z(k))Ts=0
即
J
(
z
(
k
)
)
s
=
−
r
(
k
)
J(z^{(k)}) s = - r^{(k)}
J(z(k))s=−r(k)
实用方法会加上线搜索或信赖域技术确保方法是大范围收敛的!
等式约束问题—— Lagrange-Newton 法
考虑等式约束问题
min
x
∈
R
n
f
(
x
)
s
.
t
.
c
i
(
x
)
=
0
,
i
=
1
,
2
,
⋯
,
m
\begin{aligned} \min_{x \in \mathbb{R}^n} ~~& f(x)\\ \mathrm{s.t.} ~~& c_i(x) = 0, i = 1,2,\cdots,m \end{aligned}
x∈Rnmin s.t. f(x)ci(x)=0,i=1,2,⋯,m
即
min
x
∈
R
n
f
(
x
)
s
.
t
.
c
(
x
)
=
0
\begin{aligned} \min_{x \in \mathbb{R}^n} ~~& f(x)\\ \mathrm{s.t.} ~~& c(x) = 0 \end{aligned}
x∈Rnmin s.t. f(x)c(x)=0
其中,
c
(
x
)
:
R
n
→
R
m
c(x): \mathbb{R}^n \to \mathbb{R}^m
c(x):Rn→Rm。
KKT 条件为
g
(
x
)
+
A
(
x
)
λ
=
0
c
(
x
)
=
0
\begin{aligned} g(x) + A(x) \lambda &= 0\\ c(x) &= 0 \end{aligned}
g(x)+A(x)λc(x)=0=0
其中,
A
(
x
)
=
[
∇
c
1
(
x
)
,
∇
c
2
(
x
)
,
⋯
,
∇
c
m
(
x
)
]
A(x) = [\nabla c_1(x),\nabla c_2(x),\cdots,\nabla c_m(x)]
A(x)=[∇c1(x),∇c2(x),⋯,∇cm(x)]。
设
(
x
(
k
)
,
λ
(
k
)
)
(x^{(k)},\lambda^{(k)})
(x(k),λ(k)) 是近似解,则其牛顿校正
(
s
(
k
)
,
w
(
k
)
)
(s^{(k)},w^{(k)})
(s(k),w(k))满足
[
W
(
k
)
A
(
k
)
A
(
k
)
T
0
]
[
s
w
]
=
−
[
g
(
k
)
+
A
(
k
)
λ
c
(
k
)
]
\begin{bmatrix} W^{(k)} & A^{(k)} \\ {A^{(k)}}^T & 0 \end{bmatrix} \begin{bmatrix} s \\ w \end{bmatrix} = - \begin{bmatrix} g^{(k)} + A^{(k)} \lambda \\ c^{(k)} \end{bmatrix}
[W(k)A(k)TA(k)0][sw]=−[g(k)+A(k)λc(k)]
其中,
A
(
k
)
=
A
(
x
(
k
)
)
A^{(k)} = A(x^{(k)})
A(k)=A(x(k)),
W
(
k
)
=
∇
2
f
(
x
(
k
)
)
+
∑
i
λ
i
(
k
)
∇
2
c
i
(
x
(
k
)
)
W^{(k)} = \nabla^2f(x^{(k)}) + \sum_i \lambda_i^{(k)} \nabla^2 c_i(x^{(k)})
W(k)=∇2f(x(k))+∑iλi(k)∇2ci(x(k))
令
λ
(
k
+
1
)
=
λ
(
k
)
+
w
(
k
)
\lambda^{(k + 1)} = \lambda^{(k)} + w^{(k)}
λ(k+1)=λ(k)+w(k),则
(
s
(
k
)
,
λ
(
k
+
1
)
)
(s^{(k)},\lambda^{(k + 1)})
(s(k),λ(k+1)) 满足
[
W
(
k
)
A
(
k
)
A
(
k
)
T
0
]
[
s
λ
]
=
−
[
g
(
k
)
c
(
k
)
]
\begin{bmatrix} W^{(k)} & A^{(k)} \\ {A^{(k)}}^T & 0 \end{bmatrix} \begin{bmatrix} s \\ \color{blue}{\lambda} \end{bmatrix} = - \begin{bmatrix} \color{blue}{g^{(k)}} \\ c^{(k)} \end{bmatrix}
[W(k)A(k)TA(k)0][sλ]=−[g(k)c(k)]
给定初始点
(
x
(
0
)
,
λ
(
0
)
)
(x^{(0)},\lambda^{(0)})
(x(0),λ(0)),构造并求解线性方程组得
(
s
(
k
)
,
λ
(
k
+
1
)
)
(s^{(k)},\lambda^{(k+1)})
(s(k),λ(k+1)),令
x
(
k
+
1
)
=
x
(
k
)
+
s
(
k
)
x^{(k + 1)} = x^{(k)} + s^{(k)}
x(k+1)=x(k)+s(k),依次重复。
Lagrange 乘子法 + Newton 法 = Lagrange-Newton 法
性质
定理 假设
(
x
∗
,
λ
∗
)
(x^*,\lambda^*)
(x∗,λ∗) 满足等式约束问题得二阶充分条件,且
r
a
n
k
(
A
∗
)
=
m
\mathrm{rank}(A^*)= m
rank(A∗)=m,则当
x
(
0
)
x^{(0)}
x(0) 充分接近
x
∗
x^*
x∗ 且
λ
(
0
)
\lambda^{(0)}
λ(0) 使得矩阵
[
W
(
0
)
A
(
0
)
A
(
0
)
T
0
]
\begin{bmatrix} W^{(0)} & A^{(0)}\\ {A^{(0)}}^T & 0 \end{bmatrix}
[W(0)A(0)TA(0)0]
非奇异,则 Lagrange-Newton 法有定义,且由该方法产生得序列
{
(
x
(
k
)
,
λ
(
k
)
}
\{(x^{(k)},\lambda^{(k)}\}
{(x(k),λ(k)} 二次收敛于
(
x
∗
,
λ
∗
)
(x^*,\lambda^*)
(x∗,λ∗)。
存在的问题
- 对初始点要求高
- 需要求二阶导数
- 不能求解含不等式约束的优化问题
基本/局部 SQP
动机
考虑二次规划子问题
min
s
∈
R
n
1
2
s
T
W
(
k
)
s
+
g
(
k
)
T
s
+
f
(
k
)
s
.
t
.
A
(
k
)
T
s
+
c
(
k
)
=
0
\begin{aligned} \min_{s \in \mathbb{R}^n} ~~& \frac{1}{2} s^T W^{(k)} s + {g^{(k)}}^T s + f^{(k)} \\ \mathrm{s.t.}~~& {A^{(k)}}^Ts + c^{(k)} = 0 \end{aligned}
s∈Rnmin s.t. 21sTW(k)s+g(k)Ts+f(k)A(k)Ts+c(k)=0
其中,
s
=
x
−
x
(
k
)
s = x-x^{(k)}
s=x−x(k),目标函数是修正了二次项的二阶 Taylor 展式。其一阶(KKT)条件是
W
(
k
)
s
+
g
(
k
)
+
A
(
k
)
λ
=
0
A
(
k
)
T
s
+
c
(
k
)
=
0
\begin{aligned} W^{(k)} s + g^{(k)} + A^{(k)} \lambda & = 0\\ {A^{(k)}}^Ts + c^{(k)} & = 0 \end{aligned}
W(k)s+g(k)+A(k)λA(k)Ts+c(k)=0=0
改写成块矩阵形式如下:
[
W
(
k
)
A
(
k
)
A
(
k
)
T
0
]
[
s
λ
]
=
−
[
g
(
k
)
c
(
k
)
]
\begin{bmatrix} W^{(k)} & A^{(k)}\\ {A^{(k)}}^T & 0 \end{bmatrix} \begin{bmatrix} s \\\lambda \end{bmatrix} = - \begin{bmatrix} g^{(k)} \\ c^{(k)} \end{bmatrix}
[W(k)A(k)TA(k)0][sλ]=−[g(k)c(k)]
设 Z ( k ) ∈ R n × ( n − m ) Z^{(k)} \in \mathbb{R}^{n \times (n - m)} Z(k)∈Rn×(n−m) 的列生成 A ( k ) T s = 0 {A^{(k)}}^Ts = 0 A(k)Ts=0 的解空间,若 r a n k ( A ( k ) ) = m \mathrm{rank}(A^{(k)}) = m rank(A(k))=m,且 Z ( k ) W ( k ) Z ( k ) Z^{(k)} W^{(k)} Z^{(k)} Z(k)W(k)Z(k) 正定,则原问题与一阶条件的解相同,且解唯一。
对于一般的非线性规划问题
min
s
∈
R
n
1
2
s
T
W
(
k
)
s
+
g
(
k
)
T
s
+
f
(
k
)
s
.
t
.
a
i
(
k
)
T
s
+
c
i
(
k
)
=
0
,
i
∈
E
a
i
(
k
)
T
s
+
c
i
(
k
)
=
0
,
i
∈
I
\begin{aligned} \min_{s \in \mathbb{R}^n} ~~& \frac{1}{2} s^T W^{(k)} s + {g^{(k)}}^T s + f^{(k)} \\ \mathrm{s.t.}~~& {a_i^{(k)}}^Ts + c_i^{(k)} = 0, i \in \mathcal{E}\\ ~~& {a_i^{(k)}}^Ts + c_i^{(k)} = 0, i \in \mathcal{I} \end{aligned}
s∈Rnmin s.t. 21sTW(k)s+g(k)Ts+f(k)ai(k)Ts+ci(k)=0,i∈Eai(k)Ts+ci(k)=0,i∈I
有如下求解算法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s4TnoKaq-1610379805928)(https://cdn.jsdelivr.net/gh/ZhouKanglei/jidianxia/2020-12-24/1608821899495-SQP.png)]
理想的终止条件:满足 KKT 条件!
例 考虑非线性规划问题
min
f
(
x
)
=
−
x
1
−
x
2
s
.
t
.
c
1
(
x
)
=
x
1
2
−
x
2
≤
0
c
2
(
x
)
=
x
1
2
+
x
2
2
−
1
≤
0
\begin{aligned} \min ~~& f(x) = - x_1 - x_2\\ \mathrm{s.t.} ~~& c_1(x) = x_1^2 -x_2 \leq 0\\ ~~& c_2(x) = x_1^2 + x_2^2 - 1 \leq 0 \end{aligned}
min s.t. f(x)=−x1−x2c1(x)=x12−x2≤0c2(x)=x12+x22−1≤0
其几何直观如下:
解析法求得其最优解 x ∗ = ( 1 2 , 1 2 ) T x^* = (\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}})^T x∗=(21,21)T, λ ∗ = ( 0 , 1 2 ) T \lambda^* = (0,\frac{1}{\sqrt{2}})^T λ∗=(0,21)T。
给定初始点 x ( 0 ) = ( 1 2 , 1 ) T x^{(0)} = (\frac{1}{2},1)^T x(0)=(21,1)T, λ ( 0 ) = ( 0 , 0 ) T \lambda^{(0)} = (0,0)^T λ(0)=(0,0)T,其迭代步骤如下:
优点
局部二阶收敛
存在问题
- 初始点不好时,迭代可能发散
- 子问题的解可能不存在,比如无界或者不可行
- 需要二阶偏导数 W ( k ) W^{(k)} W(k)
参考资料
[1] 刘红英,夏勇,周永生. 数学规划基础,北京,北京航空航天大学出版社,2012.