数值优化(Numerical Optimization)学习系列-序列二次规划和内点法(SQP、Interior-Point)

本文介绍了数值优化中的序列二次规划(SQP)和内点法,这两种方法用于解决非线性约束最优化问题。SQP通过一系列二次规划子问题逼近全局解,而内点法则通过将约束纳入目标函数逐步求解。文章详细讨论了等式约束和不等式约束的处理方法,并阐述了连续方法和障碍方法在内点法中的应用。

概述

对于非线性约束最优化问题,序列二次规划和内点法是两类非常重要的算法,也是大规模问题的利器。序列二次规划方法将原始问题分解为一系列二次规划问题逐步求解;内点法将将约束添加到目标函数中转换为一系列无约束问题逐步求解。两类算法共同思想将原始问题转换为可求解问题。
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]=[xkλk]+[pkpλ]
其中pkpλ通过牛顿KKT条件得到
[2LxAkATk0][pkpλ]=[fk+ATkλkck]
注:推导过程简单,可以参考之前的章节。
思路2,根据当前点进行建模

对于当前点xk进行二次泰勒展开,转换为

minpfk+fTkp+12pTL2ps.t.Akp+ck=0
展开方式为目标函数进行二次泰勒展开,约束进行一次泰勒展开。根据KKT也有
2Lkpk+fkATklk=0Akpk+ck=0
通过转换可以转换为上述求解步骤。
求解框架

这里写图片描述

不等式约束问题

对于不等式约束,同理可以进行泰勒展开。

minpfk+fTkp+12pTL2ps.t.ci(xk)Tp+ci(xk)=0iEci(xk)Tp+ci(xk)0iI

IPQ 和 EPQ

  1. IPQ:顾名思义将原始转换为一系列带有不等式约束的二次规划问题,该方法在实际中效果非常好,问题是对于一般的二次规划问题求解复杂度较高,虽然可以将该次的最优解作为下一次子问题的初始解,仍然存在热启动问题。
  2. EPQ:每次只考虑激活集,即等式约束。相对于IPQ每个子问题相对比较容易求解。

其他

最优化步骤中可以通过线搜索或者信赖域方法进行求解。

内点法

内点法和SQP方法类似对于求解大规模非线性约束非常有效。另外内点法(Interior-Point)和障碍方法(barrier methods)具有相同含义。

两类转换思路

内点法可以求解的问题,可以转换为

minx,sf(x)s.t.cE(x)=0,cI(x)s=0,s0

连续方法(continuation methods)

根据KKT条件,上述问题可以转换

f(x)ATE(x)yAI(x)Tz=0Szμe=0cE(x)=0ci(x)s=0
类似于之前做法,可以通过不断改变参数μ来搜寻一条中心路径逐渐优化原始问题。

障碍方法(barrier methods)

问题可以转换为

minx,sf(x)μi=1...mlogsis.tcE(x)=0cI(x)s=0
其中参数μ是正数,控制搜索过程。通过KKT条件求解该问题,会发现和上述转换类似。
最原始的转换方式,直接转换为
minf(x)μiIlogci(x)
该转换可能带来的问题是可能找不到最优解。

其他

  1. 内点法可以从对偶问题中获取关键思路
  2. 可以结合线搜索和信赖域方法进行求解

总结

通过本节学习可以了解序列二次规划和内点法求解非线性约束最优化问题的关键思路。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值