56 void parse(
int& argc,
char* argv[]) {
66 std::cerr <<
"\t(unsigned int) default: " <<
n << std::endl
67 <<
"\t\tparameter n" << std::endl
68 <<
"\t(unsigned int) default: " <<
k << std::endl
69 <<
"\t\tparameter k" << std::endl;
96 switch (
opt.propagation()) {
113 for (
int i=0;
i<
n;
i++)
114 for (
int j=0; j<
k-1; j++)
120 for (
int i=0;
i<
n;
i++)
121 for (
int j=0; j<
k; j++)
128 for (
int v=2;
v<=
n;
v++)
130 for (
int v=1;
v<=
n;
v++) {
146 for (
int i=0;
i<
n*
k;
i++)
153 for (
int v=1;
v<=
n;
v++)
155 *r0 + r1 + (r0(
v,
v) + r1)(
k-1,
k-1) + *r0);
168 virtual void print(std::ostream& os)
const {
169 os <<
"\t" <<
y << std::endl;
199 "extensional-channel");
202 std::cerr <<
"k must be at least 1!" << std::endl;
206 std::cerr <<
"n must be at least k!" << std::endl;
209 Script::run<LangfordNumber,DFS,LangfordNumberOptions>(
opt);
struct Gecode::@603::NNF::@65::@66 b
For binary nodes (and, or, eqv)
int p
Number of positive literals for node type.
struct Gecode::@603::NNF::@65::@67 a
For atomic nodes.
Passing Boolean variables.
Parametric base-class for scripts.
Passing integer arguments.
Passing integer variables.
Matrix-interface for arrays.
Regular expressions over integer values.
void update(Space &home, VarArray< Var > &a)
Update array to be a clone of array a.
Options taking two additional parameters.
LangfordNumberOptions(const char *s, int k0, int n0)
Parameters to be given on the command line Initialize options for example with name s.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
virtual void help(void)
Print help message.
Example: Langford's number problem
IntVarArray y
Sequence variables.
int main(int argc, char *argv[])
Main-function.
LangfordNumber(const LangfordNumberOptions &opt)
Construct model.
virtual void print(std::ostream &os) const
Print solution.
virtual Space * copy(void)
Copy during cloning.
LangfordNumber(LangfordNumber &l)
Constructor for cloning l.
@ PROP_REIFIED
Use reified constraints.
@ PROP_EXTENSIONAL
Use extensional constraints.
@ PROP_EXTENSIONAL_CHANNEL
Use extensional and channel constraints.
void parse(int argc, char *argv[])
Parse commandline arguments.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVar x1)
Post propagator for .
void extensional(Home home, const IntVarArgs &x, DFA d, IntPropLevel ipl=IPL_DEF)
Post domain consistent propagator for extensional constraint described by a DFA.
@ IPL_DOM
Domain propagation Options: basic versus advanced propagation.
GECODE_FLATZINC_EXPORT FlatZincSpace * parse(const std::string &fileName, Printer &p, std::ostream &err=std::cerr, FlatZincSpace *fzs=NULL, Rnd &rnd=defrnd)
Parse FlatZinc file fileName into fzs and return it.
void branch(Home home, const IntVarArgs &x, const BoolVarArgs &y, IntBoolVarBranch vars, IntValBranch vals)
Branch function for integer and Boolean variables.
Gecode toplevel namespace
void channel(Home home, FloatVar x0, IntVar x1)
Post propagator for channeling a float and an integer variable .
void distinct(Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
Post propagator for for all .
void element(Home home, IntSharedArray n, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
Post domain consistent propagator for .
IntValBranch INT_VAL_MAX(void)
Select largest value.
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest domain size.
Gecode::IntArgs i({1, 2, 3, 4})