> < ^ From:

< ^ Subject:

Dear GAP-Forum,

Olaf Ruhe asked:

to speed up a certain grouptheoretic algorithm it would be useful to have

the automorphismgroup of a finite group. In the manual I found no hint to

compute the automorphism group of a given group.

Again, the manual is less helpful than it ought to be: The latest patch to

version 3.4.2 contains some basic routines to compute the automorphism group

of finite groups and to compute isomorphisms between different groups (the

routines had been available under /pub/incoming on our ftp-server for

some months). The following examples should be self-explanatory,

anyhow the syntax is:

AutomorphismGroup(<G>)

computes the automorphism group of <G> as a group <A> generated by

automorphisms. The component <A>.innerAutomorphisms contains generators for

the inner automorphism group (i.e. the automorphisms induced by conjugation).

IsomorphismGroups(<G>,<H>)

returns one isomorphism from <G> onto <H> if <G> and <H> are isomorphic and

'false' otherwise.

gap> g:=Group((1,2,3,4,5,6),(1,2)); Group( (1,2,3,4,5,6), (1,2) ) gap> a:=AutomorphismGroup(g); Group( GroupHomomorphismByImages( Group( (1,2,3,4,5,6), (1,2) ), Group( (1,2,3,4,5,6), (1,2) ), [ (1,2,3,4,5,6), (1,2) ], [ (1,2,3,4,5,6), (2,3) ] ), GroupHomomorphismByImages( Group( (1,2,3,4,5,6), (1,2) ), Group( (1,2,3,4,5,6), (1,2) ), [ (1,2,3,4,5,6), (1,2) ], [ (1,3,4,5,6,2), (1,2) ] ), GroupHomomorphismByImages( Group( (1,2,3,4,5,6), (1,2) ), Group( (1,2,3,4,5,6), (1,2) ), [ (1,2,3,4,5,6), (1,2) ], [ (2,6,3)(4,5), (1,4)(2,3)(5,6) ] ) ) gap> Size(a); 1440 gap> RecFields(a); [ "isDomain", "isGroup", "identity", "generators", "operations", "1", "2", "3", "permGroup", "elms", "morphismDomain", "innerAutomorphisms", "size" ] gap> a.innerAutomorphisms; [ GroupHomomorphismByImages( Group( (1,2,3,4,5,6), (1,2) ), Group( (1,2,3,4,5,6), (1,2) ), [ (1,2,3,4,5,6), (1,2) ], [ (1,2,3,4,5,6), (2,3) ] ), GroupHomomorphismByImages( Group( (1,2,3,4,5,6), (1,2) ), Group( (1,2,3,4,5,6), (1,2) ), [ (1,2,3,4,5,6), (1,2) ], [ (1,3,4,5,6,2), (1,2) ] ) ] gap> inn:=Subgroup(a,last);; gap> Size(inn); 720 gap> g:=SL(2,3); SL(2,3) gap> h:=SolvableGroup(24,14); Sl(2,3) gap> IsomorphismGroups(g,h); GroupHomomorphismByImages( SL(2,3), Sl(2,3), [ [ [ Z(3)^0, Z(3)^0 ], [ 0*Z(3), Z(3)^0 ] ], [ [ 0*Z(3), Z(3)^0 ], [ Z(3), 0*Z(3) ] ] ], [ a^2*b, b*c ] )

The algorithms basically search for all possible images for the generators,

therefore the performance can be less than satisfactory for groups with

many generators like -- for example -- elementary abelian groups.

For solvable groups a much better performing algorithm is possible, which

constructs automorphisms along a characteristic series of the group. This

algorithm has been developed by Michael Smith in his PhD thesis at ANU,

Canberra. It is planned to include it in future versions of GAP, a preliminary

version already exists. Contact Michael Smith (michael.smith@maths.anu.au)

for further information about it.

Best,

Alexander Hulpke

> < [top]