Does anyone have real-world experience solving MIPs with Google's CP-SAT and Gurobi? Any idea when one works better than the other?
I have been asked to provide technical support for what appears to be (I haven't fully dug in) a variation of a set-covering problem that has been formulated as a SAT problem with Google's CP-SAT as the solver. CP-SAT worked well enough until the problem grew to a few hundred thousand variables and now has to be decomposed and solved in pieces. There do not appear to be any constraints that can't be phrased as integer constraints and I am convinced that something like Gurobi could easily tackle a problem of that size.
For another well-structured and smaller network flow problem that I have formulated as a straight up MIP using the OR-Tools API, it solves very quickly with CP-SAT although it consistently takes about 3 times as long as Gurobi. I can deal with it being slower because the solve time is still under a second and the problem is pretty small. I just don't know how much it will scale. In that case, though, I can easily switch to Gurobi because I used OR-Tools (whereas CP-SAT problems like the other one can only use the CP-SAT solver).
As for the first problem, before I go through the tedium of rewriting the problem and the expense of a commercial solver, I'd like to get a little more understanding of where CP-SAT and OR-Tools have an advantage over MIP solvers.
------------------------------
William Christian, Ph.D.
------------------------------