Overview | Group | Tree | Graph | Index | Concepts |
This function creates and returns a constraint that abstracts an array of constrained Boolean
variables in a model. It differs from IloAbstraction
in that its y-array is an
array of Boolean variables (also known as 0-1 variables or binary variables). Like
IloAbstraction
, for each element x[i]
, there is a variable y[i]
corresponding to the abstraction of x[i] with respect to an array of values. That is,
x[i] = v with v in values if and only if y[i] = IloTrue; x[i] = v with v not in values if and only if y[i] = IloFalse.
This constraint maintains a many-to-one mapping that makes it possible to define constraints that impinge only on a particular set of values from the domains of constrained variables.
For simplicity, assume that an array x
consists of three elements with the domains
{3}, {4}, and {5}. Assume that the values we are interested in are {4, 8, 12, 16}.
Then IloBoolAbstraction
produces the elements of the array y
, like this:
X & Values Y --- ------- ------- 3 4 IloFalse 4 8 --> IloTrue 5 12 ILoFalse 16
In order for the constraint returned by IloBoolAbstraction
to take effect, you must
add it to a model with the template IloAdd
or the member function
IloModel::add
and extract the model for an algorithm with the member function
IloAlgorithm::extract
.
If the arrays x
and y
are not the same size, this function throws
the exception IloBoolAbstraction::InvalidArraysException
.