Generated on Tue Apr 18 10:24:11 2017 for Gecode by doxygen 1.6.3

Gecode::Set::LDSB Namespace Reference

Symmetry breaking for set variables. More...

Classes

class  VariableMap
 Map from variable implementation to index. More...
class  LDSBSetBrancher
 Symmetry-breaking brancher with generic view and value selection. More...

Functions

template<class View >
ValueSymmetryImp< View > * specialUpdate (Space &home, ValueSymmetryImp< View > *s, IntSet usedValues)
 Bulk update of a value symmetry s, using usedValues.
template<class View , int n, class Val , unsigned int a>
void postldsbsetbrancher (Home home, ViewArray< View > &x, ViewSel< View > *vs[n], ValSelCommitBase< View, Val > *vsc, SymmetryImp< View > **syms, int nsyms, BranchFilter< typename View::VarType > bf, VarValPrint< typename View::VarType, Val > vvp)
bool equalLUB (const Set::SetView &x, const Set::SetView &y)
 Do two set variables have equal least-upper-bounds?
SymmetryImp< SetView > * createSetSym (Space &home, const SymmetryHandle &s, VariableMap variableMap)

Detailed Description

Symmetry breaking for set variables.


Function Documentation

template<class View >
ValueSymmetryImp<View>* Gecode::Set::LDSB::specialUpdate ( Space &  home,
ValueSymmetryImp< View > *  s,
IntSet  usedValues 
) [inline]

Bulk update of a value symmetry s, using usedValues.

Calculates the intersection and difference of the values in the symmetry and usedValues, updates the symmetry to eliminate the used values, and makes a new symmetry containing the intersection values, if there are at least two. Returns the new symmetry, or NULL if the intersection has fewer than two elements.

Definition at line 104 of file brancher.hpp.

template<class View , int n, class Val , unsigned int a>
void Gecode::Set::LDSB::postldsbsetbrancher ( Home  home,
ViewArray< View > &  x,
ViewSel< View > *  vs[n],
ValSelCommitBase< View, Val > *  vsc,
SymmetryImp< View > **  syms,
int  nsyms,
BranchFilter< typename View::VarType >  bf,
VarValPrint< typename View::VarType, Val >  vvp 
) [inline]

Definition at line 271 of file brancher.hpp.

bool Gecode::Set::LDSB::equalLUB ( const Set::SetView &  x,
const Set::SetView &  y 
)

Do two set variables have equal least-upper-bounds?

Definition at line 44 of file sym-imp.cpp.

SymmetryImp<SetView>* Gecode::Set::LDSB::createSetSym ( Space &  home,
const SymmetryHandle &  s,
VariableMap  variableMap 
)

Definition at line 78 of file ldsb.cpp.