Optimizing over the quantum entropy cone natively in JuMP

Hi everyone,

I was wondering if it was possible to optimize over the quantum entropy cone natively in JuMP.

If you need a reminder, the cone is
\{(X_1, X_2, X_3): X_1 \preceq X_2^{\frac{1}{2}} \log(X_2^{\frac{-1}{2}}X_3 X_2^{\frac{-1}{2}})X_2^\frac{1}{2}\},
where \log(X) denotes the matrix logarithm and X^\frac{1}{2} denotes the square root of a matrix. I would also be ok with a way of optimizing over the trace of X_1, since this seems to be considerably cheaper and would suit for the problem I have in mind.

As far as I can tell, the two ways of doing this are (a) to use the package CVXQUAD in Matlab, or (b) to use the Domain Driven Solver package in Matlab. This means that it is possible to optimize over this cone in Julia using MATLAB.jl to call Matlab, but I can’t find a native Julia solution in the docs.


Your best guess for Julia-native optimization over non-standard cones is the Hypatia.jl conic solver (see this paper for the math and here for a list of supported cones).

If your cone is not already there, the solver is flexible enough that you can add it directly. You’ll need a primal or dual barrier function (ideally a self-concordant one).

1 Like

From table 1 of OP’s reference, that looks like the operator relative entropy cone op_rel_entr_epi_cone. We have tentative plans to support that in Hypatia in future. Currently we only support the quantum_rel_entr cone.


Thanks for confirming, I’ll run with CVXQuad or DDS for now then.

FWIW there is a barrier for this cone (when minimizing tr(X1)) on page 23 of https://arxiv.org/pdf/1908.03075.pdf.

Yes thanks we are aware of that barrier, we actually independently came up with the same one and implemented it in Hypatia last year (it’s a pretty obvious guess). However I don’t think anyone is aware whether it is self-concordant.