Generated on Thu Apr 11 13:59:38 2019 for Gecode by doxygen 1.6.3

ColoredMatrix Class Reference
[Example scripts (models)]

Example: Colored matrix example. More...

List of all members.

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 (ColoredMatrix &s)
 Constructor for cloning s.
virtual Spacecopy (void)
 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)

Instance specification



const ColoredMatrixOptionsopt
 Options for model.
const int height
 Height of matrix.
const int width
 Width of matrix.
const int colors
 Number of colors to use.

Problem variables



IntVarArray x
 Array for matrix variables.
IntVar max_color
 Maximum color used.

Constraint description constructors.

These functions implement constructors for descriptions of constraints as extensional specifications.



DFA same_or_0_dfa (int colors)
TupleSet same_or_0_tuple_set (int colors)
DFA distinct_except_0_dfa (int colors)
DFA no_monochrome_rectangle_dfa (int colors)
IntSetArgs distinct_except_0_counts (int colors, int size)
DFA not_all_equal_dfa (int colors)

Detailed Description

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 164 of file colored-matrix.cpp.


Member Enumeration Documentation

anonymous enum

Search modes.

Enumerator:
SEARCH_DFS 

Find solution.

SEARCH_BAB 

Find optimal solution.

Definition at line 314 of file colored-matrix.cpp.

anonymous enum

SYmmetry breaking variants.

Enumerator:
SYMMETRY_NONE 

No symmetry breaking.

SYMMETRY_MATRIX 

Order rows and columns of matrix.

SYMMETRY_VALUES 

Order value occurences.

Definition at line 319 of file colored-matrix.cpp.

anonymous enum

Model variants.

Enumerator:
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 325 of file colored-matrix.cpp.

anonymous enum

Not all equal variants.

Enumerator:
NOT_ALL_EQUAL_NQ 

Use direct constraint for implemeting not all equals.

NOT_ALL_EQUAL_NAIVE 

Use naive reification for implemeting not all equals.

NOT_ALL_EQUAL_REIFIED 

Use reification for implemeting not all equals.

NOT_ALL_EQUAL_NVALUES 

Use nvalues for implementing not all equals.

NOT_ALL_EQUAL_COUNT 

Use count for implementing not all equals.

NOT_ALL_EQUAL_DFA 

Use dfa for implementing not all equals.

Definition at line 331 of file colored-matrix.cpp.

anonymous enum

Same or 0 variants.

Enumerator:
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 340 of file colored-matrix.cpp.

anonymous enum

Distinct except 0 variants.

Enumerator:
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 346 of file colored-matrix.cpp.

anonymous enum

No monochrome rectangle versions.

Enumerator:
NO_MONOCHROME_DECOMPOSITION 

Use decomposition for no monochrome rectangle.

NO_MONOCHROME_DFA 

Use dfa for no monochrome rectangle.

Definition at line 352 of file colored-matrix.cpp.


Constructor & Destructor Documentation

ColoredMatrix::ColoredMatrix ( const ColoredMatrixOptions opt0  )  [inline]

Actual model.

Definition at line 359 of file colored-matrix.cpp.

ColoredMatrix::ColoredMatrix ( ColoredMatrix s  )  [inline]

Constructor for cloning s.

Definition at line 444 of file colored-matrix.cpp.


Member Function Documentation

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 186 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 217 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 243 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 287 of file colored-matrix.cpp.

virtual IntVar ColoredMatrix::cost ( void   )  const [inline, virtual]

Return cost.

Definition at line 423 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 429 of file colored-matrix.cpp.

virtual Space* ColoredMatrix::copy ( void   )  [inline, virtual]

Copy during cloning.

Definition at line 452 of file colored-matrix.cpp.


Friends And Related Function Documentation

DFA same_or_0_dfa ( int  colors  )  [related]

Return DFA for the same_or_0 constraint.

Constraint models the expression $(x = y \land z = y) \lor (x \neq y \land z = 0)$ for variables $\langle x, y, zq\rangle$.

TupleSet same_or_0_tuple_set ( int  colors  )  [related]

Return tuple set for the same_or_0 constraint.

Constraint models the expression $(x = y \land z = y) \lor (x \neq y \land z = 0)$ for variables $\langle x, y, zq\rangle$.

DFA distinct_except_0_dfa ( int  colors  )  [related]

Return DFA for the distinct_except_0 constraint.

DFA no_monochrome_rectangle_dfa ( int  colors  )  [related]

Return DFA for the no monochrome rectangle constraint.

IntSetArgs distinct_except_0_counts ( int  colors,
int  size 
) [related]

Return counts for using a global cardninality constraint for the distinct exept 0 constraint.

DFA not_all_equal_dfa ( int  colors  )  [related]

Return DFA for the not all equals constraint.


Member Data Documentation

Options for model.

Definition at line 169 of file colored-matrix.cpp.

const int ColoredMatrix::height [protected]

Height of matrix.

Definition at line 170 of file colored-matrix.cpp.

const int ColoredMatrix::width [protected]

Width of matrix.

Definition at line 171 of file colored-matrix.cpp.

const int ColoredMatrix::colors [protected]

Number of colors to use.

Definition at line 172 of file colored-matrix.cpp.

Array for matrix variables.

Definition at line 179 of file colored-matrix.cpp.

Maximum color used.

Definition at line 181 of file colored-matrix.cpp.


The documentation for this class was generated from the following file: