I'm trying to run each step in a multi-objective optimization problem for the longer of 100s or 5 seconds after solving the root node. It seemed like the best way to implement that was with a callback, and calling cbStopOneMultiObj when both conditions have been met. However, I'm experiencing a number of problems.
Should the function only be called one time, or should it be called in every callback invocation until it takes effect?
I've seen it raise:
File "callback.pxi", line 180, in gurobipy.CallbackClass.callback
File "partitioned_binary.py", line 61, in timeoutcallback
File "model.pxi", line 5829, in gurobipy.Model.cbStopOneMultiObj
Exception gurobipy.GurobiError: GurobiError() in 'gurobipy.callbackstub' ignored
I've seen it segfault, and I've seen it take >1000 seconds to take effect.
Is using cbStopOneMultiObj the best way to do this? Would it be better to send my own process a SIGINT signal and let Gurobi catch it?
Please sign in to leave a comment.