conflict refiner algorithm

Determines which algorithm CPLEX uses in the conflict refiner to find a minimal conflict in an infeasible model.

Purpose

Conflict refiner algorithm

API Parameter Name
C CPXPARAM_Conflict_Algorithm
C++ IloCplex::Param::Conflict::Algorithm
OPL
Interactive conflict i
Identifier 1073

Description

This parameter determines which algorithm CPLEX uses in the conflict refiner to discover a minimal set of conflicting constraints in an infeasible model.

By default, CPLEX automatically chooses the algorithm in the conflict refiner according to the way that CPLEX determined the infeasibility of the original problem.

To see which algorithm that CPLEX chose by default, use the parameter to manage conflict information display.

The algorithm selected by default by CPLEX ordinarily yields the fastest possible performance, while it makes sure that CPLEX finds a minimal conflict if you allow it to run to completion. However, in certain models, a nondefault selection can work better. In particular, settings 1 (one), 2, or 3 entail preprocessing or propagation algorithms that are very fast, but those same algorithms can be inefficient at discarding large numbers of constraints quickly. In such a case, explicitly setting this parameter to 5 for a limited solve by the conflict refiner or to 6 for a full solve can improve performance.

Also, only settings 0, 4, and 6 guarantee a provably minimal conflict. The faster but more limited settings of 1, 2, 3, and 5 are less effective at proving whether individual constraints are included in or excluded from a minimal conflict.

Setting 4 of this parameter is primarily for continuous models.

Table 1. Values
Value Meaning
0 Automatic: let CPLEX choose; default
1 Simple, fast algorithm
2 Bound propagation
3 Presolve
4 Irreducibly inconsistent set (IIS) for continuous models
5 Limited solve
6 Full solve