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

SymmetryImp< SetView > * | createSetSym (Space &home, const SymmetryHandle &s, VariableMap variableMap)
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?

## Detailed Description

Symmetry breaking for set variables.

## Function Documentation

## createSetSym()

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

Definition at line 74 of file ldsb.cpp.

## specialUpdate()

template<class View>

ValueSymmetryImp< View > * Gecode::Set::LDSB::specialUpdate | ( | Space & | home,
|  | ValueSymmetryImp< View > * | s,
|  | IntSet | usedValues )

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 100 of file brancher.hpp.

## postldsbsetbrancher()

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 269 of file brancher.hpp.

## equalLUB()

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 41 of file sym-imp.cpp.