14
$\begingroup$

Suppose $G$ is a finite group with $|G|=n!$ for some $n \in \mathbb{N}$. Suppose that we have the entire Cayley table of the group stored and we can perfom multiplication in the group as fast as it takes us to perform a lookup in the table.

What's an efficient algorithm to test whether $G \cong S_n$? I.e. it returns true if $G \cong S_n$, false otherwise. Any group theoretic object or property we may wish to find (e.g. abelianness, the centre of the group, the orders of elements, the conjugacy classes...) are all programmed in.

If desired, suppose we also have a group known as $S_n$ also within the program that we can compare to the group somehow.

Here's what I've thought of so far. Iterating through all maps $G \to S_n$ to check if it is an isomorphism would be awfully slow, since there's $(n!)^{n!}$ such maps which obviously grows incredibly fast. We may be able to reduce this if we have nice methods to find all homomorphisms, or all bijections, or whatever else, but it'd still be incredibly large.

We can rule out some groups quickly by checking certain things that are fast to compute and whether they match $S_n$ such as

  • The abelianness of $G$ matches $S_n$ (i.e. $G$ non-abelian, unless $n = 2$)
  • The sizes of conjugacy classes
  • The orders of elements of the group
  • The size of the center
  • Etc.

But this would be a necessary but not sufficient condition.

So how can we improve on this?

$\endgroup$
7
  • 4
    $\begingroup$ The simplest "fast" algorithm for the group isomorphism problem, due to Tarjan, is to take a generating set of one of the groups and iterate over all possible images for the generating set, checking if that gives an isomorphism. The dominant cost is the number of images, which is tied to the size of the generating set - but in this case, $S_n$ is generated by a set of size $2$, so you can do it pretty quickly relative to the size of the input (which is huge). $\endgroup$ Commented Nov 27, 2023 at 23:49
  • 7
    $\begingroup$ Bratus, Sergey; Pak, Igor. Fast constructive recognition of a black box group isomorphic to $S_n$ or $A_n$ using Goldbach's conjecture. J. Symbolic Comput. 29 (2000), no. 1, 33-57. $\endgroup$ Commented Nov 28, 2023 at 9:32
  • 4
    $\begingroup$ Another relevant paper: Beals, Robert; Leedham-Green, Charles R.; Niemeyer, Alice C.; Praeger, Cheryl E.; Seress, Ákos. A black-box group algorithm for recognizing finite symmetric and alternating groups. I. Trans. Amer. Math. Soc. 355 (2003), no. 5, 2097-2113. $\endgroup$ Commented Nov 28, 2023 at 9:33
  • 3
    $\begingroup$ @testaccount I think your references would make a very fine answer. All the better if you can say something about the complexity (possibly buried in the article). $\endgroup$ Commented Nov 28, 2023 at 10:12
  • 2
    $\begingroup$ @JyrkiLahtonen: Unfortunately I am not familiar enough with this topic to write about the complexity results, so I just leave these as comments. I just am aware that these papers exist for this particular algorithm. But I guess for anybody who wants to learn more, these papers and papers that cite them should lead one to the state of the art. $\endgroup$ Commented Nov 28, 2023 at 12:42

3 Answers 3

15
$\begingroup$

The goal should be to do it in time $O(n!^2)$, which is the size of the input (the multiplication table).

First determine the partition of $G$ into conjugacy classes. This can be done efficiently with a union-find-type data structure. Check that there is a conjugacy class $C$ of cardinality $\binom n2$ consisting of involutions.

Make $C$ into a graph by defining $g_1 \sim g_2$ for $g_1, g_2 \in C$ if $g_1$ and $g_2$ do not commute. If $G$ is truly a copy of $S_n$ then $g_1$ and $g_2$ are transpositions and this relation means their supports are not disjoint. Find a maximal clique $K$ in $C$ of size greater than $3$. Check that $K$ has cardinality $n-1$.

Compute the normalizer $H = \{g \in G: K^g = K\}$. Check that $H$ has index $n$. Check that $H$ has trivial normal core.

If any check failed, reject isomorphism. If all checks passed then $G$ has a subgroup $H$ of index $n$ with trivial normal core, so the action of $G$ on the cosets of $H$ defines a homomorphism $G \to S_n$ with trivial kernel, hence an isomorphism.

$\endgroup$
9
  • 1
    $\begingroup$ Good stuff (+1). Can't say whether it speeds up the algorithm in any essential way, but it may be faster to first find the set of involutions (quick, looking at the diagonal of the group table), and then partition that smaller set into conjugacy classes? I particularly like that the algorithm is immune to the "anomaly" present when $n=6$ and there are two conjugacy classes of involutions of the required size (intechanged by the famous outer automorphism). $\endgroup$ Commented Nov 28, 2023 at 11:44
  • 1
    $\begingroup$ Hmm, may be partitioning into conjugacy classes is not the kind of bottleneck I first imagined? I am too ignorant to say anything at all. $\endgroup$ Commented Nov 28, 2023 at 11:45
  • 1
    $\begingroup$ I don't think your statement “the goal should be to do it in $(n!)^2$ time” is correct. The input need not be the explicit multiplication table. It might instead be a number $n$, meaning that the size of the group is $n!$ and its elements are taken to be $\{a_0, a_1, \ldots, a_{n!-1}\}$ and an implementation of the group multiplication operation, as a function $f$ which takes arguments $x$ and $y$ and in constant time returns $z$ for which $a_xa_y = a_z$. Then we would evaluate the algorithm by the number of calls to $f$. $\endgroup$
    – MJD
    Commented Dec 3, 2023 at 17:16
  • 1
    $\begingroup$ In this view, $(n!)^2$ calls to $f$ is the worst case, since this is what is required to regenerate the entire multiplication table. If $f$ does represent a symmetric group, its implementation could easily be vastly smaller than an explicit table. It would not be surprising if one could do substantially better than $(n!)^2$ queries. I did not look closely at your proposed algorithm to see how many calls it makes to $f$, but it seems to me that this is more like the right question to ask about its running time. $\endgroup$
    – MJD
    Commented Dec 3, 2023 at 17:18
  • $\begingroup$ @MJD That is an excellent point, I agree. The OP's phrasing of "entire multiplication table stored" is not very realistic. There are some references in the comments section to "black-box group algorithms", which is basically the model you're getting at. For my suggestion to work, the bottleneck is finding a single transvection (an element that secretly represents a transvection). $\endgroup$ Commented Dec 3, 2023 at 18:37
9
$\begingroup$

By the Coxeter presentation of the symmetric group, a homomorphism $S_n \to G$ can be described equivalently as a sequence of elements $s_1,\dotsc,s_{n-1} \in G$ such that $$s_i^2 = 1,\, (s_i s_{i+1})^3 = 1,\, s_i s_j = s_j s_i \text{ if } |i-j| > 1.$$ If $G$ is of order $n!$, the homomorphism is an isomorphism if and only if it is injective. By List of symmetric group elements from the usual presentation this can be checked as follows: setting $t^j_i = s_{j-1} s_{j-2} \cdots s_i$ for $1 \leq i \leq j \leq n$, build the elements $t^1_{a(1)} t^2_{a(2)} \cdots t^n_{a(n)}$ of $G$ for $1 \leq a(i) \leq i$, and verify that they are pairwise distinct (equivalenty, that they cover all of $G$).

Pseudocode:

# generator yielding all isomorphisms S_n ---> G
isomorphisms_from_symmetric_group(n,G):
  if order(G) == n! yield from monomorphisms_from_symmetric_group(n,G)

# generator yielding all monomorphisms S_n ---> G
monomorphisms_from_symmetric_group(n,G):
  involutions := list of all g in G with g^2 = 1, g != 1
  for all mappings s : [1,...,n-1] -> involutions:
    if the following are true:
      (1) s(i)^2 = 1 for all i
      (2) (s(i) * s(i+1))^3 = 1 for all i
      (3) s(i) commutes with s(j) for all i,j with i < j-1
      (4) is_injective(s,G)
    then yield s

# returns true iff the homomorphism S_n ---> G, (i i+1) |-> s_i is injective
is_injective(s,G):
  n := length(s) + 1
  elements := []
  t(i,j) := s(j-1) * ... * s(i)  
  for every sequence a(1),...,a(n) with 1 <= a(i) <= i:
    add t(a(1),1) * .... * t(a(n),n) to elements
  return length(elements) == n! 
    
$\endgroup$
2
  • 3
    $\begingroup$ You are effectively iterating over all functions $[n] \to G$, so the loop takes time $n!^n$. You can speed this up a lot by first finding a conjugacy class $C \subset G$ of involutions of size $\binom{n}{2}$ and looking only at maps $[n] \to C$. $\endgroup$ Commented Nov 28, 2023 at 9:27
  • $\begingroup$ With one pass over the group -- time $O(n!)$ -- you could count the group order (and reject if it's not $n!$) and also set aside all elements of order 2. If the isomorphism exists, the $s_i$ are in this set, and this set only has size $O(\sqrt{n!})$, I think. I tried to think of some nice tests you could do on this set (you know each element is a product of disjoint transpositions), like picking a random element $x$ and finding all elements that commute with it, and then you know there is some $s_i$ in this commuting set, but I can't figure out how to finalize this. $\endgroup$
    – Sam Jaques
    Commented Nov 28, 2023 at 14:53
5
$\begingroup$

Combining the two answers gives something faster than the input size of the table. If we imagine an "oracle" type of problem, where we have functions that can invert, multiply, or sample from the group, then we can do an algorithm like this.

  1. Iterate through all the all elements and check if $x^2=1$. Put all such order-2 elements in a list $S$. If there are not exactly $n!$ elements in the entire group, reject (meaning $G$ is not isomorphic to $S_n$). $S$ will be all products of disjoint transpositions.
  2. Iterate through the group again and compute all conjugacy classes of $S$. Each conjugacy class will represent elements with a different number of disjoint transpositions.
  3. There should be one conjugacy class of size $\binom{n}{2}$, and this will contain all the transpositions. Look for elements that form the Coxeter representation. This can be done in time $O(n^4)$, I think (find a sequence of disjoint transpositions, distinguishable because they commute with each other, then look for the transpositions "in between").

If this process terminates with a Coxeter representation, then $G\cong S_n$, otherwise it is not.

The runtime is dominated by step 2. I think $\vert S\vert = O(\sqrt{n!})$, so in the worst-case step 2 runs in time $\tilde{O}(n!^{\frac{3}{2}})$ (by computing the conjugate of every element in $S$ by every element in $G$).

I suspect there are ways to show that step 2 is even faster, since there should only be $n/2$ conjugacy classes.

I'm really curious about whether there are probabilistic algorithms less than $\Theta(n!)$ time. Randomly sampling should give even-order elements with constant probability (?) and then we can generate an order-2 element from those.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .