Go to the documentation of this file.
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;
90 PROP_EXTENSIONAL_CHANNEL
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++)
125 case PROP_EXTENSIONAL:
128 for (
int v=2;
v<=
n;
v++)
130 for (
int v=1;
v<=
n;
v++) {
139 case PROP_EXTENSIONAL_CHANNEL:
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::@602::NNF::@65::@66 b
For binary nodes (and, or, eqv)
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 .
LangfordNumber(LangfordNumber &l)
Constructor for cloning l.
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.
virtual void print(std::ostream &os) const
Print solution.
Gecode toplevel namespace
int main(int argc, char *argv[])
Main-function.
Use extensional and channel constraints.
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
Passing Boolean variables.
Parametric base-class for scripts.
virtual void help(void)
Print help message.
virtual Space * copy(void)
Copy during cloning.
Domain propagation Options: basic versus advanced propagation.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
Use extensional constraints.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
Matrix-interface for arrays.
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.
void update(Space &home, VarImpVar< VarImp > &y)
Update this variable to be a clone of variable y.
void extensional(Home home, const IntVarArgs &x, DFA dfa, IntPropLevel)
Post domain consistent propagator for extensional constraint described by a DFA.
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.
Gecode::IntArgs i({1, 2, 3, 4})
int p
Number of positive literals for node type.
IntValBranch INT_VAL_MAX(void)
Select largest value.