Originally posted by: SystemAdmin
A good starting point for you is probably the user's manual of CPLEX. There is a whole chapter about callbacks.
In general, callbacks are used to interact with the solving process while it is being executed.
I cannot go into the very details here, but I give a few examples what you can do with callbacks:
-
track the progress of the optimization (for example, to display a graph that shows the progression of the primal and dual bound or some other statistics)
-
terminate the optimization process if some (more complex) criterion has been reached that cannot be specified with regular parameter settings (for example: stop after 5 minutes, but only if the gap has reached 5%; otherwise continue for at most 10 additional minutes)
-
call a user-written special purpose primal heuristic to find feasible solutions (as the user has background knowledge about the model being solved, special purpose heuristics can often find good solutions much faster than the general purpose heuristics included in CPLEX)
-
call a user-written cutting plane separator (similar reasoning to heuristics, but on the dual side of the problem)
-
implement a special purpose branching strategy
#CPLEXOptimizers#DecisionOptimization