Local expansion of vertex-transitive graphs and random generation in finite groups
STOC '91 Proceedings of the twenty-third annual ACM symposium on Theory of computing
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Computing with matrix groups using permutation representations
ISSAC '95 Proceedings of the 1995 international symposium on Symbolic and algebraic computation
TOP-C: a task-oriented parallel C interface
HPDC '96 Proceedings of the 5th IEEE International Symposium on High Performance Distributed Computing
Memory-based and disk-based algorithms for very high degree permutation groups
ISSAC '03 Proceedings of the 2003 international symposium on Symbolic and algebraic computation
Proceedings of the 2006 international symposium on Symbolic and algebraic computation
Hi-index | 0.00 |
New techniques, both theoretical and practical, are presented for constructing a permutation representation for a matrix group. We assume that the resulting permutation degree, n, can be 10,000,000 and larger. The key idea is to build the new permutation representation using the conjugation action on a conjugacy class of subgroups of prime order. A unique signature for each group element corresponding to the conjugacy class is used in order to avoid matrix multiplication. The requirement of at least n matrix multiplications would otherwise have made the computation hopelessly impractical. Additional software optimizations are described, which reduce the CPU time by at least an additional factor of 10. Further, a special data structure is designed that serves both as a search tree and as a hash array, while requiring space of only 1.6n log2 n bits.The technique has been implemented and tested on the sporadic simple group Ly, discovered by Lyons [9], in both a sequential (SPARCserver 670MP) and parallel SIMD (MasPar MP-1) version. Starting with a generating set for Ly as a subgroup of GL(111,5) [5], a set of generating permutations for Ly acting on 9, 606, 125 points is constructed as well as a base for this permutation representation. The sequential version required four days of CPU time to construct a data structure which can be used to compute the permutation image of an arbitrary matrix. The parallel version did so in 12 hours. Work is in progress on a faster parallel implementation.