49 #ifdef GECODE_HAS_SET_VARS
52 #ifdef GECODE_HAS_FLOAT_VARS
58 namespace Test {
namespace Branch {
62 return (w + (
b-w)/2.0);
77 vara(Gecode::INT_VAR_NONE()),
varb(Gecode::INT_VAR_NONE()),
78 val(Gecode::INT_VAL_MIN()) {}
97 :
x(*this,
n, 0, 1) {}
109 #ifdef GECODE_HAS_SET_VARS
117 :
x(*this,
n, Gecode::IntSet::empty,
d) {}
130 #ifdef GECODE_HAS_FLOAT_VARS
157 const char* int_var_branch_name[] = {
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"
191 const int n_int_var_branch =
192 sizeof(int_var_branch_name)/
sizeof(
const char*);
194 const char* bool_var_branch_name[] = {
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",
210 const int n_bool_var_branch =
211 sizeof(bool_var_branch_name)/
sizeof(
const char*);
221 const char* int_val_branch_name[] = {
235 const int n_int_val_branch =
236 sizeof(int_val_branch_name)/
sizeof(
const char*);
238 const char* bool_val_branch_name[] = {
245 const int n_bool_val_branch =
246 sizeof(bool_val_branch_name)/
sizeof(
const char*);
257 #ifdef GECODE_HAS_SET_VARS
264 const char* set_var_branch_name[] = {
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"
294 const int n_set_var_branch =
295 sizeof(set_var_branch_name)/
sizeof(
const char*);
301 const char* set_val_branch_name[] = {
313 const int n_set_val_branch =
314 sizeof(set_val_branch_name)/
sizeof(
const char*);
323 #ifdef GECODE_HAS_FLOAT_VARS
330 const char* float_var_branch_name[] = {
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"
360 const int n_float_var_branch =
361 sizeof(float_var_branch_name)/
sizeof(
const char*);
364 return static_cast<double>(
x.degree());
367 const char* float_val_branch_name[] = {
368 "FLOAT_VAL_SPLIT_MIN",
369 "FLOAT_VAL_SPLIT_MAX",
370 "FLOAT_VAL_SPLIT_RND",
374 const int n_float_val_branch =
375 sizeof(float_val_branch_name)/
sizeof(
const char*);
390 RunInfo(
const std::string& vara,
const std::string& varb,
391 const std::string& valname,
395 o <<
"(" <<
var <<
", " <<
val <<
", " <<
a_d <<
", " <<
c_d <<
")";
408 namespace Test {
namespace Branch {
411 template<
class TestSpace>
422 if (ex == NULL)
break;
425 if ((maxNbSol >= 0) && (maxNbSol == s))
break;
431 :
Base(
"Int::Branch::"+s), arity(
a), dom(
d) {
440 using namespace Gecode;
443 map<int, vector<RunInfo> > results;
446 post(*root, root->
x);
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++) {
468 case 8: ivb =
INT_VAL(&int_val);
break;
475 if ((vara == 0) && (val < 11)) {
476 for (
int i=0;
i<
c->
x.size();
i++)
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;
614 using namespace Gecode;
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++) {
634 case 3: bvb =
BOOL_VAL(&bool_val);
break;
640 for (
int i=0;
i<
c->
x.size();
i++)
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
745 using namespace Gecode;
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++) {
770 case 8: svb =
SET_VAL(&set_val);
break;
776 for (
int i=0;
i<
c->
x.size();
i++)
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
908 using namespace Gecode;
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++) {
928 case 3: fvb =
FLOAT_VAL(&float_val);
break;
933 for (
int i=0;
i<
c->
x.size();
i++)
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;
struct Gecode::@602::NNF::@65::@66 b
For binary nodes (and, or, eqv)
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.
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.
std::basic_ostream< Char, Traits > & operator<<(std::basic_ostream< Char, Traits > &os, const FloatView &x)
Print float variable view.
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.
void update(Space &home, VarArray< Var > &a)
Update array to be a clone of array a.
Base class for all tests to be run
static Gecode::Support::RandomGenerator rand
Random number generator.
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.
Gecode::FloatNumBranch float_val(const Gecode::Space &, Gecode::FloatVar x, int)
Test function for branch value function.
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.
virtual Gecode::Space * copy(void)
Copy space during cloning.
FloatTestSpace(int n, Gecode::FloatVal &d)
Initialize test space.
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.
Gecode::IntVarBranch varb
Gecode::IntValBranch val
Varlue selection criterion.
IntTestSpace(IntTestSpace &s)
Constructor for cloning s.
Gecode::IntVarBranch vara
Variable selection criteria.
virtual Gecode::Space * copy(void)
Copy space during cloning.
int int_val(const Gecode::Space &, Gecode::IntVar x, int)
Test function for branch value function.
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.
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.
double set_merit(const Gecode::Space &, Gecode::SetVar, int)
Test function for branch merit function.
Gecode::SetVarArray x
Variables to be tested.
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.
FloatValBranch FLOAT_VAL_SPLIT_MAX(void)
Select values greater than mean of smallest and largest value.
FloatValBranch FLOAT_VAL(FloatBranchVal v, FloatBranchCommit c)
FloatValBranch FLOAT_VAL_SPLIT_RND(Rnd r)
Select values randomly which are not greater or not smaller than mean of largest and smallest value.
FloatValBranch FLOAT_VAL_SPLIT_MIN(void)
Select values not greater than mean of smallest and largest value.
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
Select variable with largest degree divided by domain size.
FloatVarBranch FLOAT_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
Select variable with smallest degree divided by domain size.
FloatVarBranch FLOAT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
FloatVarBranch FLOAT_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
FloatVarBranch FLOAT_VAR_SIZE_MAX(BranchTbl tbl)
Select variable with largest domain size.
FloatVarBranch FLOAT_VAR_MAX_MAX(BranchTbl tbl)
Select variable with largest max.
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_CHB_SIZE_MAX(BranchTbl tbl)
Select variable with largest CHB Q-score divided by domain size.
FloatVarBranch FLOAT_VAR_CHB_MIN(BranchTbl tbl)
Select variable with lowest CHB Q-score.
FloatVarBranch FLOAT_VAR_CHB_SIZE_MIN(BranchTbl tbl)
Select variable with smallest CHB Q-score divided by domain size.
FloatVarBranch FLOAT_VAR_ACTION_MAX(double d, BranchTbl tbl)
Select variable with highest action with decay factor d.
FloatVarBranch FLOAT_VAR_CHB_MAX(BranchTbl tbl)
Select variable with highest CHB Q-score.
FloatVarBranch FLOAT_VAR_MIN_MIN(BranchTbl tbl)
Select variable with smallest min.
FloatVarBranch FLOAT_VAR_MAX_MIN(BranchTbl tbl)
Select variable with smallest max.
FloatVarBranch FLOAT_VAR_ACTION_MIN(double d, BranchTbl tbl)
Select variable with lowest action with decay factor d.
FloatVarBranch FLOAT_VAR_NONE(void)
Select first unassigned variable.
FloatVarBranch FLOAT_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest action divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_MIN_MAX(BranchTbl tbl)
Select variable with largest min.
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.
FloatVarBranch FLOAT_VAR_MERIT_MIN(FloatBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
FloatVarBranch FLOAT_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
FloatVarBranch FLOAT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
FloatVarBranch FLOAT_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
FloatVarBranch FLOAT_VAR_ACTION_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest action divided by domain size with decay factor d.
FloatVarBranch FLOAT_VAR_MERIT_MAX(FloatBranchMerit bm, BranchTbl tbl)
Select variable with highest merit according to branch merit function bm.
void dom(Home home, FloatVar x, FloatVal n)
Propagates .
int bab(Space *root, const Gist::Options &opt)
Create a new stand-alone Gist for branch-and-bound search of root.
Space(void)
Default constructor.
void branch(Home home, SetVar x, SetValBranch vals, SetVarValPrint vvp)
Branch over x with value selection vals.
SpaceStatus status(StatusStatistics &stat=unused_status)
Query space status.
Space * clone(CloneStatistics &stat=unused_clone) const
Clone space.
IntValBranch INT_VAL_SPLIT_MIN(void)
Select values not greater than mean of smallest and largest value.
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)
Select value as defined by the value function v and commit function c Uses a commit function as defau...
IntValBranch INT_VALUES_MAX(void)
Try all values starting from largest.
IntValBranch INT_VAL_MED(void)
Select greatest value not greater than the median.
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...
BoolValBranch BOOL_VAL_MIN(void)
Select smallest value.
IntValBranch INT_VALUES_MIN(void)
Try all values starting from smallest.
IntValBranch INT_VAL_MAX(void)
Select largest value.
BoolValBranch BOOL_VAL_MAX(void)
Select largest value.
IntValBranch INT_VAL_SPLIT_MAX(void)
Select values greater than mean of smallest and largest value.
IntValBranch INT_VAL_MIN(void)
Select smallest value.
BoolValBranch BOOL_VAL_RND(Rnd r)
Select random value.
IntValBranch INT_VAL_RND(Rnd r)
Select random value.
BoolVarBranch BOOL_VAR_CHB_MIN(BoolCHB c, BranchTbl tbl)
Select variable with lowest CHB Q-score.
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.
IntVarBranch INT_VAR_CHB_SIZE_MIN(IntCHB c, BranchTbl tbl)
Select variable with smallest CHB Q-score divided by domain size.
IntVarBranch INT_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
IntVarBranch INT_VAR_REGRET_MIN_MIN(BranchTbl tbl)
Select variable with smallest min-regret.
IntVarBranch INT_VAR_ACTION_MAX(double d, BranchTbl tbl)
Select variable with highest action with decay factor d.
IntVarBranch INT_VAR_REGRET_MIN_MAX(BranchTbl tbl)
Select variable with largest min-regret.
IntVarBranch INT_VAR_ACTION_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest action divided by domain size with decay factor d.
BoolVarBranch BOOL_VAR_MERIT_MIN(BoolBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
IntVarBranch INT_VAR_CHB_MIN(IntCHB c, BranchTbl tbl)
Select variable with lowest CHB Q-score.
BoolVarBranch BOOL_VAR_NONE(void)
Select first unassigned variable.
IntVarBranch INT_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
IntVarBranch INT_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
IntVarBranch INT_VAR_REGRET_MAX_MAX(BranchTbl tbl)
Select variable with largest max-regret.
IntVarBranch INT_VAR_CHB_MAX(IntCHB c, BranchTbl tbl)
Select variable with largest CHB Q-score.
BoolVarBranch BOOL_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
BoolVarBranch BOOL_VAR_ACTION_MIN(double d, BranchTbl tbl)
Select variable with lowest action with decay factor d.
BoolVarBranch BOOL_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
IntVarBranch INT_VAR_MAX_MIN(BranchTbl tbl)
Select variable with smallest max.
BoolVarBranch BOOL_VAR_AFC_MIN(double d, BranchTbl tbl)
Select variable with smallest accumulated failure count with decay factor d.
BoolVarBranch BOOL_VAR_AFC_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count with decay factor d.
BoolVarBranch BOOL_VAR_CHB_MAX(BoolCHB c, BranchTbl tbl)
Select variable with largest CHB Q-score.
IntVarBranch INT_VAR_MAX_MAX(BranchTbl tbl)
Select variable with largest max.
IntVarBranch INT_VAR_ACTION_MIN(double d, BranchTbl tbl)
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, BranchTbl tbl)
Select variable with smallest accumulated failure count divided by domain size with decay factor d.
IntVarBranch INT_VAR_DEGREE_MIN(BranchTbl tbl)
Select variable with smallest degree.
IntVarBranch INT_VAR_REGRET_MAX_MIN(BranchTbl tbl)
Select variable with smallest max-regret.
IntVarBranch INT_VAR_MERIT_MIN(IntBranchMerit bm, BranchTbl tbl)
Select variable with least merit according to branch merit function bm.
IntVarBranch INT_VAR_CHB_SIZE_MAX(IntCHB c, BranchTbl tbl)
Select variable with largest CHB Q-score divided by domain size.
IntVarBranch INT_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
Select variable with largest degree divided by domain size.
IntVarBranch INT_VAR_MERIT_MAX(IntBranchMerit bm, BranchTbl tbl)
Select variable with highest merit according to branch merit function bm.
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
BoolVarBranch BOOL_VAR_DEGREE_MAX(BranchTbl tbl)
Select variable with largest degree.
IntVarBranch INT_VAR_ACTION_SIZE_MIN(double d, BranchTbl tbl)
Select variable with smallest action divided by domain size 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_MIN_MAX(BranchTbl tbl)
Select variable with largest min.
BoolVarBranch BOOL_VAR_MERIT_MAX(BoolBranchMerit bm, BranchTbl tbl)
Select variable with highest merit according to branch merit function bm.
IntVarBranch INT_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
Select variable with smallest degree divided by domain size.
IntVarBranch INT_VAR_MIN_MIN(BranchTbl tbl)
Select variable with smallest min.
IntVarBranch INT_VAR_SIZE_MAX(BranchTbl tbl)
Select variable with largest domain size.
const FloatNum max
Largest allowed float value.
const FloatNum min
Smallest allowed float value.
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.
Gecode::FloatVal c(-8, 8)
Gecode::IntArgs i({1, 2, 3, 4})
LDSB< TieBreak > tiebreak("TieBreak")
SetValBranch SET_VAL_MED_INC(void)
SetValBranch SET_VAL_RND_INC(Rnd r)
SetValBranch SET_VAL_MAX_INC(void)
SetValBranch SET_VAL(SetBranchVal v, SetBranchCommit c)
Select value as defined by the value function v and commit function c.
SetValBranch SET_VAL_MED_EXC(void)
SetValBranch SET_VAL_RND_EXC(Rnd r)
SetValBranch SET_VAL_MIN_INC(void)
SetValBranch SET_VAL_MIN_EXC(void)
SetValBranch SET_VAL_MAX_EXC(void)
SetVarBranch SET_VAR_DEGREE_SIZE_MAX(BranchTbl tbl)
SetVarBranch SET_VAR_ACTION_MAX(double d, BranchTbl tbl)
SetVarBranch SET_VAR_ACTION_MIN(double d, BranchTbl tbl)
SetVarBranch SET_VAR_AFC_SIZE_MAX(double d, BranchTbl tbl)
SetVarBranch SET_VAR_CHB_SIZE_MIN(BranchTbl tbl)
SetVarBranch SET_VAR_ACTION_SIZE_MAX(double d, BranchTbl tbl)
SetVarBranch SET_VAR_AFC_MAX(double d, BranchTbl tbl)
SetVarBranch SET_VAR_NONE(void)
SetVarBranch SET_VAR_MAX_MIN(BranchTbl tbl)
SetVarBranch SET_VAR_MERIT_MAX(SetBranchMerit bm, BranchTbl tbl)
SetVarBranch SET_VAR_SIZE_MAX(BranchTbl tbl)
SetVarBranch SET_VAR_SIZE_MIN(BranchTbl tbl)
SetVarBranch SET_VAR_DEGREE_MAX(BranchTbl tbl)
SetVarBranch SET_VAR_CHB_MIN(BranchTbl tbl)
SetVarBranch SET_VAR_RND(Rnd r)
SetVarBranch SET_VAR_CHB_SIZE_MAX(BranchTbl tbl)
SetVarBranch SET_VAR_CHB_MAX(BranchTbl tbl)
SetVarBranch SET_VAR_MIN_MAX(BranchTbl tbl)
SetVarBranch SET_VAR_ACTION_SIZE_MIN(double d, BranchTbl tbl)
SetVarBranch SET_VAR_MIN_MIN(BranchTbl tbl)
SetVarBranch SET_VAR_DEGREE_MIN(BranchTbl tbl)
SetVarBranch SET_VAR_AFC_SIZE_MIN(double d, BranchTbl tbl)
SetVarBranch SET_VAR_DEGREE_SIZE_MIN(BranchTbl tbl)
SetVarBranch SET_VAR_AFC_MIN(double d, BranchTbl tbl)
SetVarBranch SET_VAR_MERIT_MIN(SetBranchMerit bm, BranchTbl tbl)
SetVarBranch SET_VAR_MAX_MAX(BranchTbl tbl)