概述
对于非线性约束最优化问题,序列二次规划和内点法是两类非常重要的算法,也是大规模问题的利器。序列二次规划方法将原始问题分解为一系列二次规划问题逐步求解;内点法将将约束添加到目标函数中转换为一系列无约束问题逐步求解。两类算法共同思想将原始问题转换为可求解问题。
1. 序列二次规划概述
2. 内点法概述
3.总结
序列二次规划(SQP)概述
序列二次规划(Sequential Quadratic Programming)对于非线性约束最优化问题是一个非常有效的算法,将原始问题划分为一系列二次规划的子问题进行求解。
本节中介绍的SQP都属于激活集算法,有两种类型的激活-SQP算法,一是IQP,将原始问题转换为一系列不等式约束二次规划;二是EQP,将原始问题转换为一系列等式约束二次规划问题。
大部分的SQP问题分为两个步骤进行求解,第一步通过局部方法寻找有效集;二是通过LineSearch或者TR进行最优化。
局部SQP方法
等式约束问题
问题描述如下
minf(x)s.tc(x)=0
其主要思想是根据当前点
xk
寻找下一个优化点
xk+1
通过转换问题二次规划问题。
思路1,KKT条件
原始问题的拉格朗日方程为 L(x,λ)=f(x)−λTc(x) ,根据KKT条件有
F(x,λ)=[∇f(x)−A(x)Tλc(x)]=0
其中
A(x)=[∇c1(x),∇c2(x)...∇cm(x)]
对于等式方程问题可以采用牛顿方程进行求解,迭代步骤如下
[xk+1λk+1