Parameters affecting cuts

Summarizes parameters controlling cuts.

Parameters control the way each class of cuts is used. Those parameters are listed in the table Parameters for controlling cuts.

Table 1. Parameters for controlling cuts 
Cut Type Interactive Command Concert Technology Callable Library Parameter Reference
Boolean Quadric Polytope (BQP) set mip cuts bqp MIP.Cuts.BQP CPXPARAM_MIP_Cuts_BQP Boolean Quadric Polytope cuts
Clique set mip cuts cliques MIP.Cuts.Cliques CPXPARAM_MIP_Cuts_Cliques MIP cliques switch
Cover set mip cuts covers MIP.Cuts.Covers CPXPARAM_MIP_Cuts_Covers MIP covers switch
Disjunctive set mip cuts disjunctive MIP.Cuts.Disjunctive CPXPARAM_MIP_Cuts_Disjunctive MIP disjunctive cuts switch
Flow Cover set mip cuts flowcovers MIP.Cuts.FlowCovers CPXPARAM_MIP_Cuts_FlowCovers MIP flow cover cuts switch
Flow Path set mip cuts pathcut MIP.Cuts.PathCut CPXPARAM_MIP_Cuts_PathCut MIP flow path cut switch
Gomory set mip cuts gomory MIP.Cuts.Gomory CPXPARAM_MIP_Cuts_Gomory MIP Gomory fractional cuts switch
GUB Cover set mip cuts gubcovers MIP.Cuts.GUBCovers CPXPARAM_MIP_Cuts_GUBCovers MIP GUB cuts switch
Globally Valid Implied Bound set mip cuts implied MIP.Cuts.Implied CPXPARAM_MIP_Cuts_Implied MIP globally valid implied bound cuts switch
Locally Valid Implied Bound set mip cuts localimplied MIP.Cuts.LocalImplied CPXPARAM_MIP_Cuts_LocalImplied MIP locally valid implied bound cuts switch
Lift and Project set mip cuts liftproj MIP.Cuts.LiftProj CPXPARAM_MIP_Cuts_LiftProj Lift-and-project cuts switch for MIP and MIQCP
Mixed Integer Rounding (MIR) set mip cuts mircut MIP.Cuts.MIRCut CPXPARAM_MIP_Cuts_MIRCut MIP MIR (mixed integer rounding) cut switch
Multi-commodity Flow set mip cuts mcfcut MIP.Cuts.MCFCut CPXPARAM_MIP_Cut_MCFCut MCF cut switch
Reformulation Linearization Technique (RLT) set mip cuts rlt MIP.Cuts.RLT CPXPARAM_MIP_Cuts_RLT Reformulation Linearization Technique (RLT) cuts
Zero-Half set mip cuts zerohalfcut MIP.Cuts.ZeroHalfCut CPXPARAM_MIP_Cuts_ZeroHalfCut MIP zero-half cuts switch

The default value of each of those parameters is 0 (zero). By default, CPLEX automatically decides how often (if at all) it should try to generate that class of cut. A setting of -1 specifies that no cuts of the class should be generated; a setting of 1 specifies that cuts of the class should be generated moderately; and a setting of 2 specifies that cuts of the class should be generated aggressively. For clique cuts, cover cuts, disjunctive cuts, local implied bound cuts, as well as lift and project cuts, a setting of 3 is permitted. This setting specifies that this type of cut should be generated very aggressively.

In the Interactive Optimizer, the command set mip cuts all i applies the value i to all types of cut parameters. That is, you can set them all simultaneously.

The cut factor row-multiplier limit (CutsFactor, CPXPARAM_MIP_Limits_CutsFactor) parameter controls the number of cuts CPLEX adds to the model.

The constraint aggregation limit for cut generation (AggForCut, CPXPARAM_MIP_Limits_AggForCut) parameter controls the number of constraints allowed to be aggregated for generating MIR and flow cover cuts.

The pass limit for generating Gomory fractional cuts (GomoryPass, CPXPARAM_MIP_Limits_GomoryPass) parameter controls the number of passes for generating Gomory fractional cuts. This parameter will not have any effect if the parameter for set mip cuts gomory has a nondefault value.

The candidate limit for generating Gomory fractional cuts (GomoryCand, CPXPARAM_MIP_Limits_GomoryCand) parameter controls the number of variable candidates to be considered for generating Gomory fractional cuts.

The number of cutting plane passes parameter (CutPass, CPXPARAM_MIP_Limits_CutPass) sets the upper limit on the number of cutting plane passes that CPLEX performs when it solves the root node of a MIP model. The value -1 (that is, negative one) disables cut separation and may be a more convenient way for you to turn off all cuts than for you to set them individually.

The node cuts switch (CPXPARAM_MIP_Cuts_Nodecuts) parameter allows you to control the effort that CPLEX should spend in separating cutting planes at the tree nodes of the branch-and-bound tree. In particular, setting the value of this parameter to -1 (that is, negative one) completely disables the separation of cutting planes in the tree, but it has no impact on the cut separation applied at the root node.