• No results found

Implementation

This section contains a description of the implementation of the polycyclic-by-finite group package using the Magma Computational Algebra System, highlighting a few technical details and efficiency considerations.

6.2.1

List of Functions

The author has implemented methods to perform the following operations in the class of polycyclic-by-finite groups:

ˆ Multiply elements

ˆ Compute the natural map (and its inverse) from a group to the finite quotient used in the construction

ˆ Invert elements

ˆ Transfer to category GrpPC orGrpGPC

ˆ Find the subgroup generated by a set of elements

ˆ Test element membership in a given group

ˆ Coerce an element into a group

ˆ Find the normal closure of the subgroup generated by a set of elements

ˆ Compute the commutator subgroup of two groups having a common super- group

ˆ Compute Sylow subgroups (in the finite case)

ˆ Compute the centre of a group

ˆ Compute the derived series of a group

ˆ Compute the lower central series of a group

ˆ Compute the centraliser of an element

ˆ Test whether two group elements are conjugate, and, if so, return a conjugating element

6.2.2

Technical Considerations

A major technical difficulty that arose during the course of the implementation was the inability to define Magma homomorphisms to and from polycyclic-by-finite groups represented using the newly defined structure.

The record (Rec) type in Magma was used to store the information defining a polycyclic-by-finite group, and since elements of type Rec are not recognised by Magma as algebraic structures (there is no binary operation), it was not possible to construct native homomorphisms to or from polycyclic-by-finite groups. This

problem was circumvented by maintaining data sets encoding homomorphisms, and computing images and preimages via helper methods.

The lack of a mechanism by which homomorphisms may be created proved espe- cially problematic in the centraliser and element conjugacy functions, where, in the implementation, a finitely presented group is constructed and used to compute the maps of Line 11 in Algorithm 5.2 and Line 23 in Algorithm 5.3. At present, there is no feasible alternative to this costly solution. As a result, the implementations of the centraliser and element conjugacy functions, in their present state, should be regarded as experimental.

6.2.3

Native Support

In view of the author’s progress in the area, Prof. John Cannon, Head of the Magma Computational Algebra Group, expressed interest in incorporating the methods de- veloped by in to standard releases of the Magma Computational Algebra System, to enable built-in support of polycyclic-by-finite groups. This necessitated direct col- laboration between the author and members of the Magma Computational Algebra Group.

To this end, in April, 2010, the author was invited by Prof. Cannon to visit the University of Sydney for a 5 week period. During this time, the author worked closely with Dr. William Unger to implement a set of functions for computing with polycyclic-by-finite groups.

The first stage of the implementation involved defining internal Magma data types for polycyclic-by-finite groups (New type: GrpPCBF) and for elements of polycyclic-by-finite groups (New type: GrpPCBFElt). These data types are defined in a similar fashion as for the current standard Magma group types, Permutation groups;GrpPerm, Matrix groups;GrpMat, Polycyclic groups;GrpPC(orGrpGPC), etc. The construction functions for these types mimic the construction functions of the

author’s program code.

With these new types available, the author’s package code was completely rewrit- ten to correspond with the new type definitions.

Naturally, many of the methods implemented for computing with polycyclic-by- finite groups (listed in Section 6.2.1), depend heavily on element multiplication. As a result a significant portion of time was devoted to improving the performance of the multiplication algorithm.

After discussion with the author on the operation of the algorithm, a few op- timisation adjustments were suggested by Dr. Unger. These yielded a noticeable improvement in efficiency. After this, to avoid the inherent overhead that is associ- ated with the Magma interpreter, the entire multiplication algorithm was rewritten in the programming language C (the language in which the Magma Computational Algebra System is written) and then added to the standard Magma library. The im- plementation in C offered a significant performance gain — the speed of the function was improved by a factor of roughly 103.

The results achieved were encouraging. The multiplication algorithm (and its dependants) performed well under most of the tests administered.

6.3

Future Work

There are several subareas of this project that are deserving of continued research. In addition to improvement in the performance of the multiplication algorithm, the following functionality is desirable:

ˆ Find normalisers of subgroups

ˆ Test whether two given subgroups are conjugate

ˆ Find all conjugacy classes of a group

Finding normalisers and testing subgroup conjugacy have immediate applications to computing within automorphism groups of p-groups. This forms part of ongo- ing research of Prof. Derek Holt and David Howden at the Warwick Mathematics Institute.

With regard to computing character tables of groups, the author plans to seek the expertise of Dr. William Unger in adapting his recently developed methods to the category of polycyclic-by-finite groups.

Another avenue which can be explored is the possibility of centraliser compu- tation conjugacy testing in infinite polycyclic-by-finite groups. This may perhaps involve extending the work of Eick (2001).

The author is confident that, with continued efforts at optimisation, the suite of algorithms will soon prove to be even more useful from a practical point of view, in the contexts described here, and otherwise.

Package Documentation

A.1

Introduction

The algorithms under development for polycyclic-by-finite groups employ current methods available for polycyclic presentations, together with the well developed base-and-strong-generating-set techniques used for computation with permutation groups. This document describes the data structure and the functions that have been implemented using the Magma Computational Algebra System. The current version at the time of writing is: Magma V2.17-5.

Related documents