I wish to find all maximum cliques of special types of Cayley graphs called derangement graphs. I work in GAP and I currently use the GRAPE package to establish the following:
#This is a nice example to work with.
grp := PrimitiveGroup(8,2);
n := LargestMovedPoint(grp);
#The derangement graph of grp
derang := [];
for x in grp do
if NrMovedPoints(x) = n then
AddSet(derang, x);
fi;
od;
#This uses the GRAPE package.
Cay:=CayleyGraph(grp, derang);
#The following function returns a set of complete subgraphs of Cay (of size n) which are maximal.
#The cliques are returned as vertices of Cay.
max_clique_indices := CompleteSubgraphs(Cay,n,1);
#We convert the vertices of Cay into permutations of grp.
max_clique_perms := [];
for x in max_clique_indices do
Add(max_clique_perms, Cay.names{x});
od;
#To find all maximum cliques, we perform the following "right translation" action.
#This is where the inefficiency is (I think). We get so many duplicates that must be removed.
maximum_cliques := [];
for x in grp do
for cl in max_clique_perms do
Add(maximum_cliques, x*cl);
od;
od;
maximum_cliques := AsSet(List(maximum_cliques, AsSet));
I've read the the GRAPE documentation many times, but I can't find a command that generates all maximum cliques. In Sage, one can invoke the cliquer command (https://doc.sagemath.org/html/en/reference/graphs/sage/graphs/cliquer.html), which finds all maximum cliques fairly quickly and efficiently (for groups of order < 3000 in my experience). Is there such an option in GAP?
Note: I tried using the YAGS package as well to make use of the "CompletesOfGivenOrder(Cay,n)" command, but I found it to be incredibly slow.