43 using namespace Gecode;
62 unsigned int distance0,
unsigned int size0)
64 _bits(
"-bits",
"word size in bits",bits0),
65 _distance(
"-distance",
"minimum distance",distance0),
66 _size(
"-size",
"number of symbols",size0) {
67 add(_bits); add(_distance); add(_size);
71 unsigned int bits(
void)
const {
return _bits.value(); }
73 unsigned int distance(
void)
const {
return _distance.value(); }
75 unsigned int size(
void)
const {
return _size.value(); }
100 for (
int i=
x.size();
i--;)
103 for (
int i=0; i<
x.size(); i++)
104 for (
int j=i+1; j<
x.size(); j++)
115 for (
int i=0;
i<
x.size();
i++) {
116 os <<
"\t[" <<
i <<
"] = " <<
x[
i] << std::endl;
122 x.update(*
this, share, s.x);
127 return new Hamming(share,*
this);
138 opt.
parse(argc,argv);
139 Script::run<Hamming,DFS,HammingOptions>(
opt);
unsigned int size(void) const
Return number of symbols.
SetVarBranch SET_VAR_NONE(void)
Select first unassigned variable.
Options for Hamming problems
SetValBranch SET_VAL_MIN_INC(void)
Include smallest element.
Parametric base-class for scripts.
Gecode::IntArgs i(4, 1, 2, 3, 4)
unsigned int size(I &i)
Size of all ranges of range iterator i.
Hamming(const HammingOptions &opt)
Actual model.
LinIntExpr cardinality(const SetExpr &e)
Cardinality of set expression.
void parse(int &argc, char *argv[])
Parse options from arguments argv (number is argc)
unsigned int distance(void) const
Return minimum distance.
BoolVar expr(Home home, const BoolExpr &e, IntConLevel icl)
Post Boolean expression and return its value.
Node * x
Pointer to corresponding Boolean expression node.
virtual Space * copy(bool share)
Copy during cloning.
int main(int argc, char *argv[])
Main-function.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
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.
unsigned int bits(void) const
Return number of bits.
Hamming(bool share, Hamming &s)
Constructor for copying s.
virtual void print(std::ostream &os) const
Print solution.
Example: Generating Hamming codes
HammingOptions(const char *s, unsigned int bits0, unsigned int distance0, unsigned int size0)
Initialize options for example with name s.