53 #ifdef GECODE_HAS_SET_VARS 56 #ifdef GECODE_HAS_FLOAT_VARS 62 namespace Test {
namespace Branch {
66 return (w + (
b-w)/2.0);
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 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,
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)) {
447 for (
int i=0;
i<
c->
x.size();
i++)
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)) {
616 for (
int i=0;
i<
c->
x.size();
i++)
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;
775 SetTestSpace*
c = static_cast<SetTestSpace*>(root->clone(
false));
778 for (
int i=0;
i<
c->
x.size();
i++)
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 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++)
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.
int size(void) const
Return size of array (number of elements)
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.
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 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)
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.
struct Gecode::@511::NNF::@54::@55 b
For binary nodes (and, or, eqv)
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.
void print(std::ostream &o) const
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.
FloatValImpType x
Implementation of float value.
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.
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.
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.
struct Gecode::@511::NNF::@54::@56 a
For atomic nodes.
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.
Space * clone(bool share=true, CloneStatistics &stat=unused_clone) const
Clone space.
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.
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.
Gecode toplevel namespace
IntVarBranch INT_VAR_MAX_MIN(BranchTbl tbl)
Select variable with smallest max.
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.
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.
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.
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.