Example: Colored matrix example. More...
Public Types | |
enum | { SEARCH_DFS, SEARCH_BAB } |
Search modes. More... | |
enum | { SYMMETRY_NONE = 0, SYMMETRY_MATRIX = 1, SYMMETRY_VALUES = 2 } |
SYmmetry breaking variants. More... | |
enum | { MODEL_CORNERS = 1, MODEL_ROWS = 2, MODEL_COLUMNS = 4 } |
Model variants. More... | |
enum | { NOT_ALL_EQUAL_NQ, NOT_ALL_EQUAL_NAIVE, NOT_ALL_EQUAL_REIFIED, NOT_ALL_EQUAL_NVALUES, NOT_ALL_EQUAL_COUNT, NOT_ALL_EQUAL_DFA } |
Not all equal variants. More... | |
enum | { SAME_OR_0_REIFIED, SAME_OR_0_DFA, SAME_OR_0_TUPLE_SET } |
Same or 0 variants. More... | |
enum | { DISTINCT_EXCEPT_0_REIFIED, DISTINCT_EXCEPT_0_DFA, DISTINCT_EXCEPT_0_COUNT } |
Distinct except 0 variants. More... | |
enum | { NO_MONOCHROME_DECOMPOSITION, NO_MONOCHROME_DFA } |
No monochrome rectangle versions. More... | |
Public Member Functions | |
ColoredMatrix (const ColoredMatrixOptions &opt0) | |
Actual model. | |
virtual IntVar | cost (void) const |
Return cost. | |
virtual void | print (std::ostream &os) const |
Print solution. | |
ColoredMatrix (bool share, ColoredMatrix &s) | |
Constructor for cloning s. | |
virtual Space * | copy (bool share) |
Copy during cloning. | |
Protected Member Functions | |
IntVar | same_or_0 (const IntVar &a, const IntVar &b) |
void | distinct_except_0 (const IntVarArgs &v) |
void | not_all_equal (const IntVarArgs &v) |
void | no_monochrome_rectangle (IntVarArgs v1, IntVarArgs v2) |
Related Functions | |
(Note that these are not member functions.) | |
int | main (int argc, char *argv[]) |
Main-function. | |
Constraint description constructors. | |
These functions implement constructors for descriptions of constraints as extensional specifications. | |
DFA | same_or_0_dfa (unsigned int colors) |
TupleSet | same_or_0_tuple_set (unsigned int colors) |
DFA | distinct_except_0_dfa (unsigned int colors) |
DFA | no_monochrome_rectangle_dfa (unsigned int colors) |
IntSetArgs | distinct_except_0_counts (unsigned int colors, unsigned int size) |
DFA | not_all_equal_dfa (unsigned int colors) |
Instance specification | |
const ColoredMatrixOptions & | opt |
Options for model. | |
const unsigned int | height |
Height of matrix. | |
const unsigned int | width |
Width of matrix. | |
const unsigned int | colors |
Number of colors to use. | |
Problem variables | |
IntVarArray | x |
Array for matrix variables. | |
IntVar | max_color |
Maximum color used. |
Example: Colored matrix example.
An n by m matrix is to be filled with k colors. It is a valid colored matrix iff the corners of each rectangle do not have the same color.
An example 5 by 4 matrix with three colors:
1 1 1 1 1 1 2 2 3 3 1 2 3 2 3 1 2 3 3 2
Definition at line 168 of file colored-matrix.cpp.
anonymous enum |
Search modes.
Definition at line 318 of file colored-matrix.cpp.
anonymous enum |
SYmmetry breaking variants.
SYMMETRY_NONE |
No symmetry breaking. |
SYMMETRY_MATRIX |
Order rows and columns of matrix. |
SYMMETRY_VALUES |
Order value occurences. |
Definition at line 323 of file colored-matrix.cpp.
anonymous enum |
Model variants.
MODEL_CORNERS |
Use model on corner combinations. |
MODEL_ROWS |
Use model on pairs of rows. |
MODEL_COLUMNS |
Use model on pairs of columns. |
Definition at line 329 of file colored-matrix.cpp.
anonymous enum |
Not all equal variants.
Definition at line 335 of file colored-matrix.cpp.
anonymous enum |
Same or 0 variants.
SAME_OR_0_REIFIED |
Use reification for same or 0. |
SAME_OR_0_DFA |
Use dfa for same or 0. |
SAME_OR_0_TUPLE_SET |
Use tuple set for same or 0. |
Definition at line 344 of file colored-matrix.cpp.
anonymous enum |
Distinct except 0 variants.
DISTINCT_EXCEPT_0_REIFIED |
Use reification for distinct except 0. |
DISTINCT_EXCEPT_0_DFA |
Use dfa for distinct except 0. |
DISTINCT_EXCEPT_0_COUNT |
Use count for distinct except 0. |
Definition at line 350 of file colored-matrix.cpp.
anonymous enum |
No monochrome rectangle versions.
NO_MONOCHROME_DECOMPOSITION |
Use decomposition for no monochrome rectangle. |
NO_MONOCHROME_DFA |
Use dfa for no monochrome rectangle. |
Definition at line 356 of file colored-matrix.cpp.
ColoredMatrix::ColoredMatrix | ( | const ColoredMatrixOptions & | opt0 | ) | [inline] |
Actual model.
Definition at line 363 of file colored-matrix.cpp.
ColoredMatrix::ColoredMatrix | ( | bool | share, |
ColoredMatrix & | s | ||
) | [inline] |
Constructor for cloning s.
Definition at line 447 of file colored-matrix.cpp.
IntVar ColoredMatrix::same_or_0 | ( | const IntVar & | a, |
const IntVar & | b | ||
) | [inline, protected] |
Return variable that is zero if a and b differ, or equal to their value if they agree.
Definition at line 190 of file colored-matrix.cpp.
void ColoredMatrix::distinct_except_0 | ( | const IntVarArgs & | v | ) | [inline, protected] |
Post constraint that all values in v different from 0 are distinct.
Definition at line 221 of file colored-matrix.cpp.
void ColoredMatrix::not_all_equal | ( | const IntVarArgs & | v | ) | [inline, protected] |
Post constraint that not all variables in v are equal.
Definition at line 247 of file colored-matrix.cpp.
void ColoredMatrix::no_monochrome_rectangle | ( | IntVarArgs | v1, |
IntVarArgs | v2 | ||
) | [inline, protected] |
Post constraint using same_or_0 and distinct_except_0 that enforces rows/columns v1 and v2 to have no monochrome rectangle.
Definition at line 291 of file colored-matrix.cpp.
virtual IntVar ColoredMatrix::cost | ( | void | ) | const [inline, virtual] |
Return cost.
Definition at line 426 of file colored-matrix.cpp.
virtual void ColoredMatrix::print | ( | std::ostream & | os | ) | const [inline, virtual] |
Print solution.
Reimplemented from Gecode::Driver::ScriptBase< BaseSpace >.
Definition at line 432 of file colored-matrix.cpp.
virtual Space* ColoredMatrix::copy | ( | bool | share | ) | [inline, virtual] |
Copy during cloning.
Definition at line 455 of file colored-matrix.cpp.
DFA same_or_0_dfa | ( | unsigned int | colors | ) | [related] |
Return DFA for the same_or_0 constraint.
Constraint models the expression for variables
.
TupleSet same_or_0_tuple_set | ( | unsigned int | colors | ) | [related] |
Return tuple set for the same_or_0 constraint.
Constraint models the expression for variables
.
DFA distinct_except_0_dfa | ( | unsigned int | colors | ) | [related] |
Return DFA for the distinct_except_0 constraint.
DFA no_monochrome_rectangle_dfa | ( | unsigned int | colors | ) | [related] |
Return DFA for the no monochrome rectangle constraint.
IntSetArgs distinct_except_0_counts | ( | unsigned int | colors, |
unsigned int | size | ||
) | [related] |
Return counts for using a global cardninality constraint for the distinct exept 0 constraint.
DFA not_all_equal_dfa | ( | unsigned int | colors | ) | [related] |
Return DFA for the not all equals constraint.
int main | ( | int | argc, |
char * | argv[] | ||
) | [related] |
Main-function.
Definition at line 538 of file colored-matrix.cpp.
const ColoredMatrixOptions& ColoredMatrix::opt [protected] |
Options for model.
Definition at line 173 of file colored-matrix.cpp.
const unsigned int ColoredMatrix::height [protected] |
Height of matrix.
Definition at line 174 of file colored-matrix.cpp.
const unsigned int ColoredMatrix::width [protected] |
Width of matrix.
Definition at line 175 of file colored-matrix.cpp.
const unsigned int ColoredMatrix::colors [protected] |
Number of colors to use.
Definition at line 176 of file colored-matrix.cpp.
IntVarArray ColoredMatrix::x [protected] |
Array for matrix variables.
Definition at line 183 of file colored-matrix.cpp.
IntVar ColoredMatrix::max_color [protected] |
Maximum color used.
Definition at line 185 of file colored-matrix.cpp.