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.

Thanks!

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.

2 Likes

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.

3 Likes

The semidefinite approximation to the matrix logarithm/CVXQUAD developers have proven that DDS barrier is self-concordant. Posted on arXiv in May 2022.

I am not a Julia user as of yet, so can’t try myself. But what is the status of being able to actually formulate and solve a quantum_relative_entropyproblem in /Convex.jl? Can they be solved by COSMO.jl? If so, does anyone have experience with memory and speed relative to matrix size? Hopefully oodles better than CVXQUAD.

Just to confirm, quantum relative entropy problems can now be solved in JuMP using Hypatia? Same question about experience with memory and speed relative to matrix size.

Yes quantum relative entropy problems can be solved in JuMP using Hypatia. The Hypatia cone type is called EpiTrRelEntropyTriCone (epigraph-trace-relative-entropy-triangle-cone). An example for the syntax is Hypatia.jl/JuMP.jl at master · chriscoey/Hypatia.jl · GitHub or Hypatia.jl/JuMP.jl at 5bf412e36c69d6f990af2cf6ecad1aafed7b3006 · chriscoey/Hypatia.jl · GitHub.

I am not qualified to answer for COSMO.jl but note that it relies on projection oracles Custom Cone Constraint · COSMO.jl and additional information for checking infeasibility.

3 Likes