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(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) {}
134 #ifdef GECODE_HAS_FLOAT_VARS 142 : x(*this, n, d.
min(), d.
max()) {}
167 "INT_VAR_DEGREE_MIN",
168 "INT_VAR_DEGREE_MAX",
171 "INT_VAR_ACTION_MIN",
172 "INT_VAR_ACTION_MAX",
181 "INT_VAR_DEGREE_SIZE_MIN",
182 "INT_VAR_DEGREE_SIZE_MAX",
183 "INT_VAR_AFC_SIZE_MIN",
184 "INT_VAR_AFC_SIZE_MAX",
185 "INT_VAR_ACTION_SIZE_MIN",
186 "INT_VAR_ACTION_SIZE_MAX",
187 "INT_VAR_CHB_SIZE_MIN",
188 "INT_VAR_CHB_SIZE_MAX",
189 "INT_VAR_REGRET_MIN_MIN",
190 "INT_VAR_REGRET_MIN_MAX",
191 "INT_VAR_REGRET_MAX_MIN",
192 "INT_VAR_REGRET_MAX_MAX" 202 "BOOL_VAR_MERIT_MIN",
203 "BOOL_VAR_MERIT_MAX",
204 "BOOL_VAR_DEGREE_MIN",
205 "BOOL_VAR_DEGREE_MAX",
208 "BOOL_VAR_ACTION_MIN",
209 "BOOL_VAR_ACTION_MAX",
261 #ifdef GECODE_HAS_SET_VARS 267 const char* set_var_branch_name[] = {
274 "SET_VAR_DEGREE_MIN",
275 "SET_VAR_DEGREE_MAX",
278 "SET_VAR_ACTION_MIN",
279 "SET_VAR_ACTION_MAX",
288 "SET_VAR_DEGREE_SIZE_MIN",
289 "SET_VAR_DEGREE_SIZE_MAX",
290 "SET_VAR_AFC_SIZE_MIN",
291 "SET_VAR_AFC_SIZE_MAX",
292 "SET_VAR_ACTION_SIZE_MIN",
293 "SET_VAR_ACTION_SIZE_MAX",
294 "SET_VAR_CHB_SIZE_MIN",
295 "SET_VAR_CHB_SIZE_MAX" 298 const int n_set_var_branch =
299 sizeof(set_var_branch_name)/
sizeof(
const char*);
305 const char* set_val_branch_name[] = {
317 const int n_set_val_branch =
318 sizeof(set_val_branch_name)/
sizeof(
const char*);
327 #ifdef GECODE_HAS_FLOAT_VARS 333 const char* float_var_branch_name[] = {
338 "FLOAT_VAR_MERIT_MIN",
339 "FLOAT_VAR_MERIT_MAX",
340 "FLOAT_VAR_DEGREE_MIN",
341 "FLOAT_VAR_DEGREE_MAX",
344 "FLOAT_VAR_ACTION_MIN",
345 "FLOAT_VAR_ACTION_MAX",
352 "FLOAT_VAR_SIZE_MIN",
353 "FLOAT_VAR_SIZE_MAX",
354 "FLOAT_VAR_DEGREE_SIZE_MIN",
355 "FLOAT_VAR_DEGREE_SIZE_MAX",
356 "FLOAT_VAR_AFC_SIZE_MIN",
357 "FLOAT_VAR_AFC_SIZE_MAX",
358 "FLOAT_VAR_ACTION_SIZE_MIN",
359 "FLOAT_VAR_ACTION_SIZE_MAX",
360 "FLOAT_VAR_CHB_SIZE_MIN",
361 "FLOAT_VAR_CHB_SIZE_MAX" 364 const int n_float_var_branch =
365 sizeof(float_var_branch_name)/
sizeof(
const char*);
368 return static_cast<double>(x.
degree());
371 const char* float_val_branch_name[] = {
372 "FLOAT_VAL_SPLIT_MIN",
373 "FLOAT_VAL_SPLIT_MAX",
374 "FLOAT_VAL_SPLIT_RND",
378 const int n_float_val_branch =
379 sizeof(float_val_branch_name)/
sizeof(
const char*);
395 const std::string& valname,
397 : var(vara +
"::" + varb), val(valname), a_d(o.a_d), c_d(o.c_d) {}
399 o <<
"(" << var <<
", " << val <<
", " << a_d <<
", " << c_d <<
")";
412 namespace Test {
namespace Branch {
415 template<
class TestSpace>
426 if (ex == NULL)
break;
429 if ((maxNbSol >= 0) && (maxNbSol == s))
break;
435 :
Base(
"Int::Branch::"+s), arity(a),
dom(d) {
447 map<int, vector<RunInfo> > results;
450 post(*root, root->
x);
457 for (
int vara = 0; vara<n_int_var_branch; vara++) {
458 for (
int varb = 1; varb<n_int_var_branch; varb++) {
459 for (
int val = 0; val<n_int_val_branch; val++) {
472 case 8: ivb =
INT_VAL(&int_val);
break;
479 if ((vara == 0) && (val < 11)) {
524 IntCHB icb(*c, c->
x, &int_merit);
561 branch(*c, c->
x, ivba, ivb);
break;
563 branch(*c, c->
x, ivbb, ivb);
break;
583 (
RunInfo(int_var_branch_name[vara],
584 int_var_branch_name[varb],
585 int_val_branch_name[val],
590 if (results.size() > 1)
595 std::cout <<
"FAILURE" << std::endl;
596 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
597 it != results.end(); ++it) {
598 std::cout <<
"Number of solutions: " << it->first << std::endl;
599 for (
unsigned int i = 0;
i < it->second.
size(); ++
i)
600 std::cout << it->second[
i] <<
" ";
601 std::cout << std::endl;
605 return results.size() == 1;
621 map<int, vector<RunInfo> > results;
624 post(*root, root->
x);
627 for (
int vara = 0; vara<n_bool_var_branch; vara++) {
628 for (
int varb = 1; varb<n_bool_var_branch; varb++) {
629 for (
int val = 0; val<n_bool_val_branch; val++) {
638 case 3: bvb =
BOOL_VAL(&bool_val);
break;
691 branch(*c, c->
x, bvba, bvb);
break;
693 branch(*c, c->
x, bvbb, bvb);
break;
713 (
RunInfo(int_var_branch_name[vara],
714 int_var_branch_name[varb],
715 int_val_branch_name[val],
720 if (results.size() > 1)
725 std::cout <<
"FAILURE" << std::endl;
726 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
727 it != results.end(); ++it) {
728 std::cout <<
"Number of solutions: " << it->first << std::endl;
729 for (
unsigned int i = 0;
i < it->second.
size(); ++
i)
730 std::cout << it->second[
i] <<
" ";
731 std::cout << std::endl;
735 return results.size() == 1;
738 #ifdef GECODE_HAS_SET_VARS 752 map<int, vector<RunInfo> > results;
755 post(*root, root->
x);
759 for (
int vara = 0; vara<n_set_var_branch; vara++) {
760 for (
int varb = 1; varb<n_set_var_branch; varb++) {
761 for (
int val = 0; val<n_set_val_branch; val++) {
774 case 8: svb =
SET_VAL(&set_val);
break;
820 SetCHB scb(*c, c->
x, &set_merit);
853 branch(*c, c->
x, svba, svb);
break;
855 branch(*c, c->
x, svbb, svb);
break;
875 (
RunInfo(set_var_branch_name[vara],
876 set_var_branch_name[varb],
877 set_val_branch_name[val],
882 if (results.size() > 1)
887 std::cout <<
"FAILURE" << std::endl;
888 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
889 it != results.end(); ++it) {
890 std::cout <<
"Number of solutions: " << it->first << std::endl;
891 for (
unsigned int i = 0;
i < it->second.
size(); ++
i)
892 std::cout << it->second[
i] <<
" ";
893 std::cout << std::endl;
897 return results.size() == 1;
901 #ifdef GECODE_HAS_FLOAT_VARS 903 :
Base(
"Float::Branch::"+s),
arity(a),
dom(d), nbSols(nbs) {
915 map<int, vector<RunInfo> > results;
918 post(*root, root->
x);
922 for (
int vara = 0; vara<n_float_var_branch; vara++) {
923 for (
int varb = 1; varb<n_float_var_branch; varb++) {
924 for (
int val = 0; val<n_float_val_branch; val++) {
932 case 3: fvb =
FLOAT_VAL(&float_val);
break;
1010 branch(*c, c->
x, fvba, fvb);
break;
1012 branch(*c, c->
x, fvbb, fvb);
break;
1032 (
RunInfo(float_var_branch_name[vara],
1033 float_var_branch_name[varb],
1034 float_val_branch_name[val],
1039 if (results.size() > 1)
1044 std::cout <<
"FAILURE" << std::endl;
1045 for (map<
int, vector<RunInfo> >::iterator it = results.begin();
1046 it != results.end(); ++it) {
1047 std::cout <<
"Number of solutions: " << it->first << std::endl;
1048 for (
unsigned int i = 0;
i < it->second.
size(); ++
i)
1049 std::cout << it->second[
i] <<
" ";
1050 std::cout << std::endl;
1054 return results.size() == 1;
unsigned int a_d
Create a clone during recomputation if distance is greater than a_d (adaptive distance) ...
BoolValBranch BOOL_VAL_RND(Rnd r)
Select random value.
Which values to select for branching first.
int min(void) const
Return minimum of domain.
IntVarBranch INT_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
Select variable with largest degree divided by domain size.
IntValBranch INT_VAL_RANGE_MIN(void)
Select the smallest range of the variable domain if it has several ranges, otherwise select values no...
IntTestSpace(IntTestSpace &s)
Constructor for cloning s.
virtual bool run(void)
Perform test.
FloatVarBranch FLOAT_VAR_CHB_SIZE_MIN(BranchTbl tbl)
Select variable with smallest CHB Q-score divided by domain size.
Gecode::IntVarArray x
Variables to be tested.
Recording actions for set variables.
SetVarBranch SET_VAR_CHB_SIZE_MIN(BranchTbl tbl)
SetVarBranch SET_VAR_SIZE_MIN(BranchTbl tbl)
Space for executing Boolean tests.
IntVarBranch INT_VAR_CHB_SIZE_MAX(IntCHB c, BranchTbl tbl)
Select variable with largest CHB Q-score divided by domain size.
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
Which values to select for branching first.
Gecode::FloatVal dom
Domain of variables.
int arity
Number of variables.
BoolVarBranch BOOL_VAR_NONE(void)
Select first unassigned variable.
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.
BoolVarBranch BOOL_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
int size(void) const
Return size of array (number of elements)
SetTestSpace(SetTestSpace &s)
Constructor for cloning s.
virtual void post(Gecode::Space &home, Gecode::SetVarArray &x)=0
Post propagators on variables x.
const char * bool_var_branch_name[]
Names for Boolean variable selections.
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.
virtual Gecode::Space * copy(void)
Copy space during cloning.
Which values to select for branching first.
int size(void) const
Return size of array (number of elements)
const FloatNum max
Largest allowed float value.
std::ostream & operator<<(std::ostream &os, const Test::Branch::RunInfo &ri)
FloatVarBranch FLOAT_VAR_CHB_SIZE_MAX(BranchTbl tbl)
Select variable with largest CHB Q-score divided by domain size.
virtual Gecode::Space * copy(void)
Copy space during cloning.
Recording actions for float variables.
void update(Space &home, VarArray< Var > &a)
Update array to be a clone of array a.
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)
FloatVarBranch FLOAT_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
SetVarBranch SET_VAR_MERIT_MAX(SetBranchMerit bm, BranchTbl tbl)
Which values to select for branching first.
IntVarBranch INT_VAR_SIZE_MAX(BranchTbl tbl)
Select variable with largest domain size.
Gecode::IntSet dom
Domain of variables.
Which integer variable to select for branching.
double set_merit(const Gecode::Space &, Gecode::SetVar, int)
Test function for branch merit function.
virtual bool run(void)
Perform test.
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...
int set_val(const Gecode::Space &, Gecode::SetVar x, int)
Test function for branch value function.
IntVarBranch INT_VAR_REGRET_MIN_MIN(BranchTbl tbl)
Select variable with smallest min-regret.
IntVarBranch INT_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
BoolVarBranch BOOL_VAR_ACTION_MIN(double d, BranchTbl tbl)
Select variable with lowest action with decay factor d.
virtual T * next(void)
Return next solution (NULL, if none exists or search has been stopped)
IntVarBranch INT_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
void dom(Home home, FloatVar x, FloatVal n)
Propagates .
SetVarBranch SET_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
IntValBranch INT_VAL_RANGE_MAX(void)
Select the largest range of the variable domain if it has several ranges, otherwise select values gre...
IntVarBranch INT_VAR_CHB_SIZE_MIN(IntCHB c, BranchTbl tbl)
Select variable with smallest CHB Q-score divided by domain size.
IntVarBranch INT_VAR_MERIT_MAX(IntBranchMerit bm, BranchTbl tbl)
Select variable with highest merit according to branch merit function bm.
Which variable to select for branching.
BoolVarBranch BOOL_VAR_MERIT_MIN(BoolBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
virtual Gecode::Space * copy(void)
Copy space during cloning.
const int n_bool_val_branch
Number of Boolean value selections.
virtual void post(Gecode::Space &home, Gecode::BoolVarArray &x)=0
Post propagators on variables x.
SetValBranch SET_VAL_MED_INC(void)
IntVarBranch INT_VAR_REGRET_MIN_MAX(BranchTbl tbl)
Select variable with largest min-regret.
SetVarBranch SET_VAR_MAX_MAX(BranchTbl tbl)
void print(std::ostream &o) const
SetValBranch SET_VAL_RND_INC(Rnd r)
virtual bool run(void)
Perform test.
int arity
Number of variables.
int min(void) const
Return smallest value of range.
double int_merit(const Gecode::Space &, Gecode::IntVar x, int)
Test function for branch merit function.
SetVarBranch SET_VAR_NONE(void)
FloatValBranch FLOAT_VAL(FloatBranchVal v, FloatBranchCommit c)
BoolTestSpace(BoolTestSpace &s)
Constructor for cloning s.
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest action divided by domain size with decay factor d.
double float_merit(const Gecode::Space &, Gecode::FloatVar x, int)
Test function for branch merit function.
SetVarBranch SET_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
void branch(Home home, SetVar x, SetValBranch vals, SetVarValPrint vvp)
Branch over x with value selection vals.
FloatVarBranch FLOAT_VAR_NONE(void)
Select first unassigned variable.
FloatVarBranch FLOAT_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
FloatVarBranch FLOAT_VAR_MERIT_MIN(FloatBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
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.
IntVarBranch INT_VAR_MAX_MAX(BranchTbl tbl)
Select variable with largest max.
const int n_bool_var_branch
Number of integer variable selections.
Gecode::FloatVal c(-8, 8)
FloatVarBranch FLOAT_VAR_SIZE_MAX(BranchTbl tbl)
Select variable with largest domain size.
SetVarBranch SET_VAR_AFC_MAX(double d, BranchTbl tbl)
const char * int_val_branch_name[]
Names for integer value selections.
IntVarBranch INT_VAR_ACTION_MAX(double d, BranchTbl tbl)
Select variable with highest action with decay factor d.
const FloatNum min
Smallest allowed float value.
BoolValBranch BOOL_VAL_MIN(void)
Select smallest value.
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...
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
Select variable with smallest degree divided by domain size.
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.
BoolValBranch BOOL_VAL_MAX(void)
Select largest value.
int n
Number of negative literals for node type.
SetVarBranch SET_VAR_CHB_SIZE_MAX(BranchTbl tbl)
SetVarBranch SET_VAR_DEGREE_MIN(BranchTbl tbl)
Value description class for branching.
SetVarBranch SET_VAR_DEGREE_MAX(BranchTbl tbl)
IntVarBranch INT_VAR_MIN_MIN(BranchTbl tbl)
Select variable with smallest min.
IntTest(const std::string &s, int a, const Gecode::IntSet &d)
Construct and register test.
BoolVarBranch BOOL_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
Space * clone(CloneStatistics &stat=unused_clone) const
Clone space.
SetVarBranch SET_VAR_CHB_MAX(BranchTbl tbl)
const unsigned int a_d
Create a clone during recomputation if distance is greater than a_d (adaptive distance) ...
IntVarBranch INT_VAR_MERIT_MIN(IntBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
Gecode::IntVarBranch varb
BoolVarBranch BOOL_VAR_CHB_MAX(BoolCHB c, BranchTbl tbl)
Select variable with largest CHB Q-score.
IntValBranch INT_VAL_MIN(void)
Select smallest value.
FloatTestSpace(int n, Gecode::FloatVal &d)
Initialize test space.
const char * int_var_branch_name[]
Names for integer variable selections.
unsigned int degree(void) const
Return degree (number of subscribed propagators and advisors)
IntValBranch INT_VAL_SPLIT_MAX(void)
Select values greater than mean of smallest and largest value.
bool l
Whether to try the lower or upper half first.
Base class for all tests to be run
virtual Gecode::Space * copy(void)
Copy space during cloning.
IntVarBranch INT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
struct Gecode::Space::@58::@60 c
Data available only during copying.
Recording actions for Boolean variables.
Recording CHB for set variables.
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...
LDSB< TieBreak > tiebreak("TieBreak")
Gecode::IntSet dom
Domain of variables.
Which Boolean variable to select for branching.
FloatValBranch FLOAT_VAL_SPLIT_MIN(void)
Select values not greater than mean of smallest and largest value.
Space for executing Set tests.
SetVarBranch SET_VAR_AFC_MIN(double d, BranchTbl tbl)
IntVarBranch INT_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
FloatVarBranch FLOAT_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
SetVarBranch SET_VAR_RND(Rnd r)
FloatNum med(void) const
Return median of domain.
Recording CHB for integer variables.
Gecode::IntValBranch val
Varlue selection criterion.
SetVarBranch SET_VAR_MERIT_MIN(SetBranchMerit bm, BranchTbl tbl)
FloatVarBranch FLOAT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
SetVarBranch SET_VAR_MIN_MAX(BranchTbl tbl)
SetValBranch SET_VAL_MIN_EXC(void)
Passing integer arguments.
SetValBranch SET_VAL_MIN_INC(void)
Recording CHB for float variables.
Space for executing Float tests.
FloatVarBranch FLOAT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
Boolean integer variables.
FloatVarBranch FLOAT_VAR_MIN_MAX(BranchTbl tbl)
Select variable with largest min.
SetValBranch SET_VAL_MAX_EXC(void)
virtual bool run(void)
Perform test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)=0
Post propagators on variables x.
IntVarBranch INT_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
IntValBranch INT_VAL_MAX(void)
Select largest value.
IntVarBranch INT_VAR_CHB_MIN(IntCHB c, BranchTbl tbl)
Select variable with lowest CHB Q-score.
SetValBranch SET_VAL_MAX_INC(void)
struct Gecode::@585::NNF::@62::@63 b
For binary nodes (and, or, eqv)
SetVarBranch SET_VAR_MAX_MIN(BranchTbl tbl)
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
SetVarBranch SET_VAR_SIZE_MAX(BranchTbl tbl)
Space for executing integer tests.
BoolVarBranch BOOL_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
IntValBranch INT_VALUES_MIN(void)
Try all values starting from smallest.
SetValBranch SET_VAL_MED_EXC(void)
RunInfo(const std::string &vara, const std::string &varb, const std::string &valname, const Gecode::Search::Options &o)
BoolVarBranch BOOL_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
SetValBranch SET_VAL_RND_EXC(Rnd r)
Space(void)
Default constructor.
struct Gecode::@585::NNF::@62::@64 a
For atomic nodes.
Information about one test-run.
int min(void) const
Return minimum of domain.
IntVarBranch INT_VAR_MIN_MAX(BranchTbl tbl)
Select variable with largest min.
IntValBranch INT_VALUES_MAX(void)
Try all values starting from largest.
Gecode::IntVarBranch vara
Variable selection criteria.
SetVarBranch SET_VAR_AFC_SIZE_MIN(double d, BranchTbl tbl)
FloatVarBranch FLOAT_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
Gecode::SetVarArray x
Variables to be tested.
IntVarBranch INT_VAR_ACTION_MIN(double d, BranchTbl tbl)
Select variable with lowest action with decay factor d.
BoolVarBranch BOOL_VAR_ACTION_MAX(double d, BranchTbl tbl)
Select variable with highest action with decay factor d.
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...
IntVarBranch INT_VAR_REGRET_MAX_MIN(BranchTbl tbl)
Select variable with smallest max-regret.
FloatVarBranch FLOAT_VAR_ACTION_MIN(double d, BranchTbl tbl)
Select variable with lowest action with decay factor d.
int bab(Space *root, const Gist::Options &opt)
Create a new stand-alone Gist for branch-and-bound search of root.
IntValBranch INT_VAL_MED(void)
Select greatest value not greater than the median.
IntVarBranch INT_VAR_ACTION_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest action divided by domain size with decay factor d.
IntVarBranch INT_VAR_MAX_MIN(BranchTbl tbl)
Select variable with smallest max.
FloatVarBranch FLOAT_VAR_CHB_MIN(BranchTbl tbl)
Select variable with lowest CHB Q-score.
IntVarBranch INT_VAR_REGRET_MAX_MAX(BranchTbl tbl)
Select variable with largest max-regret.
FloatTestSpace(FloatTestSpace &s)
Constructor for cloning s.
SpaceStatus status(StatusStatistics &stat=unused_status)
Query space status.
int arity
Number of variables.
int bool_val(const Gecode::Space &, Gecode::BoolVar x, int)
Test function for branch value function.
BoolVarBranch BOOL_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
IntVarBranch INT_VAR_CHB_MAX(IntCHB c, BranchTbl tbl)
Select variable with largest CHB Q-score.
Recording CHB for Boolean variables.
BoolTestSpace(int n)
Initialize test space.
virtual void post(Gecode::Space &home, Gecode::FloatVarArray &x)=0
Post propagators on variables x.
SetValBranch SET_VAL(SetBranchVal v, SetBranchCommit c)
Select value as defined by the value function v and commit function c.
FloatVarBranch FLOAT_VAR_MIN_MIN(BranchTbl tbl)
Select variable with smallest min.
IntValBranch INT_VAL_SPLIT_MIN(void)
Select values not greater than mean of smallest and largest value.
BoolValBranch BOOL_VAL(BoolBranchVal v, BoolBranchCommit c)
Select value as defined by the value function v and commit function c Uses a commit function as defau...
Gecode toplevel namespace
const int n_int_val_branch
Number of integer value selections.
IntTestSpace(int n, Gecode::IntSet &d)
Initialize test space.
BoolVarBranch BOOL_VAR_CHB_MIN(BoolCHB c, BranchTbl tbl)
Select variable with lowest CHB Q-score.
SetVarBranch SET_VAR_ACTION_MAX(double d, BranchTbl tbl)
SetVarBranch SET_VAR_MIN_MIN(BranchTbl tbl)
SetVarBranch SET_VAR_CHB_MIN(BranchTbl tbl)
BoolVarBranch BOOL_VAR_MERIT_MAX(BoolBranchMerit bm, BranchTbl tbl)
Select variable with highest merit according to branch merit function bm.
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest action divided by domain size with decay factor d.
Which variable to select for branching.
IntVarBranch INT_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
Select variable with smallest degree divided by domain size.
Gecode::FloatNumBranch float_val(const Gecode::Space &, Gecode::FloatVar x, int)
Test function for branch value function.
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...
SetVarBranch SET_VAR_AFC_SIZE_MAX(double d, BranchTbl tbl)
FloatTest(const std::string &s, int a, const Gecode::FloatVal &d, int nbs)
Construct and register test.
FloatVarBranch FLOAT_VAR_MAX_MAX(BranchTbl tbl)
Select variable with largest max.
const char * bool_val_branch_name[]
Names for Boolean value selections.
Gecode::FloatVarArray x
Variables to be tested.
FloatVarBranch FLOAT_VAR_MERIT_MAX(FloatBranchMerit bm, BranchTbl tbl)
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.
FloatVarBranch FLOAT_VAR_ACTION_MAX(double d, BranchTbl tbl)
Select variable with highest action with decay factor d.
SetVarBranch SET_VAR_ACTION_SIZE_MAX(double d, BranchTbl tbl)
FloatVarBranch FLOAT_VAR_MAX_MIN(BranchTbl tbl)
Select variable with smallest max.
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
Select variable with largest degree divided by domain size.
Depth-first search engine.
SetVarBranch SET_VAR_ACTION_SIZE_MIN(double d, BranchTbl tbl)
Recording actions for integer variables.
int arity
Number of variables.
int solutions(TestSpace *c, Gecode::Search::Options &o, int maxNbSol=-1)
Find number of solutions.
IntVarBranch INT_VAR_ACTION_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest action divided by domain size with decay factor d.
int int_val(const Gecode::Space &, Gecode::IntVar x, int)
Test function for branch value function.
FloatVarBranch FLOAT_VAR_CHB_MAX(BranchTbl tbl)
Select variable with highest CHB Q-score.
const int n_int_var_branch
Number of integer variable selections.
SetVarBranch SET_VAR_ACTION_MIN(double d, BranchTbl tbl)