Generated on Fri Mar 20 15:56:40 2015 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 (bool share, ColoredMatrix &s)
 Constructor for cloning s.
virtual Spacecopy (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)

Instance specification



const ColoredMatrixOptionsopt
 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.

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)

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 168 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 318 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 323 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 329 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 335 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 344 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 350 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 356 of file colored-matrix.cpp.


Constructor & Destructor Documentation

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 448 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 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 427 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 433 of file colored-matrix.cpp.

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

Copy during cloning.

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


Friends And Related Function Documentation

DFA same_or_0_dfa ( unsigned 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 ( unsigned 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 ( 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.


Member Data Documentation

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.

Array for matrix variables.

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

Maximum color used.

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


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