使用CVX的简单线性约束MatLab的高效二次优化

时间:2016-05-06 13:24:53

标签: matlab quadratic-programming cvx

(抱歉格式化,我会尽我所能)我想解决:

(chararray)

其中x = argmin_x (Ax - p)'(Ax - p) s.t. x >= b A逻辑矩阵(大约一半零,一半),NxHb常量向量,其中每个条目都相同(例如, Hx1b = (0.1,0.1,0.1,...)是概率的常量p向量,因此所有条目都在Nx1。最佳[0,1]也是一个分布,所以它的全部条目应位于x。请注意,实际上[0,1]非常大,例如H2 million相对较小,例如N

我目前正在使用CVX来解决这个问题。显然,我的代码是:

150

这会产生正确的结果。但是,当b= 0.1.*ones(H,1)/H; cvx_begin quiet variable x(H) minimize( norm((A*x-p),2)) subject to x >= b; cvx_end 很大时,它相当慢。鉴于我的优化程序的结构(逻辑A,常量约束,具有解析解的问题,如果没有约束,等等),有没有更好的方法来解决这个问题?这里推荐CVX吗?

感谢您的帮助。

0 个答案:

没有答案