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.

Concepts<br />

Branch & Cut<br />

IloCplex, like all <strong>CPLEX</strong> technologies, uses branch & cut search when solving<br />

mixed integer programming (MIP) models. The branch & cut search procedure manages<br />

a search tree consisting of nodes. Every node represents an LP or QP subproblem to be<br />

processed; that is, to be solved, to be checked for integrality, and perhaps to be analyzed<br />

further. Nodes are called active if they have not yet been processed. After a node has<br />

been processed, it is no longer active. IloCplex processes active nodes in the tree<br />

until either no more active nodes are available or some limit has been reached.<br />

A branch is the creation of two new nodes from a parent node. Typically, a branch<br />

occurs when the bounds on a single variable are modified, with the new bounds<br />

remaining in effect for that new node and for any of its descendants. For example, if a<br />

branch occurs on a binary variable, that is, one with a lower bound of 0 (zero) and an<br />

upper bound of 1 (one), then the result will be two new nodes, one node with a modified<br />

upper bound of 0 (the downward branch, in effect requiring this variable to take only the<br />

value 0), and the other node with a modified lower bound of 1 (the upward branch,<br />

placing the variable at 1). The two new nodes will thus have completely distinct solution<br />

domains.<br />

A cut is a constraint added to the model. The purpose of adding any cut is to limit the<br />

size of the solution domain for the continuous LP or QP problems represented at the<br />

nodes, while not eliminating legal integer solutions. The outcome is thus to reduce the<br />

number of branches required to solve the MIP.<br />

As an example of a cut, first consider the following constraint involving three binary<br />

(0-1) variables:<br />

20x + 25y + 30z

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

Saved successfully!

Ooh no, something went wrong!