Extensional constraints
[Using finite domain integers]
Classes | |
class | Gecode::DFA |
Deterministic finite automaton (DFA). More... | |
class | Gecode::TupleSet |
Class represeting a set of tuples. More... | |
Enumerations | |
enum | Gecode::ExtensionalPropKind { Gecode::EPK_DEF, Gecode::EPK_SPEED, Gecode::EPK_MEMORY } |
Extensional propagation kind. More... | |
Functions | |
void | Gecode::extensional (Home home, const IntVarArgs &x, DFA d, IntConLevel icl=ICL_DEF) |
Post domain consistent propagator for extensional constraint described by a DFA. | |
void | Gecode::extensional (Home home, const BoolVarArgs &x, DFA d, IntConLevel icl=ICL_DEF) |
Post domain consistent propagator for extensional constraint described by a DFA. | |
void | Gecode::extensional (Home home, const IntVarArgs &x, const TupleSet &t, ExtensionalPropKind epk=EPK_DEF, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() | |
void | Gecode::extensional (Home home, const BoolVarArgs &x, const TupleSet &t, ExtensionalPropKind epk=EPK_DEF, IntConLevel icl=ICL_DEF) |
Post propagator for ![]() |
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.
Enumeration Type Documentation
Function Documentation
void Gecode::extensional | ( | Home | home, | |
const IntVarArgs & | x, | |||
DFA | d, | |||
IntConLevel | icl = ICL_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, | |||
IntConLevel | icl = ICL_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, | |||
ExtensionalPropKind | epk = EPK_DEF , |
|||
IntConLevel | icl = ICL_DEF | |||
) |
Post propagator for .
- Supports implementations optimized for memory (epk = EPK_MEMORY, default) and speed (epk = EPK_SPEED).
- Supports domain consistency (icl = ICL_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.
- 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 (epk = EPK_MEMORY) and additionally
for the incremental algorithm (epk = EPK_SPEED).
void Gecode::extensional | ( | Home | home, | |
const BoolVarArgs & | x, | |||
const TupleSet & | t, | |||
ExtensionalPropKind | epk = EPK_DEF , |
|||
IntConLevel | icl = ICL_DEF | |||
) |
Post propagator for .
- Supports implementations optimized for memory (epk = EPK_MEMORY, default) and speed (epk = EPK_SPEED).
- Supports domain consistency (icl = ICL_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.