52 Branch::postviewvaluesbrancher<1,true>(home,xv,vs,bf,vvp);
55 Branch::postviewvaluesbrancher<1,false>(home,xv,vs,bf,vvp);
58 postviewvalbrancher<IntView,1,int,2>
71 vars.
a.expand(home,
x);
75 vars.
b.expand(home,
x);
79 vars.
c.expand(home,
x);
83 vars.
d.expand(home,
x);
94 Branch::postviewvaluesbrancher<2,true>(home,xv,vs,bf,vvp);
97 Branch::postviewvaluesbrancher<2,false>(home,xv,vs,bf,vvp);
100 postviewvalbrancher<IntView,2,int,2>
110 Branch::postviewvaluesbrancher<3,true>(home,xv,vs,bf,vvp);
113 Branch::postviewvaluesbrancher<3,false>(home,xv,vs,bf,vvp);
116 postviewvalbrancher<IntView,3,int,2>
126 Branch::postviewvaluesbrancher<4,true>(home,xv,vs,bf,vvp);
129 Branch::postviewvaluesbrancher<4,false>(home,xv,vs,bf,vvp);
132 postviewvalbrancher<IntView,4,int,2>
152 if (home.
failed())
return;
157 postviewvalbrancher<IntView,1,int,1>
167 if (home.
failed())
return;
168 vars.
a.expand(home,
x);
172 vars.
b.expand(home,
x);
176 vars.
c.expand(home,
x);
180 vars.
d.expand(home,
x);
189 postviewvalbrancher<IntView,2,int,1>
196 postviewvalbrancher<IntView,3,int,1>
203 postviewvalbrancher<IntView,4,int,1>
222 if (home.
failed())
return;
228 postviewvalbrancher<BoolView,1,int,2>
238 if (home.
failed())
return;
239 vars.
a.expand(home,
x);
243 vars.
b.expand(home,
x);
247 vars.
c.expand(home,
x);
251 vars.
d.expand(home,
x);
262 postviewvalbrancher<BoolView,2,int,2>(home,xv,vs,vsc,bf,vvp);
268 postviewvalbrancher<BoolView,3,int,2>(home,xv,vs,vsc,bf,vvp);
274 postviewvalbrancher<BoolView,4,int,2>(home,xv,vs,vsc,bf,vvp);
291 if (home.
failed())
return;
296 postviewvalbrancher<BoolView,1,int,1>
306 if (home.
failed())
return;
307 vars.
a.expand(home,
x);
311 vars.
b.expand(home,
x);
315 vars.
c.expand(home,
x);
319 vars.
d.expand(home,
x);
330 postviewvalbrancher<BoolView,2,int,1>(home,xv,vs,vsc,bf,vvp);
336 postviewvalbrancher<BoolView,3,int,1>(home,xv,vs,vsc,bf,vvp);
342 postviewvalbrancher<BoolView,4,int,1>(home,xv,vs,vsc,bf,vvp);
353 #ifdef GECODE_HAS_CBS
356 cbsbranch(Home home,
const IntVarArgs&
x) {
358 if (home.failed())
return;
359 ViewArray<IntView> y(home,
x);
364 cbsbranch(Home home,
const BoolVarArgs&
x) {
366 if (home.failed())
return;
367 ViewArray<BoolView>
y(home,
x);
Node * x
Pointer to corresponding Boolean expression node.
Which values to select for assignment.
Which values to select for branching first.
Passing Boolean variables.
Which Boolean variable to select for branching.
void expand(Home home, const BoolVarArgs &x)
Expand decay factor into AFC or action.
@ SEL_RND
Random (uniform, for tie breaking)
@ SEL_NONE
First unassigned.
Boolean integer variables.
Home class for posting propagators
bool failed(void) const
Check whether corresponding space is failed.
Which values to select for assignment.
Which values to select for branching first.
@ SEL_VALUES_MIN
Select all values starting from smallest.
@ SEL_VALUES_MAX
Select all values starting from largest.
Select select(void) const
Return selection strategy.
Passing integer variables.
Which integer variable to select for branching.
void expand(Home home, const IntVarArgs &x)
Expand AFC, action, and CHB.
@ SEL_RND
Random (uniform, for tie breaking)
@ SEL_NONE
First unassigned.
Combine variable selection criteria for tie-breaking.
VarBranch a
Branching criteria to try in order.
Base class for value selection and commit.
Select the first unassigned view.
Abstract class for view selection.
std::function< void(const Space &home, const Brancher &b, unsigned int a, IntVar x, int i, const int &n, std::ostream &o)> IntVarValPrint
Function type for printing branching alternatives for integer variables.
std::function< void(const Space &home, const Brancher &b, unsigned int a, BoolVar x, int i, const int &n, std::ostream &o)> BoolVarValPrint
Function type for printing branching alternatives for Boolean variables.
Post propagator for SetVar SetOpType SetVar y
void post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
std::function< bool(const Space &home, IntVar x, int i)> IntBranchFilter
Branch filter function type for integer variables.
std::function< bool(const Space &home, BoolVar x, int i)> BoolBranchFilter
Branch filter function type for Boolean variables.
void branch(Home home, SetVar x, SetValBranch vals, SetVarValPrint vvp)
Branch over x with value selection vals.
void assign(Home home, SetVar x, SetAssign vars, SetVarValPrint vvp)
Assign x with value selection vals.
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
BoolVarBranch BOOL_VAR_NONE(void)
Select first unassigned variable.
IntPropLevel ba(IntPropLevel ipl)
Extract basic or advanced from propagation level.
ViewSel< IntView > * viewsel(Space &home, const IntVarBranch &ivb)
Return view selectors for integer views.
ValSelCommitBase< IntView, int > * valselcommit(Space &home, const IntValBranch &ivb)
Return value and commit for integer views.