ILOG CPLEX 11.0 User's Manual > Discrete Optimization > Logical Constraints in Optimization > Which Nonlinear Expressions Can Be Extracted?

Some expressions are easily recognized as nonlinear, for example, a function such as x2 + y2  1. However, other nonlinearities are less obvious, such as absolute value as a function. In a very real sense, MIP is a class of nonlinearly constrained problems because the integrality restriction destroys the property of convexity which any linear constraints otherwise might possess. Because of that characteristic, certain (although not all) nonlinearities are capable of being converted to a MIP formulation, and thus can be solved by ILOG CPLEX. In fact, IloCplex can extract the following nonlinear expressions in a C++ application:

For example, given these variables and arrays:

IloIntVarArray x(env, 5, 0, 1000);
IloNumVar y(env, -1000, 5000);
IloNumVar z(env, -1000, 1000);

IloCplex in a C++ application recognizes the following constraint as valid and extracts it:

IloMin(x) >= IloAbs(y)

In fact, ranges containing logical expressions can, in turn, appear in logical constraints. For example, the following constraint is valid and extractable by IloCplex:

IloIfThen(env, (IloAbs(y) <= 100), (z <= 300));

It is important to note here that only linear constraints can appear as arguments of logical constraints extracted by ILOG CPLEX. That is, quadratic constraints are not handled in logical constraints. Similarly, quadratic terms can not appear as arguments of logical expressions such as IloMin, IloMax, IloAbs, and IloPiecewiseLinear.