49#ifdef GECODE_HAS_SET_VARS
52#ifdef GECODE_HAS_FLOAT_VARS
62 return (w + (b-w)/2.0);
97 :
x(*this, n, 0, 1) {}
101 x.update(*
this, s.
x);
109#ifdef GECODE_HAS_SET_VARS
117 :
x(*this, n,
Gecode::IntSet::empty, d) {}
121 x.update(*
this, s.
x);
130#ifdef GECODE_HAS_FLOAT_VARS
138 :
x(*this, n, d.min(), d.max()) {}
142 x.update(*
this, s.
x);
163 "INT_VAR_DEGREE_MIN",
164 "INT_VAR_DEGREE_MAX",
167 "INT_VAR_ACTION_MIN",
168 "INT_VAR_ACTION_MAX",
177 "INT_VAR_DEGREE_SIZE_MIN",
178 "INT_VAR_DEGREE_SIZE_MAX",
179 "INT_VAR_AFC_SIZE_MIN",
180 "INT_VAR_AFC_SIZE_MAX",
181 "INT_VAR_ACTION_SIZE_MIN",
182 "INT_VAR_ACTION_SIZE_MAX",
183 "INT_VAR_CHB_SIZE_MIN",
184 "INT_VAR_CHB_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"
198 "BOOL_VAR_MERIT_MIN",
199 "BOOL_VAR_MERIT_MAX",
200 "BOOL_VAR_DEGREE_MIN",
201 "BOOL_VAR_DEGREE_MAX",
204 "BOOL_VAR_ACTION_MIN",
205 "BOOL_VAR_ACTION_MAX",
257#ifdef GECODE_HAS_SET_VARS
270 "SET_VAR_DEGREE_MIN",
271 "SET_VAR_DEGREE_MAX",
274 "SET_VAR_ACTION_MIN",
275 "SET_VAR_ACTION_MAX",
284 "SET_VAR_DEGREE_SIZE_MIN",
285 "SET_VAR_DEGREE_SIZE_MAX",
286 "SET_VAR_AFC_SIZE_MIN",
287 "SET_VAR_AFC_SIZE_MAX",
288 "SET_VAR_ACTION_SIZE_MIN",
289 "SET_VAR_ACTION_SIZE_MAX",
290 "SET_VAR_CHB_SIZE_MIN",
291 "SET_VAR_CHB_SIZE_MAX"
323#ifdef GECODE_HAS_FLOAT_VARS
334 "FLOAT_VAR_MERIT_MIN",
335 "FLOAT_VAR_MERIT_MAX",
336 "FLOAT_VAR_DEGREE_MIN",
337 "FLOAT_VAR_DEGREE_MAX",
340 "FLOAT_VAR_ACTION_MIN",
341 "FLOAT_VAR_ACTION_MAX",
348 "FLOAT_VAR_SIZE_MIN",
349 "FLOAT_VAR_SIZE_MAX",
350 "FLOAT_VAR_DEGREE_SIZE_MIN",
351 "FLOAT_VAR_DEGREE_SIZE_MAX",
352 "FLOAT_VAR_AFC_SIZE_MIN",
353 "FLOAT_VAR_AFC_SIZE_MAX",
354 "FLOAT_VAR_ACTION_SIZE_MIN",
355 "FLOAT_VAR_ACTION_SIZE_MAX",
356 "FLOAT_VAR_CHB_SIZE_MIN",
357 "FLOAT_VAR_CHB_SIZE_MAX"
364 return static_cast<double>(
x.degree());
368 "FLOAT_VAL_SPLIT_MIN",
369 "FLOAT_VAL_SPLIT_MAX",
370 "FLOAT_VAL_SPLIT_RND",
390 RunInfo(
const std::string& vara,
const std::string& varb,
391 const std::string& valname,
395 o <<
"(" <<
var <<
", " <<
val <<
", " <<
a_d <<
", " <<
c_d <<
")";
411 template<
class TestSpace>
422 if (ex == NULL)
break;
425 if ((maxNbSol >= 0) && (maxNbSol == s))
break;
443 map<int, vector<RunInfo> > results;
446 post(*root, root->
x);
450 for (
int i=
arity; i--; )
453 for (
int vara = 0; vara<n_int_var_branch; vara++) {
454 for (
int varb = 1; varb<n_int_var_branch; varb++) {
455 for (
int val = 0; val<n_int_val_branch; val++) {
475 if ((vara == 0) && (val < 11)) {
476 for (
int i=0; i<c->
x.size(); i++)
557 branch(*c, c->
x, ivba, ivb);
break;
559 branch(*c, c->
x, ivbb, ivb);
break;
579 (
RunInfo(int_var_branch_name[vara],
580 int_var_branch_name[varb],
581 int_val_branch_name[val],
586 if (results.size() > 1)
591 std::cout <<
"FAILURE" << std::endl;
592 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
593 it != results.end(); ++it) {
594 std::cout <<
"Number of solutions: " << it->first << std::endl;
595 for (
unsigned int i = 0; i < it->second.
size(); ++i)
596 std::cout << it->second[i] <<
" ";
597 std::cout << std::endl;
601 return results.size() == 1;
617 map<int, vector<RunInfo> > results;
620 post(*root, root->
x);
623 for (
int vara = 0; vara<n_bool_var_branch; vara++) {
624 for (
int varb = 1; varb<n_bool_var_branch; varb++) {
625 for (
int val = 0; val<n_bool_val_branch; val++) {
640 for (
int i=0; i<c->
x.size(); i++)
687 branch(*c, c->
x, bvba, bvb);
break;
689 branch(*c, c->
x, bvbb, bvb);
break;
709 (
RunInfo(int_var_branch_name[vara],
710 int_var_branch_name[varb],
711 int_val_branch_name[val],
716 if (results.size() > 1)
721 std::cout <<
"FAILURE" << std::endl;
722 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
723 it != results.end(); ++it) {
724 std::cout <<
"Number of solutions: " << it->first << std::endl;
725 for (
unsigned int i = 0; i < it->second.
size(); ++i)
726 std::cout << it->second[i] <<
" ";
727 std::cout << std::endl;
731 return results.size() == 1;
734#ifdef GECODE_HAS_SET_VARS
748 map<int, vector<RunInfo> > results;
751 post(*root, root->
x);
755 for (
int vara = 0; vara<n_set_var_branch; vara++) {
756 for (
int varb = 1; varb<n_set_var_branch; varb++) {
757 for (
int val = 0; val<n_set_val_branch; val++) {
776 for (
int i=0; i<c->
x.size(); i++)
849 branch(*c, c->
x, svba, svb);
break;
851 branch(*c, c->
x, svbb, svb);
break;
871 (
RunInfo(set_var_branch_name[vara],
872 set_var_branch_name[varb],
873 set_val_branch_name[val],
878 if (results.size() > 1)
883 std::cout <<
"FAILURE" << std::endl;
884 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
885 it != results.end(); ++it) {
886 std::cout <<
"Number of solutions: " << it->first << std::endl;
887 for (
unsigned int i = 0; i < it->second.
size(); ++i)
888 std::cout << it->second[i] <<
" ";
889 std::cout << std::endl;
893 return results.size() == 1;
897#ifdef GECODE_HAS_FLOAT_VARS
911 map<int, vector<RunInfo> > results;
914 post(*root, root->
x);
918 for (
int vara = 0; vara<n_float_var_branch; vara++) {
919 for (
int varb = 1; varb<n_float_var_branch; varb++) {
920 for (
int val = 0; val<n_float_val_branch; val++) {
933 for (
int i=0; i<c->
x.size(); i++)
1006 branch(*c, c->
x, fvba, fvb);
break;
1008 branch(*c, c->
x, fvbb, fvb);
break;
1028 (
RunInfo(float_var_branch_name[vara],
1029 float_var_branch_name[varb],
1030 float_val_branch_name[val],
1035 if (results.size() > 1)
1040 std::cout <<
"FAILURE" << std::endl;
1041 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
1042 it != results.end(); ++it) {
1043 std::cout <<
"Number of solutions: " << it->first << std::endl;
1044 for (
unsigned int i = 0; i < it->second.
size(); ++i)
1045 std::cout << it->second[i] <<
" ";
1046 std::cout << std::endl;
1050 return results.size() == 1;
int size(void) const
Return size of array (number of elements)
Recording actions for Boolean variables.
Recording CHB for Boolean variables.
Which values to select for branching first.
Which Boolean variable to select for branching.
Boolean integer variables.
Depth-first search engine.
Recording actions for float variables.
Recording CHB for float variables.
Value description class for branching.
bool l
Whether to try the lower or upper half first.
FloatNum n
The middle value for branching.
Which values to select for branching first.
FloatValImpType x
Implementation of float value.
Which variable to select for branching.
Recording actions for integer variables.
Passing integer arguments.
Recording CHB for integer variables.
Which values to select for branching first.
Which integer variable to select for branching.
virtual T * next(void)
Return next solution (NULL, if none exists or search has been stopped)
unsigned int c_d
Create a clone after every c_d commits (commit distance)
unsigned int a_d
Create a clone during recomputation if distance is greater than a_d (adaptive distance)
Recording actions for set variables.
Recording CHB for set variables.
Which values to select for branching first.
Which variable to select for branching.
Iterator for the unknown ranges of a set variable.
static Gecode::Support::RandomGenerator rand
Random number generator.
Base(const std::string &s)
Create and register test with name s.
Space for executing Boolean tests.
BoolTestSpace(BoolTestSpace &s)
Constructor for cloning s.
BoolTestSpace(int n)
Initialize test space.
Gecode::BoolVarArray x
Variables to be tested.
virtual Gecode::Space * copy(void)
Copy space during cloning.
BoolTest(const std::string &s, int a)
Construct and register test.
int arity
Number of variables.
virtual bool run(void)
Perform test.
virtual void post(Gecode::Space &home, Gecode::BoolVarArray &x)=0
Post propagators on variables x.
Space for executing Float tests.
const int n_float_var_branch
Number of float variable selections.
Gecode::FloatNumBranch float_val(const Gecode::Space &, Gecode::FloatVar x, int)
Test function for branch value function.
const char * float_val_branch_name[]
Names for float value selections.
FloatTestSpace(FloatTestSpace &s)
Constructor for cloning s.
double float_merit(const Gecode::Space &, Gecode::FloatVar x, int)
Test function for branch merit function.
Gecode::FloatVarArray x
Variables to be tested.
const char * float_var_branch_name[]
Names for float variable selections.
const int n_float_val_branch
Number of float value selections.
FloatTestSpace(int n, Gecode::FloatVal &d)
Initialize test space.
virtual Gecode::Space * copy(void)
Copy space during cloning.
Gecode::FloatVal dom
Domain of variables.
int arity
Number of variables.
int nbSols
Maximum number of solutions searched during solving.
FloatTest(const std::string &s, int a, const Gecode::FloatVal &d, int nbs)
Construct and register test.
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x)=0
Post propagators on variables x.
virtual bool run(void)
Perform test.
Space for executing integer tests.
double bool_merit(const Gecode::Space &, Gecode::BoolVar x, int)
Test function for branch merit function.
IntTestSpace(int n, Gecode::IntSet &d)
Initialize test space.
const int n_bool_var_branch
Number of integer variable selections.
virtual Gecode::Space * copy(void)
Copy space during cloning.
const int n_int_var_branch
Number of integer variable selections.
Gecode::IntVarBranch varb
Gecode::IntValBranch val
Varlue selection criterion.
const char * bool_var_branch_name[]
Names for Boolean variable selections.
const int n_bool_val_branch
Number of Boolean value selections.
IntTestSpace(IntTestSpace &s)
Constructor for cloning s.
Gecode::IntVarBranch vara
Variable selection criteria.
const char * int_var_branch_name[]
Names for integer variable selections.
int int_val(const Gecode::Space &, Gecode::IntVar x, int)
Test function for branch value function.
const char * bool_val_branch_name[]
Names for Boolean value selections.
const int n_int_val_branch
Number of integer value selections.
Gecode::IntVarArray x
Variables to be tested.
double int_merit(const Gecode::Space &, Gecode::IntVar x, int)
Test function for branch merit function.
int bool_val(const Gecode::Space &, Gecode::BoolVar x, int)
Test function for branch value function.
const char * int_val_branch_name[]
Names for integer value selections.
IntTest(const std::string &s, int a, const Gecode::IntSet &d)
Construct and register test.
int arity
Number of variables.
virtual bool run(void)
Perform test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)=0
Post propagators on variables x.
Gecode::IntSet dom
Domain of variables.
Information about one test-run.
void print(std::ostream &o) const
RunInfo(const std::string &vara, const std::string &varb, const std::string &valname, const Gecode::Search::Options &o)
Space for executing Set tests.
const int n_set_var_branch
Number of set variable selections.
const char * set_var_branch_name[]
Names for set variable selections.
double set_merit(const Gecode::Space &, Gecode::SetVar, int)
Test function for branch merit function.
const int n_set_val_branch
Number of set value selections.
Gecode::SetVarArray x
Variables to be tested.
const char * set_val_branch_name[]
Names for set value selections.
int set_val(const Gecode::Space &, Gecode::SetVar x, int)
Test function for branch value function.
virtual Gecode::Space * copy(void)
Copy space during cloning.
SetTestSpace(SetTestSpace &s)
Constructor for cloning s.
SetTestSpace(int n, Gecode::IntSet &d)
Initialize test space.
virtual void post(Gecode::Space &home, Gecode::SetVarArray &x)=0
Post propagators on variables x.
int arity
Number of variables.
SetTest(const std::string &s, int a, const Gecode::IntSet &d)
Construct and register test.
virtual bool run(void)
Perform test.
Gecode::IntSet dom
Domain of variables.
void branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
Branch over x with variable selection vars and value selection vals.
Space(void)
Default constructor.
T * bab(T *s, const Search::Options &o=Search::Options::def)
Perform depth-first branch-and-bound search for subclass T of space s and options o.
SpaceStatus status(StatusStatistics &stat=unused_status)
Query space status.
Space * clone(CloneStatistics &stat=unused_clone) const
Clone space.
Gecode toplevel namespace
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MAX(BranchTbl tbl=nullptr)
Select variable with largest degree divided by domain size.
Select variable with highest merit according to branch merit function a bm SetVarBranch SET_VAR_MERIT_MAX(SetBranchMerit bm, BranchTbl tbl=nullptr)
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest degree divided by domain size.
SetValBranch SET_VAL_MED_INC(void)
FloatVarBranch FLOAT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
FloatValBranch FLOAT_VAL_SPLIT_MAX(void)
Select values greater than mean of smallest and largest value.
BoolVarBranch BOOL_VAR_CHB_MIN(BoolCHB c, BranchTbl tbl=nullptr)
Select variable with lowest CHB Q-score.
Select variable with smallest action divided by domain size with decay factor a d SetVarBranch SET_VAR_ACTION_SIZE_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with smallest CHB Q score divided by domain size SetVarBranch SET_VAR_CHB_SIZE_MIN(BranchTbl tbl=nullptr)
Select variable with largest action divided by domain size with decay factor a d SetVarBranch SET_VAR_ACTION_SIZE_MAX(double d=1.0, BranchTbl tbl=nullptr)
IntValBranch INT_VAL_SPLIT_MIN(void)
Select values not greater than mean of smallest and largest value.
FloatVarBranch FLOAT_VAR_AFC_MIN(double d=1.0, BranchTbl tbl=nullptr)
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...
IntValBranch INT_VAL_RANGE_MAX(void)
Select the largest range of the variable domain if it has several ranges, otherwise select values gre...
BoolValBranch BOOL_VAL(BoolBranchVal v, BoolBranchCommit c=nullptr)
Select value as defined by the value function v and commit function c Uses a commit function as defau...
FloatVarBranch FLOAT_VAR_SIZE_MAX(BranchTbl tbl=nullptr)
Select variable with largest domain size.
IntValBranch INT_VALUES_MAX(void)
Try all values starting from largest.
IntVarBranch INT_VAR_AFC_SIZE_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest accumulated failure count divided by domain size with decay factor d.
IntVarBranch INT_VAR_CHB_SIZE_MIN(IntCHB c, BranchTbl tbl=nullptr)
Select variable with smallest CHB Q-score divided by domain size.
FloatVarBranch FLOAT_VAR_MAX_MAX(BranchTbl tbl=nullptr)
Select variable with largest max.
Select first unassigned variable SetVarBranch SET_VAR_NONE(void)
IntVarBranch INT_VAR_DEGREE_MAX(BranchTbl tbl=nullptr)
Select variable with largest degree.
Include random element SetValBranch SET_VAL_RND_INC(Rnd r)
FloatValBranch FLOAT_VAL_SPLIT_RND(Rnd r)
Select values randomly which are not greater or not smaller than mean of largest and smallest value.
IntVarBranch INT_VAR_REGRET_MIN_MIN(BranchTbl tbl=nullptr)
Select variable with smallest min-regret.
IntVarBranch INT_VAR_ACTION_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with highest action with decay factor d.
Select variable with largest degree divided by domain size SetVarBranch SET_VAR_DEGREE_SIZE_MAX(BranchTbl tbl=nullptr)
FloatVarBranch FLOAT_VAR_AFC_SIZE_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with smalllest accumulated failure count divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_CHB_SIZE_MAX(BranchTbl tbl=nullptr)
Select variable with largest CHB Q-score divided by domain size.
IntValBranch INT_VAL_MED(void)
Select greatest value not greater than the median.
IntValBranch INT_VAL(IntBranchVal v, IntBranchCommit c=nullptr)
Select value as defined by the value function v and commit function c Uses a commit function as defau...
TieBreak< VarBranch > tiebreak(VarBranch a, VarBranch b)
Combine variable selection criteria a and b for tie-breaking.
IntVarBranch INT_VAR_REGRET_MIN_MAX(BranchTbl tbl=nullptr)
Select variable with largest min-regret.
Exclude random element SetValBranch SET_VAL_RND_EXC(Rnd r)
IntVarBranch INT_VAR_ACTION_SIZE_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest action divided by domain size with decay factor d.
Select variable with lowest CHB Q score SetVarBranch SET_VAR_CHB_MIN(BranchTbl tbl=nullptr)
BoolValBranch BOOL_VAL_MIN(void)
Select smallest value.
BoolVarBranch BOOL_VAR_MERIT_MIN(BoolBranchMerit bm, BranchTbl tbl=nullptr)
Select variable with least merit according to branch merit function bm.
Select variable with largest minimum unknown element SetVarBranch SET_VAR_MIN_MAX(BranchTbl tbl=nullptr)
Select variable with highest CHB Q score SetVarBranch SET_VAR_CHB_MAX(BranchTbl tbl=nullptr)
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
IntVarBranch INT_VAR_CHB_MIN(IntCHB c, BranchTbl tbl=nullptr)
Select variable with lowest CHB Q-score.
BoolVarBranch BOOL_VAR_NONE(void)
Select first unassigned variable.
IntVarBranch INT_VAR_AFC_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest accumulated failure count with decay factor d.
IntVarBranch INT_VAR_AFC_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with smallest accumulated failure count with decay factor d.
IntVarBranch INT_VAR_REGRET_MAX_MAX(BranchTbl tbl=nullptr)
Select variable with largest max-regret.
SetValBranch SET_VAL(SetBranchVal v, SetBranchCommit c=nullptr)
Select value as defined by the value function v and commit function c.
IntValBranch INT_VALUES_MIN(void)
Try all values starting from smallest.
Select variable with smallest unknown set SetVarBranch SET_VAR_SIZE_MIN(BranchTbl tbl=nullptr)
SetVarBranch SET_VAR_RND(Rnd r)
FloatVarBranch FLOAT_VAR_CHB_MIN(BranchTbl tbl=nullptr)
Select variable with lowest CHB Q-score.
Select variable with largest maximum unknown element SetVarBranch SET_VAR_MAX_MAX(BranchTbl tbl=nullptr)
IntVarBranch INT_VAR_CHB_MAX(IntCHB c, BranchTbl tbl=nullptr)
Select variable with largest CHB Q-score.
FloatVarBranch FLOAT_VAR_CHB_SIZE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest CHB Q-score divided by domain size.
IntValBranch INT_VAL_MAX(void)
Select largest value.
FloatVarBranch FLOAT_VAR_ACTION_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with highest action with decay factor d.
BoolValBranch BOOL_VAL_MAX(void)
Select largest value.
BoolVarBranch BOOL_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
BoolVarBranch BOOL_VAR_ACTION_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with lowest action with decay factor d.
FloatVarBranch FLOAT_VAR_CHB_MAX(BranchTbl tbl=nullptr)
Select variable with highest CHB Q-score.
Select variable with largest accumulated failure count with decay factor a d SetVarBranch SET_VAR_AFC_MAX(double d=1.0, BranchTbl tbl=nullptr)
FloatVarBranch FLOAT_VAR_MIN_MIN(BranchTbl tbl=nullptr)
Select variable with smallest min.
BoolVarBranch BOOL_VAR_DEGREE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest degree.
FloatValBranch FLOAT_VAL(FloatBranchVal v, FloatBranchCommit c=nullptr)
Select variable with smallest minimum unknown element SetVarBranch SET_VAR_MIN_MIN(BranchTbl tbl=nullptr)
FloatVarBranch FLOAT_VAR_MAX_MIN(BranchTbl tbl=nullptr)
Select variable with smallest max.
FloatVarBranch FLOAT_VAR_ACTION_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with lowest action with decay factor d.
SetValBranch SET_VAL_MED_EXC(void)
Include largest element SetValBranch SET_VAL_MAX_INC(void)
IntValBranch INT_VAL_SPLIT_MAX(void)
Select values greater than mean of smallest and largest value.
IntVarBranch INT_VAR_MAX_MIN(BranchTbl tbl=nullptr)
Select variable with smallest max.
IntValBranch INT_VAL_MIN(void)
Select smallest value.
Select variable with largest CHB Q score divided by domain size SetVarBranch SET_VAR_CHB_SIZE_MAX(BranchTbl tbl=nullptr)
Select variable with smallest degree SetVarBranch SET_VAR_DEGREE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest accumulated failure count with decay factor a d SetVarBranch SET_VAR_AFC_MIN(double d=1.0, BranchTbl tbl=nullptr)
BoolVarBranch BOOL_VAR_AFC_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with smallest accumulated failure count with decay factor d.
BoolVarBranch BOOL_VAR_AFC_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest accumulated failure count with decay factor d.
BoolVarBranch BOOL_VAR_CHB_MAX(BoolCHB c, BranchTbl tbl=nullptr)
Select variable with largest CHB Q-score.
Select variable with smallest maximum unknown element SetVarBranch SET_VAR_MAX_MIN(BranchTbl tbl=nullptr)
FloatVarBranch FLOAT_VAR_NONE(void)
Select first unassigned variable.
IntVarBranch INT_VAR_MAX_MAX(BranchTbl tbl=nullptr)
Select variable with largest max.
Select variable with largest degree SetVarBranch SET_VAR_DEGREE_MAX(BranchTbl tbl=nullptr)
IntVarBranch INT_VAR_ACTION_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with lowest action with decay factor d.
IntVarBranch INT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
IntVarBranch INT_VAR_AFC_SIZE_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with smallest accumulated failure count divided by domain size with decay factor d.
Include smallest element SetValBranch SET_VAL_MIN_INC(void)
FloatVarBranch FLOAT_VAR_DEGREE_MAX(BranchTbl tbl=nullptr)
Select variable with largest degree.
IntVarBranch INT_VAR_DEGREE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest degree.
Select variable with smallest accumulated failure count divided by domain size with decay factor a d SetVarBranch SET_VAR_AFC_SIZE_MIN(double d=1.0, BranchTbl tbl=nullptr)
Exclude largest element SetValBranch SET_VAL_MAX_EXC(void)
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest action divided by domain size with decay factor d.
BoolValBranch BOOL_VAL_RND(Rnd r)
Select random value.
IntVarBranch INT_VAR_REGRET_MAX_MIN(BranchTbl tbl=nullptr)
Select variable with smallest max-regret.
IntVarBranch INT_VAR_MERIT_MIN(IntBranchMerit bm, BranchTbl tbl=nullptr)
Select variable with least merit according to branch merit function bm.
IntVarBranch INT_VAR_CHB_SIZE_MAX(IntCHB c, BranchTbl tbl=nullptr)
Select variable with largest CHB Q-score divided by domain size.
FloatVarBranch FLOAT_VAR_MIN_MAX(BranchTbl tbl=nullptr)
Select variable with largest min.
Select variable with largest accumulated failure count divided by domain size with decay factor a d SetVarBranch SET_VAR_AFC_SIZE_MAX(double d=1.0, BranchTbl tbl=nullptr)
IntVarBranch INT_VAR_DEGREE_SIZE_MAX(BranchTbl tbl=nullptr)
Select variable with largest degree divided by domain size.
Select variable with lowest action with decay factor a d SetVarBranch SET_VAR_ACTION_MIN(double d=1.0, BranchTbl tbl=nullptr)
IntVarBranch INT_VAR_MERIT_MAX(IntBranchMerit bm, BranchTbl tbl=nullptr)
Select variable with highest merit according to branch merit function bm.
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest domain size.
BoolVarBranch BOOL_VAR_DEGREE_MAX(BranchTbl tbl=nullptr)
Select variable with largest degree.
Select variable with least merit according to branch merit function a bm SetVarBranch SET_VAR_MERIT_MIN(SetBranchMerit bm, BranchTbl tbl=nullptr)
FloatVarBranch FLOAT_VAR_AFC_SIZE_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest accumulated failure count divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_MERIT_MIN(FloatBranchMerit bm, BranchTbl tbl=nullptr)
Select variable with least merit according to branch merit function bm.
IntVarBranch INT_VAR_ACTION_SIZE_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with smallest action divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_DEGREE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest degree.
BoolVarBranch BOOL_VAR_ACTION_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with highest action with decay factor d.
FloatValBranch FLOAT_VAL_SPLIT_MIN(void)
Select values not greater than mean of smallest and largest value.
Select variable with smallest degree divided by domain size SetVarBranch SET_VAR_DEGREE_SIZE_MIN(BranchTbl tbl=nullptr)
FloatVarBranch FLOAT_VAR_SIZE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest domain size.
IntVarBranch INT_VAR_MIN_MAX(BranchTbl tbl=nullptr)
Select variable with largest min.
BoolVarBranch BOOL_VAR_MERIT_MAX(BoolBranchMerit bm, BranchTbl tbl=nullptr)
Select variable with highest merit according to branch merit function bm.
IntVarBranch INT_VAR_DEGREE_SIZE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest degree divided by domain size.
IntVarBranch INT_VAR_MIN_MIN(BranchTbl tbl=nullptr)
Select variable with smallest min.
FloatVarBranch FLOAT_VAR_AFC_MAX(double d=1.0, BranchTbl tbl=nullptr)
Select variable with largest accumulated failure count with decay factor d.
Exclude smallest element SetValBranch SET_VAL_MIN_EXC(void)
IntVarBranch INT_VAR_SIZE_MAX(BranchTbl tbl=nullptr)
Select variable with largest domain size.
Select variable with largest unknown set SetVarBranch SET_VAR_SIZE_MAX(BranchTbl tbl=nullptr)
IntValBranch INT_VAL_RND(Rnd r)
Select random value.
Select variable with highest action with decay factor a d SetVarBranch SET_VAR_ACTION_MAX(double d=1.0, BranchTbl tbl=nullptr)
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MIN(double d=1.0, BranchTbl tbl=nullptr)
Select variable with smallest action divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_MERIT_MAX(FloatBranchMerit bm, BranchTbl tbl=nullptr)
Select variable with highest merit according to branch merit function bm.
double tbl(const Gecode::Space &, double w, double b)
Test function for tie-break limit function.
int solutions(TestSpace *c, Gecode::Search::Options &o, int maxNbSol=-1)
Find number of solutions.
std::ostream & operator<<(std::ostream &os, const Test::Branch::RunInfo &ri)