53 #ifdef GECODE_HAS_SET_VARS
56 #ifdef GECODE_HAS_FLOAT_VARS
62 namespace Test {
namespace Branch {
66 return (w + (b-w)/2.0);
85 :
Gecode::
Space(share,s), vara(s.vara), varb(s.varb), val(s.val) {
101 : x(*this, n, 0, 1) {}
113 #ifdef GECODE_HAS_SET_VARS
121 : x(*this, n,
Gecode::IntSet::empty, d) {}
125 x.
update(*
this, share, s.x);
134 #ifdef GECODE_HAS_FLOAT_VARS
142 : x(*this, n, d.
min(), d.
max()) {}
146 x.
update(*
this, share, s.x);
160 const char* int_var_branch_name[] = {
167 "INT_VAR_DEGREE_MIN",
168 "INT_VAR_DEGREE_MAX",
171 "INT_VAR_ACTIVITY_MIN",
172 "INT_VAR_ACTIVITY_MAX",
179 "INT_VAR_DEGREE_SIZE_MIN",
180 "INT_VAR_DEGREE_SIZE_MAX",
181 "INT_VAR_AFC_SIZE_MIN",
182 "INT_VAR_AFC_SIZE_MAX",
183 "INT_VAR_ACTIVITY_SIZE_MIN",
184 "INT_VAR_ACTIVITY_SIZE_MAX",
185 "INT_VAR_REGRET_MIN_MIN",
186 "INT_VAR_REGRET_MIN_MAX",
187 "INT_VAR_REGRET_MAX_MIN",
188 "INT_VAR_REGRET_MAX_MAX"
191 const int n_int_var_branch =
192 sizeof(int_var_branch_name)/
sizeof(
const char*);
202 const char* int_val_branch_name[] = {
220 const int n_int_val_branch =
221 sizeof(int_val_branch_name)/
sizeof(
const char*);
232 #ifdef GECODE_HAS_SET_VARS
238 const char* set_var_branch_name[] = {
245 "SET_VAR_DEGREE_MIN",
246 "SET_VAR_DEGREE_MAX",
249 "SET_VAR_ACTIVITY_MIN",
250 "SET_VAR_ACTIVITY_MAX",
257 "SET_VAR_DEGREE_SIZE_MIN",
258 "SET_VAR_DEGREE_SIZE_MAX",
259 "SET_VAR_AFC_SIZE_MIN",
260 "SET_VAR_AFC_SIZE_MAX",
261 "SET_VAR_ACTIVITY_SIZE_MIN",
262 "SET_VAR_ACTIVITY_SIZE_MAX"
265 const int n_set_var_branch =
266 sizeof(set_var_branch_name)/
sizeof(
const char*);
272 const char* set_val_branch_name[] = {
284 const int n_set_val_branch =
285 sizeof(set_val_branch_name)/
sizeof(
const char*);
294 #ifdef GECODE_HAS_FLOAT_VARS
300 const char* float_var_branch_name[] = {
305 "FLOAT_VAR_MERIT_MIN",
306 "FLOAT_VAR_MERIT_MAX",
307 "FLOAT_VAR_DEGREE_MIN",
308 "FLOAT_VAR_DEGREE_MAX",
311 "FLOAT_VAR_ACTIVITY_MIN",
312 "FLOAT_VAR_ACTIVITY_MAX",
317 "FLOAT_VAR_SIZE_MIN",
318 "FLOAT_VAR_SIZE_MAX",
319 "FLOAT_VAR_DEGREE_SIZE_MIN",
320 "FLOAT_VAR_DEGREE_SIZE_MAX",
321 "FLOAT_VAR_AFC_SIZE_MIN",
322 "FLOAT_VAR_AFC_SIZE_MAX",
323 "FLOAT_VAR_ACTIVITY_SIZE_MIN",
324 "FLOAT_VAR_ACTIVITY_SIZE_MAX"
327 const int n_float_var_branch =
328 sizeof(float_var_branch_name)/
sizeof(
const char*);
331 return static_cast<double>(x.
degree());
334 const char* float_val_branch_name[] = {
335 "FLOAT_VAL_SPLIT_MIN",
336 "FLOAT_VAL_SPLIT_MAX",
337 "FLOAT_VAL_SPLIT_RND",
341 const int n_float_val_branch =
342 sizeof(float_val_branch_name)/
sizeof(
const char*);
357 RunInfo(
const std::string& vara,
const std::string& varb,
358 const std::string& valname,
360 : var(vara +
"::" + varb), val(valname), a_d(o.a_d), c_d(o.c_d) {}
362 o <<
"(" << var <<
", " << val <<
", " << a_d <<
", " << c_d <<
")";
375 namespace Test {
namespace Branch {
378 template<
class TestSpace>
389 if (ex == NULL)
break;
392 if ((maxNbSol >= 0) && (maxNbSol == s))
break;
398 :
Base(
"Int::Branch::"+s), arity(a),
dom(d) {
410 map<int, vector<RunInfo> > results;
413 post(*root, root->
x);
420 for (
int vara = 0; vara<n_int_var_branch; vara++) {
421 for (
int varb = 1; varb<n_int_var_branch; varb++) {
422 for (
int val = 0; val<n_int_val_branch; val++) {
435 case 8: ivb =
INT_VAL(&int_val);
break;
446 if ((vara == 0) && (val < 11)) {
518 branch(*c, c->
x, ivba, ivb);
break;
520 branch(*c, c->
x, ivbb, ivb);
break;
540 (
RunInfo(int_var_branch_name[vara],
541 int_var_branch_name[varb],
542 int_val_branch_name[val],
547 if (results.size() > 1)
552 std::cout <<
"FAILURE" << std::endl;
553 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
554 it != results.end(); ++it) {
555 std::cout <<
"Number of solutions: " << it->first << std::endl;
556 for (
unsigned int i = 0;
i < it->second.
size(); ++
i)
557 std::cout << it->second[
i] <<
" ";
558 std::cout << std::endl;
562 return results.size() == 1;
578 map<int, vector<RunInfo> > results;
581 post(*root, root->
x);
588 for (
int vara = 0; vara<n_int_var_branch; vara++) {
589 for (
int varb = 1; varb<n_int_var_branch; varb++) {
590 for (
int val = 0; val<n_int_val_branch; val++) {
604 case 8: ivb =
INT_VAL(&bool_val);
break;
615 if ((vara == 0) && (val < 11)) {
689 branch(*c, c->
x, ivba, ivb);
break;
691 branch(*c, c->
x, ivbb, ivb);
break;
711 (
RunInfo(int_var_branch_name[vara],
712 int_var_branch_name[varb],
713 int_val_branch_name[val],
718 if (results.size() > 1)
723 std::cout <<
"FAILURE" << std::endl;
724 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
725 it != results.end(); ++it) {
726 std::cout <<
"Number of solutions: " << it->first << std::endl;
727 for (
unsigned int i = 0;
i < it->second.
size(); ++
i)
728 std::cout << it->second[
i] <<
" ";
729 std::cout << std::endl;
733 return results.size() == 1;
736 #ifdef GECODE_HAS_SET_VARS
750 map<int, vector<RunInfo> > results;
753 post(*root, root->x);
757 for (
int vara = 0; vara<n_set_var_branch; vara++) {
758 for (
int varb = 1; varb<n_set_var_branch; varb++) {
759 for (
int val = 0; val<n_set_val_branch; val++) {
772 case 8: svb =
SET_VAL(&set_val);
break;
778 for (
int i=0;
i<c->x.size();
i++)
841 branch(*c, c->x, svba, svb);
break;
843 branch(*c, c->x, svbb, svb);
break;
863 (
RunInfo(set_var_branch_name[vara],
864 set_var_branch_name[varb],
865 set_val_branch_name[val],
870 if (results.size() > 1)
875 std::cout <<
"FAILURE" << std::endl;
876 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
877 it != results.end(); ++it) {
878 std::cout <<
"Number of solutions: " << it->first << std::endl;
879 for (
unsigned int i = 0;
i < it->second.
size(); ++
i)
880 std::cout << it->second[
i] <<
" ";
881 std::cout << std::endl;
885 return results.size() == 1;
889 #ifdef GECODE_HAS_FLOAT_VARS
891 :
Base(
"Float::Branch::"+s),
arity(a),
dom(d), nbSols(nbs) {
903 map<int, vector<RunInfo> > results;
906 post(*root, root->x);
910 for (
int vara = 0; vara<n_float_var_branch; vara++) {
911 for (
int varb = 1; varb<n_float_var_branch; varb++) {
912 for (
int val = 0; val<n_float_val_branch; val++) {
920 case 3: fvb =
FLOAT_VAL(&float_val);
break;
925 for (
int i=0;
i<c->x.size();
i++)
988 branch(*c, c->x, fvba, fvb);
break;
990 branch(*c, c->x, fvbb, fvb);
break;
1010 (
RunInfo(float_var_branch_name[vara],
1011 float_var_branch_name[varb],
1012 float_val_branch_name[val],
1017 if (results.size() > 1)
1022 std::cout <<
"FAILURE" << std::endl;
1023 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
1024 it != results.end(); ++it) {
1025 std::cout <<
"Number of solutions: " << it->first << std::endl;
1026 for (
unsigned int i = 0;
i < it->second.
size(); ++
i)
1027 std::cout << it->second[
i] <<
" ";
1028 std::cout << std::endl;
1032 return results.size() == 1;
SetVarBranch SET_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest unknown set.
BoolTestSpace(bool share, BoolTestSpace &s)
Constructor for cloning s.
unsigned int a_d
Create a clone during recomputation if distance is greater than a_d (adaptive distance) ...
Which values to select for branching first.
IntVarBranch INT_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
Select variable with smallest degree divided by domain size.
SetVarBranch SET_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
IntValBranch INT_VAL_RANGE_MIN(void)
Select the smallest range of the variable domain if it has several ranges, otherwise select values no...
SetVarBranch SET_VAR_MIN_MAX(BranchTbl tbl)
Select variable with largest minimum unknown element.
BrancherHandle branch(Home home, SetVar x, SetValBranch vals, SetVarValPrint vvp)
Branch over x with value selection vals.
virtual bool run(void)
Perform test.
Gecode::IntVarArray x
Variables to be tested.
FloatVarBranch FLOAT_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
Space for executing Boolean tests.
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
Which values to select for branching first.
Gecode::FloatVal dom
Domain of variables.
IntVarBranch INT_VAR_MERIT_MAX(IntBranchMerit bm, BranchTbl tbl)
Select variable with highest merit according to branch merit function bm.
int arity
Number of variables.
FloatValBranch FLOAT_VAL_SPLIT_MAX(void)
Select values greater than mean of smallest and largest value.
SetTest(const std::string &s, int a, const Gecode::IntSet &d)
Construct and register test.
SetVarBranch SET_VAR_NONE(void)
Select first unassigned variable.
virtual void post(Gecode::Space &home, Gecode::SetVarArray &x)=0
Post propagators on variables x.
SetTestSpace(int n, Gecode::IntSet &d)
Initialize test space.
BoolTest(const std::string &s, int a)
Construct and register test.
Gecode::BoolVarArray x
Variables to be tested.
FloatNum med(void) const
Return median of domain.
const FloatNum max
Largest allowed float value.
IntVarBranch INT_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
Select variable with largest degree divided by domain size.
SetVarBranch SET_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
SetTestSpace(bool share, SetTestSpace &s)
Constructor for cloning s.
int size(void) const
Return size of array (number of elements)
int nbSols
Maximum number of solutions searched during solving.
static Gecode::Support::RandomGenerator rand
Random number generator.
unsigned int c_d
Create a clone after every c_d commits (commit distance)
SetValBranch SET_VAL_MED_INC(void)
Include median element (rounding downwards)
Space * clone(bool share=true, CloneStatistics &stat=unused_clone) const
Clone space.
Which values to select for branching first.
Gecode::IntSet dom
Domain of variables.
Which variable to select for branching.
double set_merit(const Gecode::Space &, Gecode::SetVar, int)
Test function for branch merit function.
IntVarBranch INT_VAR_REGRET_MAX_MAX(BranchTbl tbl)
Select variable with largest max-regret.
SetVarBranch SET_VAR_ACTIVITY_MIN(double d, BranchTbl tbl)
Select variable with lowest activity with decay factor d.
virtual bool run(void)
Perform test.
int set_val(const Gecode::Space &, Gecode::SetVar x, int)
Test function for branch value function.
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
Select variable with largest degree divided by domain size.
SetValBranch SET_VAL_MIN_INC(void)
Include smallest element.
SetVarBranch SET_VAR_ACTIVITY_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest activity divided by domain size with decay factor d.
void dom(Home home, FloatVar x, FloatVal n)
Propagates .
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
IntVarBranch INT_VAR_MIN_MIN(BranchTbl tbl)
Select variable with smallest min.
IntVarBranch INT_VAR_REGRET_MAX_MIN(BranchTbl tbl)
Select variable with smallest max-regret.
IntValBranch INT_VAL_RANGE_MAX(void)
Select the largest range of the variable domain if it has several ranges, otherwise select values gre...
FloatVarBranch FLOAT_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
Which variable to select for branching.
FloatVarBranch FLOAT_VAR_ACTIVITY_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest activity divided by domain size with decay factor d. ...
virtual void post(Gecode::Space &home, Gecode::BoolVarArray &x)=0
Post propagators on variables x.
IntVarBranch INT_VAR_ACTIVITY_MAX(double d, BranchTbl tbl)
Select variable with highest activity with decay factor d.
virtual bool run(void)
Perform test.
Recording activities for set variables.
int arity
Number of variables.
SetValBranch SET_VAL_RND_EXC(Rnd r)
Exclude random element.
FloatVarBranch FLOAT_VAR_ACTIVITY_MAX(double d, BranchTbl tbl)
Select variable with highest activity with decay factor d.
double int_merit(const Gecode::Space &, Gecode::IntVar x, int)
Test function for branch merit function.
FloatValBranch FLOAT_VAL(FloatBranchVal v, FloatBranchCommit c)
FloatTestSpace(bool share, FloatTestSpace &s)
Constructor for cloning s.
double float_merit(const Gecode::Space &, Gecode::FloatVar x, int)
Test function for branch merit function.
FloatVarBranch FLOAT_VAR_NONE(void)
Select first unassigned variable.
IntVarBranch INT_VAR_REGRET_MIN_MAX(BranchTbl tbl)
Select variable with largest min-regret.
SetVarBranch SET_VAR_SIZE_MAX(BranchTbl tbl)
Select variable with largest unknown set.
IntValBranch INT_VAL_RND(Rnd r)
Select random value.
FloatValBranch FLOAT_VAL_SPLIT_RND(Rnd r)
Select values randomly which are not greater or not smaller than mean of largest and smallest value...
Iterator for the unknown ranges of a set variable.
void update(Space &, bool share, VarArray< Var > &a)
Update array to be a clone of array a.
virtual Gecode::Space * copy(bool share)
Copy space during cloning.
Gecode::FloatVal c(-8, 8)
FloatVarBranch FLOAT_VAR_AFC_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count divided by domain size with decay factor d...
virtual Gecode::Space * copy(bool share)
Copy space during cloning.
IntVarBranch INT_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
SetVarBranch SET_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
Select variable with smallest degree divided by domain size.
const FloatNum min
Smallest allowed float value.
Gecode::IntArgs i(4, 1, 2, 3, 4)
FloatNum n
The middle value for branching.
double bool_merit(const Gecode::Space &, Gecode::BoolVar x, int)
Test function for branch merit function.
int n
Number of negative literals for node type.
IntVarBranch INT_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
IntVarBranch INT_VAR_ACTIVITY_MIN(double d, BranchTbl tbl)
Select variable with lowest activity with decay factor d.
void print(std::ostream &o) const
FloatVarBranch FLOAT_VAR_AFC_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smalllest accumulated failure count divided by domain size with decay factor d...
FloatVarBranch FLOAT_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
Value description class for branching.
SetVarBranch SET_VAR_MERIT_MAX(SetBranchMerit bm, BranchTbl tbl)
Select variable with highest merit according to branch merit function bm.
IntTest(const std::string &s, int a, const Gecode::IntSet &d)
Construct and register test.
SetVarBranch SET_VAR_ACTIVITY_MAX(double d, BranchTbl tbl)
Select variable with highest activity with decay factor d.
unsigned int degree(void) const
Return degree (number of subscribed propagators and advisors)
Gecode::IntVarBranch varb
IntValBranch INT_VAL_MIN(void)
Select smallest value.
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
Select variable with smallest degree divided by domain size.
FloatTestSpace(int n, Gecode::FloatVal &d)
Initialize test space.
IntValBranch INT_VAL_SPLIT_MAX(void)
Select values greater than mean of smallest and largest value.
IntVarBranch INT_VAR_MAX_MAX(BranchTbl tbl)
Select variable with largest max.
bool l
Whether to try the lower or upper half first.
Base class for all tests to be run
IntVarBranch INT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
IntVarBranch INT_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
SetValBranch SET_VAL_MAX_EXC(void)
Exclude largest element.
IntVarBranch INT_VAR_ACTIVITY_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest activity divided by domain size with decay factor d. ...
SetVarBranch SET_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
IntVarBranch INT_VAR_MIN_MAX(BranchTbl tbl)
Select variable with largest min.
SetValBranch SET_VAL_MAX_INC(void)
Include largest element.
SetVarBranch SET_VAR_MAX_MAX(BranchTbl tbl)
Select variable with largest maximum unknown element.
LDSB< TieBreak > tiebreak("TieBreak")
Gecode::IntSet dom
Domain of variables.
FloatValBranch FLOAT_VAL_SPLIT_MIN(void)
Select values not greater than mean of smallest and largest value.
Space for executing Boolean tests.
FloatVarBranch FLOAT_VAR_MERIT_MAX(FloatBranchMerit bm, BranchTbl tbl)
Select variable with highest merit according to branch merit function bm.
SetVarBranch SET_VAR_AFC_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count divided by domain size with decay factor d...
SetVarBranch SET_VAR_MAX_MIN(BranchTbl tbl)
Select variable with smallest maximum unknown element.
Gecode::IntValBranch val
Varlue selection criterion.
FloatVarBranch FLOAT_VAR_MAX_MAX(BranchTbl tbl)
Select variable with largest max.
IntValBranch INT_VAL_NEAR_MIN(IntSharedArray n)
Try value nearest to a given value for a variable, in case of ties use the smaller value...
Recording activities for integer and Boolean variables.
FloatVarBranch FLOAT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
Passing integer arguments.
Recording activities for float variables.
IntVarBranch INT_VAR_AFC_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count divided by domain size with decay factor d...
Space for executing Float tests.
SetValBranch SET_VAL_MIN_EXC(void)
Exclude smallest element.
SetVarBranch SET_VAR_AFC_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count divided by domain size with decay factor d...
Boolean integer variables.
virtual bool run(void)
Perform test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)=0
Post propagators on variables x.
IntValBranch INT_VAL_MAX(void)
Select largest value.
Space for executing integer tests.
SetVarBranch SET_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
IntValBranch INT_VALUES_MIN(void)
Try all values starting from smallest.
virtual Gecode::Space * copy(bool share)
Copy space during cloning.
RunInfo(const std::string &vara, const std::string &varb, const std::string &valname, const Gecode::Search::Options &o)
Node * x
Pointer to corresponding Boolean expression node.
FloatVarBranch FLOAT_VAR_MIN_MIN(BranchTbl tbl)
Select variable with smallest min.
Space(void)
Default constructor.
Information about one test-run.
IntValBranch INT_VALUES_MAX(void)
Try all values starting from largest.
Gecode::IntVarBranch vara
Variable selection criteria.
IntVarBranch INT_VAR_MERIT_MIN(IntBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
SetVarBranch SET_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
Select variable with largest degree divided by domain size.
FloatVarBranch FLOAT_VAR_MAX_MIN(BranchTbl tbl)
Select variable with smallest max.
Gecode::SetVarArray x
Variables to be tested.
T * next(void)
Return next solution (NULL, if none exists or search has been stopped)
IntVarBranch INT_VAR_AFC_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count divided by domain size with decay factor d...
IntValBranch INT_VAL_NEAR_MAX(IntSharedArray n)
Try value nearest to a given value for a variable, in case of ties use the larger value...
SetValBranch SET_VAL_MED_EXC(void)
Exclude median element (rounding downwards)
IntValBranch INT_VAL_MED(void)
Select greatest value not greater than the median.
IntVarBranch INT_VAR_ACTIVITY_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest activity divided by domain size with decay factor d.
int arity
Number of variables.
int bool_val(const Gecode::Space &, Gecode::BoolVar x, int)
Test function for branch value function.
IntTestSpace(bool share, IntTestSpace &s)
Constructor for cloning s.
BoolTestSpace(int n)
Initialize test space.
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x)=0
Post propagators on variables x.
int min(void) const
Return smallest value of range.
IntValBranch INT_VAL_NEAR_INC(IntSharedArray n)
Try value larger than a given value for a variable first.
IntValBranch INT_VAL_SPLIT_MIN(void)
Select values not greater than mean of smallest and largest value.
struct Gecode::@518::NNF::@57::@58 b
For binary nodes (and, or, eqv)
Gecode toplevel namespace
IntVarBranch INT_VAR_MAX_MIN(BranchTbl tbl)
Select variable with smallest max.
int min(void) const
Return minimum of domain.
IntTestSpace(int n, Gecode::IntSet &d)
Initialize test space.
std::basic_ostream< Char, Traits > & operator<<(std::basic_ostream< Char, Traits > &os, const FloatView &x)
Print float variable view.
IntValBranch INT_VAL(IntBranchVal v, IntBranchCommit c)
Select value as defined by the value function v and commit function c Uses a commit function as defau...
SetVarBranch SET_VAR_ACTIVITY_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest activity divided by domain size with decay factor d. ...
int min(void) const
Return minimum of domain.
Which variable to select for branching.
Gecode::FloatNumBranch float_val(const Gecode::Space &, Gecode::FloatVar x, int)
Test function for branch value function.
FloatVarBranch FLOAT_VAR_ACTIVITY_MIN(double d, BranchTbl tbl)
Select variable with lowest activity with decay factor d.
SetVarBranch SET_VAR_MIN_MIN(BranchTbl tbl)
Select variable with smallest minimum unknown element.
virtual Gecode::Space * copy(bool share)
Copy space during cloning.
FloatVarBranch FLOAT_VAR_ACTIVITY_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest activity divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_SIZE_MAX(BranchTbl tbl)
Select variable with largest domain size.
FloatTest(const std::string &s, int a, const Gecode::FloatVal &d, int nbs)
Construct and register test.
SetValBranch SET_VAL_RND_INC(Rnd r)
Include random element.
Gecode::FloatVarArray x
Variables to be tested.
double tbl(const Gecode::Space &, double w, double b)
Test function for tie-break limit function.
int size(void) const
Return size of array (number of elements)
FloatVarBranch FLOAT_VAR_MIN_MAX(BranchTbl tbl)
Select variable with largest min.
SetVarBranch SET_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
SetVarBranch SET_VAR_MERIT_MIN(SetBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.
FloatVarBranch FLOAT_VAR_MERIT_MIN(FloatBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
IntValBranch INT_VAL_NEAR_DEC(IntSharedArray n)
Try value smaller than a given value for a variable first.
FloatVarBranch FLOAT_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
Depth-first search engine.
IntVarBranch INT_VAR_SIZE_MAX(BranchTbl tbl)
Select variable with largest domain size.
SetValBranch SET_VAL(SetBranchVal v, SetBranchCommit c)
Select value as defined by the value function v and commit function c.
int arity
Number of variables.
int solutions(TestSpace *c, Gecode::Search::Options &o, int maxNbSol=-1)
Find number of solutions.
IntVarBranch INT_VAR_REGRET_MIN_MIN(BranchTbl tbl)
Select variable with smallest min-regret.
IntVarBranch INT_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
int int_val(const Gecode::Space &, Gecode::IntVar x, int)
Test function for branch value function.
FloatVarBranch FLOAT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.