Dear Forum,

I am using gap for some simple calculations (e.g. orbits) on very small 
permutation groups generated by (relatively) large integers (representing 
vertices in very large networks). For example:
gap> Orbits((n1 n2), (n3 n4));
where n1,…,n4 are integers between 1 and n. (I need to run this command many 
times over a very long list.)

The time it takes to run this command depends on n: for n about 20,000 I can 
process 1,700 orbits per second, but when n is about 300,000 it drops to 160 
orbits per second. A full calculation (for n=5,189,808) that should take about 
6 minutes at top speed, takes me about 11 hours to complete.

For a minimal working example, try
gap> n:=10^k;; Orbits(Group([(n,n+1),(n+1,n+2)]);; time;
As k goes from 5 to 8, time returns 0, 3, 22, and 337.

Mathematically, the group Group((1,2),(3,4)) is isomorphic to 
Group((10000,20000),(30000,40000)) but gap finds it much harder to deal with 
the latter, I suppose because of the internal representation as a subgroup of 
SymmetricGroup(40000).

I want to tell gap that n1, n2, n3, n4 are just ‘labels’ rather than actual 
integers between 1 and n (very large)? Is there an obvious way of doing that? 
Of course there could be repetitions e.g. n2==n3. I have tried a few things 
e.g. finding smaller/equivalent generators but there is always a bottleneck 
somewhere.

Apologies for the long email, and many thanks in advance for any help.

Best wishes,
Ruben
--
Dr Ruben Sanchez-Garcia
Lecturer in Pure and Applied Mathematics
Faculty of Social, Human and Mathematical Sciences
University of Southampton

#This is the actual code I run
Read(“generators");; #read gen (a very long list of permutations)
Read(“geomdecomp");; #read index (a very long list of integers)
factor_num := 0;;
orbits := [];;
for gen in [1..Maximum(index)] do
factor_num := factor_num + 1;;
pos := Positions(index,gen);
H := Group(gens{pos});
orbits[factor_num] := Orbits(H);
od;

_______________________________________________
Forum mailing list
Forum@gap-system.org
https://mail.gap-system.org/mailman/listinfo/forum

Reply via email to