New refiners for permutation group search
arXiv:1608.08489v1 [math.GR] 30 Aug 2016
Christopher Jefferson, Markus Pfeiffer University of St Andrews School of Computer Science North Haugh St Andrews KY16 9SX Scotland
Rebecca Waldecker Martin-Luther-Universit¨at Halle-Wittenberg Institut f¨ur Mathematik 06099 Halle Germany
Abstract We describe how orbital graphs can be used to improve the practical performance of many algorithms for permutation groups, including intersection and stabilizer problems. First we explain how orbital graphs can be integrated in partition backtracking, the current state of the art algorithm for many permutation group problems. We then show how our algorithms perform in practice, demonstrating improvements of several orders of magnitude for some problems. Keywords: Backtrack search, refiners, permutation groups, algorithmic group theory, computational algebra.
1. Introduction Permutation groups are one of the most natural and convenient representations for finite groups. They have proved particularly useful as a basis for practical computations, and systems such as GAP (2016) and MAGMA (1997) provide practically useful implementations of many algorithms which solve a range of different problems. Given a permutation group on a finite set Ω, some problems, for example checking if a group contains a particular permutation, or finding the size of the group, can be calculated efficiently in time polynomial in the size of Ω. There are other problems on permutation groups where no theoretically efficient algorithm is known: examples of such problems are permutation group
Email addresses:
[email protected] (Christopher Jefferson),
[email protected] (Markus Pfeiffer),
[email protected] (Rebecca Waldecker) URL: http://caj.host.cs.st-andrews.ac.uk/ (Christopher Jefferson), https://www.morphism.de/~markusp/ (Markus Pfeiffer), http://conway1.mathematik.uni-halle.de/~waldecker/index-english.html (Rebecca Waldecker) Preprint submitted to Elsevier
August 31, 2016
intersection, calculations of centralizers and normalizers, set stabilizers and partition stabilizers. It is known (see for example Hoffmann (1982)) that these problems are at least as difficult as finding graph isomorphisms, so it is unlikely that a theoretically efficient algorithm will be found. While we cannot provide an algorithm which is efficient in all cases, there is a history of algorithms which are of practical usefulness. The current state of the art algorithm for the problems listed above is partition backtracking (see Leon (1991)), which extended the partition refinement ideas for graph isomorphism introduced by McKay (1980). For most problems partition backtracking provides much better performance than previous techniques (see for example Butler (1983)). While partition backtracking is often successfully used for groups acting on sets with millions of points, the experiments in this paper are based on problems involving permutation groups acting on sets of fewer than a thousand points where partition backtracking takes over an hour. We demonstrate that our ideas, when implemented in the algorithms, improve performance by several orders of magnitude for many problems. The concept of a refiner is at the heart of these methods. In fact partition backtracking should not be viewed as a single monolithic algorithm, but as a combination of a number of smaller algorithms, including the implementation of maps known as refiners. These refiners are used to skip parts of the search which are proved to contain no solution. We explain briefly how refiners works in practice. Better refiners allow for more search to be skipped, which of course improves performance. In this article we show how orbital graphs can be used to create better refiners, and our results can be integrated easily into existing partition backtrack implementations by adding our new refiners. This article is organized as follows: Section 2 includes all the necessary notation and gives examples, Section 3 introduces orbital graphs and collects some of their properties. In Section 4 we start with a brief description of backtrack search and the roles of refiners before we look at specific refiners. We explain the method of refinements via the orbital graph in an example by hand before we go deeper into the theory and prove results about the usefulness of orbital graphs for refiners. Finally we explain and present our experiments and show their outcomes in Section 5. We briefly discuss the limits of this method – for highly transitive groups, the orbital graph does not give useful information, and there are also cases where the costs of calculating the orbital graphs outweigh the advantages in the search. But for difficult search problems in large groups our methods prove to be very effective. At the end of the paper we will comment on some related questions and further problems. Acknowledgements. All authors thank the DFG (Wa 3089/6-1) and the EPSRC CCP CoDiMa (EP/M022641/1) for supporting this work. The first author would like to thank the Royal Society, and the EPSRC (EP/M003728/1). The second author would like to acknowledge support from the OpenDreamKit Horizon 2020 European Research Infrastructures Project (#676541). The third author wishes to thank the Computer Science Department of the University of St Andrews for its hospitality during numerous visits, and Karin Helbich for the pictures in this article. 2. Notation, basic results and examples Throughout we let Ω be a finite set and n ∈ N. Definition 1. 2
• A permutation of Ω is a bijective map from Ω to itself. The set of all permutations of Ω is a group with respect to the composition of maps which we call the symmetric group on Ω, denoted by Sym(Ω). • If Ω = {1, ..., n}, then Sym(Ω) is usually written as Sn . • If G is a subgroup of Sn and α ∈ {1, ..., n}, then we denote the point stabilizer of α in G by Gα . • If ∆ is a subset of {1, ..., n}, then we denote by G∆ the stabilizer in G of the set ∆ (not necessarily point-wise, but set-wise). If m ∈ N and α1 , ...αm ∈ {1, ..., n}, then we distinguish between the point-wise stabilizer and the set-wise stabilizer of {α1 , ..., αm } as follows: G{α1 ,...,αm} denotes the stabilizer of the set {α1 , ..., αm } and Gα1 ,...,αm denotes the point-wise stabilizer, so it really is the intersection Gα1 ∩ · · · ∩ Gαm . • If G ≤ Sn and k ∈ N, then we say that G is k-transitive on Ω if and only if, for all ktuples (α1 , ..., αk ) and (β1 , ..., βk ) of points in Ω there exists an element g ∈ G such that αg1 = β1 , ..., αgk = βk . Example 2. We let Ω := {1, ..., 7} and G := h(124), (67)i. Then G is an abelian subgroup of S7 of order 6. We map a few elements: 1(124) = 2, 5(124) = 5 and 7(124)(67) = 7(67) = 6. Now some point and set stabilizers: G{1,2} = h(67)i = G1 = G2 = G4 , and G{6,7} = G. Definition 3. • We introduce the set Part(Ω) of all partitions of Ω. By a partition we mean a sequence of disjoint subsets (called cells) of Ω whose union is all of Ω. In the examples it will become clear how we denote partitions. We point out that the ordering of the elements in a cell is irrelevant, but the ordering of the cells is relevant. • Part(Ω) is partially ordered in the sense that “a partition Q is smaller than a partition P” if and only if Q is finer than P, which we define to mean that, if i, j ∈ Ω are in a common cell of Q, then they are also in a common cell of P. Conversely we refer to P as being coarser than Q in this situation. We denote this by Q 4 P and we note that, for all partitions P ∈ Part(Ω), the definition implies that P 4 P. We call a partition discrete if every element of Ω is in a cell by itself, and we call a partition trivial if it only has one cell. • The meet of two partitions P and Q of a set Ω is denoted by P ∧ Q and defined as follows: Two elements are in a cell of P ∧ Q if and only if they are in the same cell of P and Q. This is only well-defined up to the ordering of the cells, so for practical purposes (and for implementation) we need to be more specific. In this article, when we discuss the meet of partitions P and Q, then the meet P ∧ Q is calculated in the following way: We assign to each element of Ω a tuple where the first entry is the number of the cell that contains it in P, and the second entry is the number of the cell that contains it in Q. Then the ordering of the cells in the meet is determined by the lexicographical ordering of these tuples. We will give an example of this method below. 3
• If P is a partition of Ω and g ∈ G, then we write Pg for the partition that we obtain by applying g to the elements in the cells of P. In this sense, we denote by G P the stabilizer of P in G, i.e. the set of permutations in G that map P to itself. • Important partitions come from the action of subgroups of Sym(Ω) on Ω. We call them orbit partitions. If H ≤ Sym(Ω) and P ∈ Part(Ω), then we say that P is an orbit partition for H if and only if the cells of P are exactly the orbits of H on Ω. As soon as H has more than one orbit, there are several distinct orbit partitions (differing only by the ordering of the orbits, i.e. the cells). • Notation for orbits: if α ∈ Ω and H ≤ Sym(Ω), then we denote the H-orbit of α by αH . • Suppose that P is a partition of {1, ..., n} into k ∈ N cells ∆1 , ..., ∆k . Then we write Sym(P) for the subgroup Sym(∆1 )×· · · Sym(∆k ) of Sym(Ω), i.e. the stabilizer of the partition P in Sym(Ω). We remark that Sym(P) stabilizes each cell of the partition, so no element of Sym(P) interchanges cells of the same size. (The same holds for the stabilizer of a partition!) • We use Sym(P) mostly if we are really interested in the actual elements in the cells of the partition. If we are not, for example because we are only interested in the structure or size of the group in question, then we take the sizes l1 , ..., lk of the cells, in order, and we write Sym(l1 , ..., lm ) for the direct product Sl1 × · · · Slk . It will be a convention that we do not write down factors of size 1 in this direct product, so we omit cells of size 1. This is because Sym(P) fixes all cells of size one, hence the permutations of these cells are trivial and do not contribute to our group Sym(P) or to the (isomorphic) group Sym(l1 , ..., lm ). We use all this notation without further explanation whenever we have a partition of {1, ..., n}. Example 4. We look at a partition P := [1, 2, 3, 4|5, 6, 7] of Ω := {1, 2, 3, 4, 5, 6, 7}, also to show how we write down partitions. Then P = [2, 1, 3, 4|5, 6, 7] because the ordering of elements within a cell is irrelevant, and P 4 [5, 6, 7|1, 2, 3, 4], but P , [5, 6, 7|1, 2, 3, 4]. Let Q := [1, 2, 3|4|5, 6, 7]. Then Q 4 P and also Q 4 [4, 5, 6, 7|3, 2, 1]. If we apply the permutation σ := (124) to the partition P := [1, 2, 3, 4|5, 6, 7], then we obtain Pσ := [1σ , 2σ , 3σ , 4σ |5σ , 6σ , 7σ ] = [2, 4, 3, 1|5, 6, 7] = P. So we see that P is σ-invariant. But the partition [1, 2, 5, 7|3, 4, 6] is not σ-invariant because σ moves an element of the first cell into the second cell. Now we calculate the meet of P and [1, 2|5, 3|7, 4, 6]: Going through Ω, we assign the tuples: 1 – [1, 1], 2 – [1, 1], 3 – [1, 2], 4 – [1, 3], 5 – [2, 2], 6 – [2, 3], 7 – [2, 3]. Therefore P ∧ [1, 2|5, 3|7, 4, 6] = [1, 2|3|4|5|6, 7]. Going back to the partition P, we look at its stabilizer in S7 : If H1 ≤ S7 is the subgroup stabilizing the set {1, 2, 3, 4} and H2 ≤ S7 is the subgroup stabilizing the set {5, 6, 7}, then Sym(P) is exactly H1 ×H2 . It can be written as h(12), (13), (14), (56), (57)i. This group is isomorphic to Sym(4, 3). Finally, we look at the subgroup H := h(123), (57)i of S7 and we write down two of its orbit partitions: [123|4|57|6] and [4|6|57|123]. 4
It will be important later that taking meets of partitions of Ω is compatible with the action of elements of Sym(Ω) on Ω. Lemma 5. Let G ≤ Sym(Ω), let P and Q be partitions of Ω, and let g ∈ G. Then (P ∧ Q)g = Pg ∧ Qg . Proof. For any partition P and elements i and j of Ω we write P(i, j) to denote that i and j are in the same cell of P. −1 −1 First we note the following: If g ∈ Sym(Ω), then Pg (i, j) if and only if P(ig , jg ), and, by definition, (P ∧ Q)(i, j) if and only if P(i, j) and Q(i, j). Now we see: −1
−1
(P ∧ Q)g (i, j) ⇔ (P ∧ Q)(ig , jg ) −1
−1
−1
−1
⇔ P(ig , jg ) and Q(ig , jg ), ⇔ Pg (i, j) and Qg (i, j) ⇔ (Pg ∧ Qg )(i, j). For a partition P denote by ∆P (i) the cell that the point i is in. We note that it holds that −1 ∆Pg (i) = ∆P (ig ). For a meet P ∧ Q of two partitions we can describe the cell ∆P∧Q (i) by the pair [∆P (i), ∆Q (i)]. So we argue as follows: −1
∆(P∧Q)g (i) = ∆(P∧Q) (ig ) −1
−1
= [∆P (ig ), ∆Q (ig )] = [∆Pg (i), ∆Qg (i)] = ∆Pg ∧Qg (i). This implies that (P ∧ Q)g = Pg ∧ Qg . Definition 6. • For the purposes of this paper, a graph Γ is a pair Γ = (V, E) where V denotes the set of vertices (or points) and E denotes the set of edges. We note that edges are directed, so if x, y ∈ V, then an edge joining x and y in Γ will be a pair (x, y) where the ordering of x and y means that the edge is directed from x to y. • Let Γ1 = (V1 , E1 ) and Γ2 = (V2 , E2 ) be graphs. A map φ from V1 to V2 is said to be a graph isomorphism if and only if φ is bijective and if, for all x, y ∈ V1 : (x, y) ∈ E1 if and only if (xφ , yφ ) ∈ E2 . If vertices are coloured, then we will always suppose that isomorphisms respect these colours. • In the special case where Γ1 = Γ2 we say that φ is a graph automorphism of Γ1 if and only if φ is a graph isomorphism from Γ1 to itself. The set of graph automorphisms of Γ1 is a group with respect to composition that we denote by Aut(Γ1 ). 5
• Let Γ = (V, E) be a graph and let G be a group. We say that G acts on the graph Γ if and only if every element of g induces a permutation φg on V and if the following hold: – For all x, y ∈ V, we have that (x, y) ∈ E if and only if (xφg , yφg ) ∈ E. – If g, h ∈ G, then φg·h = φg ∗ φh . We simplify notation by omitting φ, so for all g ∈ G and x ∈ V we write xg for the image of x under the permutation induced by g. We also abuse notation when we map edges, connected components, subsets of vertices etc. • If v ∈ V is a vertex and H ≤ G, then we denote by vH the orbit of v under the action of H. Similarly, for an edge (x, y), we write (x, y)H for the orbit (which is a set of edges). • If v ∈ V is a vertex or (v, w) is an edge in the graph Γ, then the connected component of Γ containing v (or containing (v, w)) is defined to be the set of all vertices of Γ that are connected to v by a sequence of edges. Here we do not take the direction of the edges into account. • We say that a graph is complete if and only if it has all possible edges between all vertices. • An isolated point (or vertex) of a graph is a vertex with no edges going into it or coming out of it. Warning: If G acts on Γ, then all elements of G induce graph automorphisms on Γ. But those do not need to be non-trivial or pair-wise distinct. In particular it is not necessarily true that G is a subgroup of Aut(Γ). But if K denotes the kernel of the action of G on Γ, then K E G and G/K is isomorphic to a subgroup of Aut(Γ). Example 7. Here we take the complete graph Γ on 5 vertices. For convenience we call the vertices 1, . . . , 5. Then the group S5 acts on this graph naturally, by permuting the vertices. We observe that this action is faithful, so S5 is isomorphic to a subgroup of Aut(Γ). Conversely, every automorphism of Γ permutes the vertices, hence the numbers 1, . . . , 5. It follows that Aut(Γ) S5 . We also note that this graph is isomorphic to the complete graph on vertices that are called 6, 7, 8, 9, 10. If we colour vertex 5 red and the other vertices 1, 2, 3, 4 blue, then every automorphism of this new graph Γ1 graph has to respect the colours, so it has to fix the unique vertex of colour red. This implies that the new automorphism group is isomorphic to S4 . The complete graph on the vertices 1, 2, 3, 4 with colour blue is isomorphic to the subgraph of Γ1 spanned by the vertices 1, 2, 3, 4. Finally, if Γ is a graph with exactly three vertices {1, 2, 3} that form a directed cycle (so the edges are (1, 2), (2, 3) and (3, 1)), then the connected component containing 2 is the whole graph. But the graph is not complete because the edge (2, 1) does not exist. An isolated point of a graph always forms a connected component.
6
3. Orbital graphs Definition 8. Let G be a group of permutations on a set Ω and let x, y ∈ Ω be distinct elements, chosen in this order. We look at the graph Γ = (V, E) where V = Ω and where the edge set E is the set of all edges (xg , yg ) where g ∈ G. This graph is called the orbital graph of G with base-pair (x, y). Example 9. If we build an orbital graph for S3 , then for each base-pair we obtain the complete directed graph on {1, 2, 3}. The reason is that this group is 2-transitive: Given i, j ∈ {1, 2, 3} such that (i, j) is a base-pair, and given any a, b ∈ {1, 2, 3}, there exists some g ∈ S3 such that ig = a and jg = b. Therefore (a, b) is also an edge, and this means that all possible edges exist. For groups that are not 2-transitive, the choice of the base-pair becomes much more important. Let G := h(123), (45), (46)i ≤ S6 . Then, starting with the base-pair (1, 2), we obtain the following graph: 2
5
3
1
4
6
But, starting with the base-pair (5, 6), we find: 2
5
3
1
4
6
If we want to obtain a connected graph, then we could start with the pair (2, 4): 1
2
3
4
5
6
We note that orbital graphs have been used in the PhD thesis Theißen (1995) and that the author also proves properties of the orbital graphs. We just list a few properties here and give proofs to make this section more self-contained. Lemma 10. Let G be a group of permutations on a set Ω, let x, y ∈ Ω and let Γ = (V, E) be the orbital graph with base-pair (x, y). 1. G acts on Γ. In particular each g ∈ G induces a graph automorphism on Γ. 2. The number of edges starting at x is |yGx | and the number of edges going into y is |xGy |. 3. Let ∆ denote the connected component of Γ that contains (x, y). If G acts transitively on the vertex set of ∆, then all vertices in ∆ have the same (directed) valencies, i.e. numbers of edges coming out of them or going into them. 7
4. For any two connected components of Γ of size at least 2 there exists some g ∈ G that induces an isomorphism from one to the other. All other connected components of Γ are isolated points. 5. If a, b ∈ Ω are such that (a, b) is an edge, but (b, a) is not, then for all i, j ∈ Ω there is at most one edge between them. Proof. Let g ∈ G. Then g acts on the set Ω which is the vertex set of Γ. Let a, b ∈ Ω. If (a, b) is an edge, then there exists some h ∈ G such that (a, b) = (xh , yh ) by definition of the orbital graph. Hence (ag , bg ) = (xhg , yhg ) is an edge. Conversely, if (ag , bg ) is an edge, then there exists some h ∈ G such that (ag , bg ) = (xh , yh ) −1 −1 and hence (a, b) = (xhg , yhg ) is an edge. As G is a group, the induced maps are bijective and hence every g ∈ G induces a graph automorphism on Γ. For the next statement we consider the number of edges starting at x. This number is |{(x, a) | a ∈ Ω}| = |{(xg , yg ) | g ∈ G, xg = x}| = |yGx |. The number of edges going into y is |{(b, y) | b ∈ Ω}| = |{(xg , yg ) | g ∈ G, yg = y}| = |xGy |. The third statement follows immediately from this. For the next assertion we take two connected components ∆1 and ∆2 of size at least 2 and without loss ∆1 contains the edge (x, y). Let (a, b) be an edge in ∆2 . Let g ∈ G be such that (xg , yg ) = (a, b). Then g induces an automorphism on Γ and it moves all edges from ∆1 to edges in ∆2 . Therefore ∆1 is isomorphic to a subgraph of ∆2 . Conversely, g−1 induces an automorphism on Γ that moves all edges of ∆2 into ∆1 . Thus it follows that ∆1 and ∆2 are isomorphic. Finally we suppose that (a, b) is an edge in Γ, but (b, a) is not. Let g ∈ G be such that (a, b) = (xg , yg ). Then (yg , xg ) is not an edge. Since g induces an automorphism on Γ, it follows that (y, x) is not an edge. Then the definition of the orbital graph implies that, for all i, j ∈ Ω, either there is no edge or exactly one of the edges (i, j) or ( j, i) exists (depending on whether i ∈ aG or j ∈ aG ). 4. Refining partitions 4.1. Partition Backtrack Partition backtrack is a search technique for search problems on permutation groups and cosets. This method is implemented in GAP (2016) and MAGMA (1997) as the main technique for solving a range of problems, including computing group and coset intersections, set and partition stabilizers, centralizers and normalizers. This paper will not provide a full description of partition backtrack, instead we refer readers to Leon (1991). In brief, partition backtrack searches for elements of Sym(Ω) that satisfy a list of properties. For example, searching for elements that stabilize a subset of Ω and also are contained in another given subgroup of Sym(Ω). 8
The search starts with the trivial partition P0 of Ω consisting of just one cell and with a list of required properties that we refer to as LRP. Then it proceeds by repeatedly alternating between two phases, starting at i = 0: 1. Refinement phase: Start with the first property of the list LRP and refine the partition Pi such that the following holds: Every element of Sym(Ω) that stabilizes Pi and has the property also stabilizes the new partition Q. Then repeat, if possible, with the second property from the list. Repeat until the end of the list is reached. Start again at the beginning of the list LRP until the partition does not change anymore. The resulting partition will be called Pi+1 . 2. Branching phase: Take Pi+1 . If possible, take the smallest cell c of size k ≥ 2. For each entry of this cell, create a new partition where this entry forms a new cell of size one. This gives k new partitions that are finer than Pi+1 . For each of these partitions, the search along this branch continues by going to the refinement phase. This process will, for some i ∈ N, stop in the sense that at all branches the end result is a discrete partition. In Leon (1991) the author explains how (and proves that) this search procedure gives elements of Sym(Ω) that have the desired properties. This paper will concentrate on refinement: For each property on the list LRP there is a refiner needed, and the performance of the search depends heavily on the quality of the refiners. We now define refiners formally: Definition 11. Let M ⊆ Sym(Ω) be a set of elements with a given property. An M-refiner is a map f M : Part(Ω) → Part(Ω) which satisfies the following conditions for any partition P of Ω: • f (P) 4 P. • (M-Compatibility) For all g ∈ M, it is true that f (Pg ) = f (P)g . The second property implies that every element in Sym(P) that satisfies our property also stabilizes f (P). The compatibility condition is not only a natural requirement for a refiner, it is also one of the main reasons why partition backtracking is so efficient. For more details see Sections 6 and 7 in Leon (1991). We now look at one of the standard refiners and then on a new refiner that uses orbital graphs. Definition 12. Given Sym(Ω) and a subset M of elements that have a given property, the map Fixed M : Part(Ω) → Part(Ω) is defined as follows: • Given P ∈ Part(Ω), let k ∈ N and α1 , . . . , αk ∈ Ω be the elements in singleton cells of P. Then consider M0 := M ∩ Sym(Ω)α1 ,...,αk . • Return the meet of P and an orbit partition of hM0 i. Note that elements of M0 stabilize the singleton cells of P. This map does not necessarily give a refiner as it is: the reason is that we do not define the ordering of the cells in the orbit partition. In the implementation this is usually fixed by producing a list of orbits, outputting the cells in arbitrary order and then fixing this ordering for later instances. The details are in the proof of the next lemma. 9
Lemma 13. Let M ⊆ Sym(Ω) be a subset of elements that have a given property. Then the map Fixed M is a refiner. Proof. Let P be a partition of Ω. Then FixedM (P) 4 P, since Fixed M (P) is the meet of P with another partition and it is therefore finer than P. Let k ∈ N and α1 , . . . , αk ∈ Ω be such that these are precisely the elements in singleton cells of P. Now we let M0 := M ∩ Sym(Ω)α1 ,...,αk and we note again that F := hM0 i stabilizes all singleton cells of any orbit partition of M. Let g ∈ G. Then we still need to show that FixedM (Pg ) = Fixed M (P)g . First we note that F g fixes αg1 , . . . , αgk , which are exactly the singleton cells of Pg . Now we fix an orbit partition O(F) of F as described before the lemma. This automatically fixes an orbit partition O(F g ) = O(F)g of F g . Using Lemma 5 we deduce: FixedM (P)g = (P ∧ O(F))g = Pg ∧ O(F)g = Pg ∧ O(F g ) = FixedM (Pg ).
We will now show how orbital graphs can be used to produces refiners which outperform existing refiners for groups expressed by a list of generators. Orbital graphs were previously used, but in a different way to presented in this articles, for refiners of normalizers in Theißen (1995). We will employ existing refiners for arbitrary graphs, as previously discussed in McKay (1980) and McKay and Piperno (2014), to create refiners for groups given as a set of generators via orbital graphs. Before we go into the details, we need some more definitions: Definition 14. Let Γ = (Ω, E) be a directed graph. For any partition P ∈ Part(Ω), we say that a cell ∆ of P is Γ-equitable if, for all cells ∆′ of P there is a k ∈ N such that for all elements i in the cell ∆ it holds that |{(i, j) ∈ E | j ∈ c′ }| = k. We note that in this definition the number of edges k depends on ∆ and ∆′ , but not on the individual vertices in ∆. A partition P is called Γ-equitable if all its cells are Γ-equitable. Next we suppose that P and P′ are partitions of Ω. We say that P′ is a Γ-equalizer for P if and only if P′ is Γ-equitable, moreover P′ 4 P and P′ is as coarse as possible with this property, meaning that whenever Q ∈ Part(Ω) is also Γ-equitable and Q 4 P, then Q 4 P′ . Remark 15. Some remarks on the previous definition: If Γ = (Ω, E) is a directed graph and P ∈ Part(Ω), then two distinct Γ-equalizers for P can only differ by ordering of the cells. We also note that, if P is Γ-equitable and g is an automorphism of Γ, then Pg is also Γequitable. McKay and Piperno (2014) present algorithms for calculating Γ-equitable partitions. We will present here a simple algorithm that computes a Γ-equalizer for P given Γ and P as input. The 10
major simplification over the algorithm in McKay and Piperno (2014), and our implementation, is that there are many situations where we can skip some attempts to split P by elements of T , as we know no splitting will occur. Algorithm 1 Equitable Partitions 1: procedure Equitable(Γ, P) 2: P := P 3: T := P 4: while (T not empty) and (P is not discrete) do 5: Pick and remove some cell ∆ ∈ T 6: for ∆′ ∈ P do 7: Split ∆′ into ∆′1 . . . ∆′k equitably, according to edges starting at vertices in ∆ 8: if k > 1 then 9: Replace the cell ∆′ in P with ∆′1 . . . ∆′k 10: Add ∆′1 , . . . , ∆′k to T 11:
return P Using orbital graphs and equitable partitions we define the following refiner:
Definition 16. Given Sym(Ω) and a subset M of elements that have a given property, the map Orb M : Part(Ω) → Part(Ω) is defined as follows: • Construct all orbital graphs of hMi. • Given a partition P of Ω, compute a Γ-equalizer for P for every orbital graph Γ from the previous step, using Algorithm 1. • Return the meet of all refined partitions from the previous step. We use the notation Orb, without a subscript, for refiners for subgroup search. We argue now that this map really gives a refiner, and a detailed example later in this section will explain how this refiner works in practice. Lemma 17. Orb M really is a refiner. Proof. For any partition P of Ω, it holds that Orb M (P) 4 P, because Algorithm 1 splits cells of P. Next, we need to show that for any g ∈ M it holds that OrbM (Pg ) = Orb M (P)g , but this follows directly from the fact that g is an automorphism of any orbital graph, and that g commutes with taking meets of partitions. One obvious limitation of Orb is that if the group is 2-transitive, then it performs any refinement, as the only orbital graph is the complete clique on Ω. We therefore introduce another orbital graph based refiner, which makes use of the fact that we can, like in Fixed, easily stabilise any fixed points in the group. Definition 18. Given Sym(Ω) and a subset M of elements that have a given property, the map DeepOrb M : Part(Ω) → Part(Ω) is defined as follows: 11
• Given P ∈ Part(Ω), let k ∈ N and α1 , . . . , αk ∈ Ω be the elements in singleton cells of P. Then consider M0 := M ∩ Sym(Ω)α1 ,...,αk . • Construct all orbital graphs of hM0 i. • Given a partition P of Ω, compute a Γ-equalizer for P for every orbital graph Γ from the previous step, using Algorithm 1. • Return the meet of all refined partitions from the previous step. We use the notation DeepOrb, without a subscript, for this refiner. DeepOrb can be seen as combining Orb and Fixed. The proof of correctness of DeepOrb is analogous to the proof for Orb. The major disadvantage of DeepOrb is that it requires calculating the orbital graphs at every position in search, rather than just once at the beginning. Our experiments will investigate the practical trade-offs between Orb and DeepOrb. 4.2. Examples of refinements via graphs We will now present two examples of refinement, showing how using orbital graphs provides a finer partition than simply considering the orbits of the group alone. In the following two examples we let G := S10 . Example 19. We illustrate our method with the subgroups H1 := h(1, 2, ..., 10), (2, 10)(3, 9)(4, 8)(5, 7)i and H2 := G{1,5} of G. This problem is equivalent to calculating the set stabilizer of {1, 5} in H1 . While this problem is very simple, it allows us to show the algorithm working in detail. We are interested in calculating D := H1 ∩ H2 by looking at partitions. Purely grouptheoretically, if we take x ∈ D, then all we know is that x stabilizes the set {1, 5} and so we obtain the partition P := [1, 5 | 2, 3, 4, 6, 7, 8, 9, 10]. Looking at the orbits of H1 produces no useful information, as H1 is transitive. Therefore the only information that we extract from reasoning about orbits alone is that D is contained in a subgroup of G which is isomorphic to Sym(2, 8). Now we use the orbital graph for H1 that is obtained by starting with the edge (1, 2). For simplicity we work with an undirected graph here because all edges exist in both directions. When calculating equitable graphs, we will only show steps where the algorithm causes a cell of a partition to split, skipping steps where no split occurs. Step 1: Using P, we attach the colour 1 to the vertices 1 and 5 and colour 2 to all other vertices, to denote the cell of the partition the vertices were contained in. So, as above, our first partition is [1, 5 | 2, 3, 4, 6, 7, 8, 9, 10] and again we see that D is isomorphic to a subgroup of Sym(2, 8). 10
1
9
2 3
8 7
4 5
6 12
Step 2: Running through the Equitable Partition algorithm, we look at the vertices of colour 2. They fall into two classes – those who have two neighbours of colour 2, and those who have a neighbour of colour 1 and a neighbour of colour 2. This splits the second cell of P into two cells, with 2, 4, 6 and 10 in a new cell, with colour 3. Our second partition is therefore [1, 5 | 3, 7, 8, 9 | 2, 4, 6, 10] and this means that D is isomorphic to a subgroup of Sym(2, 4, 4). Step 3: Continuing the algorithm, we see the vertices of colour 2 can be further divided into a single vertex which has two neighbours of colour 2 (vertex 3), those who have two neighbours of colour 3 (vertex 8) and those who have one neighbour of colour 2 and one of colour 3 (vertices 7 and 9). Using this information, be obtain the new partition [1, 5 | 7, 9 | 2, 4, 6, 10 | 3 | 8]. Now D is isomorphic to a subgroup of Sym(2, 2, 4). Step 4: Our algorithm continues, looking at cell 3. Here the vertices can be divided into two categories, those which a neighbour of colour 1 and a neighbour of colour 4 (vertices 2 and 4), and those with a neighbour of colour 1 and a neighbour of colour 2 (vertices 6 and 10). Our final partition is therefore: Q := [1, 5 | 8 | 6, 10 | 3 | 7, 9 | 2, 4]. There is no further information in the graph at the moment, so we conclude by stating that D is isomorphic to a subgroup of Sym(2, 2, 2, 2), which has order 16. This is the most fine the partition can get, as this is actually the orbits of the group H1 ∩ H2 . Since D also is a subgroup of H1 which has order 20, we deduce that |D| ≤ 4. We change one of the subgroups such that, even in the graph, there is less information. Example 20. Again H1 := h(1, 2, ..., 10), (2, 10)(3, 9)(4, 8)(5, 7)i, but this time H2 := G{1,6} and again we wish to calculate D := H1 ∩ H2 . Using reasoning from the orbits of H1 and H2 we obtain the partition [1, 6 | 2, 3, 4, 5, 7, 8, 9, 10]. We consider the same orbital graph as in the previous example. Step 1: We create a graph where we attach the colour 1 to the vertices 1 and 6, and colour 2 to all other vertices. This gives the partition [1, 6 | 2, 3, 4, 5, 7, 8, 9, 10]. Step 2: We splits the vertices in the second cell into vertices which have different coloured neighbours (vertices 2,7,5 and 10) and those with two neighbours of colour 2 (vertices 3,4,8 and 9). Our second partition is therefore [1, 6 | 3, 4, 8, 9 | 2, 7, 5, 10]. Step 3: The algorithm will now run through the remaining reasoning, not producing any further refinements, as the graph is already equitable. We can say that D is isomorphic to a subgroup of Sym(2, 4, 4) of order 27 · 32 . Since D also is a subgroup of H1 which has order 20, we deduce that |D| ≤ 4. 13
4.3. Usefulness of Orbital Graphs While orbital graphs can be very useful in reducing search, they are expensive to create. Therefore we want to only create them when they provide useful extra refinements. Definition 21. Suppose that H ≤ G := Sym(Ω) and that P is an orbit partition of H. Let a, b ∈ Ω and let Γ denote the orbital graph for H with base-pair (a, b). The we say that the orbital graph Γ is pointless if and only if G P is isomorphic to a subgroup of Aut(Γ). We capture in this definition that some orbital graphs do not give additional information when applying the orbital graph refiner from Definition 16 anywhere in the search, other than the orbit structure of the group used by previous refiners. In Section 3 we have already seen some properties of orbital graphs. We will now discuss what typically makes an orbital graphs pointless and also which properties guarantee that it is not pointless. Definition 22. Let Γ = (V, E) be a (directed) graph. Γ = (V, E) is called a clique graph if and only if all its connected components are complete directed graphs. Γ is called a complete bipartite graph if and only if there exist pair-wise disjoint subsets C, D, I of vertices such that V = C ∪ D ∪ I and E = {(x, y)|x ∈ C, y ∈ D}. Lemma 23. Suppose that H ≤ G := Sym(Ω), let a, b ∈ Ω and let Γ denote the orbital graph for H with base-pair (a, b). If Γ is a clique graph and if all connected components of Γ of size at least 2 have pair-wise distinct size, then it is pointless. Proof. Let P be an orbit partition of H. Of course G P acts on the set of orbits of H and it permutes the vertices of Γ. It only remains to show that G P acts on Γ as a graph and that it acts faithfully. Let g ∈ G P . Let (x, y) be an edge in Γ and let h ∈ H be such that (ah , bh ) = (x, y). We know that g stabilizes P, so xg is contained in some H-orbit of the same size as aH . In particular xg is a vertex in a connected component ∆2 of Γ that is isomorphic to the connected component ∆1 containing the edge (x, y), by Lemma 10. In particular ∆1 and ∆2 have the same size, so by hypothesis they coincide. The element g now induces a bijection on the vertex set of ∆1 , so it follows that yg is a vertex of ∆1 , which is a complete graph, so (xg , yg ) is an edge. Conversely, if (xg , yg ) is an edge, then there exists some h ∈ H such that (ah , bh ) = (xg , yg ) −1 −1 and then the same argument as in the previous paragraph shows that x = ahg and y = bhg are contained in a connected component isomorphic to the one containing the edge (a, b). Since this component is a complete graph, we see that (x, y) is an edge. Hence all elements of G P induce automorphisms on Γ. If g ∈ G P fixes all vertices, then it fixes all of Ω point-wise and hence g = idΩ . Thus G P acts faithfully and it follows that G P is isomorphic to a subgroup of Aut(Γ), i.e. Γ is pointless. We give an example in order to illustrate why the extra hypothesis on the sizes of the connected components is needed. Example 24. We let G := S9 and we look at the subgroup H := h(12), (13), (45), (46), (14)(25)(36), (789)i. Let Γ be the orbital graph for H with basepair (1, 2). Then Γ has the following shape: 14
On the vertices 1, 2, 3 and 4, 5, 6 we have a complete directed graph, respectively, there is no edge between the sets {1, 2, 3} and {4, 5, 6}, and the points 7, 8 and 9 are isolated. This might look like a pointless graph, but according to the previous lemma it is not. So we consider an orbit partition P := [1, 2, 3, 4, 5, 6|7, 8, 9] of H. The group G P contains the transposition (24) ∈ G. This element interchanges the vertices 2 and 4 of Γ and fixes 1, so this element is not inducing an automorphism on Γ. (Otherwise the edge (1, 2) would be mapped to the edge (1, 4) which does not exist.) Hence G P is not isomorphic to a subgroup of Aut(Γ) and we see that Γ is, in fact, not pointless. Lemma 25. Suppose that H ≤ G := Sym(Ω), let a, b ∈ Ω and let Γ denote the orbital graph for H with base-pair (a, b). If Γ is a complete bipartite graph, then it is pointless. Proof. Let C and D denote the subsets of the vertex set of Γ such that all edges of Γ start at C and end at D. Let I be the set of isolated points of Γ, so that Ω = C ∪ D ∪ I. Let P be an orbit partition of H. Every element of aH is the starting point of an edge and is therefore contained in C. Similarly bH ⊆ D. It follows that C and D are unions of H-orbits (in fact, then they are H-orbits themselves by definition of the orbital graph). Therefore G P stabilizes the sets C and D. Then G P also stabilizes I. Moreover G P permutes the vertices of Γ. Let g ∈ G P and let (x, y) be an edge in Γ. Then x ∈ C, y ∈ D and there exists some h ∈ H such that (ah , bh ) = (x, y). Since G P stabilizes the sets C and D, we see that xg ∈ C and yg ∈ D. The completeness property then implies that (xg , yg ) is an edge. Conversely, if (xg , yg ) is an edge, then xg ∈ C, yg ∈ D and there exists some h ∈ H such that −1 −1 h h (a , b ) = (xg , yg ). Now x = ahg ∈ C and y = bhg ∈ D whence (x, y) is an edge. So G P induces automorphisms on Γ. It acts faithfully because the identity map is the only element in Sym(Ω) that fixes all vertices of Γ. Hence Γ is pointless. In the interest of a short statement in the following lemma, we say that an edge (x, y) of a graph is a one-way-edge if and only if the edge (y, x) does not exist in the graph. Lemma 26. The complete bipartite graph is the only graph with a one-way-edge that can occur as a pointless orbital graph. Proof. Suppose that H ≤ G := Sym(Ω), let a, b ∈ Ω and let Γ denote the orbital graph for H with base-pair (a, b). Suppose that x, y ∈ Ω are such that (x, y) is a one-way-edge in Γ and that this orbital graph is pointless. Then we need to find three pair-wise disjoint subsets C, D and I of Ω such that Ω = C ∪ D ∪ I and such that the edge set is exactly {(c, d)|c ∈ C, d ∈ D}. Claim 1: All edges in Γ are one-way-edges. Proof. This follows from Lemma 10. Claim 2: If i, j ∈ Ω are distinct and in the same H-orbit, then they are not on an edge. Proof. Let i, j ∈ Ω be distinct and in the same H-orbit. Then the transposition (i, j) ∈ Sym(Ω) stabilizes P and interchanges the vertices i and j. Then Claim 1 and the pointless property imply that neither (i, j) nor ( j, i) is an edge in Γ. 15
Conversely all vertices where an edge starts are H-conjugate to a and all vertices where an edge ends are conjugate to b. Claim 3: If i ∈ Ω is on an edge, then it is either a starting point or an end point, but not both. Proof. Suppose that i ∈ Ω is on an edge. There is an element in H mapping this edge to (a, b), so we may suppose that i shares an edge with a or b. We consider the case where (a, i) is an edge, the arguments for the other case (namely that (i, b) is an edge) are similar. Assume for a contradiction that there exists some v ∈ Ω such that (i, v) is an edge. Then i ∈ aH and v ∈ iH , by definition of the orbital graph, whence a, i and v are all in the same H-orbit. But this contradicts Claim 2. Let C := aH and D := bH , and let I ⊆ Ω denote the set of isolated vertices of Γ. ˙ and Γ is a complete bipartite graph with this partition of vertices. Claim 4: Ω = C ∪D Proof. Claims 2 and 3 give the first statement. Let c ∈ C. Then c is on an edge because a is, so we let h ∈ H and d := bh be such that c = ah and (c, d) is an edge. For all j ∈ bH , there exists an element g ∈ G P fixing aH point-wise and mapping d to j. Since Γ is pointless, g induces an automorphism on Γ and hence maps the edge (c, d) to the edge (c, j). Similar arguments show that for all i ∈ aH , the edge (i, d) exists in Γ. This holds for all c ∈ C. Arguing in the same way for all vertices d ∈ D, we see that for all v ∈ aH the edge (v, d) exists in Γ and so we conclude that Γ is a complete bipartite (directed) graph. This finishes the proof. In the next lemma we say that a graph is undirected meaning that for each edge going one way, there exists an edge going the other way (and then we replace these two edges by an undirected edge). Lemma 27. If an orbital graph is undirected and pointless, then it is a clique graph. Proof. First we set up notation again for our orbital graph. Let H ≤ G := Sym(Ω) and a, b ∈ Ω, let Γ denote the orbital graph for H with base-pair (a, b) and suppose that Γ is undirected and pointless. We write edges as sets now to make it clear that they are undirected. Let ∆ denote the connected component of Γ that contains the base-edge {a, b}. We assume that ∆ is not a complete graph. Then we find three distinct vertices such that two of the pairs form an edge, but the third does not. Every edge in such a configuration can be mapped to the base-edge {a, b} by definition of the orbital graph, so we may suppose the following: There exists c ∈ Ω, distinct from a and b, such that {a, c} is an edge in ∆, but {b, c} is not. Let h ∈ Ha be such that bh = c and let (by the undirected property) t ∈ H be such that t interchanges a and b. Then it follows that a, b, c are all in the same H-orbit and hence in a common cell of the partition P. In particular the 3-cycle g := (a, b, c) is contained in G P and because of the pointless property it induces an automorphism on Γ. As {a, b} is an edge, this implies that {ag , bg } = {b, c} is also an edge, which contradicts our choice of b and c. Hence ∆ is a complete graph. Lemma 10 then implies that all connected components are complete graphs, and so the lemma is proved. 16
Corollary 28. Let H ≤ G := Sym(Ω) and let k ∈ N, k ≥ 2. If H is k-transitive, then all its orbital graphs are pointless. If Γ is some orbital graph for H and if there are a, b ∈ Ω such that (a, b) and (b, a) are edges in Γ, and if Γ is pointless, then Γ is a clique graph. Proof. Suppose that that H is k-transitive and let (a, b) be a base-pair for an orbital graph. For all c, d ∈ Ω, there exists some h ∈ H such that ah = c and bh = d, because of k-transitivity, and then (c, d) is an edge. So the orbital graph of H is a complete graph, independent of the base-pair. Now Lemma 23 yields the statement. Next suppose that Γ is some orbital graph for H and that a, b ∈ Ω are such that (a, b) and (b, a) are edges in Γ. Then Lemma 10 yields that the base-pair exhibits edges in both directions, and hence all edges go both ways. If Γ is pointless, then Lemma 26 implies that Γ is a clique graph. In this section, we have shown how some orbital graphs are useless. We use this in our implementation, filtering these graphs out and avoiding the need to store them, or spend time performing useless filtering steps. 5. Experiments We consider three algorithms: 1. Fixed : Fixed, the traditional algorithm of Leon. It refines by taking the orbits of the group that stabilizes the given partition and fixing all cells of size one in it. 2. PreOrbital : This algorithm uses both Fixed and Orb as described in Section 4. 3. DeepOrbital : This algorithm uses both Fixed and DeepOrb as described in Section 4. We know that Fixed will always produce bigger searches than PreOrbital (in terms of the number of nodes in the search tree), which will always produce bigger searches than DeepOrbital. We also know Fixed will take less time per node than either PreOrbital or DeepOrbital. The purpose of these experiments is to show if the decreased search size provided by PreOrbital and DeepOrbital outweighs the increased cost of calculating and filtering orbital graphs. All of our experiments are performed in GAP (see GAP (2016)). We use the implementation of partition backtracking provided in the Ferret package (see Ferret (2016)), which includes our new algorithms. All of our experiments were performed on a machine with eight Intel Xeon E5520 cpus, running at 2.27GHz and 20GB RAM. Each experiment was given a 30 minute timeout. 5.1. Set stabilizers in Grid Groups In this experiment, we consider finding stabilizer of sets of integers in the grid group: Definition 29. Let m, n ∈ N. The direct product Sm × Sn acts on the set {1, . . . , m} × {1, . . . , n} of pairs in the following way: For all (i, j) ∈ {1, . . . , m} × {1, . . . , n} and all (σ, τ) ∈ Sm × Sn we define (i, j)(σ,τ) := (iσ , jτ ). The subgroup G ≤ Sym({1, . . . , m} × {1, . . . , n}) defined by this action is called the m × n grid group. 17
Grid size 10 20 30 40 50 60 70 80
Fixed times 8 181 1,351 9,031 267,760 140,982 N/A 609,547
Fixed nodes 92.8 2,981.1 25,356.0 217,495.3 10,694,749.0 1,433,744.0 N/A 5,141,781
Fixed finished 10 10 10 10 8 3 0 1
PreOrbital time 12 72 262 856 2,830 6,409 21,095 57,979
PreOrbital nodes 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0
PreOrbital finished 10 10 10 10 10 10 10 10
Figure 1: Time (in milliseconds) taken to find set stabilizers in square grid graphs (average of 10 runs)
Grid size 10 20 30 40 50 60 70 80
Fixed times 10 19,817 1,976 N/A N/A N/A N/A N/A
Fixed nodes 371.7 3,643,455.8 81,906.3 N/A N/A N/A N/A N/A
Fixed finished 10 4 3 0 0 0 0 0
PreOrbital time 12 79 301 1,023 3,340 8,983 24,283 61,254
PreOrbital nodes 0.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0
PreOrbital finished 10 10 10 10 10 10 10 10
Figure 2: Time (in milliseconds) taken to find row-balanced set stabilizers in square grid graphs (average of 10 runs)
We note that, while the construction of the grid group is done by starting with an m by n grid of points and permuting rows or columns independently of each other, we actually represent this group as a subgroup of Sm·n , and we do not assume prior knowledge of the grid structure of the action. We considered two different variants of set stabilizers: stabilizing a random subset 2 of {1, . . . , m2 } of size ⌊ m2 ⌋, and stabilizing random subsets of {1, . . . , m2 } containing exactly ⌊ m2 ⌋ points in each row. 2 In our first experiments, we generate a random set of size ⌊ m2 ⌋ of {1 . . . m2 }. The results are shown in Figure 1. Whenever PreOrbital takes 0 nodes during search, the time and nodes for DeepOrbital is identical. As almost all these experiments take 0 nodes, we omit results for DeepOrbital. While for very small grids the time taken to build the orbital graph is longer, for larger grids we can see the orbital graphs perform much better. In particular, for problems where the grid size is 20 × 20 or larger, the search tree for orbital graphs is of size zero, which means reasoning by colouring graph vertices is sufficient to prove the set stabilizer is trivial. Also, once we get to larger sizes, only a small subset of problems can be solved with Fixed within the timeout, while PreOrbital continues to solve all problems. In the second experiment, we generate row-balanced sets. These include exactly ⌊ m2 ⌋ points in each for row of the grid. As almost all node counts are 0, we again omit DeepOrbital. We expect these to be harder problems because, when rows have a different number of elements from the set in them, then they can be trivially distinguished. 18
Size of Ω 1-99 100-199 200-299 300-399 400-499 500-599
total number of problems 568 563 734 396 195 294
Fixed solved 568 563 446 98 1 0
PreOrbital solved 568 563 732 364 17 0
DeepOrbital solved 568 563 721 382 29 0
Figure 3: Time (in milliseconds) taken to intersect primitive groups which are not 2-transitivity and wreath products
The results of this experiment are shown in Figure 2. The major difference here is that some experiments failed to complete within the thirty minute timeout. In particular, for grids of size 40 and above, no experiment finished within thirty minutes with Fixed, while PreOrbital continued to solve all problems well within the timelimit. 5.2. Intersection of Primitive Groups In this experiment, we find the intersection of primitive groups with wreath products of symmetric groups. To construct the set of groups we experiment on, we filtered GAP’s list of all primitive groups. In light of Corollary 28, we did not consider groups that are 2-transitive. For each n we also omit the symmetric groups S n , the alternating groups An , the cyclic groups Cn and the dihedral groups Dn in their natural action on n points, where these groups are primitive, as these always lead to easy problems. We take the primitive groups in the form provided by the GAP primitive groups library. Given a primitive group on n points, we create the wreath products S n/x ≀ S x , where x ∈ {2, . . . , 7}, and only in the case where n/x is an integer, then we conjugate these wreath products by a random permutation and we intersect them, one by one, with our primitive group. This means some primitive groups are skipped, namely those which act on a set whose size does not divide any number between 2 and 7, but it still gives a huge number of intersection problems. We consider the primitive groups on up to 600 points. This produces 2,703 different experiments. We run each of them for five minutes, including the time taken to build the orbital graphs, where appropriate. Our results are given in Table 3. We can see in this experiment that Fixed fails to solve 40% of the problems on 201-300 points, while PreOrbital is able to solve 99.6% of problems. It also still solves over 90% of problems on 301-400 points. Once we reach groups acting on 500 points, none of the algorithms can solve any of our problems in under five minutes. These timeouts are in general caused by the time taken to calculate stabilizer chains, rather than big searches in terms of number of nodes. It is more difficult to compare DeepOrbital and PreOrbital. DeepOrbital performs better for the very hardest problems. This is because DeepOrbital re-generates the orbital graph at every node of search, which is very expensive, but is occasionally able to massively reduce the complexity of the search. Finally, we ran the intersection of primitive groups, for groups with 2-transitivity, but not 3-transitivity. Our results are given in Table 4. Here we find orbital graphs are less useful, as 19
Size of Ω 1-99 100-199 200-299 300-399 400-499 500-599
total number of problems 233 122 131 70 59 79
Fixed solved 233 122 92 49 4 0
PreOrbital solved 233 122 90 47 3 0
DeepOrbital solved 233 122 129 58 6 0
Figure 4: Time (in milliseconds) taken to intersect primitive groups of transitivity 2 and wreath products
we would expect. In particular, PreOrbital is now pointless, as the orbital graph of the original group is the complete clique graph. A small amount of time is taken proving this, hence the slight reduction in problems solved. The DeepOrbital is still able to produce useful improvements, by calculating orbital graphs of subgroups created during the search. 6. Final comments and future work Our experiments show that graphs can be very useful for refining partitions, but it is not clear exactly when they will be useful: How can we measure the usefulness of a graph for refinements? Can we always find a graph that is useful in terms of refining partitions? The results in Section 4 suggest that it is worth investigating alternative refiners in more detail. For example, if it is possible to feed theoretical information about other structural information of groups into a refiner, then we may be able to improve the runtime of the search algorithm even more. In cases where using Orb and DeepOrb still leads to excessively long runtimes in practice, we intend to investigate other types of graphs that can be used for refinements in future work. References Butler, G., 1983. Computing normalizers in permutation groups. J. Algorithms 4 (2), 163–175. URL http://dx.doi.org/10.1016/0196-6774(83)90043-3 Ferret, 2016. Ferret. URL https://gap-packages.github.io/ferret GAP, 2016. GAP – Groups, Algorithms, and Programming, Version 4.8.4. The GAP Group. URL http://www.gap-system.org Hoffmann, C. M., 1982. Group-Theoretic Algorithms and Graph Isomorphism. Lecture Notes in Computer Science. Springer. Leon, J. S., 1991. Permutation group algorithms based on partitions, I: Theory and algorithms. Journal of Symbolic Computation 12 (4), 533–583. URL http://www.sciencedirect.com/science/article/pii/S0747717108801034 MAGMA, 1997. The Magma algebra system. I. The user language. Computational algebra and number theory (London, 1993). URL http://dx.doi.org/10.1006/jsco.1996.0125 McKay, B. D., 1980. Practical graph isomorphism. Congr. Numer. (30), 45–87. McKay, B. D., Piperno, A., 2014. Practical graph isomorphism, II. Journal of Symbolic Computation 60, 94–112. URL http://www.sciencedirect.com/science/article/pii/S0747717113001193 Theißen, H., 1995. Eine Methode zur Normalisatorberechnung in Permutationsgruppen mit Anwendungen in der Konstruktion primitiver Gruppen. Ph.D. thesis, Lehrstuhl D f¨ur Mathematik, RWTH Aachen.
20