有效集法介绍(Active Set Method)

单纯性法(Simplex Method)是“线性规划之父”George Dantzig 最著名的成果,也是求解线性规划最有力的算法之一。而这一算法在求解二次规划(Quadratic Programming, QP)时的升级版就是有效集法(Active Set Method, ASM)。这两种算法的特点都是迭代点会循着约束边界前进,直到达到问题的最优点。本文对用于求解 QP 命题的 Primal ASM 算法作以介绍,主要内容的来源是 Nocedal 等人 2006 年的著作 Numerical Optimization 第二版。

有效集(Active Set)

要说有效集法,首先要说说什么是有效集。有效集是指那些在最优点有效(active)的不等式约束所组成的集合。例如,考虑二次函数

min.fs.t.xy=x2+y2+2x+y01

函数的等高线及两个约束的图像如下:

这里写图片描述

通过计算或者从图上可以看出,当没有约束时,目标函数的最小值在 (1,0.5) 处取得。当考虑上述的两条约束时,目标函数的最小值在 (0,0.5) 处取得。这个时候在最优点处,约束 x0 中的等号被激活,这条约束就被称为有效约束(active constraint)。如果我们记两条约束的编号为 1 2 ,那么在最优点处的有效集就可以记为
A={ 1}

而如果原命题中 y1 这条约束改为 y0.5 ,即要求解的优化命题变为

min.fs.t.xy=x2+y2+2x+y00.5

函数的等高线及两个约束的图像如下:

这里写图片描述

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

有效集法

从上面可以看出,如果我们能提前知道在最优点处有效的约束,那我们就可以把那些未有效的不等式约束剔除掉并把原命题转化成更易求解的等式约束命题。然而,在求解之前我们往往对最优点处的有效约束知之甚少。因此如何找到最优点处的有效约束也就是有效集法的主要工作。另外在这里要提一点,其实在一些应用中,我们需要求解一系列类似的 QP 命题,这个时候我们往往对最优点处的有效约束有一个初始猜测,因此通过这种方式可以实现算法的热启动(Warm Start),从而加速算法的收敛。下面我们正式开始介绍 ASM 的理论。我们考虑的是带有不等式约束的凸二次规划命题:

minxq(x)subject toaTix=12xTGx+xTcbi,iI

在 ASM 中,我们会构造一个工作集(Working Set),与有效集类似,工作集也是有效约束的集合,但只是我们认为在某次迭代中有效约束的集合,它可能与最优点处的有效集相同,也有可能不同。如果相同,我们可以通过计算对偶变量 λ 了解到此时已经是最优点从而退出迭代。如果不同,我们会对工作集进行更新,从现有工作集中删除一条约束或者增加一条新的约束到工作集中。因为工作集是随着迭代而改变的,因此记工作集为 Wk

在第 k 次迭代开始时,我们首先检查当前的迭代点 xk 是否是当前工作集 Wk 下的最优点。如果不是,我们就通过求解一个等式约束的 QP 命题来得到一个前进方向 p ,在计算 p 的时候,我只关注 Wk 中的等式约束而忽略原命题的其他约束。为了便于计算,我们定义

p=xxk,gk=Gxk+c

把上面的定义代入原命题有:

q(x)=q(xk+p)=
  • 51
    点赞
  • 190
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值