【最优化】序列(逐步)二次规划法(SQP)

序列(逐步)二次规划法(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+λ(x12x2)
其 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λx12x2=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):RR,求 ϕ ( t ) \phi(t) ϕ(t) 的根,即解方程组 ϕ ( t ) = 0 \phi(t) = 0 ϕ(t)=0

几何直观:用直线近似曲线

等式约束问题——解方程组的 Newton 法

z ∈ R n z \in \mathbb{R}^n zRn,解方程组
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))Tr2(z(k))Trn(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} xRnmin  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} xRnmin  s.t.  f(x)c(x)=0
其中, c ( x ) : R n → R m c(x): \mathbb{R}^n \to \mathbb{R}^m c(x):RnRm

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} sRnmin  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=xx(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×(nm) 的列生成 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} sRnmin  s.t.    21sTW(k)s+g(k)Ts+f(k)ai(k)Ts+ci(k)=0,iEai(k)Ts+ci(k)=0,iI
有如下求解算法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)=x1x2c1(x)=x12x20c2(x)=x12+x2210
其几何直观如下:

上述非线性规划问题的几何直观

解析法求得其最优解 x ∗ = ( 1 2 , 1 2 ) T x^* = (\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}})^T x=(2 1,2 1)T λ ∗ = ( 0 , 1 2 ) T \lambda^* = (0,\frac{1}{\sqrt{2}})^T λ=(0,2 1)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.

  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值