71 vars.
a.expand(home,
x);
75 vars.
b.expand(home,
x);
79 vars.
c.expand(home,
x);
83 vars.
d.expand(home,
x);
152 if (home.
failed())
return;
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);
222 if (home.
failed())
return;
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);
291 if (home.
failed())
return;
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);
356 cbsbranch(Home home,
const IntVarArgs&
x) {
358 if (home.failed())
return;
359 ViewArray<IntView>
y(home,
x);
360 Branch::CBSBrancher<IntView>::post(home,
y);
366 if (home.failed())
return;
368 Branch::CBSBrancher<BoolView>::post(home,
y);
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.
void assign(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatAssign vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
Assign all x with variable selection vars and value selection vals.
void branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
Branch over x with variable selection vars and value selection vals.
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.
ViewSel< IntView > * viewsel(Space &home, const IntVarBranch &ivb)
Return view selectors for integer views.
void postviewvaluesbrancher(Home home, ViewArray< IntView > &x, ViewSel< IntView > *vs[n], IntBranchFilter bf, IntVarValPrint vvp)
Post brancher for view and values.
ValSelCommitBase< IntView, int > * valselcommit(Space &home, const IntValBranch &ivb)
Return value and commit for integer views.
Gecode toplevel namespace
IntPropLevel ba(IntPropLevel ipl)
Extract basic or advanced from propagation level.
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
BoolVarBranch BOOL_VAR_NONE(void)
Select first unassigned variable.
Post propagator for SetVar SetOpType SetVar y
void postviewvalbrancher(Home home, ViewArray< View > &x, ViewSel< View > *vs[n], ValSelCommitBase< View, Val > *vsc, BranchFilter< typename View::VarType > bf, VarValPrint< typename View::VarType, Val > vvp)
Post view value brancher.
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 x