40 using namespace Gecode;
80 const int n = m.
size();
81 const int n_d = (
n*
n-
n)/2;
87 for (
int k=0,
i=0;
i<
n-1;
i++)
88 for (
int j=
i+1; j<
n; j++, k++)
104 return m[m.
size()-1];
110 os <<
"\tm[" << m.
size() <<
"] = " << m << std::endl;
136 IntMinimizeScript::run<GolombRuler,BAB,SizeOptions>(
opt);
BoolVar expr(Home home, const BoolExpr &e, const IntPropLevels &ipls)
Post Boolean expression and return its value.
int n
Number of negative literals for node type.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
Parametric base-class for scripts.
Passing integer variables.
void solutions(unsigned int n)
Set default number of solutions to search for.
void ipl(IntPropLevel i)
Set default integer propagation level.
Options for scripts with additional size parameter
int size(void) const
Return size of array (number of elements)
void update(Space &home, VarArray< Var > &a)
Update array to be a clone of array a.
Example: Finding optimal Golomb rulers
int main(int argc, char *argv[])
Main-function.
virtual void print(std::ostream &os) const
Print solution.
IntVarArray m
Array for ruler marks.
GolombRuler(const SizeOptions &opt)
Actual model.
virtual Space * copy(void)
Copy during cloning.
GolombRuler(GolombRuler &s)
Constructor for cloning s.
virtual IntVar cost(void) const
Return cost.
void distinct(Home home, const IntVarArgs &x, IntPropLevel ipl)
Post propagator for for all .
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
@ IRT_GQ
Greater or equal ( )
@ IPL_BND
Bounds propagation.
IntValBranch INT_VAL_MIN(void)
Select smallest value.
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
const FloatNum max
Largest allowed float value.
unsigned int size(I &i)
Size of all ranges of range iterator i.
Gecode::IntArgs i({1, 2, 3, 4})