problem.addcbgloballog
problem.addcbgloballog |
Purpose
Declares a global log callback function, called each time the global log is printed. This callback function will be called in addition to any callbacks already added by addcbgloballog.
Synopsis
problem.addcbgloballog(callback, data, priority)
ret = callback(my_prob, my_object)
Arguments
callback
|
The callback function which takes two arguments,
my_prob and
my_object, and has an integer return value. This function is called whenever the global log is printed as determined by the
MIPLOG control.
|
my_prob
|
The problem passed to the callback function,
callback.
|
my_object
|
The user-defined object passed as
object when setting up the callback with
addcbgloballog.
|
data
|
A user-defined object to be passed to the callback function,
callback.
|
priority
|
An integer that determines the order in which multiple global log callbacks will be invoked. The callback added with a higher priority will be called before a callback with a lower priority. Set to 0 if not required.
|
Example
The following example prints at each node of the global search the node number and its depth:
prob.controls.miplog = 3 prob.addcbgloballog(globalLog, None, 0) prob.mipoptimize('')
The callback function may resemble:
def globalLog(prob, object): nodedepth = prob.attributes.nodedepth node = prob.attributes.currentnode print('Node {0} with depth {1} has been processed'.format (node, nodedepth)) return 0
Further information
If the callback function returns a nonzero value, the global search will be interrupted.
Related topics