对于非线性编程,为什么SQP比增强拉格朗日更好?


9

在有关Galahad的技术报告中[1],作者指出,在一般的非线性规划问题的背景下,

在我们看来,从长远来看,毫无疑问,SQP(顺序二次编程)方法会比增强拉格朗日方法更成功。

这种信念的基础是什么?即,是否有任何理论结果表明SQP方法应该比增强拉格朗日方法更快/更可靠?

[1] Galahad,Gould,Orban和Toint编写的用于大规模非线性优化的线程安全Fortran 90软件包库

Answers:


2

SQP方法要求目标具有两次可区分性(cf https://en.m.wikipedia.org/wiki/Sequential_quadratic_programming),而增强型拉格朗日算法即使在目标不可区分的情况下也能正常工作(因此,它们最近在图像处理社区中复兴,参见ftp: //arachne.math.ucla.edu/pub/camreport/cam09-05.pdf

我不知道galahad软件,但是如果应该解决可微分的优化问题,则使用允许区分目标函数的方法可能会做得更好。


SQP需要两次可区分的目标函数并不是真的。如果目标函数的微分性较小,您可能会简单地获得收敛速度较小的方法,但这与增强拉格朗日方法完全相同。
Wolfgang Bangerth,2014年

2

就外部迭代而言,SQP应该会获胜,因为它包括二阶导数信息,而增强型拉格朗日方法(如ADMM)则不会。

但是,要记住的一件事是,这些方法的每次迭代都涉及求解线性系统,因此要进行公平的比较,您必须考虑到这些系统求解的难易程度。

对于增强型拉格朗日(交替)方法,您每次迭代都在解决类似问题,

(ATA+ρI)x=b,
哪里 A 是直接来自目标函数的前向运算符,该目标函数已知且通常更易于处理或预先设定, ρ是惩罚参数。(例如,您的问题是minx||Axb||2 受到一些规范和约束)。

对于SQP方法,您正在解决类似问题

Hx=g,
哪里 H 是Hessian(或其近似值),通常仅对它对向量的作用隐式可用,并且 g是渐变。粗麻布不仅包含A,但也可以是将约束线性化和正则化得到的其他矩阵和矩阵逆的组合。

预先处理Hessian是一件非常棘手的事情,比预先处理向前的问题要少得多的研究。一种标准方法是用L-BFGS近似Hessian逆,但是当Hessian逆是高阶时,这种方法的效果有限。另一种流行的方法是将Hessian近似为低秩矩阵加上易于求逆的矩阵的总和,但这对困难问题的有效性也很有限。其他流行的Hessian估计技术都是基于稀疏近似的,但是连续谱问题经常使Hessian具有较差的稀疏近似。


+1,尽管我想警告不要发表笼统的声明(这并不意味着我要回答这个问题)。例如,在PDE约束的优化中,应用A 通常涉及求解非线性PDE,而 H可以通过求解两个线性PDE来应用-如果原始PDE讨厌,它们可以便宜得多(并且更容易进行预处理)。
克里斯蒂安·克拉森2014年

所以, H 可以通过求解两个PDE来应用,但是要应用 H1您需要在求解器中的每个kryolv迭代中求解2个PDE 。另一方面A是一个前向运算符,因此它通常根本不涉及任何PDE求解。通常一个人实际上知道矩阵A明确地,例如,网格上的5点有限差分模具。的预处理器A 可以用来为 ATA+ρI,但是使用它们进行前提条件比较困难 H
尼克·阿尔杰

如果 A是线性正向算子(非线性PDE约束优化中不是这种情况),那么您当然是对的。否则,申请A要求每个牛顿迭代(或定点迭代)进行线性PDE求解,然后针对AT(始终是线性的)。两种方法中的哪一种需要较少的总工作量(例如,按线性PDE解算的数量)在很大程度上取决于特定的问题。我要说的是用于不同工作的不同工具。
克里斯蒂安·克拉森2014年

我同意针对不同工作的不同工具。我想到的PDE约束优化问题的高斯-牛顿·黑森-minq,u12||Cuy||2+α2||Rq||2 这样 Au=q -是 H=ATCTCA1+αRTR,而完整的Hessian就是这个词加上其他用语。所以在这里H 包含两个逆和 H1在一个逆内包含两个逆。
尼克·阿尔杰

而且我有约束 S(q)=u 记住(例如, S 地图 q 解决方案 u(qu)=f,出现在参数识别或拓扑优化中。
克里斯蒂安·克拉森2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.