FRAMES NO FRAMES

IlcAllNullIntersect

public IlcConstraint IlcAllNullIntersect(IlcIntSetVarArray array)
public IlcConstraint IlcAllNullIntersect(IlcAnySetVarArray array, IlcFilterLevel level)
public IlcConstraint IlcAllNullIntersect(IlcAnySetVarArray array)
public IlcConstraint IlcAllNullIntersect(IlcIntSetVarArray array, IlcFilterLevel level)
Definition file: ilsolver/ilcset.h
Include file: <ilsolver/ilosolver.h>

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: