Overview | Group | Tree | Graph | Index | Concepts |
What Are Logical Constraints?
For ILOG 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. ILOG 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 ILOG 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 ||
;
!
;
IloIfThen
==
(that is, the equivalence relation)
!=
(that is, the exclusive-or relation)
For examples of logical constraints in ILOG CPLEX, see the ILOG CPLEX User's Manual.