Early Stopping Using Float Cutoff on Dual

I cannot figure out how to do the following. I would like for JuMP to stop once the dual bound (lower bound for minimization) is above some value. OR similarly, once the dual bound (upper bound for maximization) is below some value.
I’m not sure if maybe this needs to be done with the solver directly? Or if it can be done through JuMP.
I am using either Gurobi or CPLEX. So if you know how to do this in either one, that would be helpful.

This needs to be done through the solver, so check their options.

In Gurobi, you can use the BestBdStop parameter to do that. I don’t know about CPLEX.

Another option is to use a solver-specific callback, query the current dual bound, and manually terminate the solver once it reaches a prescribed value. Obviously, this is more involved, but if you have a hard constraint on the solver it can make it work.

1 Like