Schreier–Sims Algorithm
   HOME

TheInfoList



OR:

The Schreier–Sims algorithm is an
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
in
computational group theory In mathematics, computational group theory is the study of groups by means of computers. It is concerned with designing and analysing algorithms and data structures to compute information about groups. The subject has attracted interest because f ...
, named after the mathematicians
Otto Schreier Otto Schreier (3 March 1901 in Vienna, Austria – 2 June 1929 in Hamburg, Germany) was a Jewish-Austrian mathematician who made major contributions in combinatorial group theory and in the topology of Lie groups. Life His parents were the arch ...
and
Charles Sims Charles Sims may refer to: * Charles Sims (painter) (1873–1928), British painter * Charles Sims (mathematician) (1938–2017), American mathematician * Charles Sims (aviator) (1899–1929), British World War I flying ace * Charles Sims (American ...
. This algorithm can find the order of a finite permutation group, test membership (is a given permutation contained in a group?), and many other tasks in polynomial time. It was introduced by Sims in 1970, based on Schreier's subgroup lemma. The timing was subsequently improved by
Donald Knuth Donald Ervin Knuth ( ; born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of computer sc ...
in 1991. Later, an even faster
randomized In common usage, randomness is the apparent or actual lack of pattern or predictability in events. A random sequence of events, symbols or steps often has no order and does not follow an intelligible pattern or combination. Individual ra ...
version of the algorithm was developed.


Background and timing

The algorithm is an efficient method of computing a base and
strong generating set In abstract algebra, especially in the area of group theory, a strong generating set of a permutation group is a generating set that clearly exhibits the permutation structure as described by a stabilizer chain. A stabilizer chain is a sequence o ...
(BSGS) of a permutation group. In particular, an SGS determines the order of a group and makes it easy to test membership in the group. Since the SGS is critical for many algorithms in computational group theory,
computer algebra system A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The d ...
s typically rely on the Schreier–Sims algorithm for efficient calculations in groups. The running time of Schreier–Sims varies on the implementation. Let G \leq S_n be given by t generators. For the deterministic version of the algorithm, possible running times are: * O(n^2 \log^3 , G, + tn \log , G, ) requiring memory O(n^2 \log , G, + tn) * O(n^3 \log^3 , G, + tn^2 \log , G, ) requiring memory O(n \log^2 , G, + tn) The use of
Schreier vector In mathematics, especially the field of computational group theory, a Schreier vector is a tool for reducing the time and space complexity required to calculate orbits of a permutation group. Overview Suppose G is a finite group with generating se ...
s can have a significant influence on the performance of implementations of the Schreier–Sims algorithm. For
Monte Carlo Monte Carlo (; ; french: Monte-Carlo , or colloquially ''Monte-Carl'' ; lij, Munte Carlu ; ) is officially an administrative area of the Principality of Monaco, specifically the ward of Monte Carlo/Spélugues, where the Monte Carlo Casino is ...
variations of the Schreier–Sims algorithm, we have the following estimated complexity: : O(n \log n \log^4 , G, + tn \log , G, ) requiring memory O(n \log , G, + tn) In modern computer algebra systems, such as GAP and
Magma Magma () is the molten or semi-molten natural material from which all igneous rocks are formed. Magma is found beneath the surface of the Earth, and evidence of magmatism has also been discovered on other terrestrial planets and some natural sa ...
, an optimized
Monte Carlo algorithm In computing, a Monte Carlo algorithm is a randomized algorithm whose output may be incorrect with a certain (typically small) probability. Two examples of such algorithms are Karger–Stein algorithm and Monte Carlo algorithm for minimum Feedba ...
is typically used.


Outline of basic algorithm

Following is C++-style pseudo-code for the basic idea of the Schreier-Sims algorithm. It is meant to leave out all finer details, such as memory management or any kind of low-level optimization, so as not to obfuscate the most important ideas of the algorithm. It does not need to actually compile. struct Group ; // The given set of generators need not be a strong generating set. It just needs to generate the group at the root of the chain. Group* MakeStabChain(const GeneratorSet& generatorSet, uint* base) // Extend the stabilizer chain rooted at this group with the given generator. void Group::Extend(const Permutation& generator, uint* base) Notable details left out here include the growing of the orbit tree and the calculation of each new Schreier generator. In place of the orbit tree, a
Schreier vector In mathematics, especially the field of computational group theory, a Schreier vector is a tool for reducing the time and space complexity required to calculate orbits of a permutation group. Overview Suppose G is a finite group with generating se ...
can be used, but the idea is essentially the same. The tree is rooted at the identity element, which fixes the point stabilized by the subgroup. Each node of the tree can represent a permutation that, when combined with all permutations in the path from the root to it, takes that point to some new point not visited by any other node of the tree. By the
orbit-stabilizer theorem In mathematics, a group action on a space is a group homomorphism of a given group into the group of transformations of the space. Similarly, a group action on a mathematical structure is a group homomorphism of a group into the automorphism ...
, these form a transversal of the subgroup of our group that stabilizes the point whose entire orbit is maintained by the tree. Calculating a Schreier generator is a simple matter of applying Schreier's subgroup lemma. Another detail left out is the membership test. This test is based upon the sifting process. A permutation is sifted down the chain at each step by finding the containing coset, then using that coset's representative to find a permutation in the subgroup, and the process is repeated in the subgroup with that found permutation. If the end of the chain is reached (i.e., we reach the trivial subgroup), then the sifted permutation was a member of the group at the top of the chain.


References

* Knuth, Donald E. "Efficient representation of perm groups". '' Combinatorica'' 11 (1991), no. 1, 33–43. * Seress, A., ''Permutation Group Algorithms'', Cambridge U Press, 2002. * Sims, Charles C. "Computational methods in the study of permutation groups", in ''Computational Problems in Abstract Algebra'', pp. 169–183, Pergamon, Oxford, 1970. {{DEFAULTSORT:Schreier-Sims algorithm Computational group theory Permutation groups