
Symmetry breaking for set variables. More...
Classes | |
| 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) |
Symmetry breaking for set variables.
| 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 nullptr if the intersection has fewer than two elements.
Definition at line 100 of file brancher.hpp.
|
inline |
Definition at line 267 of file brancher.hpp.