有效集法(Active Set),内点法(Interior-Point)及序列二次规划(SQP)法

有效集法(Active Set)

 

单纯性法(Simplex Method)是“线性规划之父”George Dantzig 最著名的成果,也是求解线性规划最有力的算法之一。而这一算法在求解二次规划(Quadratic Programming, QP)时的升级版就是有效集法(Active Set Method, ASM)。这两种算法的特点都是迭代点会循着约束边界前进,直到达到问题的最优点。

我们首先来讲一下约束部分:

假设

(就是这个向量一共有d个标量组成),则

的几何意象就是d维空间中的 d-1 维曲面,如果函数

是线性的,

则是个 d-1 维的超平面(这是平面中的直线、空间中的平面之推广(n大于3才被称为“超”平面))。那么有约束优化问题就要求在这个 d-1 维的曲面或者超平面上找到能使得目标函数最小的点,这个 d-1 维的曲面就是“可行解区域”。

对于不等式约束条件,

可行解区域从 d-1 维曲面扩展成为 d 维空间的一个子集。我们可以从 d=2 的二维空间进行对比理解。等式约束对应的可行解空间就是一条线;不等式约束对应的则是这条线以及线的某一侧对应的区域。

 要说有效集法,首先要说说什么是有效集。有效集就是指那些在最优点有效(active)的不等式约束所组成的集合。

案例一:考虑二次函数:

 函数的等高线及两个约束的图像如下(竖着的蓝色虚线为X=0;横着的红色虚线为Y=-1):

目标函数等高线即等值线,在同一条等值线上的点对应的目标函数值相同

通过计算或者从图上可以看出:

1. 当没有约束时,目标函数的最小值在(−1,−0.5) 处取得。

2. 当考虑上述的两条约束时,目标函数的最小值在 (0,−0.5)处取得。这个时候在最优点处,约束 x≥0中的等号被激活,这条约束就被称为有效约束(active constraint)。如果我们记两条约束的编号为 1 和 2,那么在最优点处的有效集就可以记为:

\mho =\left \{ 1 \right \}

而如果原命题中 y≥−1 这条约束改为 y≥−0.5,即要求解的优化命题变为:

 函数的等高线及两个约束的图像如下(竖着的蓝色虚线为X=0;横着的红色虚线为Y=-0.5):

此时优化命题的解仍然是 (0,−0.5) ,但在最优点处两条约束均被激活,即此时的有效集可以记为:

 \mho =\left \{ 1,2 \right \}

从上面可以看出,如果我们能提前知道在最优点处有效的约束,那我们就可以把那些未有效的不等式约束剔除掉并把原命题转化成更易求解的等式约束命题。

案例二:

 目标函数及约束:

结果分析:

1. 如果没有任何约束条件,最优解在坐标原点(0, 0)处(青色X);

2. 如果只有不等式约束条件 ,最优解在坐标(1,0)处(红色X);

3. 如果只有等式约束条件 ,在坐标(1,-1)处(绿色+);

4. 如果两个约束条件都有,最优解在黄色处。

结合案例一,我们在求解之前我们往往对最优点处的有效约束知之甚少。因此如何找到最优点处的有效约束也就是有效集法的主要工作。另外在这里要提一点,其实在一些应用中,我们需要求解一系列类似的 QP 命题,这个时候我们往往对最优点处的有效约束有一个初始猜测,因此通过这种方式可以实现算法的热启动(Warm Start),从而加速算法的收敛

ASM 算法的迭代点都是在可行域内或者可行域的边界上移动,这样的好处是即使你提前终止迭代,那么算法得到的也是一个可行解。而这样的缺点则是在算法启动是需要我们给定一个可行的初始点,而求解这样一个可行的初始点往往也不是一件简单的事情。而初始的工作集往往可以取为空集。

序列二次规划(SQP)

序列二次规划(Sequential Quadratic Programming)对于非线性约束最优化问题是一个非常有效的算法,将原始问题划分为一系列二次规划的子问题进行求解。

我们介绍的SQP都属于激活集算法,有两种类型的激活集SQP算法,第一类是IQP,将原始问题转换为一系列不等式约束二次规划;第二类是EQP,将原始问题转换为一系列等式约束二次规划问题。

大部分的SQP问题分为两个步骤进行求解,第一步通过局部方法寻找有效集;第二步是通过LineSearch或者TR进行最优化。

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

内点法(Interior-Point)

内点法和SQP方法类似对于求解大规模非线性约束非常有效。
内点法可以从对偶问题中获取关键思路,可以结合线搜索和信赖域方法进行求解。

点击下方卡片,加入会员全年无限制学习后台(MPC各矩阵的底层逻辑、MPC纵向控制、模型验证、MPC自适应巡航控制、非线性系统如何线性化及MPC动力学跟踪任何轨迹、约束添加及新求解器的求解、轨迹规划、纵向规划等80个系列)会员专享爆品课程及资源,同时获得分佣资格,可赚回自己的学费!

  • 9
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值