30.01.2015 Views

ILOG CPLEX C++ API 9.0 Reference Manual

ILOG CPLEX C++ API 9.0 Reference Manual

ILOG CPLEX C++ API 9.0 Reference Manual

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

IloCplex::PWLFormulation<br />

For <strong>ILOG</strong> <strong>CPLEX</strong>, a logical constraint combines linear constraints by means of<br />

logical operators, such as logical and, logical or, negation (that is, not), conditional<br />

statements (that is, if ... then ...) to express complex relations between linear constraints.<br />

<strong>ILOG</strong> <strong>CPLEX</strong> can also handle certain logical expressions appearing within a linear<br />

constraint. One such logical expression is the minimum of a set of variables. Another<br />

such logical expression is the absolute value of a variable.<br />

In <strong>C++</strong> applications, the class IloCplex can extract modeling objects to solve a<br />

wide variety of MIPs and LPs. Under some conditions, a problem expressed in terms of<br />

logical constraints may be equivalent to a continuous LP, rather than a MIP. In such a<br />

case, there is no need for branching during the search for a solution. Whether a problem<br />

(or parts of a problem) represented by logical terms can be modeled and solved by LP<br />

depends on the shape of those logical terms. In this context, shape means convex or<br />

concave in the formal, mathematical sense.<br />

For more about convexity, see that topic in the <strong>ILOG</strong> <strong>CPLEX</strong> User's <strong>Manual</strong>.<br />

In fact, the class IloCplex can extract logical constraints as well as some logical<br />

expressions. The logical constraints that IloCplex can extract are these:<br />

◆<br />

IloAnd which can also be represented by the overloaded operator &&;<br />

◆ IloOr which can also be represented by the overloaded operator ||;<br />

◆ negation as represented by the overloaded operator !;<br />

◆<br />

◆<br />

◆<br />

IloIfThen<br />

== (that is, the equivalence relation)<br />

!= (that is, the exclusive-or relation)<br />

For examples of logical constraints in <strong>ILOG</strong> <strong>CPLEX</strong>, see the <strong>ILOG</strong> <strong>CPLEX</strong> User's<br />

<strong>Manual</strong>.<br />

Group optim.cplex.advanced.cpp<br />

The advanced methods of the <strong>API</strong> of <strong>ILOG</strong> <strong>CPLEX</strong> for users of <strong>C++</strong>.<br />

IloCplex::LazyConstraintCall<br />

backI<br />

IloCplex::UserCutCallbackI<br />

Classes Summary<br />

<strong>ILOG</strong> <strong>CPLEX</strong> <strong>C++</strong> <strong>API</strong> <strong>9.0</strong> REFERENCE M ANUAL 231

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!