FRAMES NO FRAMES

IlcSequence

public IlcConstraint IlcSequence(IlcInt nbMin, IlcInt nbMax, IlcInt seqWidth, IlcIntVarArray vars, IlcIntArray values, IlcIntVarArray cards)
public IlcConstraint IlcSequence(IlcInt nbMin, IlcInt nbMax, IlcInt seqWidth, IlcIntVarArray vars, IlcIntArray values, IlcIntVarArray cards, IlcFilterLevel level)
Definition file: ilsolver/ilcint.h
Include file: <ilsolver/ilosolver.h>

This function creates and returns a constraint that works on sequences.

A sequence constraint groups several constraints created by the functions IlcCard or IlcDistribute into only one constraint in order to reduce domains of constrained variables more effectively.

The parameter nbMin indicates a minimum number of allowable values, and nbMax indicates a maximum number of allowable values. The parameter seqWidth indicates the number of elements in a sequence. The parameter cards indicates an array of cardinalities (that is, how many occurrences).

In the new constraint created by this function, the constrained variables in the array cards will be equal to the number of occurrences in the array vars of the values in the array values such that for each sequence of seqWidth (a number) consecutive constrained variables of vars at least nbMin and at most nbMax values of values are assigned to a constrained variable of the sequence.

The arrays cards and values must be the same length; otherwise, Solver will throw an exception (an instance of IloSolver::SolverErrorException). However, note that the array vars can contain values other than those that appear in the array values.

If you do not explicitly state a filter level, then Solver uses the default filter level for this constraint. The optional argument level can take values of the enumeration IlcFilterLevel. Its lowest value is IlcBasic. The amount of domain reduction during propagation depends on that value. The value IlcExtended causes more domain reduction than does IlcBasic; it also takes longer to run. See IlcFilterLevel for an explanation of filter levels and their effect on constraint propagation.

See Also: