failed to compute QCP dual solution

92 views
Skip to first unread message

Mostafa Nick

unread,
Apr 10, 2014, 8:55:29 AM4/10/14
to yal...@googlegroups.com
Hi John,

I have a QCP problem and I want to compute the dual solution.  However, Gurobi fails to compute the dual solution and it shows the following warning:

 “Warning: failed to compute QCP dual solution”

Is there any way to solve this issue?
Thank you very much in advance.

Regards
Mostafa

Johan Löfberg

unread,
Apr 10, 2014, 9:14:32 AM4/10/14
to yal...@googlegroups.com
I don't know of anyway to make it perform better. Generally trying to reformulate the model somehow to make it less numerically sensitive.

Erling D. Andersen

unread,
Apr 11, 2014, 2:15:51 AM4/11/14
to yal...@googlegroups.com
Here is qualified guess at the issue. I emphasize it is a guess.

The issue might be caused by a conversion from QCQP format and to the SOCP  format that is used internally.  You of course have to convert the dual solution to the SOCP back to a dual solution to the QCQP and that can be very tricky and error prone numerically.  This is particularly true for certain degenerate cases.

Therefore, at MOSEK we allow to specify the problem on conic form directly which means we can report the correct dual solution always. Some users thinks we stupid at doing things that way but this is one of the important reasons for doing to so.

Hence, a solution to your problem might be to use MOSEK or SeDuMi or SDPT3 if you need accurate dual information.

Btw an old paper of mine implicitly addresses this issue:

Mostafa Nick

unread,
Apr 11, 2014, 7:27:41 AM4/11/14
to yal...@googlegroups.com
Thank you so much John and Erling for your responses.

I am trying to use MOSEK to solve my problem but I don't know how to extract the duals of constraints in YALMIP from MOSEK. I searched but I was not able to find anything.

Thank you so much again.

Regards
Mostafa 

Johan Löfberg

unread,
Apr 11, 2014, 7:32:38 AM4/11/14
to yal...@googlegroups.com
Duals are always obtained in YALMIP through dual. However, YALMIP will not keep track of dual variables of SOCP constraints that YALMIP has derived from high-level models, but only low-level definitions defined through cone

x = sdpvar(4,1);
Model = [cone(x,1), x(2) == .5];
solvesdp
(Model,sum(x),sdpsettings('solver','mosek'));
dual
(Model(1))

ans
=

   
2.0000
   
1.0000
   
-1.0000
   
1.0000
   
1.0000







Reply all
Reply to author
Forward
0 new messages