Generated on Sat Feb 7 2015 02:01:38 for Gecode by doxygen 1.8.9.1
PerfectSquare Class Reference

Example: Packing squares into a rectangle More...

Public Types

enum  { PROP_REIFIED, PROP_CUMULATIVES }
 Propagation to use for model. More...
 

Public Member Functions

 PerfectSquare (const SizeOptions &opt)
 Actual model. More...
 
 PerfectSquare (bool share, PerfectSquare &s)
 Constructor for cloning s. More...
 
virtual Spacecopy (bool share)
 Copy during cloning. More...
 
virtual void print (std::ostream &os) const
 Print solution. More...
 
- Public Member Functions inherited from Gecode::Driver::ScriptBase< BaseSpace >
 ScriptBase (void)
 Default constructor. More...
 
 ScriptBase (bool share, ScriptBase &e)
 Constructor used for cloning. More...
 
virtual void compare (const Space &, std::ostream &os) const
 Compare with s. More...
 

Protected Attributes

IntVarArray x
 Array of x-coordinates of squares. More...
 
IntVarArray y
 Array of y-coordinates of squares. More...
 

Related Functions

(Note that these are not member functions.)

int main (int argc, char *argv[])
 Main-function. More...
 

Specifications for perfect square problems

The first element is the number of squares to be placed, the second the size of the master square, and the remaining the sizes of the squares to be packed.

The data is taken from: C. J. Bouwkamp and A. J. W. Duijvestijn, Catalogue of Simple Perfect Squared Squares of Orders 21 Through 25, Eindhoven Univ. Technology, Dept. of Math., Report 92-WSK-03, Nov. 1992.

const int s00 []
 
const int s01 []
 
const int s02 []
 
const int s03 []
 
const int s04 []
 
const int s05 []
 
const int s06 []
 
const int s07 []
 
const int s08 []
 
const int s09 []
 
const int s10 []
 
const int s11 []
 
const int s12 []
 
const int s13 []
 
const int s14 []
 
const int s15 []
 
const int s16 []
 
const int s17 []
 
const int s18 []
 
const int s19 []
 
const int s20 []
 
const int s21 []
 
const int s22 []
 
const int s23 []
 
const int s24 []
 
const int s25 []
 
const int s26 []
 
const int * specs []
 
const unsigned int n_specs = sizeof(specs) / sizeof(int*)
 

Additional Inherited Members

- Static Public Member Functions inherited from Gecode::Driver::ScriptBase< BaseSpace >
static std::ostream & select_ostream (const char *name, std::ofstream &ofs)
 Choose output stream according to name. More...
 
template<class Script , template< class > class Engine, class Options >
static void run (const Options &opt, Script *s=NULL)
 

Detailed Description

Example: Packing squares into a rectangle

See problem 9 at http://www.csplib.org/.

Definition at line 189 of file perfect-square.cpp.

Constructor & Destructor Documentation

PerfectSquare::PerfectSquare ( const SizeOptions opt)
inline

Actual model.

Definition at line 202 of file perfect-square.cpp.

PerfectSquare::PerfectSquare ( bool  share,
PerfectSquare s 
)
inline

Constructor for cloning s.

Definition at line 276 of file perfect-square.cpp.

Member Function Documentation

virtual Space* PerfectSquare::copy ( bool  share)
inlinevirtual

Copy during cloning.

Definition at line 282 of file perfect-square.cpp.

virtual void PerfectSquare::print ( std::ostream &  os) const
inlinevirtual

Print solution.

Reimplemented from Gecode::Driver::ScriptBase< BaseSpace >.

Definition at line 287 of file perfect-square.cpp.

Friends And Related Function Documentation

const int s00[]
related
Initial value:
= {
21, 112,
50,42,37,35,33,29,27,25,24,19,18,17,16,15,11,9,8,7,6,4,2
}

Definition at line 61 of file perfect-square.cpp.

const int s01[]
related
Initial value:
= {
22, 110,
60,50,28,27,26,24,23,22,21,18,17,16,15,14,13,12,8,7,6,4,3,2
}

Definition at line 65 of file perfect-square.cpp.

const int s02[]
related
Initial value:
= {
22, 192,
86,71,62,59,57,49,47,41,37,36,35,31,28,26,19,17,14,12,10,9,8,4
}

Definition at line 69 of file perfect-square.cpp.

const int s03[]
related
Initial value:
= {
23, 110,
44,41,38,37,32,31,29,28,21,19,16,15,14,13,12,10,8,7,5,4,3,2,1
}

Definition at line 73 of file perfect-square.cpp.

const int s04[]
related
Initial value:
= {
23, 332,
129,123,120,112,91,89,83,68,58,56,53,50,49,48,47,38,31,30,26,24,17,15,1
}

Definition at line 77 of file perfect-square.cpp.

const int s05[]
related
Initial value:
= {
24, 120,
47,46,41,40,34,33,32,25,23,20,19,17,16,15,14,13,12,10,9,8,6,5,4,3
}

Definition at line 81 of file perfect-square.cpp.

const int s06[]
related
Initial value:
= {
24, 479,
175,174,164,160,155,150,140,130,86,77,68,60,52,44,43,35,29,28,26,24,23,17,6,5
}

Definition at line 85 of file perfect-square.cpp.

const int s07[]
related
Initial value:
= {
25, 147,
74,73,41,40,34,33,32,27,25,23,20,19,17,16,15,14,13,12,10,9,8,6,5,4,3
}

Definition at line 89 of file perfect-square.cpp.

const int s08[]
related
Initial value:
= {
25, 661,
262,248,238,210,203,196,175,161,111,106,102,84,83,77,73,64,41,38,36,31,23,18,17,7,5
}

Definition at line 93 of file perfect-square.cpp.

const int s09[]
related
Initial value:
= {
26, 212,
99,85,65,62,57,56,55,48,39,38,32,28,26,24,23,20,19,17,16,12,7,6,5,4,2,1
}

Definition at line 97 of file perfect-square.cpp.

const int s10[]
related
Initial value:
= {
26, 214,
86,72,67,64,61,56,55,44,43,39,36,35,34,32,30,29,27,26,23,20,19,10,9,8,6,5
}

Definition at line 101 of file perfect-square.cpp.

const int s11[]
related
Initial value:
= {
26, 825,
304,302,288,277,246,235,233,189,157,135,127,117,109,92,90,83,81,76,57,53,49,37,26,25,8,5
}

Definition at line 105 of file perfect-square.cpp.

const int s12[]
related
Initial value:
= {
27, 180,
89,56,51,50,48,43,41,40,39,36,34,31,29,25,23,21,19,16,15,13,12,10,9,7,6,4,1
}

Definition at line 109 of file perfect-square.cpp.

const int s13[]
related
Initial value:
= {
27, 1179,
484,440,387,379,360,352,316,308,198,194,168,149,145,119,114,108,82,80,69,66,63,50,42,35,29,24,18
}

Definition at line 113 of file perfect-square.cpp.

const int s14[]
related
Initial value:
= {
28, 201,
77,70,68,67,64,56,54,39,38,36,34,32,30,24,22,21,18,17,16,13,12,11,10,6,4,3,2,1
}

Definition at line 117 of file perfect-square.cpp.

const int s15[]
related
Initial value:
= {
28, 1544,
649,615,510,473,456,439,419,385,260,216,214,208,203,175,147,135,125,116,104,94,81,55,49,17,12,7,6,4
}

Definition at line 121 of file perfect-square.cpp.

const int s16[]
related
Initial value:
= {
29, 255,
112,107,84,75,68,64,59,51,49,43,37,36,31,29,28,27,26,25,24,22,17,15,13,11,8,7,6,2,1
}

Definition at line 125 of file perfect-square.cpp.

const int s17[]
related
Initial value:
= {
29, 2134,
855,769,761,717,648,604,562,518,338,293,292,286,265,226,224,204,186,179,174,165,161,109,100,91,69,45,43,17,9
}

Definition at line 129 of file perfect-square.cpp.

const int s18[]
related
Initial value:
= {
30, 237,
88,82,79,76,73,56,53,46,45,43,40,39,36,34,33,32,29,27,25,24,23,21,20,16,11,10,9,5,3,1
}

Definition at line 133 of file perfect-square.cpp.

const int s19[]
related
Initial value:
= {
30, 2710,
992,981,948,936,826,782,781,737,465,440,418,289,272,264,260,242,227,210,208,154,140,124,122,108,92,64,29,16,15,4
}

Definition at line 137 of file perfect-square.cpp.

const int s20[]
related
Initial value:
= {
40, 510,
219,173,156,135,134,128,124,118,114,95,81,79,71,65,63,59,58,55,54,51,49,46,34,33,32,31,28,24,21,20,19,18,17,16,14,10,8,4,3,1
}

Definition at line 141 of file perfect-square.cpp.

const int s21[]
related
Initial value:
= {
40, 1121,
409,408,396,345,317,316,242,238,221,198,166,159,157,143,130,123,120,117,109,102,101,93,87,79,76,67,64,55,53,49,46,44,39,33,21,19,14,13,5,3
}

Definition at line 145 of file perfect-square.cpp.

const int s22[]
related
Initial value:
= {
50, 788,
301,300,246,242,187,182,177,168,145,139,135,128,114,110,103,93,87,84,82,81,79,73,69,63,58,57,52,51,49,47,41,40,34,33,26,23,22,21,20,19,18,15,13,11,10,9,8,7,4,2
}

Definition at line 149 of file perfect-square.cpp.

const int s23[]
related
Initial value:
= {
50, 1034,
588,446,305,283,175,163,160,138,132,130,128,124,120,116,110,107,106,103,101,100,94,86,85,82,80,77,74,64,63,62,61,60,57,54,47,46,45,43,40,39,32,30,28,27,26,25,22,7,6,1
}

Definition at line 153 of file perfect-square.cpp.

const int s24[]
related
Initial value:
= {
60, 1097,
645,452,268,264,204,188,184,176,172,165,161,143,132,127,116,114,108,104,100,94,92,90,88,84,75,74,72,71,69,68,67,64,62,61,56,51,46,36,34,30,29,28,26,25,21,20,19,18,17,16,15,14,12,10,9,7,5,4,2,1
}

Definition at line 157 of file perfect-square.cpp.

const int s25[]
related
Initial value:
= {
60, 1192,
638,554,335,303,285,271,219,180,174,159,149,148,136,125,110,98,94,85,77,76,75,74,72,71,69,65,63,62,61,60,59,57,55,51,50,49,48,47,46,45,44,43,40,39,37,35,32,31,25,16,15,14,12,10,9,8,6,4,2,1
}

Definition at line 161 of file perfect-square.cpp.

const int s26[]
related
Initial value:
= {
75, 1412,
793,619,473,320,287,207,188,181,179,170,167,153,151,149,142,140,132,127,121,117,116,106,105,103,97,93,92,91,90,87,84,83,82,76,74,73,72,71,70,69,67,66,65,64,63,61,54,53,49,45,39,38,35,34,33,32,30,29,28,27,26,24,21,20,19,18,15,14,13,11,10,9,6,5,3
}

Definition at line 165 of file perfect-square.cpp.

const int* specs[]
related
Initial value:
= {
&s00[0],&s01[0],&s02[0],&s03[0],&s04[0],
&s05[0],&s06[0],&s07[0],&s08[0],&s09[0],
&s10[0],&s11[0],&s12[0],&s13[0],&s14[0],
&s15[0],&s16[0],&s17[0],&s18[0],&s19[0],
&s20[0],&s21[0],&s22[0],&s23[0],&s24[0],
&s25[0],&s26[0]
}

Definition at line 171 of file perfect-square.cpp.

const unsigned int n_specs = sizeof(specs) / sizeof(int*)
related

Definition at line 179 of file perfect-square.cpp.

int main ( int  argc,
char *  argv[] 
)
related

Main-function.

Definition at line 299 of file perfect-square.cpp.

Member Data Documentation

IntVarArray PerfectSquare::x
protected

Array of x-coordinates of squares.

Definition at line 192 of file perfect-square.cpp.

IntVarArray PerfectSquare::y
protected

Array of y-coordinates of squares.

Definition at line 194 of file perfect-square.cpp.


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