unkonwn problem debug flag / out of memory

29 views
Skip to first unread message

Fahimeh Kazempour

unread,
Apr 14, 2015, 11:40:35 AM4/14/15
to yal...@googlegroups.com
Hi Joahn,

I was trying to solve a rank-constrained LMI. It gave me back all NaN. So, I tried to solve the LMI without its rank constraints at first.

 In the first try, it gave me "'Unknown problem in solver (try using 'debug'-flag in sdpsettings) (Error using callsedumi"

I turned on 'debug',1. This time, it gave me this error: "Out of memory. Type HELP MEMORY for your options."

The point is that my matrices are not really big. They are in the order of 500. 

Could you please help me with this? I'v attached the actual code I'm running.

Many many thanks,
Fahimeh
Ac_1.mat
Ac_2.mat
Bc_1.mat
Bc_2.mat
Cc_1.mat
Cc_2.mat
Sec_Con_1.asv
Sec_Con_1.m

Johan Löfberg

unread,
Apr 14, 2015, 2:51:34 PM4/14/15
to yal...@googlegroups.com
500 is not small. If you define a matrix X of size 500, and then optimize over this, you will have roughly 12500 variables. That means the solver in the worst case will have to work with a Hessian of size 12500*12500, which easily can lead to problems. Additionally, I think lmirank (which is a dead project) primarily is meant for small problems.

BTW, your code must scream at you that you should not use strict inequalities.

Fahimeh Kazempour

unread,
Apr 14, 2015, 3:13:35 PM4/14/15
to yal...@googlegroups.com
Thanks for the reply.

So, do you have any suggestion to make it to work? Are you telling me that I can't use yalmip to find my controllers?

Fahimeh

Johan Löfberg

unread,
Apr 14, 2015, 3:26:56 PM4/14/15
to yal...@googlegroups.com
Your problem is not YALMIP, but the semidefinite solver. SeDuMi crashes due to memory, and the reason is precisely what I said above. The hessian is a dense 23648x23648 matrix, and SeDuMi crashes when it tries to create this. The problem is simply too large for a second-order SDP approach

Fahimeh Kazempour

unread,
Apr 14, 2015, 4:06:58 PM4/14/15
to yal...@googlegroups.com
Johan sorry for the trouble but I have to ask you this. Is there any numerical way to go around it? Giving initial points? Solving it in a recursive algorithm or something?

Johan Löfberg

unread,
Apr 14, 2015, 4:34:50 PM4/14/15
to yal...@googlegroups.com
You could try another solver in lmirank (but I don't think that will help, mosek triggers memory issues too, perhaps if you try with a first-orderr solver such as sdpnal). However, the problem is most likely  too large for off-the-shelf solvers. For any chance to attack this model, you probably have to develop your own dedicated structure-exploiting solver
Reply all
Reply to author
Forward
0 new messages