It is a note of Permutation Groups, Cameron section 1.13.
Let be a permutation group on generated by . The Schreier-Sims algorithm is a technique to solve two questions:
- find ;
- for any , whether or not?
Step 1. Take and find the orbit of by repeatedly applying generators until no new points are obtained. Define , which is a subgroup satisfying .
Step 2. Find generators of . The following lemma gives us a method.
Schreier Lemma
Let . Let be a subgroup of index in , with coset representatives , where is the representative of . Let be the representative of the coset . Then
Such elements in the form of are called Schreier Generator.
Repeat this procedure, and we end up with
- a base, a sequence whose pointwise stabilizer is the identity; and
- a strong generating set, a set of group elements, where is a set of coset representatives for in for and is the pointwise stabilizer of .
Consequently, the order of is
For a given , check .
- If , then .
- If , then there exists such that . Then iff .
Check it recursively, and finally and .
Furthermore, we can choose a random element of (with all elements equally likely), by choosing random elements of and multiplying them.