How is a mixed integer second order cone (MISOC) problem solved in CVX?


I have a a MISOC problem and used CVX to solve. As you know, CVX does not have an integer capability to solve integer problems but it can call mosek to solve such problems. My question is how such problems are handled?. Does the cvx pass the entire problem which is a MISOC to mosek or it only calls mosek to deal with the integer part of the problem and the underlying SOC problem is solved by cvx?.

CVX does not solve SOCPs on its own. It transforms the problem input by the user into a form which the specified solver can handle, then calls the solver, then transforms the solver results back to the user entered objective function and variables. This is what’s done for both continuous and mixed integers SOCPs. MOSEK is called by CVX to solve the SOCP, whether it’s mixed integer or not. MOSEK can handle MISOCPs natively, and CVX calls upon it to do just that.

Thank you for the excellent explanation.

Can I then claim that the worst case complexity of the solving algorithm used by mosek (branch and cut) is exponential?.

I suggest you ask questions about the MOSEK algorithm complexity at the MOSEK forum, as the MOSEK experts are at that forum much more frequently than at the CVX forum.