permlib
0.2.8
Library for permutation computations
|
subgroup search for a group intersection based on classical backtracking More...
#include <intersection_search.h>
Public Types | |
typedef BacktrackSearch < BSGSIN, TRANSRET >::PERM | PERM |
typedef BacktrackSearch < BSGSIN, TRANSRET >::TRANS | TRANS |
![]() | |
typedef BaseSearch< BSGSIN, TRANSRET >::PERM | PERM |
typedef BaseSearch< BSGSIN, TRANSRET >::TRANS | TRANS |
![]() | |
typedef BSGSIN::PERMtype | PERM |
typedef BSGSIN::TRANStype | TRANS |
typedef std::list< typename PERM::ptr > | PERMlistType |
Public Member Functions | |
IntersectionSearch (const BSGSIN &bsgs, unsigned int pruningLevelDCM) | |
constructor More... | |
void | construct (BSGSIN *bsgs2) |
initializes search More... | |
![]() | |
BacktrackSearch (const BSGSIN &bsgs, unsigned int pruningLevelDCM, bool breakAfterChildRestriction=false, bool stopAfterFirstElement=false) | |
constructor More... | |
void | search (BSGS< PERM, TRANSRET > &groupK) |
searches for a subgroup and stores it into groupK | |
virtual BaseSearch< BSGSIN, TRANSRET >::PERM::ptr | searchCosetRepresentative (BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL) |
searches for a coset representative if one exists More... | |
![]() | |
BaseSearch (const BSGSIN &bsgs, unsigned int pruningLevelDCM, bool stopAfterFirstElement) | |
constructor More... | |
virtual | ~BaseSearch () |
destructor | |
bool | minOrbit (unsigned long alpha, BSGS< PERM, TRANSRET > &groupK, unsigned int i, unsigned long beta_i) const |
finds minimal elements in an orbit More... | |
virtual PERM::ptr | searchCosetRepresentative () |
searches for a coset representative if one exists | |
Additional Inherited Members | |
![]() | |
unsigned long | m_statNodesVisited |
nodes visited during backtrack search | |
unsigned long | m_statNodesPrunedCosetMinimality |
number of nodes where (simple) double coset minimality pruning was in effect | |
unsigned long | m_statNodesPrunedCosetMinimality2 |
number of nodes where advanced double coset minimality pruning with base change was in effect | |
unsigned long | m_statNodesPrunedChildRestriction |
number of nodes where a child constraint pruning was in effect | |
![]() | |
virtual const std::vector < dom_int > & | subgroupBase () const |
base of the sought subgroup | |
void | construct (SubgroupPredicate< PERM > *pred, bool addPredRefinement) |
initializes the search | |
unsigned int | search (const PERM &t, unsigned int level, unsigned int &completed, BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL) |
recursive backtrack search | |
![]() | |
BSGSIN | m_bsgs |
main BSGS to search in | |
BSGSIN * | m_bsgs2 |
second BSGS of a group the sough elements have to member of | |
boost::scoped_ptr < SubgroupPredicate< PERM > > | m_pred |
predicate that matches sought elements | |
std::vector< unsigned long > | m_order |
base point order | |
boost::scoped_ptr < BaseSorterByReference > | m_sorter |
a sorter with respect to m_order | |
ConjugatingBaseChange< PERM, TRANS, RandomBaseTranspose < PERM, TRANS > > | m_baseChange |
base change algorithm | |
const unsigned int | m_pruningLevelDCM |
leves i with 0 <= i < m_pruningLevelDCM are prunged by advanced double coset minimality | |
bool | m_limitInitialized |
true iff other m_limit variables have been initialized | |
unsigned int | m_limitBase |
number of base points that correspond to maximal backtrack level m_limitLevel | |
unsigned int | m_limitLevel |
maximal backtrack level | |
const bool | m_stopAfterFirstElement |
true iff the search can be stopped after the first element found with the desired property | |
PERM::ptr | m_lastElement |
last element found with desired property; only used if m_stopAfterFirstElement is true | |
subgroup search for a group intersection based on classical backtracking
permlib::classic::IntersectionSearch< BSGSIN, TRANSRET >::IntersectionSearch | ( | const BSGSIN & | bsgs, |
unsigned int | pruningLevelDCM | ||
) |
constructor
bsgs | BSGS of first group |
pruningLevelDCM | level up to which expensive double coset minimality pruning is performed; zero to disable |
void permlib::classic::IntersectionSearch< BSGSIN, TRANSRET >::construct | ( | BSGSIN * | bsgs2) |
initializes search
bsgs2 | BSGS of second group for intersection |