# CVX reports unbounded status but with viable solution

(Mark L. Stone) #21

I think this problem should be solvable now using MOSEK as solver with CVXQUAD’s Pade approximation for the exponential cone, which avoids use of CVX’s successive approximation method. I am not aware of anyone having verified correct behavior when using the CVXQUAD algorithm with binary variables, but I see no reason (famous last words) why it should not work.

This requires installing CVXQUAD https://github.com/hfawzi/cvxquad , including replacing the exponential.m function in the CVX sets directory with CVXQUAD"s version. This will also require reformulating the log constraints using the explicit exponential cone formulation . I.e.,. use the constraint
{ x, y, z } == exponential(1)
to model
y*exp(x/y) <= z
This is necessary because the CVXQUAD Pade approximation gets invoked for entr, rel_entr , and explicit exponential cone constraint, but not for log or exp by themselves.

At such time as MOSEK 9.0, which will have native exponential cone support (allowing use of mixed integer for exponential cone), comes out, and a version of CVX which utilizes that exponential cone support is available, then none of these workarounds should be necessary.

How can I solve this kind of large scale problem?

Hi Mark, I want to use XNOR logic between two binary variables, is it possible to use in CVX? or how can I solve the problem. e.g I have A=[1 0 0 1] and B=[0 1 0 1], and the result I want [0 0 1 1].

(Mark L. Stone) #23

You should be able to do this using the MIDCP capability of CVX. You will need to declare binary variables. You ought to be able to use an approach as shown at https://cs.stackexchange.com/questions/12102/express-boolean-logic-operations-in-zero-one-integer-linear-programming-ilp for xor, but adjusted to handle xnor.