54 postviewvalbrancher<SetView,1,int,2>
65 vars.
a.expand(home,x);
69 vars.
b.expand(home,x);
73 vars.
c.expand(home,x);
77 vars.
d.expand(home,x);
79 branch(home,x,vars.
a,vals,bf,vvp);
87 postviewvalbrancher<SetView,2,int,2>(home,xv,vs,vsc,bf,vvp);
93 postviewvalbrancher<SetView,3,int,2>(home,xv,vs,vsc,bf,vvp);
99 postviewvalbrancher<SetView,4,int,2>(home,xv,vs,vsc,bf,vvp);
115 if (home.
failed())
return;
120 postviewvalbrancher<SetView,1,int,1>
127 assign(home, xv, sa,
nullptr, vvp);
Which values to select for branching first.
Combine variable selection criteria for tie-breaking.
void branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf, FloatVarValPrint vvp)
Branch over x with variable selection vars and value selection vals.
Abstract class for view selection.
Expand and CHB void expand(Home home, const SetVarArgs &x)
SetVarBranch SET_VAR_NONE(void)
Base class for value selection and commit.
Select the first unassigned view.
ViewSel< SetView > * viewsel(Space &home, const SetVarBranch &svb)
Return view selectors for set views.
bool failed(void) const
Check whether corresponding space is failed.
ValSelCommitBase< SetView, int > * valselcommit(Space &home, const SetValBranch &svb)
Return value and commit for set views.
Function type for printing branching alternatives for set variables typedef std::function< void(const Space &home, const Brancher &b, unsigned int a, SetVar x, int i, const int &n, std::ostream &o)> SetVarValPrint
VarBranch a
Branching criteria to try in order.
std::function< bool(const Space &home, SetVar x, int i)> SetBranchFilter
Branch filter function type for set variables.
Post propagator for SetVar x
Random (uniform, for tie breaking)
Which value to select for assignment.
Gecode toplevel namespace
Which variable to select for branching.
void assign(Home home, const FloatVarArgs &x, FloatAssign fa, FloatBranchFilter bf, FloatVarValPrint vvp)
Assign all x with value selection vals.
Home class for posting propagators