This chapter describes the GAP package Ferret. Ferret implements highly efficient implementations of a range of search algorithms on permutation groups. If you are interested in if Ferret can be applied to another problem, please contact the authors, who will be happy to look into if your problem can be solved with Ferret.
Ferret automatically installs methods which replace GAP's a number of GAP's built-in functionality:
Intersection for a list of permutation groups.
Stabilizer(G,S,Action) for a permutation group G, and the actions:
OnSets
OnOnSets
OnSetsDisjointSets
OnSetsSets
OnTuples
OnPairs
OnDirectedGraph
Stabilizer(G, S) for a permutation group G and a:
permutation
transformation
partial permutation
If you would like to disable this functionality, you can use 1.1-1.
‣ EnableFerretOverloads ( [active] ) | ( function ) |
if active (a bool) is true, then enable Ferret specialisations of Intersection and Stabilizer. Call with active false to disable.
‣ FerretOverloadsEnabled ( ) | ( function ) |
Return if Ferret specialisations of Intersection and Stabilizer are currently enabled.
The main method of using Ferret's functionality is the Solve
(2.1-3) method. This method intersects a list of permutation groups. The unusual feature is that these permutation groups can be represented in a variety of ways. They can be usual GAP permutation groups given as a list of generators, or they can be the group which is the stabilizer of combinatorial object under some action. Larger problems are then composed from these pieces. For example, the stabilizer of a set S under a group G can be expressed as the intersection of the group which stabilizes the set S and the group G. For this problem, there would be no point using Solve
(2.1-3), as GAP's built in 'Stabilizer' function provides the same functionality. However, with Solve
(2.1-3) we can intersect any number of groups at the same time, for example finding the intersection of two groups G and H, the stabilizer of a set S and the stabilizer of a set of sets T, with the following code:
gap> Solve([ConInGroup(G), ConInGroup(H), > ConStabilize(S, OnSets), ConStabilize(T, OnSetSets)])
The currently allowed arguments to Solve
(2.1-3) are:
ConInGroup
(2.1-2), which represents a Permutation Group in GAP
ConStabilize
(2.1-1), which takes an object and an action.
generated by GAPDoc2HTML