[GAP Forum] Looping over (double)coset representatives without creating the WHOLE list first

Pornrat Ruengrot packham25 at gmail.com
Tue Jan 11 23:44:28 GMT 2011


Hi,

I have the following problem related to programming in GAP, hoping someone
could help please.

Let G be a permutation group.
Let P be the subgroup of G consisting of all "perfect" permutations in G.
The goal is to find P explicitly.

For this it's enough to check only the (double)coset representatives, since
if P is a subgroup of
perfect permutations found so far and g (in G) is not perfect, then so is
every element in PgP. So
part of my codes is as follow:

#---------------------------------------------------------------------------------------------------
P:=Subgroup(G,[]);     #set P = trivial first
D:=DoubleCosetRepsAndSizes(G, P, P);   # create list of double coset
representatives to be checked
i:=2;     # skip checking the identity D[1][1]
While i <= Size(D) and Size(P) < Size(G) do
 x:=D[i][1];
if (x is perfect) then
P:=ClosureSubgroup(G,x);     # add x in the subgroup P
 D:=DoubleCosetRepsAndSizes(G, P, P);   #create new representatives to be
tested
i:=2;   #skip checking the identity;
 else
i:=i+1;
fi;
od;
#---------------------------------------------------------------------------------------------------

The group P will grow over time so the list D will be smaller and smaller.
If we are lucky we don't
even need to run over all elements in D because P could be G. But the
problem is that, the
permutation group G is usually very large so the command
D:=DoubleCosetRepsAndSizes(G, P, P);
takes a very long time (sometime even returns error due to not enough
memory).

I think it's because the program is trying to build the whole list D first
before running over each
element. But I just want the program to start right away without building
the whole list first. For
example it can choose a random first element then at the end of the loop
find the next (random)
representative and so on.

In Magma there is the command TransversalProcess(G, H)
http://magma.maths.usyd.edu.au/magma/handbook/text/571 that will do just
that .

I was wondering if there is a similar command in GAP?

(I also tried the build-in command SubgroupByProperty. This gave me the
answer almost instantly,
but when trying to list all elements, it took a very long time.)

Thank you for your time,
Pornrat


More information about the Forum mailing list