Can CVX handle large scale matrices Problems


(prasad) #1

I am trying to solve, the following optimization problem using CVX
min_X \lambda_{max}(X)
subject to
a_i'Xa_j = 0; for\, i = 1......n;
X>=0;

where A is a matrix of order m \times n with m>n and X is of size m \times m.

when I am running this problem of order, say, 4096 \times 4000, I am getting error “out of memory”.

The default solver I am using in CVX is SDPT3. I tried with other solvers too like SeDuMi and MoSek etc.

CVX can solver largescale problems? what kind of solver I need to use and what are system configurations need to solve fast.

Thank you so much for your time.


(Mark L. Stone) #2

I don’t know whether this will help you, but you could try the solver SCS under CVX 3.0beta. SCS is a first order solver, so has a lesser memory requirement than 2nd order solvers such as SDPT3, SeDuMi, and MOSEK. Even if there is enough memory, SCS may have a long running time.


(Flying Bird) #3

Hi,Mark.I have a similar probelm with prasadz638,and I installed cvx3.0Beta and the scs solver(version 2.0.2).But when I tried scs with a very simple problem,it seems that there are some errors.My code is as follows:
% cvx_solver sdpt3;
% cvx_solver sedumi;
% cvx_solver mosek;
cvx_solver scs;
cvx_begin quiet sdp
cvx_precision best
variable a(2,2) hermitian %semidefinite
a==semidefinite(2);
minimize(real(a(1,1)))
subject to
trace(a)==1;
a(2,2)<=1;
cvx_end
disp(a)
the error messages are as follows:
WARN: A->p (column pointers) not strictly increasing, column 0 empty
NaN + NaNi NaN + NaNi
NaN + NaNi NaN + NaNi
the other 3 solvers(sdpt3,sdumi,mosek) all give out the right answer.Do you have some ideas about the different performances of the solvers and how to correct my code?Hope for your reply!Thank you.


(Mark L. Stone) #4

Does CVX2.1 with MOSEK SeDuMi, or SDPT3 do what you need? If so, then stick with that. If you run out of memory, you may be out of luck using CVX for that problem.

CVX 3.0beta has a lot of bugs, perhaps including in the interface with SCS. It looks like you’ve encountered a bug in CVX and/or SCS. I don’t know a workaround other than not using it.


(Flying Bird) #5

Thank you very much.I’ve tried sdpt3,but I failed.I plan to try it again with mosek.But I wonder why such simple problem can’t go with scs?Again,thank you very much.


(zy) #6

Can you tell me how to install scs correctly in CVX 3.0? I installed scs but it reminded:
1 solver skipped due to other errors:
SCS unknown E:\Program Files\MATLAB\cvx-w64_3.0\cvx\scs-matlab-master\scs-matlab-master
CVX 3.0 requires SCS version 1.1 or later.
The scs version is 2.0.2.


(Flying Bird) #7

I just followed the steps in the github(https://github.com/bodono/scs-matlab).Actually,as I don’t know what you have done before this error message,I can only guess some steps that you might go wrong.
1.You’d better use git to clone it to your machine,because the first time I downloaded the zip directly,it seems that there are some files lost.
2.After installation of scs,did you run the command cvx_setup again?This command will connect the scs solver to your cvx.


(zy) #8

Thanks for your advice.