I would like to help the MILP solver used by JuMP by providing it with a lower bound on the objective function. Is there a “smart” way of doing this other than to just add a constraint to the objective fcn expression, e.g. a function that does something like `set_lower_bound(JuMP.Model)`

?

A better way to help the solver is to provide a good starting solution: https://www.juliaopt.org/JuMP.jl/stable/variables/#Start-values-1.

JuMP does not provide a solver-independent way to tell solvers a lower bound on the objective. In general, (if minimizing) lower bounds aren’t very helpful. Good *upper* bounds are though.

A general way of communicating an objective bound to many solvers is to add it as a constraint. So you might give that a try.

In my experience (assuming a minimization problem), providing lower bounds as constraints is not particularly helpful. However, providing strong objective upper bounds as constraints can be very helpful.

Thanks! I can do both, but from what I’ve gathered from my problem is that the solver needs a better lower bound in order to cut off branches in the branch and bound tree. It finds a good solution fairly qucikly, but then spends a lot of time bringing the lower bound up in order to decrease the optimality gap. I might be mixing up lower and upper bounds (I’m minimising).