This chapter documents the straightforward application of Steve Linton's
function SmallestImageSet
Lin04, which is included and used
in GRAPE. The function is of use when classifying objects up to
the action of a given permutation group G, when the objects can be
represented as subsets of the permutation domain of G.
SmallestImageSet(
G,
S )
SmallestImageSet(
G,
S,
H )
Let G be a permutation group on {1,...,n}, and let S
be a subset of {1,...,n}. Then this function returns the
lexicographically least set in the G-orbit of S, with respect to the
action OnSets
, without explicitly computing this (possibly huge) orbit.
Thus, if C is a list of subsets of {1,...,n} and we
want to determine a set of (canonical) representatives for the
distinct G-orbits of the elements of C, we can do this as
Set(
C,c->SmallestImageSet(
G,c))
.
If the setwise stabilizer in G of S is known, then this should be given as the optional third parameter, to avoid the recomputation of this stabilizer.
gap> J:=JohnsonGraph(12,5);; gap> OrderGraph(J); 792 gap> G:=J.group;; gap> Size(G); 479001600 gap> S:=[67,93,100,204,677];; gap> SmallestImageSet(G,S); [ 1, 2, 22, 220, 453 ]
grape manual