Go to the documentation of this file.
60 void parse(
int& argc,
char* argv[]) {
70 std::cerr <<
"\t(unsigned int) default: " <<
n << std::endl
71 <<
"\t\tparameter n" << std::endl
72 <<
"\t(unsigned int) default: " << k << std::endl
73 <<
"\t\tparameter k" << std::endl;
94 PROP_EXTENSIONAL_CHANNEL
100 switch (
opt.propagation()) {
117 for (
int i=0;
i<
n;
i++)
118 for (
int j=0; j<k-1; j++)
124 for (
int i=0;
i<
n;
i++)
125 for (
int j=0; j<k; j++)
129 case PROP_EXTENSIONAL:
132 for (
int v=2;
v<=
n;
v++)
134 for (
int v=1;
v<=
n;
v++) {
143 case PROP_EXTENSIONAL_CHANNEL:
150 for (
int i=0;
i<
n*k;
i++)
157 for (
int v=1;
v<=
n;
v++)
159 *r0 + r1 + (r0(
v,
v) + r1)(k-1,k-1) + *r0);
172 virtual void print(std::ostream& os)
const {
173 os <<
"\t" <<
y << std::endl;
203 "extensional-channel");
206 std::cerr <<
"k must be at least 1!" << std::endl;
210 std::cerr <<
"n must be at least k!" << std::endl;
213 Script::run<LangfordNumber,DFS,LangfordNumberOptions>(
opt);
virtual Space * copy(bool share)
Copy during cloning.
Example: Langford's number problem
Post propagator for SetVar SetOpType SetVar y
void propagation(int v)
Set default propagation value.
Passing integer variables.
void element(Home home, IntSharedArray c, IntVar x0, IntVar x1, IntPropLevel)
Post domain consistent propagator for .
@ PROP_EXTENSIONAL_CHANNEL
Use extensional and channel constraints.
Gecode::IntArgs i(4, 1, 2, 3, 4)
@ PROP_REIFIED
Use reified constraints.
void ipl(IntPropLevel i)
Set default integer propagation level.
void branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf, FloatVarValPrint vvp)
Branch over x with variable selection vars and value selection vals.
Regular expressions over integer values.
void update(Space &home, bool share, VarImpVar< VarImp > &y)
Update this variable to be a clone of variable y.
virtual void print(std::ostream &os) const
Print solution.
Gecode toplevel namespace
int main(int argc, char *argv[])
Main-function.
Passing Boolean variables.
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
Parametric base-class for scripts.
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
virtual void help(void)
Print help message.
void extensional(Home home, const IntVarArgs &x, DFA dfa, IntPropLevel)
Post domain consistent propagator for extensional constraint described by a DFA.
@ IPL_DOM
Domain propagation Preferences: prefer speed or memory.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
Matrix-interface for arrays.
@ PROP_EXTENSIONAL
Use extensional constraints.
virtual void help(void)
Print help text.
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
LangfordNumber(const LangfordNumberOptions &opt)
Construct model.
void channel(Home home, FloatVar x0, IntVar x1)
Post propagator for channeling a float and an integer variable .
Options taking two additional parameters.
IntVarArray y
Sequence variables.
LangfordNumber(bool share, LangfordNumber &l)
Constructor for cloning l.
void distinct(Home home, const IntVarArgs &x, IntPropLevel ipl)
Post propagator for for all .
int n
Number of negative literals for node type.
Passing integer arguments.
int p
Number of positive literals for node type.
IntValBranch INT_VAL_MAX(void)
Select largest value.