Computational complexity and solver time using PENLAB

48 views
Skip to first unread message

Mark Mitchell

unread,
Aug 24, 2016, 12:09:37 PM8/24/16
to YALMIP
I am trying to choose L, D, B, W, M and N so as to make the following system of equations hold true: 

L*D*L' + W = X

L*B*L' + W = Y

L*M = P

L*N = Q

t*M + (1-t)*N = 0

where X and Y are known 66x66 matrices, P and Q are know 11x1 vectors and t is a known scalar.  L and W are 66x11 matrices with 66 unknown parameters, D and B are 11x11 matrices of unknown parameters, and M and N are 11x1 vectors of unknown parameters. All in all, the problem involves the estimation of around 220 unknown values in the left hand side matrices and vectors.

I am carrying out this task by using the PENLAB solver, to minimize the sum of the norm of the differences of the left and right hand sides of the equations. The code is:

objective =  norm(tau*mu_a+(1-tau)*mu_b) + norm(mu_1-lambda*mu_a) + norm(mu_2-lambda*mu_b) + norm(lambda*theta_a*lambda'+psi-sigma1,'fro') + norm(lambda*theta_b*lambda'+psi-sigma2,'fro');

ops = sdpsettings('solver','penlab');

sol = optimize(Constraints,objective,ops)

where the names of the matrices\vectors are different but the expressions inside the norm function represent the system of equations above. 

As new to using YALMIP, i wondered whether minimizing such an objective would be expected to take an extremely long time? This seems to be that case, as when i run the optimizer it takes roughly 4 hours to complete one iteration. The machine and Matlab installation i am working on is on a network, and i wondered if this maybe has a significant impact on computation time?

Any comments or suggestions would be greatly appreciated.

Johan Löfberg

unread,
Aug 24, 2016, 12:15:10 PM8/24/16
to YALMIP
Yes, I would expect it to be very slow (especially as penlab is a simple matlab implementation)

Why are you using penlab? This looks like a standard nonlinear program to me 

L and W cannot both be 66x11 as you claim

Mark Mitchell

unread,
Aug 24, 2016, 12:36:00 PM8/24/16
to YALMIP
Thank you for your sharp response, and i apologise, W is a 66x66 not 66x11.

 I thought that this might be the case. I am using PENLAB purely on a recommendation due to the fact i have semi-definite constraints on the matrices. If there are any other solvers that are appropriate, then that would be of much help. This is my first venture in to solving problems of this type, so i appreciate the help. 

Johan Löfberg

unread,
Aug 24, 2016, 12:58:16 PM8/24/16
to YALMIP
You did not mention you have semidefinite constraints.

As you already optimize over nasty factorizations, you can just as well treat the SDP constraint using a factorization too. E.g, if you want W to be psd, simply parameterize it as R*R', and then use any nonlinear solver (fmincon, ipopt, knitro,...)

Mark Mitchell

unread,
Aug 24, 2016, 1:40:39 PM8/24/16
to YALMIP
Thank you very much for the advice - i have ran the code with this decomposition using fmincon, and was able to obtain results in minutes!
Reply all
Reply to author
Forward
0 new messages