0

We have a large-scale MIQCQP problem. Problem size:

Decision vars: ~9K (with 3K continuous and 6K integral vars)
Objective: 1 Linear expression
Constraints (linear): 35K linear constraints (9K lower bound + 9K upper bound + remaining inequality constraints)
Constraints (Quadratic): 1 quad constraint (with Q matrix size as 3K*3K, which is PSD)

When we use Mosek (via Cvxpy), it runs indefinitely (in the branch & bound logic). Moreover, from the mosek logs: BEST_INT_OBJ and REL_GAP(%) are displayed NA throughout.

Since this problem contains proprietary data, its difficult to share it.

Are there any general tips or tricks to speed up the problem?

(Weirdly, Gurobi can solve the same problem in less then a minute)

pqrz
  • 133
  • 5
  • Can we get sub-optimal solution by changing the tolerance level? – pqrz May 20 '21 at 08:41
  • Different solvers use different techniques to tackle your problems, so if you found a good solution with Gurobi, why do you want to replicate this performance with another solver? – mattmilten May 20 '21 at 11:36
  • 1
    If BEST_INT_OBJ is NA then it has not found any integer solution yet so changing tolerances probably won't help much. You could try to increase the parameters responsible for heuristics. The best way really is to write to Mosek support. – Michal Adamaszek May 20 '21 at 14:26
  • Thanks Michal! Would setting a Initial guess help the MIQCQP optimizer? – pqrz May 20 '21 at 14:54
  • @pqrz That very often helps but the starting point has to be feasible. However there is no way to pass an initial point to Mosek in cvxpy. – Michal Adamaszek May 21 '21 at 07:51
  • No problem, then we'll switch to its pyomo interface – pqrz May 21 '21 at 08:00
  • But Is there something like [mosek supports initialization for only Simplex optimizer (meaning only LP problem type)](https://stackoverflow.com/questions/67430604/initialization-of-decision-variables-value-in-mosek-solver-via-cvxpy-framework#:~:text=warmstart,interface) ? – pqrz May 21 '21 at 08:03

0 Answers0