Generated on Fri Oct 19 11:26:12 2018 for Gecode by doxygen 1.6.3

Gecode::Int::LDSB Namespace Reference

Symmetry breaking for integer variables. More...

Classes

class  VariableMap
 Map from variable implementation to index. More...
class  Literal
 A Literal is a pair of variable index and value. More...
class  SymmetryObject
 Implementation of a symmetry at the modelling level. More...
class  VariableSymmetryObject
 Implementation of a variable symmetry at the modelling level. More...
class  ValueSymmetryObject
 Implementation of a value symmetry at the modelling level. More...
class  VariableSequenceSymmetryObject
 Implementation of a variable sequence symmetry at the modelling level. More...
class  ValueSequenceSymmetryObject
 Implementation of a value sequence symmetry at the modelling level. More...
class  SymmetryImp
 Implementation of a single symmetry. More...
class  VariableSymmetryImp
 Implementation of a variable symmetry. More...
class  ValueSymmetryImp
 Implementation of a value symmetry. More...
class  VariableSequenceSymmetryImp
 Implementation of a variable sequence symmetry. More...
class  ValueSequenceSymmetryImp
 Implementation of a value sequence symmetry. More...
class  LDSBChoice
 Choice storing position and value, and symmetric literals to be excluded on the right branch. More...
class  LDSBBrancher
 Symmetry-breaking brancher with generic view and value selection. More...

Functions

template<>
ModEvent prune< Int::IntView > (Space &home, Int::IntView x, int v)
template<>
ModEvent prune< Int::BoolView > (Space &home, Int::BoolView x, int v)
template<class View , int n, class Val , unsigned int a>
void postldsbbrancher (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)
 Post LDSB brancher.
template<class T , class A >
ArgArray< T > dynamicStackToArgArray (const Support::DynamicStack< T, A > &s)
 Convert a DynamicStack<T,A> into an ArgArray<T>
std::pair< int, int > findVar (int *indices, unsigned int n_values, unsigned int seq_size, int index)
 Find the location of an integer in a collection of sequences.
SymmetryImp< IntView > * createIntSym (Space &home, const SymmetryHandle &s, VariableMap variableMap)
 Create an integer symmetry implementation from a symmetry handle.
SymmetryImp< BoolView > * createBoolSym (Space &home, const SymmetryHandle &s, VariableMap variableMap)
 Create a boolean symmetry implementation from a symmetry handle.
template<class View >
ModEvent prune (Space &home, View x, int v)
 Exclude value from variable view .
template<>
ModEvent prune< Set::SetView > (Space &home, Set::SetView x, int v)

Detailed Description

Symmetry breaking for integer variables.


Function Documentation

template<>
ModEvent Gecode::Int::LDSB::prune< Int::IntView > ( Space &  home,
Int::IntView  x,
int  v 
) [inline]
template<>
ModEvent Gecode::Int::LDSB::prune< Int::BoolView > ( Space &  home,
Int::BoolView  x,
int  v 
) [inline]
template<class View , int n, class Val , unsigned int a>
void Gecode::Int::LDSB::postldsbbrancher ( 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]

Post LDSB brancher.

template<class T , class A >
ArgArray<T> Gecode::Int::LDSB::dynamicStackToArgArray ( const Support::DynamicStack< T, A > &  s  )  [inline]

Convert a DynamicStack<T,A> into an ArgArray<T>

Definition at line 39 of file sym-imp.hpp.

std::pair< int, int > Gecode::Int::LDSB::findVar ( int *  indices,
unsigned int  n_values,
unsigned int  seq_size,
int  index 
)

Find the location of an integer in a collection of sequences.

Given an array indices of integers (of length n_values), which represents a collection of sequences each of size seq_size, find the location of the first occurrence of the value index. Returns a pair of sequence number and position within that sequence (both zero-based).

SymmetryImp<IntView>* Gecode::Int::LDSB::createIntSym ( Space &  home,
const SymmetryHandle &  s,
VariableMap  variableMap 
)

Create an integer symmetry implementation from a symmetry handle.

Definition at line 140 of file ldsb.cpp.

SymmetryImp<BoolView>* Gecode::Int::LDSB::createBoolSym ( Space &  home,
const SymmetryHandle &  s,
VariableMap  variableMap 
)

Create a boolean symmetry implementation from a symmetry handle.

Definition at line 197 of file ldsb.cpp.

template<class View >
ModEvent Gecode::Int::LDSB::prune ( Space &  home,
View  x,
int  v 
) [inline]

Exclude value from variable view .

template<>
ModEvent Gecode::Int::LDSB::prune< Set::SetView > ( Space &  home,
Set::SetView  x,
int  v 
) [inline]