Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print > Class Template Reference
Symmetry-breaking brancher with generic view and value selection. More...
#include <ldsb.hh>
Public Member Functions | |
LDSBSetBrancher (Space &home, bool share, LDSBSetBrancher &b) | |
Constructor for cloning b. | |
LDSBSetBrancher (Home home, ViewArray< View > &x, ViewSel< View > *vs[n], ValSelCommitBase< View, Val > *vsc, SymmetryImp< View > **syms, int nsyms, BranchFilter< Var > bf, VarValPrint< Var, Val > vvp) | |
Constructor for creation. | |
virtual const Choice * | choice (Space &home) |
Return choice. | |
virtual ExecStatus | commit (Space &home, const Choice &c, unsigned int b) |
Perform commit for choice c and alternative b. | |
virtual Actor * | copy (Space &home, bool share) |
Perform cloning. | |
template<class View0 , int n0, class Val0 , unsigned int a0> | |
void | postldsbsetbrancher (Home home, ViewArray< View0 > &x, ViewSel< View0 > *vs[n0], ValSelCommitBase< View0, Val0 > *vsc, SymmetryImp< View0 > **syms, int nsyms, BranchFilter< typename View0::VarType > bf, VarValPrint< typename View0::VarType, Val0 > vvp) |
Post LDSB brancher. | |
void | updatePart1 (Space &home, int choicePos) |
Part one of the update phase. | |
Static Public Member Functions | |
static void | post (Home home, ViewArray< View > &x, ViewSel< View > *vs[n], ValSelCommitBase< View, Val > *vsc, SymmetryImp< View > **_syms, int _nsyms, BranchFilter< Var > bf, VarValPrint< Var, Val > vvp) |
Brancher post function. | |
Public Attributes | |
int | _prevPos |
Position of previous variable that was branched on. | |
int | _nNonValueSymmetries |
Number of non-value symmetries. | |
int | _nValueSymmetries |
Number of value symmetries. | |
ValueSymmetryImp< View > ** | _copiedSyms |
Copy of value symmetries from the first node where the current variable was branched on. | |
int | _nCopiedSyms |
Number of copied symmetries. | |
IntSet | _leftBranchValues |
Set of values used on left branches for the current variable. | |
bool | _stable |
Is the state of the brancher "stable"? |
Detailed Description
template<class View, int n, class Val, unsigned int a, class Filter, class Print>
class Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >
Symmetry-breaking brancher with generic view and value selection.
Implements view-based branching for an array of views (of type View) on set variables and value (of type Val).
Definition at line 62 of file ldsb.hh.
Constructor & Destructor Documentation
Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::LDSBSetBrancher | ( | Space & | home, | |
bool | share, | |||
LDSBSetBrancher< View, n, Val, a, Filter, Print > & | b | |||
) | [inline] |
Constructor for cloning b.
Definition at line 74 of file brancher.hpp.
Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::LDSBSetBrancher | ( | Home | home, | |
ViewArray< View > & | x, | |||
ViewSel< View > * | vs[n], | |||
ValSelCommitBase< View, Val > * | vsc, | |||
SymmetryImp< View > ** | syms, | |||
int | nsyms, | |||
BranchFilter< Var > | bf, | |||
VarValPrint< Var, Val > | vvp | |||
) | [inline] |
Constructor for creation.
Definition at line 43 of file brancher.hpp.
Member Function Documentation
const Choice * Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::choice | ( | Space & | home | ) | [inline, virtual] |
Return choice.
Reimplemented from Gecode::Int::LDSB::LDSBBrancher< View, n, Val, a, Filter, Print >.
Definition at line 186 of file brancher.hpp.
ExecStatus Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::commit | ( | Space & | home, | |
const Choice & | c, | |||
unsigned int | b | |||
) | [inline, virtual] |
Perform commit for choice c and alternative b.
Reimplemented from Gecode::Int::LDSB::LDSBBrancher< View, n, Val, a, Filter, Print >.
Definition at line 206 of file brancher.hpp.
Actor * Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::copy | ( | Space & | home, | |
bool | share | |||
) | [inline, virtual] |
Perform cloning.
Reimplemented from Gecode::Int::LDSB::LDSBBrancher< View, n, Val, a, Filter, Print >.
Definition at line 251 of file brancher.hpp.
void Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::post | ( | Home | home, | |
ViewArray< View > & | x, | |||
ViewSel< View > * | vs[n], | |||
ValSelCommitBase< View, Val > * | vsc, | |||
SymmetryImp< View > ** | _syms, | |||
int | _nsyms, | |||
BranchFilter< Var > | bf, | |||
VarValPrint< Var, Val > | vvp | |||
) | [inline, static] |
Brancher post function.
Reimplemented from Gecode::Int::LDSB::LDSBBrancher< View, n, Val, a, Filter, Print >.
Definition at line 260 of file brancher.hpp.
void Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::postldsbsetbrancher | ( | Home | home, | |
ViewArray< View0 > & | x, | |||
ViewSel< View0 > * | vs[n0], | |||
ValSelCommitBase< View0, Val0 > * | vsc, | |||
SymmetryImp< View0 > ** | syms, | |||
int | nsyms, | |||
BranchFilter< typename View0::VarType > | bf, | |||
VarValPrint< typename View0::VarType, Val0 > | vvp | |||
) | [inline] |
Post LDSB brancher.
void Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::updatePart1 | ( | Space & | home, | |
int | choicePos | |||
) | [inline] |
Part one of the update phase.
If the branching is at a new variable, restore previously copied value symmetries, do bulk update of values used on left branches for the previous variable, and make fresh copy of resulting value symmetries.
Definition at line 138 of file brancher.hpp.
Member Data Documentation
int Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::_prevPos |
Position of previous variable that was branched on.
Reimplemented from Gecode::Int::LDSB::LDSBBrancher< View, n, Val, a, Filter, Print >.
int Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::_nNonValueSymmetries |
int Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::_nValueSymmetries |
ValueSymmetryImp<View>** Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::_copiedSyms |
int Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::_nCopiedSyms |
IntSet Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::_leftBranchValues |
bool Gecode::Set::LDSB::LDSBSetBrancher< View, n, Val, a, Filter, Print >::_stable |
Is the state of the brancher "stable"?
The brancher is unstable if we are about to run either "choice" or "commit", but "updatePart1" has not been run. After "updatePart1" has been run the brancher is stable, until the second part of the update is done (in commit).
The documentation for this class was generated from the following files:
- gecode/set/ldsb.hh (Revision: 15623)
- gecode/set/ldsb/brancher.hpp (Revision: 15623)