五分钟入门有效集法(Active Set Method)

问题

minXg(X)=12XTGX+XTC\mathop{min}\limits_{X}g(X) = \frac{1}{2}X^TGX+X^TC

s.t.aiTX=bi,iEa_i^TX = b_i,i\in E
aiTXbi,iFa_i^TX \geq b_i,i\in F


KKT 矩阵

构造拉格朗日乘子,有
L(X,λ)=12XTGX+XTCλT(AXb)L(X,\lambda)=\frac{1}{2}X^TGX+X^TC-\lambda^T(AX-b)
A是m*n大小的,假设m不大于n【n = X的变量数】
那么有
五分钟入门有效集法(Active Set Method)

五分钟入门有效集法(Active Set Method)


举例

应是采用了这位大佬的例子
五分钟入门有效集法(Active Set Method)
呃,这里这位大佬粗心了。K矩阵第四块得是全0的。计算的话就是把初始的X1,X2带进去,计算出来λ1\lambda1,λ2\lambda2。然后更新。
五分钟入门有效集法(Active Set Method)
因为λ\lambda没有大于0 的,就不是最优方案。去除λ\lambda中最大的λ1\lambda1对应的约束3,那么工作集中就剩下约束5。再使用KKT矩阵,计算X2X_2λ2\lambda_2,再计算p1p_1,α1\alpha_1
五分钟入门有效集法(Active Set Method)
这一步工作集为空啦,就变成无约束优化问题了
五分钟入门有效集法(Active Set Method)
这里确定α2\alpha_2用了技巧,先带进约束1计算。发现步子不能迈那么大,就把p2p_2的步子缩小,卡得刚好约束1取等号,并且将约束1添加至工作集
五分钟入门有效集法(Active Set Method)
OK,就这样,结束。完整的PDF是Numerical Optimization - Unit 8: Quadratic Programming, Active Set Method, and Sequential Quadratic Programming,作者是Lee,Che-Rung.我会上传