A permutation group G on X = {1, ..., n} can be conveniently represented by a (small) generating set of permutations. Most algorithms for permutation groups take such a generating set as input.

Let B be a generating set for G.


Schreier


Definition

A Schreier tree with root x for B is a tree rooted at x whose edges are labeled with the following properties:


The Schreier tree can be used to find generators for the stabilizer Gx of a point x. This is the content of the next theorem. First, however, we show how to find Schreier trees. It is a slight extension of the algorithm for determining orbits.

Schreier tree algorithm

  1. Put T = {x} and M = {x}.
  2. Put N = {g(a) | g B,   a M}\T; this is the set of new elements.
  3. If N is nonempty, then
    • choose, for each n N, a vertex a T and g G with g(a) = n, and add vertex n to T with labeled edge [a, n; g].
    • Replace M by N and go to Step 2.
  4. Return T.