Initializing help system before first use

problem.addcboptnode

problem.addcboptnode


Purpose
Declares an optimal node callback function, called during the branch and bound search, after the LP relaxation has been solved for the current node, and after any internal cuts and heuristics have been applied, but before the Optimizer checks if the current node should be branched. This callback function will be called in addition to any callbacks already added by addcboptnode.
Synopsis

problem.addcboptnode(callback, data, priority)

feas = callback(my_prob, my_object)


Arguments
callback 
The callback function which takes three arguments, my_prob, my_object and feas, and has no return value.
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 addcboptnode.
feas 
The feasibility status. If set to a nonzero value by the user, the current node will be declared infeasible.
data 
A user-defined object to be passed to the callback function, callback.
priority 
An integer that determines the order in which multiple node-optimal 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 prints the optimal objective value of the node LP relaxations:
prob.addcboptnode(nodeOptimal, None, 0)
prob.mipoptimize("")
The callback function might resemble:
def nodeOptimal(prob, object):

    node = prob.attributes.currentnode
    print("NodeOptimal: node number", node)
    objval = prob.attributes.lpobjval
    print("Objective function value =", objval)
    return 0
Related topics