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.