> < ^ From:

< ^ Subject:

Dear GAP-Forum,

Peter Mayr asked:

I am interested in computing regular automorphism groups on

a given group G, i.e. groups of automorphisms where all mappings

except the identity mapping operate on G without a fixpoint

except the group identity. Does GAP provide any means to find

all these regular automorphism groups for arbitrary, reasonably

small groups G efficiently ( e.g. for the elementary abelian

group of order 25 )?

GAP does not provide any functionality of this kind except by searching

within the full automorphism group. I'm also not aware of any better

approach that would get all such automorphisms for the case of a small group

with large outer automorphism group.

I want to avoid the straight forward approach of computing

the whole automorphism group of G and testing the representatives

of the conjugacy classes of its subgroups for regularity,

because this is not feasible for a large automorphism group.

Such an approach might be still feasible, if you use theory to obtain the

automorphism group (for example for abelian groups, the automorphism groups

are known immediately). and then use a faithful permutation representation

of the automorphism group. The following example shows how to get back to

the automorphisms.

# make a group

gap> g:=AbelianGroup(AgWords,[2,4,4,6]);

Group( a, b1, b2, c1, c2, d1, d2 )

# compute automorphisms (works quick for abelian case)

gap> au:=AutomorphismGroup(g);;

gap> Size(au);

294912

#au.perm group is the operation of au on au.elms, au.elmsgens is a

#generating set within elms. It is guaranteed that this action is faithful.

# get the class representatives

gap> cl:=ConjugacyClasses(au.permGroup);;

gap> Length(cl);

200

gap> cl:=List(cl,Representative);;

# and take those that fix no of the moved points (every moved point

# corresponds to an element of g)

gap> pmp:=PermGroupOps.MovedPoints(au.permGroup);;

gap> cl:=Filtered(cl,i->ForAll(pmp,j->j^i<>j));;

# to get the homomorphisms from the permutations, we look at the numbers

# corresponding to elmsgens and the elements corresponding to the numbers

# permutation images:

gap> pos:=List(au.elmsgens,i->Position(au.elms,i));

[ 96, 48, 24, 12, 6, 3, 1 ]

# then we make homomorphisms from it

gap> hom:=List(cl,i->GroupHomomorphismByImages(g,g,au.elmsgens,au.elms{OnTuples(pos,i)}));;

gap> for i in hom do i.isMapping:=true;od;

# finally we must check, whether there are other elements (outside

# 'au.elms', which may be a proper subset) that are fixed by the morphisms:

gap> e:=Difference(Elements(g),[g.identity]);;

gap> hom2:=Filtered(hom,i->ForAll(e,j->Image(i,j)<>j));;

gap> Length(hom2);

9

This will not solve your problem in full, but probably it is of help.

If 'AutomorphismGroup' does not finish in reasonable time it also might be

worth to look at the AUTAG package by Michael Smith.

Best regards,

Alexander Hulpke

> < [top]