Extensional constraints
[Using finite domain integers]
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.
Classes | |
| class | Gecode::DFA |
| Deterministic finite automaton (DFA). More... | |
| class | Gecode::TupleSet |
| Data stored for a Table. More... | |
Functions | |
| void | Gecode::extensional (Space *home, const IntVarArgs &x, DFA d, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF) |
| Post propagator for extensional constraint described by a DFA. | |
| void | Gecode::extensional (Space *home, const IntVarArgs &x, const TupleSet &t, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF) |
Post propagator for . | |
Function Documentation
| void Gecode::extensional | ( | Space * | home, | |
| const IntVarArgs & | x, | |||
| DFA | d, | |||
| IntConLevel | icl = ICL_DEF, |
|||
| PropKind | pk = PK_DEF | |||
| ) |
Post 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.
Definition at line 45 of file extensional.cc.
| void Gecode::extensional | ( | Space * | home, | |
| const IntVarArgs & | x, | |||
| const TupleSet & | t, | |||
| IntConLevel | icl = ICL_DEF, |
|||
| PropKind | pk = PK_DEF | |||
| ) |
Post propagator for
.
- Supports implementations optimized for memory (pk = PK_MEMORY, default) and speed (pk = PK_SPEED).
- Supports domain consistency (icl = ICL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
- Warning:
- If the domains for the
are not dense and have similar bounds, lots of memory will be wasted (memory consumption is in
for the basic algorithm (pk = PK_MEMORY) and additionally
for the incremental algorithm (pk = PK_SPEED).
- Supports implementations optimized for memory (pk = PK_MEMORY, default) and speed (pk = PK_SPEED).
- Supports domain consistency (icl = ICL_DOM, default) only.
- Throws an exception of type Int::ArgumentSizeMismatch, if x and t are of different size.
Definition at line 69 of file extensional.cc.
