ILOG CPLEX 11.0 User's Manual > Discrete Optimization > Solution Pool: Generating and Keeping Multiple Solutions > Filtering the Solution Pool > Incumbent Callback as a Filter

If you need to enforce more complex constraints on solutions (if you need to enforce nonlinear constraints, for example), you can use the incumbent callback in Concert Technology or the Callable Library. During the populate procedure, the incumbent callback is called each time a new solution is found, even if the new solution does not improve the objective value of the incumbent. The incumbent callback allows your application to accept or reject the new solution based on your own criteria.

Bear in mind that the incumbent callback disables dynamic search. At default parameter settings, the incumbent callback, as a control callback, also disables deterministic parallel MIP optimization (if your application is licensed for parallel MIP optimization) though you can override this default behavior by setting the parallel mode parameter (ParallelMode, CPX_PARAM_PARALLELMODE) yourself. For more about dynamic search, see Branch & Cut or Dynamic Search. For more about parallel MIP optimization, see Parallel MIP Optimizer.

To create an incumbent callback, use the following methods or routine:

Callbacks 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. For more information, please read Using Optimization Callbacks and Advanced MIP Control Interface.