How the following problems are converted and solved in CVX

I have successfully solved the following problem by using CVX, but I have to know how they are converted and solved in CVX.


The variables of these two problem are τ and ω.
The first problem is not a standard LP, and the second problem is not a standard QCQP. I used the SDPT3 solver and the CVX shows it uses successive approximation method. So, does CVX convert the problems into SDP first and then solve them?

No CVX, successively approximates the log and solves a new convex optimization problem on each iteration.

If you use mosek as solver, then its native exponential cone capability will be utilized instead. This should be faster and more reliable than CVX’s successive approximation method.

The next best way (other than mosek) to solve this in CVX is to use CVXQUAD, which uses a 2 by 2 SDP approximation of the log, which CVX converts into an SOCP, and as discussed in CVXQUAD: How to use CVXQUAD's Pade Approximant instead of CVX's unreliable Successive Approximation for GP mode, log, exp, entr, rel_entr, kl_div, log_det, det_rootn, exponential cone. CVXQUAD's Quantum (Matrix) Entropy & Matrix Log related functions

Hi Mark,

Thanks for your constructive suggestions. I will try the two better methods you mentioned above. But I want to do a complexity analysis for my algorithm. So, could I know what the new problem is? I mean after the successive approximation for the \log.

I don’t have the details on CVX’ s successive approximation method. Rather than worrying about its complexity, your concern should be that it is an unreliable algorithm, which is better avoided, and now can be.

I will defer to Mosek personnel who post on this forum as to whether they care to comment on complexity of mixed SOCP, exponential cone in Mosek.

More details on the CVXQUAD approach are in https://arxiv.org/abs/1705.00812 . You should note that the 2 by 2 LMIs which CVXQUAD produces are actually provided by CVX to the solver as SOCP constraints.

Ok, Many thanks for your suggestion and help!

Hi Mark,
I tried MOSEK a few times just now and it is faster than SDPT3 for my algorithm.
The reliability is reflected in: for some initial points, SDPT3 can not solve but MOSEK can. In terms of accuracy, these two solvers can give the same result under the same parameters setup as long as the SDPT3 can solve.

Please let me know if you can find any information on the complexity aspect. Thanks again for your kind suggestions!

Regarding complexity see https://math.stackexchange.com/questions/4400613/is-conic-programs-with-exponential-cone-solvable-in-polynomial-time/4400752#4400752

1 Like

Hi Michal
Thanks for your help!
So, did you mean if the MOSEK is used to optimize a \log involved convex problem, the Exponential cone optimization is performed? Chapter 5 of MOSEK only says ‘The exponential cone can be used to model a variety of constraints involving exponentials and logarithms.’. But in my problems, the two objective functions are log(linear) and log(quadratic).

If you are using MOSEk with CVX then a problem with \log will be transformed to an exponential cone problem similarly as in all the examples in https://docs.mosek.com/modeling-cookbook/expo.html

Ok, thanks for your kind help!