Cbc with MILP too slow

I have launched a simulation of my MILP and almost 24 hours has been passed and the script is have not finished yet.
I have wondering what is the real cause of this :

  • the large amount of binary variables present in my model?
  • the low performance of Cbc
  • memory of my pc
  • or all of this reasons?

I cannot use a commercial solvers so I would like to try to understand the reasons to find a solution.
Thanks for your tips.

It is impossible to say anything without code or the model. In particular, it depends on how many variables and constraints you have, what the variable types are, how sparse the constraint matrix is, and essentially all of your above points.

This question seems unrelated to Julia/JuMP, so it might be better asked on a forum such as https://or.stackexchange.com.

Alternately, if you can provide (simplified) code, someone might have some suggestions.

I think a problem I ran into previously can serve as an example. I had a nonlinear optimization problem that took me hours, while a bare-bones version of the problem using the same data only takes a minute on commercial stats software. It turns out that the hessian for the simple version of the problem has a representation that can be calculated very quickly, which was not possible for the more elaborate problem I was working on. That led to a difference of 1 minute versus 10+ hours.

It’d also help to start with why you think your problem should be solved much more quickly. Tweaking those components and see if the solution time does improve, e.g. reducing the number of variables, taking the same problem to a different solver and compare the improvement after say 1 hour, etc; this sort of reasoning helped me improve my program quite a bit.

2 Likes