0

I was using Mosek via its Cvxpy interface.

I wanted to use Mosek's tool for automatic repair of infeasibility problem [0] but couldn't find any solver option [1] to activate that.

Kindly tell the relevant solver option.

0 - https://docs.mosek.com/9.2/capi/feas-repair.html#automatic-repair-of-infeasible-problems

1 - https://docs.mosek.com/9.2/pythonapi/parameters.html#doc-all-parameter-list

pqrz
  • 133
  • 5
  • 1
    You cannot use it from cvxpy and it's helpfulness is severly limited anyway due to cvxpy's heavy transformation of the problem hidden from mosek (mapping back information gained is hard). – sascha Mar 06 '21 at 11:31
  • It is very easy to implement yourself in cvxpy. Just follow the method from the MOSEK manual (your reference 0): add slack variables to bounds, as objective minimize the weighted sum of violations. This way you have full control without worrying about the cvxpy to Mosek internal transformation. – Michal Adamaszek Mar 06 '21 at 20:53
  • Good idea @MichalAdamaszek , one can definitely self-implement this. But the whole idea behind using a commercial application is someone have already done it for you :P (just kidding) ........ Is there any way we can activate Mosek's inbuilt repair tool (via Cvxpy interface)? – pqrz Mar 08 '21 at 11:37
  • 1
    Not without hacking cvxpy codebase. – Michal Adamaszek Mar 08 '21 at 16:10
  • It is probably faster building your own feasibility repair in Cvx than understanding what Mosek does. Mosek does not do anything clever. – ErlingMOSEK Mar 18 '21 at 07:59
  • MichalAdamaszek and @ErlingMOSEK - These info are helpful. Thanks! – pqrz Mar 25 '21 at 13:40
  • @MichalAdamaszek , would the [slack variable approach](https://stackoverflow.com/questions/66502821/mosek-infeasibility-repair-via-cvxpy-interface#comment117577975_66502821) work for all continuous problem types? (confusion because the [mosek docs](https://docs.mosek.com/9.2/capi/feas-repair.html#automatic-repair-of-infeasible-problems) only comments on LP problem type) – pqrz Jun 10 '21 at 11:54
  • @pqrz If you can write a<=b in cvxpy then I thin in all cases you can also write a<=b+y for a slack variable y, regardless of what a,b are. Mosek's automatic routine only does it on the linear part, but in cvxpy you can form the relaxed model any way you like. – Michal Adamaszek Jun 11 '21 at 06:28
  • Right, we indeed can form a relaxed model for every problem type. But would the approach of "**solving the relaxed model, then using the non-zero slack variables to identify the conflicting constraints**" - work for every problem type (i.e. LP, QP, QCQP, SOCP)? – pqrz Jun 11 '21 at 07:32

0 Answers0