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 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)

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.

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: