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
98 : k(opt.k), n(opt.n), y(*this,k*n,1,n) {
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;
178 :
Script(share, l), k(l.k), n(l.n) {
203 "extensional-channel");
204 opt.
parse(argc, argv);
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);
void channel(Home home, FloatVar x0, IntVar x1)
Post propagator for channeling a float and an integer variable .
void propagation(int v)
Set default propagation value.
Regular expressions over integer values.
LangfordNumber(bool share, LangfordNumber &l)
Constructor for cloning l.
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
Use extensional constraints.
Parametric base-class for scripts.
void update(Space &, bool share, VarArray< Var > &a)
Update array to be a clone of array a.
int p
Number of positive literals for node type.
Gecode::IntArgs i(4, 1, 2, 3, 4)
Options taking two additional parameters.
int n
Number of negative literals for node type.
int main(int argc, char *argv[])
Main-function.
virtual Space * copy(bool share)
Copy during cloning.
Example: Langford's number problem
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
Slice< A > row(int r) const
Access row r.
void element(Home home, IntSharedArray c, IntVar x0, IntVar x1, IntConLevel)
Post domain consistent propagator for .
Passing integer variables.
virtual void print(std::ostream &os) const
Print solution.
Passing integer arguments.
Passing Boolean variables.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
void extensional(Home home, const IntVarArgs &x, DFA dfa, IntConLevel)
Post domain consistent propagator for extensional constraint described by a DFA.
IntValBranch INT_VAL_MAX(void)
Select largest value.
Use extensional and channel constraints.
LangfordNumber(const LangfordNumberOptions &opt)
Construct model.
IntVarArray y
Sequence variables.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
virtual void help(void)
Print help message.
void distinct(Home home, const IntVarArgs &x, IntConLevel icl)
Post propagator for for all .
Matrix-interface for arrays.
struct Gecode::@518::NNF::@57::@58 b
For binary nodes (and, or, eqv)
Gecode toplevel namespace
Slice< A > col(int c) const
Access column c.
BrancherHandle 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.
void icl(IntConLevel i)
Set default integer consistency level.
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.
Domain propagation or consistency.
virtual void help(void)
Print help text.