我希望找到称为紊乱图的特殊类型凯莱图的所有最大团。我在 GAP 工作,我目前使用 GRAPE 包来建立以下内容:
#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));
我已经多次阅读 GRAPE 文档,但找不到生成所有最大派系的命令。在 Sage 中,可以调用 cliquer 命令 ( https://doc.sagemath.org/html/en/reference/graphs/sage/graphs/cliquer.html ),它可以相当快速有效地找到所有最大 cliques (对于根据我的经验,订单 < 3000)。GAP中有这样的选择吗?
注意:我也尝试使用 YAGS 包来使用“CompletesOfGivenOrder(Cay,n)”命令,但我发现它非常慢。