Overview | Group | Tree | Graph | Index | Concepts |
This function creates and returns a constraint. This constraint insures that the intersection
is empty between any two constrained set variables in the array of its argument. In other words,
this function extends IlcNullIntersect
to arrays of
constrained set variables. This function is for use during Solver search, for example, inside a
goal (an instance of IlcGoal
) or inside a constraint (an instance
of IlcConstraint
). If you are looking for similar functionality for
use in a Concert Technology model, consider IloAllNullIntersect
.
When you create a constraint, it has no effect until you post it, for example, by adding it to an
instance of IloSolver
.
If you do not explicitly state a filter level, then Solver uses the default filter level for
this constraint (that is, IlcLow
). The optional argument level
can take
one of three values: IlcLow
, IlcBasic
, IlcExtended
. Domain
reduction during propagation depends on the value of level
. See
IlcFilterLevel
for an explanation of filter levels and their effect on constraint propagation.
IlcLow (default)
With this choice the statement
IlcAllNullIntersect(IlcIntSetVarArray array,IlcLow)
is more efficient, but leads to the same domain reduction as the following code:
IlcInt size=array.getSize(); for(IlcInt i=0;i<size-1;i++){ for(IlcInt j=i+1;j<size;j++){ m.add(IlcNullIntersect(array[i],array[j]); } }
IlcBasic
This choice causes more domain reduction than IlcLow
; it also takes longer to run.
IlcExtended
This choice causes more domain reduction than IlcBasic
; it also takes longer to run.
For more information, see IloNullIntersect
.
See Also:
IlcAnySetVarArray, IlcCard, IlcIntSetVarArray, IlcNullIntersect, IlcFilterLevel, IlcPartition, IloAllNullIntersect