I have noticed that some commercial solvers transform QCQPs into SOCPs and use SOCP algorithms to solve the resulting problem. I am wondering if there is a benefit to this approach over using a pure QCQP solver.

I have done some literature review, and I haven't found any references comparing these two approaches, besides some claims from MOSEK, SOCP solvers are more robust.

Does anyone know any references on this topic?

I appreciate the help.


1 Answer 1


Since QCQP is contained within SOCP you don't lose any expressiveness by making this transformation. However, you do reduce the maintenance cost of the software! If the accuracy+perf difference is small enough, that's a compelling reason.

  • 2
    $\begingroup$ It's important that Second Order Cone Programming fits into a conic optimization framework that can be shared with LP, SDP, and more exotic cones. $\endgroup$ Commented Mar 29, 2022 at 22:06
  • 1
    $\begingroup$ Thanks @BrianBorchers and @Richard! I guess Richard already partially alludes to the reason why LPs and QPs are not transformed to SOCPs or SDPs, as there are specialized algorithms which are more efficient and accurate for solving LPs and QPs. And I understand that using an SOCP solver may reduce the maintenance cost, but counter-argument: QCQP is reasonably simple extension to QP. So if a company already has a well developed QP solver, why would they be interested in skipping a step directly to SOCP? I am suspecting that there is some conventional wisdom that I am lacking. $\endgroup$ Commented Mar 30, 2022 at 17:29
  • $\begingroup$ Actually, QP isn't a conic optimization problem. CVX and some other conic optimization packages convert (convex) QP problems into SOCPs. LP is a conic optimization problem. The thing that you seem to be missing here is the importance of the conic optimization framework. $\endgroup$ Commented Mar 30, 2022 at 19:16
  • $\begingroup$ Indeed, I meant convex QP -though I should definitely be more precise with terminology in the future-. I am going to acknowledge that I don't completely understand the importance of it. I see that many challenging problems require special techniques which cannot be implemented/used in such a general framework. So I am confused a bit. Thanks again for both of your comments, I will accept Richard's answer :) $\endgroup$ Commented Apr 1, 2022 at 21:32
  • $\begingroup$ @Abdullah: there might be better or more interesting explanations than mine if you want to leave this open, but I think maintenance costs is probably a solid explanation, however banal. $\endgroup$
    – Richard
    Commented Apr 1, 2022 at 23:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.