Extensional constraints
[Using integer variables and constraints]
Classes | |
class | Gecode::DFA |
Deterministic finite automaton (DFA). More... | |
class | Gecode::TupleSet |
Class represeting a set of tuples. More... | |
Functions | |
void | Gecode::extensional (Home home, const IntVarArgs &x, DFA d, IntPropLevel ipl=IPL_DEF) |
Post domain consistent propagator for extensional constraint described by a DFA. | |
void | Gecode::extensional (Home home, const BoolVarArgs &x, DFA d, IntPropLevel ipl=IPL_DEF) |
Post domain consistent propagator for extensional constraint described by a DFA. | |
void | Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF) |
Post propagator for . | |
void | Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, bool pos, IntPropLevel ipl=IPL_DEF) |
Post propagator for or . | |
void | Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, Reify r, IntPropLevel ipl=IPL_DEF) |
Post propagator for . | |
void | Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, bool pos, Reify r, IntPropLevel ipl=IPL_DEF) |
Post propagator for or . | |
void | Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, IntPropLevel ipl=IPL_DEF) |
Post propagator for . | |
void | Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, bool pos, IntPropLevel ipl=IPL_DEF) |
Post propagator for or . | |
void | Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, Reify r, IntPropLevel ipl=IPL_DEF) |
Post propagator for . | |
void | Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, bool pos, Reify r, IntPropLevel ipl=IPL_DEF) |
Post propagator for or . |
Detailed Description
Extensional constraints support different ways of how the extensionally defined relation between the variables is defined. Examples include specification by a DFA or a table.
A DFA can be defined by a regular expression, for regular expressions see the module MiniModel.
Function Documentation
void Gecode::extensional | ( | Home | home, | |
const IntVarArgs & | x, | |||
DFA | d, | |||
IntPropLevel | ipl = IPL_DEF | |||
) |
Post domain consistent propagator for extensional constraint described by a DFA.
The elements of x must be a word of the language described by the DFA d.
Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply. If shared occurences of variables are required, unshare should be used.
void Gecode::extensional | ( | Home | home, | |
const BoolVarArgs & | x, | |||
DFA | d, | |||
IntPropLevel | ipl = IPL_DEF | |||
) |
Post domain consistent propagator for extensional constraint described by a DFA.
The elements of x must be a word of the language described by the DFA d.
Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply. If shared occurences of variables are required, unshare should be used.
void Gecode::extensional | ( | Home | home, | |
const IntVarArgs & | x, | |||
const TupleSet & | t, | |||
IntPropLevel | ipl = IPL_DEF | |||
) | [inline] |
Post propagator for .
- Supports domain consistency (ipl = IPL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
- Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.
void Gecode::extensional | ( | Home | home, | |
const IntVarArgs & | x, | |||
const TupleSet & | t, | |||
bool | pos, | |||
IntPropLevel | ipl = IPL_DEF | |||
) |
Post propagator for or .
- If pos is true, it posts a propagator for and otherwise for .
- Supports domain consistency (ipl = IPL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
- Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.
void Gecode::extensional | ( | Home | home, | |
const IntVarArgs & | x, | |||
const TupleSet & | t, | |||
Reify | r, | |||
IntPropLevel | ipl = IPL_DEF | |||
) | [inline] |
Post propagator for .
- Supports domain consistency (ipl = IPL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
- Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.
void Gecode::extensional | ( | Home | home, | |
const IntVarArgs & | x, | |||
const TupleSet & | t, | |||
bool | pos, | |||
Reify | r, | |||
IntPropLevel | ipl = IPL_DEF | |||
) |
Post propagator for or .
- If pos is true, it posts a propagator for and otherwise for .
- Supports domain consistency (ipl = IPL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
- Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.
void Gecode::extensional | ( | Home | home, | |
const BoolVarArgs & | x, | |||
const TupleSet & | t, | |||
IntPropLevel | ipl = IPL_DEF | |||
) | [inline] |
Post propagator for .
- Supports domain consistency (ipl = IPL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
- Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.
void Gecode::extensional | ( | Home | home, | |
const BoolVarArgs & | x, | |||
const TupleSet & | t, | |||
bool | pos, | |||
IntPropLevel | ipl = IPL_DEF | |||
) |
Post propagator for or .
- If pos is true, it posts a propagator for and otherwise for .
- Supports domain consistency (ipl = IPL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
- Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.
void Gecode::extensional | ( | Home | home, | |
const BoolVarArgs & | x, | |||
const TupleSet & | t, | |||
Reify | r, | |||
IntPropLevel | ipl = IPL_DEF | |||
) | [inline] |
Post propagator for .
- Supports domain consistency (ipl = IPL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
- Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.
void Gecode::extensional | ( | Home | home, | |
const BoolVarArgs & | x, | |||
const TupleSet & | t, | |||
bool | pos, | |||
Reify | r, | |||
IntPropLevel | ipl = IPL_DEF | |||
) |
Post propagator for or .
- If pos is true, it posts a propagator for and otherwise for .
- Supports domain consistency (ipl = IPL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
- Throws an exception of type Int::NotYetFinalized, if the tuple set t has not been finalized.