From: mareg@csv.warwick.ac.uk (Dr D F Holt)
Newsgroups: sci.math,comp.theory
Subject: Re: permutation groups
Date: 10 Oct 1995 09:58:33 +0100
In article <45beuu$d06@firewall.isscad.com>,
glipton@abu.isscad.com (Gary Lipton) writes:
>Given the generators of a permutation group, is there an
>algorithm for determining if a given permutation is a member
>of the group?
>--
>Gary Lipton
>Integrated Silicon Systems, RTP, NC
Yes - there is quite a lot of literature on such algorithms. The basic
algorithm is known as the Schreier-Sims algorithm and dates from the
late 60's. It first calculates what is known as a base and strong
generating set for the permutation group (which tells you the order of
the group) - this enables you to solve the membership problem easily.
It formed the basis of Sims' construction by computer of
some of the large sporadic simple groups. To learn about it, I would
suggest the book "Fundamental Algorithms for Permutation Groups", by
G. Butler, Springer Lecture Notes in Computer Science, Vol. 559.
It has complexity about O(n^5) (where n is the permutation degree) in
its straightforward form, which is fine for n up to a few hundred, but
can get painfully slow for larger n.
There have been various improvements since, some of which are Monte-Carlo
algorithms (i.e. the answer has a small and precisely estimatable (?)
probability of giving the wrong answer (which would mean saying the
element was not in the group when it really was)). I don't have a list
of references to hand - you could start by looking in some of the
papers in the Dimacs conference proceedings "Groups and Computation", ed.
by L. Finkelstein and W.M. Kantor (AMS).
You can access good implementations of these algorithms via one of the
group theory packages GAP and MAGMA. GAP inlcudes the Monte-Carlo
algorithms which are most useful if you already know something about the
group - for example if you already know its order, then it becomes
deterministic. I believe MAGMA has the fastest deterministic algorithms,
which will usually work in a reasonable time (i.e. a few hours perhaps)
for degrees in the millions.
There is some sort of verion of the Schreier-Sims available in
Maple (and possibly Mathematica too) but when I tried it a few years ago
I found it painfully slow.
I don't recommend trying to program it yourself.
Derek Holt.
==============================================================================
Newsgroups: comp.theory,sci.math
From: "Paul Purdom"
Subject: Re: permutation groups
Date: Tue, 10 Oct 1995 20:54:25 -0500
glipton@abu.isscad.com (Gary Lipton) writes:
>Given the generators of a permutation group, is there an
>algorithm for determining if a given permutation is a member
>of the group?
Mark Jerrum has a paper on how to do this in time n^5. That time has been
improved in later papers.
The problem is very interesting, as shown by the popularity of Rubic's cube
(where the problem is to find the permutation to get you back to the starting
position).