Help with python callback -- adding callback on different line than optimize()
AnsweredI am using a cut callback in some python code. Normally, I would follow the example set in the tsp.py code, which does the following:
m.optimize(subtourelim)
You can see that it passes the callback "subtourelim" to optimize(). For code organization reasons, I would like to separate these two things, similar to the tsp.cpp example:
// Set callback function
subtourelim cb = subtourelim(vars, n);
model.setCallback(&cb);
// Optimize model
model.optimize();
Can this be done in python?
0
-
The only way to set a callback function in the Python API is by passing the function object as an argument to Model.optimize().
The default argument of Model.optimize() is \( \texttt{None} \), which tells Gurobi there is no callback function. So you could do something like this:
m._cb = subtourelim # or None
m.optimize(m._cb)1
Please sign in to leave a comment.
Comments
1 comment