ILOG CPLEX 11.0 User's Manual > Infeasibility and Unboundedness > Diagnosing Infeasibility by Refining Conflicts > Meet the Conflict Refiner in the Interactive Optimizer > Interpreting the Results and Detecting Conflict

The declaration of infeasibility comes from presolve. In fact, presolve has already performed various reductions by the time it detects the unresolvable infeasibility in constraint c8. This information by itself is unlikely to provide any useful insights about the source of the infeasibility, so try the conflict refiner, by entering this command:

conflict

Then you will see results like these:

Refine conflict on 14 members...  
 Iteration  Max Members  Min Members
         1           11            0
         2            9            0
         3            7            0
         4            2            0
         5            2            1
         6            2            2 
Minimal conflict:    2 linear constraint(s)
                     0 lower bound(s)
                     0 upper bound(s)
Conflict computation time =    0.00 sec.  Iterations = 6

The first line of output mentions 14 members; this total represents constraints, lower bounds, and upper bounds that may be part of the conflict. There are ten constraints in this model; there are two continuous variables with lower and upper bounds that represent the other four members to be considered. Because binary variables are not reasonable candidates for bound analysis, the Interactive Optimizer treats the bounds of only the variables cost and service as potential members of the conflict. If you want all bounds to be candidates, you could instead declare the binary variables to be general integer variables with bounds of [0,1]. (Making that change in this model would likely result in the conflict refiner suggesting that one of the binary variables should take a negative value.) On some models, allowing so much latitude in the bounds may cause the conflict refiner to take far longer to arrive at a minimal conflict.