permlib::classic::BacktrackSearch< BSGSIN, TRANSRET > Class Template Reference

searching in a group with classical backtracking More...

#include <backtrack_search.h>

Inheritance diagram for permlib::classic::BacktrackSearch< BSGSIN, TRANSRET >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef BaseSearch< BSGSIN,
TRANSRET >::PERM 
PERM
typedef BaseSearch< BSGSIN,
TRANSRET >::TRANS 
TRANS
typedef boost::shared_ptr
< typename BacktrackSearch
< BSGSIN, TRANSRET >::PERM > 
PERMptrType
typedef BaseSearch< BSGSIN,
TRANSRET >::PERM 
PERM
typedef BaseSearch< BSGSIN,
TRANSRET >::TRANS 
TRANS
typedef boost::shared_ptr
< typename BacktrackSearch
< BSGSIN, TRANSRET >::PERM > 
PERMptrType

Public Member Functions

 BacktrackSearch (const BSGSIN &bsgs, uint pruningLevelDCM, bool breakAfterChildRestriction=false, bool stopAfterFirstElement=false)
 constructor
void search (BSGS< PERM, TRANSRET > &groupK)
 searches for a subgroup and stores it into groupK
virtual PERMptrType searchCosetRepresentative (BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL)
 searches for a coset representative if one exists
 BacktrackSearch (const BSGSIN &bsgs, uint pruningLevelDCM, bool breakAfterChildRestriction=false, bool stopAfterFirstElement=false)
 constructor
void search (BSGS< PERM, TRANSRET > &groupK)
 searches for a subgroup and stores it into groupK
virtual PERMptrType searchCosetRepresentative (BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL)
 searches for a coset representative if one exists

Protected Member Functions

virtual const std::vector
< ulong > & 
subgroupBase () const
 base of the sought subgroup
void construct (SubgroupPredicate< PERM > *pred, bool addPredRefinement)
 initializes the search
uint search (const PERM &t, uint level, uint &completed, BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL)
 recursive backtrack search
virtual const std::vector
< ulong > & 
subgroupBase () const
 base of the sought subgroup
void construct (SubgroupPredicate< PERM > *pred, bool addPredRefinement)
 initializes the search
uint search (const PERM &t, uint level, uint &completed, BSGS< PERM, TRANSRET > &groupK, BSGS< PERM, TRANSRET > &groupL)
 recursive backtrack search

Detailed Description

template<class BSGSIN, class TRANSRET>
class permlib::classic::BacktrackSearch< BSGSIN, TRANSRET >

searching in a group with classical backtracking


Constructor & Destructor Documentation

template<class BSGSIN , class TRANSRET >
permlib::classic::BacktrackSearch< BSGSIN, TRANSRET >::BacktrackSearch ( const BSGSIN &  bsgs,
uint  pruningLevelDCM,
bool  breakAfterChildRestriction = false,
bool  stopAfterFirstElement = false 
) [inline]

constructor

Parameters:
bsgs BSGS to search in
pruningLevelDCM prune levels smaller than pruningLevelDCM by double coset minimality with base change
breakAfterChildRestriction true iff the rest of a search level can be skipped when one element has been skipped due to child restriction
stopAfterFirstElement true iff the search can be stopped after the first element found with the desired property
template<class BSGSIN, class TRANSRET>
permlib::classic::BacktrackSearch< BSGSIN, TRANSRET >::BacktrackSearch ( const BSGSIN &  bsgs,
uint  pruningLevelDCM,
bool  breakAfterChildRestriction = false,
bool  stopAfterFirstElement = false 
)

constructor

Parameters:
bsgs BSGS to search in
pruningLevelDCM prune levels smaller than pruningLevelDCM by double coset minimality with base change
breakAfterChildRestriction true iff the rest of a search level can be skipped when one element has been skipped due to child restriction
stopAfterFirstElement true iff the search can be stopped after the first element found with the desired property

Member Function Documentation

template<class BSGSIN, class TRANSRET>
virtual PERMptrType permlib::classic::BacktrackSearch< BSGSIN, TRANSRET >::searchCosetRepresentative ( BSGS< PERM, TRANSRET > &  groupK,
BSGS< PERM, TRANSRET > &  groupL 
) [virtual]

searches for a coset representative if one exists

the two arguments are two groups K and L such that $KgL \subseteq G(\mathcal P)\quad \Leftrightarrow g \in G(\mathcal P)$

Parameters:
groupK subgroup of G
groupL subgroup of G
Returns:
pointer to a coset representative element or NULL

Implements permlib::BaseSearch< BSGSIN, TRANSRET >.

template<class BSGSIN , class TRANSRET >
BacktrackSearch< BSGSIN, TRANSRET >::PERMptrType permlib::classic::BacktrackSearch< BSGSIN, TRANSRET >::searchCosetRepresentative ( BSGS< PERM, TRANSRET > &  groupK,
BSGS< PERM, TRANSRET > &  groupL 
) [inline, virtual]

searches for a coset representative if one exists

the two arguments are two groups K and L such that $KgL \subseteq G(\mathcal P)\quad \Leftrightarrow g \in G(\mathcal P)$

Parameters:
groupK subgroup of G
groupL subgroup of G
Returns:
pointer to a coset representative element or NULL

Implements permlib::BaseSearch< BSGSIN, TRANSRET >.


The documentation for this class was generated from the following files:
Generated on Fri Jun 18 22:00:10 2010 for PermLib by  doxygen 1.6.3