ILOG CPLEX 11.0 User's Manual > Discrete Optimization > Using Indicator Constraints > What Is an Indicator Constraint?

An indicator constraint is a way for a user of the Callable Library (C API) to express relationships among variables by identifying a binary variable to control whether or not a specified linear constraint is active. This feature is also available in the Interactive Optimizer, as explained in Indicator Constraints in the Interactive Optimizer.

Formulations using indicator constraints can be more numerically robust and accurate than conventional formulations involving so-called Big M data. Big M formulations use artificial data to turn on or turn off enforcement of a constraint. Big M formulations often exhibit trickle flow, and sometimes they behave in unstable ways.

In Concert Technology applications, ILOG CPLEX automatically uses indicator constraints for you when it encounters a constraint within an expression and when it encounters expressions which can be linearized, including the following:

In Callable Library applications, you can invoke the routine CPXaddindcontr yourself to introduce indictor constraints in your model. To remove an indicator constraint that you have added, use the routine CPXdelindconstr.