Base class for all callback classes querying or taking control of the MIP branch-and-cut search.
For a list of all members of this type, see Cplex.ControlCallback Members.
System.Object
ILOG.CPLEX.Cplex.Callback
ILOG.CPLEX.Cplex.MIPCallback
ILOG.CPLEX.Cplex.ControlCallback
ILOG.CPLEX.Cplex.BranchCallback
ILOG.CPLEX.Cplex.CutCallback
ILOG.CPLEX.Cplex.HeuristicCallback
ILOG.CPLEX.Cplex.UserCutCallback
Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.
This is an advanced class.
Important:
Advanced classes typically demand a profound understanding of the algorithms used by ILOG CPLEX. Thus they incur a higher risk of incorrect behavior in your application, behavior that can be difficult to debug. Therefore, ILOG encourages you to consider carefully whether you can accomplish the same task by means of other classes instead.
This is the base class for all callback classes that allow you to query or take control of the MIP branch-and-cut search. These classes are:
An instance of ControlCallback
is not a callback for implementing user functionality itself, but rather provides the common interface for those listed callback classes. Those callbacks share the property that they are called at every node in the branch-and-cut search tree, and allow you to access node-related data. For each branch-and-cut node, those callbacks are called in the following order:
Cplex.CutCallback
: Once the node problem has been solved and Cplex
has added all its cuts, the user cut callback is called. In case new cuts are added to the problem, the node problem is solved again. This is iterated until no more cuts are added to the problem.Cplex.HeuristicCallback
: Once the node has been fully solved (that is including all the cuts that may have been added), the heuristic callback is called in an attempt to generate an integer feasible solution from the current relaxation solution at that node.Cplex.BranchCallback
: Finally, if the relaxation solution at the current node is either integer infeasible or rejected by the Cplex.IncumbentCallback
, the problem is split into subproblems. At that point the Cplex.BranchCallback
can be used to control how to create the subproblems. The methods of this class are protected to make sure that they are used only to derive a user-written callback class or to implement the main
method in it.
Namespace: ILOG.CPLEX
Assembly: ILOG.CPLEX (in ILOG.CPLEX.dll)