39 using namespace Gecode;
52 static const int n = 26;
66 a(le[ 0]),
b(le[ 1]),
c(le[ 2]), e(le[ 4]),
f(le[ 5]),
67 g(le[ 6]), h(le[ 7]),
i(le[ 8]), j(le[ 9]), k(le[10]),
68 l(le[11]), m(le[12]),
n(le[13]), o(le[14]),
p(le[15]),
69 q(le[16]),
r(le[17]), s(le[18]),
t(le[19]),
u(le[20]),
70 v(le[21]), w(le[22]),
x(le[23]),
y(le[24]),
z(le[25]);
77 rel(*
this, g+
l+e+e == 66,
opt.ipl());
80 rel(*
this, o+
b+o+e == 53,
opt.ipl());
84 rel(*
this, s+
a+
x+o+
p+h+o+
n+e == 134,
opt.ipl());
86 rel(*
this, s+o+
l+o == 37,
opt.ipl());
87 rel(*
this, s+o+
n+g == 61,
opt.ipl());
89 rel(*
this,
t+h+e+m+e == 72,
opt.ipl());
95 switch (
opt.branching()) {
115 return new Alpha(*
this);
121 for (
int i = 0;
i <
n;
i++) {
122 os << ((char) (
i+
'a')) <<
'=' << le[
i] << ((
i<
n-1)?
", ":
"\n");
124 os << std::endl <<
"\t";
143 Script::run<Alpha,DFS,Options>(
opt);
struct Gecode::@602::NNF::@65::@66 b
For binary nodes (and, or, eqv)
int p
Number of positive literals for node type.
union Gecode::@602::NNF::@65 u
Union depending on nodetype t.
int n
Number of negative literals for node type.
Node * x
Pointer to corresponding Boolean expression node.
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
IntVarArray le
Array for letters.
int main(int argc, char *argv[])
Main-function.
Alpha(const Options &opt)
Actual model.
@ BRANCH_NONE
Choose variable left to right.
@ BRANCH_INVERSE
Choose variable right to left.
@ BRANCH_SIZE
Choose variable with smallest size.
Alpha(Alpha &s)
Constructor for cloning s.
virtual Space * copy(void)
Copy during cloning.
virtual void print(std::ostream &os) const
Print solution.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
Parametric base-class for scripts.
void iterations(unsigned int i)
Set default number of iterations.
void branching(int v)
Set default branching value.
void solutions(unsigned int n)
Set default number of solutions to search for.
ArrayTraits< VarArgArray< Var > >::ArgsType slice(int start, int inc=1, int n=-1)
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.
void distinct(Home home, const IntVarArgs &x, IntPropLevel ipl)
Post propagator for for all .
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
Post propagator for SetVar SetOpType SetVar y
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
IntValBranch INT_VAL_MIN(void)
Select smallest value.
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
Gecode::FloatVal c(-8, 8)
Gecode::IntArgs i({1, 2, 3, 4})