Sims filter
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 .