概述
二次规划问题是目标函数是二次的,并且约束是线性的问题。在非线性约束最优化问题中非常重要,通常作为其他问题的子步骤存在。
1.二次规划问题
2.二次规划求解算法
3. 总结
二次规划问题
标准形式
二次规划问题的标识形式如下
minq(x)=12xTGx+xTcs.t.aTix=bi, i∈E aTix≥bi, i∈I
如果矩阵G为半正定,则该问题为凸二次规划,否则为非凸二次规划。本节讨论重点凸二次规划问题。
二次规划求解算法
等式约束二次规划
在标准形式下,去掉不等式约束,可以得到等式约束二次规划问题的标准形式。
minq(x)=12xTGx+xTcs.t.Ax=b
其中矩阵A一般为行满秩矩阵。
KKT条件
根据KKT条件可以得到,最优解应该满足的一阶条件为
[GA−AT0][x∗λ∗]=[−cb]
当某搜索步骤x时,根据
x∗=x+p 代入上式公式,可以得到搜索步长。
[GAAT0][−pλ∗]=[gh]
其中
h=Ax−b,g=c+Gx,p=x∗−x ,上面矩阵就是KKT矩阵。
1.当 ZTGZ 是半正定时,KKT矩阵非奇异,等式约束最优化问题有唯一的解 (x∗,λ∗) ,其中Z是矩阵A的零空间,即AZ=0
2. 并且该解是全局最优解
求解算法
因此等式约束最优化问题转换为求解上述KKT矩阵对应的等式,常用的方法包括
1. 直接求解方程,高斯消元法等
2. Schur-Complement方法
3. 零空间方法
以上方法都是利用代数方法直接求解方程。对于问题规模比较大的问题可以采用迭代方法,例如CG或者Krylov方法,相对后者比较有效。
不等式约束问题
对于不等式约束问题,常见的思路包括有效集方法、内点法和梯度映射等方法。
KKT条件
根据二次规划的标准形式可以得到,对应的拉格朗日方程为
L(x,λ)=12xTGx+xTc−∑i∈E∪Iλi(aTix−bi)
根据有效集的定义
A(x∗)=(i∈E∪I|aTix∗=bi)
KKT条件为
Gx∗+c−∑i∈A(λ∗iai)=0aTix=bi, i∈EaTix≥bi, i∈Iλ∗i≥0
满足上述KKT条件的解 (λ∗,x∗) 是全局最优解
有效集算法
该算法和线性规划的单纯形算法类似,每次固定一个工作集合 W ,然后求解等式约束的QP问题。对于得到的解进行约束判断是否满足以及存在其他最优解,否则进行换入和换出操作。
1. 对于每次迭代过程 xk,Wk ,需要寻找一个最优搜索方向p,使得 p=x−xk,gk=Gxk+c,q(xk+p)=12pTGp+gTkp+δk 由于 δk关于xk是个常数 ,因此问题转换为 min12pTGp+gTkp; s.t.aTip=0
2. 问题转换等式约束最优化问题,根据求解算法得到搜索方向 pk
3. 由于不等式约束还要满足其他不等式,因此下一个搜索点 xk+1=xk+αkpk ,由于对于每个不等式都应该满足 aTi(xk+αkpk)≥bi ,当 aTipk≥0 时肯定满足,否则 αk≤bi−aTixkaTipk
4. 综合所有的不等式约束,可以得到
αk=min(1,minaTipk≤0(bi−aTixkaTipk))
5. 当某个
αk<1 时,说明被第K个不等式阻塞,说明
aTipk≤0 ,此时可以将该不等式约束放入到工作集合中。
6. 当搜索方向p=0时,说明当前点为最优点,从而计算对应的拉格朗日因子,如果全部大于0,则满足所有的KKT条件,否则去掉该约束能够继续减小目标函数值。
综上该算法伪代码如下
实际考虑点
1.和单纯性算法类似,在算法开始,需要找到一个可行解,寻找方法类似,可以构造PhraseI或者PhraseII问题。
2.往工作集
W 中添加不等式约束时,一般要求在W中的约束线性独立。
3. 当找到最优点时,但是不满足拉格朗日因子非负约束时,去掉约束时一般选择绝对值较大的。
内点法
类似于线性规划的内点法方法,计算问题的中心路径,直到趋近于最优解。
该内点法主要针对凸二次规划问题,形式如下
minq(x)=12xTGx+xTcs.t.Ax≥b
KKT条件为
Gx−ATλ+c=0Ax−b≥0(Ax−b)Tλ=0λ≥0
添加松弛变量Y则有
minq(x)=12xTGx+xTcs.t.Ax≥b
KKT条件为
Gx−ATλ+c=0Ax−y−b=0yTλ=0(y,λ)≥0
定义度量参数为
μ=yTλm ,则问题转换为求解中心路径,
F(x,y,λ;σμ)=⎡⎣⎢Gx−ATλ+cAx−y−bYΛe−σμe⎤⎦⎥=0
此时可以根据牛顿法进行求解得到步长,下下一个搜索点为
(x,y,λ)+α(∇x,∇y,∇λ)
在实际问题中会在此基础上改进,牛顿方程如何求解,参数 λ 如何选取
梯度映射
梯度映射方法是对有效集算法的改进,不同于有效集算法,梯度映射方法每次都会选在多个参数变量加入到有效集中。但是该方法只限于求解如下问题
minq(x)=12xTGx+xTcs.t.l≤x≤μ
对于G是否正定都能求解,思路如下
1. 在某步骤x,按照最速下降法求解下一个搜索点,
xk+αp ,由于约束限制,会被阻塞住,此时计算有效集。
2. 在上述有效集合的基础上,计算一个子问题,使得
q(x+)≤q(xk)
3. 重复上述两个步骤。
总结
本节简要介绍了如下内容
1. 二次规划问题的形式
2. 二次规划常用算法的求解思路。
详细算法的实现,可以参考各个数值工具。