【最优化】序列(逐步)二次规划法(SQP)
序列(逐步)二次规划法(SQP)一种直接有效求解非线性约束问题的方法是基于问题中的函数 f(x)f(x)f(x) 和 ci(x)c_i(x)ci(x) 的某种近似迭代法,尤其是利用约束函数 ci(x)c_i(x)ci(x) 的线性近似。基于这种思想的一个方法是利用 Newton 法求解 Lagrange 函数的稳定点,因此也被称为 Lagrange-Newton 法。等式约束问题—— KKT
序列(逐步)二次规划法(SQP)
一种直接有效求解非线性约束问题的方法是基于问题中的函数 f(x)f(x)f(x) 和 ci(x)c_i(x)ci(x) 的某种近似迭代法,尤其是利用约束函数 ci(x)c_i(x)ci(x) 的线性近似。基于这种思想的一个方法是利用 Newton 法求解 Lagrange 函数的稳定点,因此也被称为 Lagrange-Newton 法。
等式约束问题—— KKT 条件解方程
例 考虑非线性规划问题
min x1+x2s.t. x12=x2 \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=x1+x2+λ(x12−x2) \mathcal{L} = x_1 + x_2 + \lambda(x_1^2 - x_2) L=x1+x2+λ(x12−x2)
其 KKT 条件为
1+2λx1=01−λ=0x12−x2=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∗=(−12,14)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∈Rnz \in \mathbb{R}^nz∈Rn,解方程组
r1(z)=0r2(z)=0⋮rn(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)=[r1(z(k))r2(z(k))⋮rn(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))=[∇r1(z(k))T∇r2(z(k))T⋮∇rn(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⎦⎥⎥⎥⎤
形成冰求解线性方程组
l1(s):=r1(z(k))+∇r1(z(k))Ts=0l2(s):=r2(z(k))+∇r2(z(k))Ts=0⋮ln(s):=rn(z(k))+∇rn(z(k))Ts=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 法
考虑等式约束问题
minx∈Rn f(x)s.t. ci(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
即
minx∈Rn 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):Rn→Rmc(x): \mathbb{R}^n \to \mathbb{R}^mc(x):Rn→Rm。
KKT 条件为
g(x)+A(x)λ=0c(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)=[∇c1(x),∇c2(x),⋯ ,∇cm(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)T0][sw]=−[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)=∇2f(x(k))+∑iλi(k)∇2ci(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)T0][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∗,λ∗) 满足等式约束问题得二阶充分条件,且 rank(A∗)=m\mathrm{rank}(A^*)= mrank(A∗)=m,则当 x(0)x^{(0)}x(0) 充分接近 x∗x^*x∗ 且 λ(0)\lambda^{(0)}λ(0) 使得矩阵
[W(0)A(0)A(0)T0] \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
动机
考虑二次规划子问题
mins∈Rn 12sTW(k)s+g(k)Ts+f(k)s.t. A(k)Ts+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)λ=0A(k)Ts+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)T0][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)∈Rn×(n−m)Z^{(k)} \in \mathbb{R}^{n \times (n - m)}Z(k)∈Rn×(n−m) 的列生成 A(k)Ts=0{A^{(k)}}^Ts = 0A(k)Ts=0 的解空间,若 rank(A(k))=m\mathrm{rank}(A^{(k)}) = mrank(A(k))=m,且 Z(k)W(k)Z(k)Z^{(k)} W^{(k)} Z^{(k)}Z(k)W(k)Z(k) 正定,则原问题与一阶条件的解相同,且解唯一。
对于一般的非线性规划问题
mins∈Rn 12sTW(k)s+g(k)Ts+f(k)s.t. ai(k)Ts+ci(k)=0,i∈E ai(k)Ts+ci(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)=−x1−x2s.t. c1(x)=x12−x2≤0 c2(x)=x12+x22−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∗=(12,12)Tx^* = (\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}})^Tx∗=(21,21)T,λ∗=(0,12)T\lambda^* = (0,\frac{1}{\sqrt{2}})^Tλ∗=(0,21)T。
给定初始点 x(0)=(12,1)Tx^{(0)} = (\frac{1}{2},1)^Tx(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.
更多推荐
所有评论(0)