Originally posted by: AndreaTramontani
Hi Nathan,
unfortunately, there is no possibility for the user to specify a disjunction (or a list of disjunctions) and "force" CPLEX to generate cuts from such disjunctions.
CPLEX offers several separators, and two of them are specifically for disjunctive cuts:
.. Disjunctive cut separator, the C API parameter to control them is CPXPARAM_MIP_Cuts_Disjunctive or CPX_PARAM_DISJCUTS
.. Lift and Project cuts, C API parameter to control them is CPXPARAM_MIP_Cuts_LiftProj or CPX_PARAM_LANDPCUTS
The two above separators are alternative ways of separating Split cuts (i.e., disjunctive cuts from split disjunctions).
The parameters give you the possibility to control, to some extent, how much aggressive you want to be with the separators, but there is no possibility to specify the disjunctions in advance and force CPLEX to use them. The separators will consider some disjunctions selected according to some internal rules.
The main difficulty I see on our side (i.e., CPLEX) to provide such a feature is that, even if the disjunction is fixed, there are plenty of cuts you can generate and many alternative separators you could use. If you want to implement your own separator to be used with callbacks, then maybe the references below can be useful.
The first two ones are papers on alternative approaches proposed in the literature for Lift and Project cuts. The third one is an INFORMS presentation that describes what we did when we implemented Lift and Project cuts in CPLEX.
Hope this can help.
Andrea
1. M. Fischetti, A. Lodi, A. Tramontani, "On the separation of disjunctive cuts". Mathematical Programming, Ser. A, 128, 205--230, 2011
2. P. Bonami, "On Optimizing over lift-and-project closures". Mathematical Programming Computation, 4, 151--179, 2012
3. A. Tramontani, "Lift-and-Project Cuts in CPLEX 12.5.1". INFORMS 2013, Minneapolis (MN), 2013, available at
https://www.ibm.com/developerworks/community/wikis/form/anonymous/api/wiki/de368162-e90b-432c-a4e9-795cc51440dd/page/4096cfd2-4525-4e5a-a076-a09e259e6ce8/attachment/96a1a8cd-d607-41f0-90ab-83c57739b91e/media/INFORMS2013_LiftProjCuts.pdf
#CPLEXOptimizers#DecisionOptimization