| Overview | Group | Tree | Graph | Deprecated | Index | Concepts |
For CPLEX, a logical constraint combines linear constraints by means of logical operators, such as logical and, logical or, negation (that is, not), conditional statements (that is, if ... then ...) to express complex relations between linear constraints. CPLEX can also handle certain logical expressions appearing within a linear constraint. One such logical expression is the minimum of a set of variables. Another such logical expression is the absolute value of a variable.
In C++ applications, the class IloCplex can extract
modeling objects to solve a wide variety of MIPs and LPs. Under
some conditions, a problem expressed in terms of logical constraints
may be equivalent to a continuous LP, rather than a MIP. In such a case,
there is no need for branching during the search for a solution.
Whether a problem (or parts of a problem) represented by logical terms
can be modeled and solved by LP depends on the shape of those logical terms.
In this context, shape means convex or concave in the formal,
mathematical sense.
For more about convexity, see that topic in the CPLEX User's Manual.
In fact, the class IloCplex can extract
logical constraints as well as some logical expressions.
The logical constraints that IloCplex can extract are these:
IloAnd which can also be represented by the
overloaded operator &&;
IloOr which can also be represented by the overloaded operator ||;
IloDiff which can also be represented by the
overloaded operator !=;
IloNot, negation, which can also be represented by the
overloaded operator !;
IloIfThenFor examples of logical constraints in CPLEX, see the CPLEX User's Manual.