[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