LMIrank

142 views
Skip to first unread message

Fahimeh Kazempour

unread,
Aug 11, 2013, 7:49:36 PM8/11/13
to yal...@googlegroups.com
Dear Johan,

I need to solve a rank constrained LMI, using YALMIP.
In one page example that you've kindly provided, the explanation which exists on how to solve the problem is:
solvesdp(F,[],sdpsettings('lmirank.solver','sedumi','sedumi.eps',0))

So, should I use this command exactly after I created my constraints? Or, should I type "solvesdp (F);" first (as you've mentioned in your example) and then type the above command?

Anyways, I used this command but it gave me the error:
info: 'No suitable solver'

I thought it might be necessary to install Sedumi, separately. Is it?!
On the SeduMi website, I couldn't find a suitable version for Win64 Matlab R2010!!
Now, I don't know what could be the solution.
Could you please help me, as before?

Many thanks,
Fahimeh

Adkitta

unread,
Aug 11, 2013, 10:55:04 PM8/11/13
to yal...@googlegroups.com
Probably, you don't have SeDuMi in your Matlab path. Download SeDuMi v1.3 from http://sedumi.ie.lehigh.edu/. Unzip and add the folder to your Matlab path.

Fahimeh Kazempour

unread,
Aug 11, 2013, 11:33:22 PM8/11/13
to yal...@googlegroups.com
Dear Adkitta,
Thanks. I did that. It does give me the same error, though. No suitable solver!

Johan Löfberg

unread,
Aug 12, 2013, 1:48:56 AM8/12/13
to yal...@googlegroups.com
You have to install SeDuMi and LMIRank.

Johan Löfberg

unread,
Aug 12, 2013, 1:51:21 AM8/12/13
to yal...@googlegroups.com
Compiled and updated SeDuMi can be found here
https://github.com/sedumi/sedumi/archive/master.zip

Fahimeh Kazempour

unread,
Aug 12, 2013, 6:19:13 PM8/12/13
to yal...@googlegroups.com
Dear Johan,
I installed both of them. It does not work. Do you think it's because of Matlab R2010 I'm using?
By installing, I mean I add SeDumi and LMIRANK path to Matlab. Is that enough?
I'm seriously confused!


Fahimeh Kazempour

unread,
Aug 12, 2013, 6:32:51 PM8/12/13
to yal...@googlegroups.com
By the way, is it possible for you to give me an email address so that I send my code to you. In this way, we can figure it out whether it's an installation problem or not.
I do appreciate your help.

Johan Löfberg

unread,
Aug 13, 2013, 1:55:31 AM8/13/13
to yal...@googlegroups.com
Have you checked if SeDuMi actually works to begin with? Does this run nicely?

sdpvar x
solvesdp
(x>=0,x,sdpsettings('solver','sedumi','debug',1))

If this doesn't work, you have added SeDuMi correctly to your path

Second step, does the rank example on the Wiki work.

A = [0.2 0 1 0;0 0.2 0 1;-1 1 0.2 0;1 -1 0 0.2];
B
= [0 0 1 0]';
C = [0 1 0 0];
X = sdpvar(4,4);
Y = sdpvar(4,4);
Bp = null(B'
)';
Cp = null(C)'
;
W  
= eye(3)*1e-6;
F
= [Bp*(A*X+X*A')*Bp' <= -W, Cp*(Y*A+A'*Y)*Cp' <= -W];
F
= [F, [X eye(4);eye(4) Y] >= 0];   % not needed, see below
F
= [F, rank([X eye(4);eye(4) Y]) <= 4+2];
solvesdp
(F)

If this doesn't work, but the problem above was solved, you haven't added LMIRANK to your path.

If the problems above are solved nicely, then the problem is most likely that you do not have a *linearly* parameterized problem. When you display your constraints, it should say something like this

>> F
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|   ID|      Constraint|                            Type|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|   #1|   Numeric value|           Matrix inequality 3x3|
|   #2|   Numeric value|           Matrix inequality 3x3|
|   #3|   Numeric value|           Matrix inequality 8x8|
|   #4|   Numeric value|   Rank constraint (derived) 1x1|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

I suspect you have bilinear stuff
>> F
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|   ID|      Constraint|                               Type|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|   #1|   Numeric value|   Matrix inequality (bilinear) 3x3|
|   #2|   Numeric value|              Matrix inequality 3x3|
|   #3|   Numeric value|              Matrix inequality 8x8|
|   #4|   Numeric value|      Rank constraint (derived) 1x1|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++





Johan Löfberg

unread,
Aug 13, 2013, 1:58:49 AM8/13/13
to yal...@googlegroups.com
Let us keep the discussion here initially, to help future users. Maybe you could post an example here (follow standard bug report guidelines, simplify the model as far as possible, we are only interested in a minimal (non-)working example)

Fahimeh Kazempour

unread,
Aug 19, 2013, 1:26:08 AM8/19/13
to yal...@googlegroups.com
Thank you Johan.
As you said, I mistakenly had a quadratic parameter in my LMI.
Now, it does not give me "No suitable solver" error. However, it gives me "Numerical Problems". Any idea where could be the problem?

I appreciate your help.
Fahimeh

Johan Löfberg

unread,
Aug 19, 2013, 1:51:11 AM8/19/13
to yal...@googlegroups.com
No. Impossible to say without the model.

Fahimeh Kazempour

unread,
Aug 21, 2013, 4:20:50 PM8/21/13
to yal...@googlegroups.com
Hi Johan,

Based on your hints, I could remove "No Suitable Solution" and then "Numerical Problem" errors. Currently, YALMIP solve the problem. The answers it's giving me are not feasible, though. I tracked the problem and found out the infeasibility comes from the ranked constraint that I have. This rank constraint is basically trying to tell the YALMIP that the parameter Tau in the first LMI is actually the inverse of the parameter Tau_tild in the second LMI. However, even when I remove those two LMIs and jut ask YALMIP to give me some scalar Tau and Tau_tild such that [Tau_tild 1; 1 Tau]>=0 and rank( [Tau_tild 1; 1 Tau])<=1, it cannot solve the problem and all the primal residuals for the rank constraints appear to be negative 1.

Please help me with this problem again.

Thanks in advance.

Johan Löfberg

unread,
Aug 21, 2013, 4:45:15 PM8/21/13
to yal...@googlegroups.com
Well, lmirank simply doesn't manage to find a solution. This is a very hard nonconvex problem and lmirank is a local solver.

Fahimeh Kazempour

unread,
Aug 21, 2013, 4:49:46 PM8/21/13
to yal...@googlegroups.com
Well, any advice then? How should I solve this problem, after all?

Johan Löfberg

unread,
Aug 22, 2013, 1:37:03 AM8/22/13
to yal...@googlegroups.com
You rank problems in general? You cannot expect to be able to solve them.

With lmirank: tweak the model, add other constraints, reformulate, change the options, and pray.
Reply all
Reply to author
Forward
0 new messages