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

article/2025/10/7 2:11:23

序列(逐步)二次规划法(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.


http://chatgpt.dhexx.cn/article/gMTK8tsj.shtml

相关文章

SQP 序列二次规划法

本周工作主要是对时空优化方法SQP的学习与研究,该方法可以将一些约束添加到某些变量中,如果初始值不满足约束,那么优化算法迭代后,同样可以生成满足约束的新的值。在移除自相交自适应过程中的尝试使用的一个最优化方法。 1.1 算…

OAuth2时序图

1.背景 由于要用到oauth2的相关知识,在网络上暂时没有搜到较为满意的时序图,因此做了一个简单的整理。希望能够帮助到需要的朋友。该时序图根据阮一峰老师的网络日志画的,如果有理解有误的地方,欢迎指正。 阮一峰老师的关于oauth2…

visual paradigm 时序图实用技巧

绘图结束后, 自动调整多余线长 绘图结束后 , 自动调整 activity bar - 调账后效果 指定处断开 activity bar

java时序图工具_快速学习时序图:时序图简介、画法及实例

点击上方☝Java编程技术乐园,轻松关注!及时获取有趣有料的技术文章 做一个积极的人 编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开! 一、 什么是时序图? 时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息…

tableau画时序图

tableau画图时直接拖拽时间到列,度量到行,度量总是变成按时间粒度的“总和”,”平均“这种形式,但我只想要把其中的每个数据点按时间顺序画出,不要做统计。 只要把时间的粒度改成”精确日期“就OK。

StarUML——时序图总结

序列图主要用于展示对象之间交互的顺序。 序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活…

用代码画时序图!YYDS

前言 最近通过代码来画时序图,UML用例图,感觉很不错,所以给大家分享一下。 日常开发,一般在设计阶段,我们都需要画时序图、用例图等等。大家平时画图的时候,是用draw.io还是processOn呢?用它们画…

怎么用c语言写时序图,plc时序图怎么画_plc时序图编程方法

时序图是描述设备工作过程的时间次序图,也是用于直观分析设备工作过程的一种图形。如电子技术中的触发器、定时器、计数器等均用时序图来描述其工作原理。在plc顺序控制设计法编制梯形图程序时往往是先画出时序图,再根据时序图设计流程图,再按流程图编制梯形图程序。 一、pl…

画出属于你的最漂亮的数字时序图—WaveDrom

摘要:WaveDrom是一个免费开源的在线数字时序图渲染引擎。它可以使用JavaScript, HTML5和SVG来将时序图的WaveJSON描述转成SVG矢量图形,从而进行显示。WaveDrom可以嵌入到任何网页中。WaveDrom编辑器可在浏览器中运行,也可以安装在系统上&…

EA画时序图

1.步骤: 1. 新建一个项目; 2. Use Case Model右键-->添加图-->左边选择UML Behavioral,右边选择Sequence; 3. 选择工具栏中的工具,点击工具箱; 4. 拖放控件,常用的是Actor&#xff0c…

StarUML画时序图

1、先启动StarUML 左键点击左边工具栏中的工具,到右边空白处也左键单击即可画出相应图形,并且可以为图形命名

PowerDesigner16 画时序图教程

———————————————— 版权声明:本文为CSDN博主「猪脚踏浪」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zsg88/article/details/78185049 文章转载于上…

时序图笔记

时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图 我们在画时序图时会涉及下面7种元素: 角色(Actor) 系统角色,可以是人或者其他系统和子系统。以一个小人图标表示。对象(Object) 对象位于时序图的顶部,以一个矩形…

时序图学习

时序图 时序图是很值的学习的,在梳理逻辑或者向领导汇报的时候很有用。我觉得以下两个时序图具有学习意义,一个是简洁版的,一个是复杂版的。各位可以参照这两个图来画自己公司的时序图。 微信登录时序图 微信支付时序图 参考: h…

【图形设计】手把手教你如何画好时序图

编辑导语:时序图可以有效地描述交互顺序,并帮助研发团队更清晰地理顺系统逻辑,做好流程分析,若利用得当,则可以一定程度上降低沟通成本,更快速地推进业务进行。本篇文章里,作者就时序图的构成与…

架构师必备:时序图说明及画法

用途 时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,其中的…

记录一次帮公司搭建一次linux正式环境

安装JDK centos7 用yum安装java81.查看yum源中是否有相关套件yum -y list java*2.上图中可以看到有两个自己想用的套件,经过试验发现用yum install java-1.8.0-openjdk 时最后 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_6目录下只用一个jre文件&a…

Linux7启动MySQL失败_解决Linux-Centos7启动Mysql服务失败丢失mysql.sock问题

在新安装mysql后进行启动发现报错 mysql启动服务命令 Starting mysqld (via systemctl):? Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld3306.service" and "journalctl -xe" for de…

Centos离线安装Mysql

一、tar.gz文件安装Mysql 5.7 官方参考文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html 1.下载tar.gz文件 官网:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 根据需要选择64位or32位文件,下载完…

公司网站搭建的架构

目录 简介拓扑图需求首先先搭建好MHA集群跟新主机时间修改主机名配置所有主机之间SSH无密码验证将私钥发送到所有主机(包括本机)将下载好的软件包上传到主机配置本地yum源解压软件包在manager主机和各个node节点安装软件依赖包安装MHA manager依赖的perl…