Element constraints
[Using finite integer sets]
Detailed Description
An element constraint selects zero, one or more elements out of a sequence. We write for the sequence, and for the index variable.Set element constraints are closely related to the element constraint on finite domain variables.
Functions | |
void | Gecode::elementsUnion (Space *home, const SetVarArgs &x, SetVar y, SetVar z) |
Post propagator for . | |
void | Gecode::elementsUnion (Space *home, const IntSetArgs &s, SetVar y, SetVar z) |
Post propagator for . | |
void | Gecode::elementsInter (Space *home, const SetVarArgs &x, SetVar y, SetVar z) |
Post propagator for using as universe. | |
void | Gecode::elementsInter (Space *home, const SetVarArgs &x, SetVar y, SetVar z, const IntSet &u) |
Post propagator for using u as universe. | |
void | Gecode::elementsDisjoint (Space *home, const SetVarArgs &x, SetVar y) |
Post propagator for . | |
void | Gecode::element (Space *home, const SetVarArgs &x, IntVar y, SetVar z) |
Post propagator for . | |
void | Gecode::element (Space *home, const IntSetArgs &s, IntVar y, SetVar z) |
Post propagator for . |
Function Documentation
void Gecode::elementsUnion | ( | Space * | home, | |
const SetVarArgs & | x, | |||
SetVar | y, | |||
SetVar | z | |||
) |
Post propagator for .
If y is the empty set, z will also be constrained to be empty (as an empty union is empty). The indices for s start at 0.
Definition at line 47 of file element.cc.
void Gecode::elementsUnion | ( | Space * | home, | |
const IntSetArgs & | s, | |||
SetVar | y, | |||
SetVar | z | |||
) |
Post propagator for .
If y is the empty set, z will also be constrained to be empty (as an empty union is empty). The indices for s start at 0.
Definition at line 56 of file element.cc.
void Gecode::elementsInter | ( | Space * | home, | |
const SetVarArgs & | x, | |||
SetVar | y, | |||
SetVar | z | |||
) |
Post propagator for using as universe.
If y is empty, z will be constrained to be the universe (as an empty intersection is the universe). The indices for s start at 0.
Definition at line 67 of file element.cc.
void Gecode::elementsInter | ( | Space * | home, | |
const SetVarArgs & | x, | |||
SetVar | y, | |||
SetVar | z, | |||
const IntSet & | u | |||
) |
Post propagator for using u as universe.
If y is empty, z will be constrained to be the given universe u (as an empty intersection is the universe). The indices for s start at 0.
Definition at line 78 of file element.cc.
void Gecode::elementsDisjoint | ( | Space * | home, | |
const SetVarArgs & | x, | |||
SetVar | y | |||
) |
void Gecode::element | ( | Space * | home, | |
const SetVarArgs & | x, | |||
IntVar | y, | |||
SetVar | z | |||
) |
void Gecode::element | ( | Space * | home, | |
const IntSetArgs & | s, | |||
IntVar | y, | |||
SetVar | z | |||
) |