If you determine that your application needs to seize control, intervene in the search, and redirect the optimizer, then the following control callbacks are available to do so.
-
The node callback allows you to query and optionally overwrite the next node ILOG CPLEX will process during a branch & cut search.
-
IloCplex::NodeCallbackI in the C++ API
-
IloCplex.NodeCallback in the Java API
-
Cplex.NodeCallback in the .NET API
-
CPXsetnodecallbackfunc in the Callable Library (C API)
-
The solve callback allows you to specify and configure the optimizer option to be used for solving the LP at each individual node.
-
IloCplex::SolveCallbackI in the C++ API
-
IloCplex.SolveCallback in the Java API
-
Cplex.SolveCallback in the .NET API
-
CPXsetsolvecallbackfunc in the Callable Library (C API)
-
The cut callback allows you to add problem-specific cuts at each node.
-
IloCplex::CutCallbackI in the C++ API
-
IloCplex.CutCallback in the Java API
-
Cplex.CutCallback in the .NET API
-
CPXsetcutcallbackfunc in the Callable Library (C API)
-
The heuristic callback allows you to implement a heuristic that tries to generate a new incumbent from the solution of the LP relaxation at each node.
-
IloCplex::HeuristicCallbackI in the C++ API
-
IloCplex.HeuristicCallback in the Java API
-
Cplex.HeuristicCallback in the .NET API
-
CPXsetheuristiccallback in the Callable Library (C API)
-
The branch callback allows you to query and optionally overwrite the way ILOG CPLEX will branch at each node.
-
IloCplex::BranchCallbackI in the C++ API
-
IloCplex.BranchCallback in the Java API
-
Cplex.BranchCallback in the .NET API
-
CPXsetbranchcallbackfunc in the Callable Library (C API)
-
The incumbent callback allows you to check and optionally reject incumbents found by ILOG CPLEX during the search.
-
IloCplex::IncumbentCallbackI in the C++ API
-
IloCplex.IncumbentCallback in the Java API
-
Cplex.IncumbentCallback in the .NET API
-
CPXsetincumbentcallbackfunc in the Callable Library (C API)