Sims filter

From Groupprops

Summary

Item Value
Problem being solved small generating set-finding problem
Input format set , generating set for group of permutations on . In other words, is a subgroup of the symmetric group of degree .
Output format A new generating set for
Guaranteed (general) properties of output Size is at most
Size is at most the size of
Guaranteed (order-specific) properties of output It is a Sims-reduced generating set.
Theoretical significance shows that the subgroup rank of the symmetric group of degree is at most (we can do much better -- in fact it is at most )
Mode of input processing As presented here, the algorithms requires storage and manipulation of the entire generating set.
Running time (worst-case)
Memory requirement
Effect of repeated application The filter is an idempotent filter -- applying it again to the output it produces yields no change.
Sensitivity to order of inputs The algorithm could produce somewhat different output generating sets depending on the order in which the elements of the input generating set are fed into it.
Competing algorithms Jerrum's filter is an alternate algorithm. It produces a generating set (a Jerrum-reduced generating set) guaranteed to be smaller, but has a much larger worst-case running time ().
Sims filter is preferable for getting a quick and dirty generating set, for instance, as an intermediate step to Schreier-Sims algorithm.
Switching option if the algorithm is taking too long The algorithm can be stopped at any outer pass, and the output it yields is of size at most the size of .

Definitions used

Sims-reduced generating set

Further information: Sims-reduced generating set

Given a permutation group on , a Sims-reduced generating set for it is a generating set with the property that given any , there is at most one element in the generating set that sends to and fixes all elements less than .

By definition, a Sims-reduced generating set has size at most .

Relation with other algorithms

Better algorithms

  • Jerrum's filter is considered a better algorithm than the Sims filter because it is online, and it is guaranteed to produce a generating set of smaller size (a generating set produced by this filter is termed a Jerrum-reduced generating set). The Sims filter is faster to apply once; however, an algorithm that requires repeated use of the filtered set may prefer Jerrum's filter because the resulting set being small, algorithms that depend on the size of the resulting set are likely to work better.

Idea and outline

Broad idea

The Sims filter works by constructing a partially filled tableau capable of storing elements of the group, such that:

  • The tableau entry with row and column must fix all elements upto and must send to .

The algorithms works in stages, filling in the row of the tableau at the stage.

Description of each iteration

Let denote the initial generating set.

Let denote the current generating set (initially set to be ). Then, at the stage, look at those elements of that are not already in the tableau. By the manner in which we construct things, it'll turn out that all the elements not already in the tableau must fix the first elements.

Now, as you linearly traverse over the elements of that are not already in the tableau, do the following:

  • If sends to and there is no element yet in the tableau's position, put there.
  • If sends to and there is already an element in the tableau's entry, replace by . This new element will fix (keep the new element in bot do not put it in the tableau, it will be handled in the later rounds).
  • If , remove it (note: this might well be the case even if the original generating set had distinct elements).

Clearly, at every step, the property that generates the group is preserved, hence, finally we will have a generating set of size .

Analysis of running time

Let's analyze the time for each row. For each pass, there are as many as elements to scan, and for each scanned element, the time taken is roughly . Since throughout, the total time taken for filling each row is bounded above by .

Thus, the total time across all rows is .