Improve CBC solve time

While watching the output of the CBC optimizer, I noticed that after a while, the optimizer would get “stuck” on a best solution, even though I set the primal tolerance and allowable gap to relatively low values.
I also noticed that the optimizer was attempting many cuts, none of which went active.

So I was wondering:

  1. How to tell the CBC optimizer where to begin looking for solutions or where to move towards when solving (since for my problem, the solutions always tended to be very near the upper bound) to avoid the issue of it getting stuck
  2. How to tell the CBC optimizer to stop performing unnecessary cuts

I am using JuMP for this, and unfortunately the documentation for the CBC interface for JuMP is sparse.

  1. https://jump.dev/JuMP.jl/v0.21.1/variables/#Start-values-1

  2. You can find some Cbc parameters here: https://projects.coin-or.org/CoinBinary/export/1059/OptimizationSuite/trunk/Installer/files/doc/cbcCommandLine.pdf

1 Like

Nice, thanks for the references.
Specifically for JuMP, I was able to turn cuts off with:

set_optimizer_attribute(model, "cuts", "off")