0

Given a optimization problem to Cvxpy, it applies heavy transformation on it before submitting it to solver.

But we require to submit raw / untransformed problem to the solver (since we want to interpret infeasibility report from the solver - e.g. Mosek, Gurobi).

Is there a way to:

  1. Either completely suppress the Cvxpy's transformation?
  2. Or somehow map the transformed problem back to the original / raw problem?
pqrz
  • 133
  • 5
  • 1
    If you want to debug infeasibility in cvxpy you should really form a model with penalized slacks and not try to be bothered with the infeasibility report from Mosek and the like. It will be much easier, more maintainable, clear, and independent of what cvxpy does in the next version, etc. – Michal Adamaszek Jun 02 '21 at 20:10
  • Thanks Michal! If Cvxpy cann't supress / backward map - then **penalized slacks** seems to be the only way out. – pqrz Jun 03 '21 at 09:53
  • 1
    A large part of what cvxpy does is essential to be able to formulate its higher-level atoms in low-level form, and it simply requires additional variables, transformations etc. These transforms cannot be avoided because that is the point of tools like cvxpy. – Michal Adamaszek Jun 03 '21 at 13:17
  • Thanks! didn't knew that. We definitely cannot suppress the transformation. – pqrz Jun 03 '21 at 13:30
  • We were thinking more on **backward map**, since cvxpy also had to [extract the original variables](https://github.com/cvxpy/cvxpy/blob/master/cvxpy/reductions/solvers/conic_solvers/mosek_conif.py#L382) from the transformed problem (i.e. it is already doing some form of backward mapping). If it can just also give the same as an API to end user, it would be a win-win. – pqrz Jun 03 '21 at 13:32

0 Answers0