Exponential cone programming

The exponential cone is defined as the set \( (ye^{x/y}\leq z, y>0) \), see, e.g. [Chandrasekara and Shah 2015]. YALMIP is capable of detecting and calling specialized solvers for a variety of exponential cone representable function.

By simple variable transformations, the following functions are automatically detected as exponential cone representable and suitably rewritten before calling an exponential cone capable solver

  1. exp, pexp
  2. log, log2, log10, slog, plog
  3. entropy, logsumexp, kullbackleibler

Note that YALMIP does not necessarily detect exponential cones when written in the canonical form \( ye^{x/y}\leq z \), but instead you can use the perspective exponential, pexp, which implements \( ye^{x/y} \).

The code below requires SCS or ECOS to be relevant. If none of those solvers are installed, YALMIP will work with the nonlinear functions as written and treat the problem as a general nonlinear program.

%

If the exponential cone program violates convexity rules, and an exponential cone solver is selected an error will be issued

sdpvar x
optimize([],log(x), sdpsettings('solver',scs'))

Leave a Comment