Computing autotopism groups of partial Latin rectangles: a pilot study

Similar documents
Invariants for efficiently computing the autotopism group of a partial Latin rectangle

Classifying partial Latin rectangles

Ma/CS 6a Class 28: Latin Squares

Triceratopisms of Latin Squares

Cycle structure of autotopisms of quasigroups and Latin squares

Ma/CS 6a Class 28: Latin Squares

Enumeration of MOLS of small order

Latin squares: Equivalents and equivalence

Lecture 1: Latin Squares!

Edge colored complete bipartite graphs with trivial automorphism groups

On the Number of Latin Squares

The cycle structure of two rows in a random latin square

Autoparatopisms of Latin Squares

DISTINGUISHING PARTITIONS AND ASYMMETRIC UNIFORM HYPERGRAPHS

On the size of autotopism groups of Latin squares.

Planes and MOLS. Ian Wanless. Monash University

On the Effectiveness of Symmetry Breaking

Sherali-Adams Relaxations of Graph Isomorphism Polytopes. Peter N. Malkin* and Mohammed Omar + UC Davis

A Latin Square of order n is an n n array of n symbols where each symbol occurs once in each row and column. For example,

Notes on the Matrix-Tree theorem and Cayley s tree enumerator

Proof Assistants for Graph Non-isomorphism

ACO Comprehensive Exam October 18 and 19, Analysis of Algorithms

arxiv: v2 [math.co] 6 Apr 2016

Row and Column Distributions of Letter Matrices

RING ELEMENTS AS SUMS OF UNITS

An enumeration of equilateral triangle dissections

15.1 Matching, Components, and Edge cover (Collaborate with Xin Yu)

Notes on cycle generating functions

Computing Isomorphism [Ch.7, Kreher & Stinson] [Ch.3, Kaski & Östergård]

MATH 61-02: PRACTICE PROBLEMS FOR FINAL EXAM

Alpha-Beta Pruning: Algorithm and Analysis

Relations Graphical View

A Class of Vertex Transitive Graphs

Counting bases of representable matroids

Approximation algorithm for Max Cut with unit weights

Abstract We survey some of what can be deduced about automorphisms of a graph from information on its eigenvalues and eigenvectors. Two of the main to

Counting Clusters on a Grid

Atomic Latin Squares of Order Eleven

Classical Complexity and Fixed-Parameter Tractability of Simultaneous Consecutive Ones Submatrix & Editing Problems

On completing partial Latin squares with two filled rows and at least two filled columns

1 Last time: inverses

Counting Colorings Cleverly

Isomorphisms between pattern classes

Small Latin Squares, Quasigroups and Loops

(x 1 +x 2 )(x 1 x 2 )+(x 2 +x 3 )(x 2 x 3 )+(x 3 +x 1 )(x 3 x 1 ).

cerin Delisle, 2010 University of Victoria

DISTINGUISHING GRAPHS WITH ZETA FUNCTIONS AND GENERALIZED SPECTRA

2 Systems of Linear Equations

Q520: Answers to the Homework on Hopfield Networks. 1. For each of the following, answer true or false with an explanation:

ON COST MATRICES WITH TWO AND THREE DISTINCT VALUES OF HAMILTONIAN PATHS AND CYCLES

First Order Convergence and Roots

Square 2-designs/1. 1 Definition

Near-domination in graphs

1. How many labeled trees are there on n vertices such that all odd numbered vertices are leaves?

The Strongly Regular (45, 12, 3, 3) Graphs

Linear-Time Algorithms for Finding Tucker Submatrices and Lekkerkerker-Boland Subgraphs

Monotone Hamiltonian paths in the Boolean lattice of subsets

Bounds on parameters of minimally non-linear patterns

The Laplace Expansion Theorem: Computing the Determinants and Inverses of Matrices

MATH 2200 Final Review

Using Laplacian Eigenvalues and Eigenvectors in the Analysis of Frequency Assignment Problems

Graph Theorizing Peg Solitaire. D. Paul Hoilman East Tennessee State University

Example: 2x y + 3z = 1 5y 6z = 0 x + 4z = 7. Definition: Elementary Row Operations. Example: Type I swap rows 1 and 3

1 GSW Sets of Systems

Graph Theory. Thomas Bloom. February 6, 2015

Enumeration Schemes for Words Avoiding Permutations

Lecture 18: The Rank of a Matrix and Consistency of Linear Systems

Lecture 22: Counting

R(p, k) = the near regular complete k-partite graph of order p. Let p = sk+r, where s and r are positive integers such that 0 r < k.

Sections 8.1 & 8.2 Systems of Linear Equations in Two Variables

Section 29: What s an Inverse?

Exclusive Disjunction

Math 775 Homework 1. Austin Mohr. February 9, 2011

Lecture 3: Latin Squares and Groups

Tree Decomposition of Graphs

Designing Information Devices and Systems I Spring 2018 Lecture Notes Note Introduction to Linear Algebra the EECS Way

Local finiteness, distinguishing numbers, and Tucker s conjecture

USING GRAPHS AND GAMES TO GENERATE CAP SET BOUNDS

1 A simple example. A short introduction to Bayesian statistics, part I Math 217 Probability and Statistics Prof. D.

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Matroids and Greedy Algorithms Date: 10/31/16

The many formulae for the number of Latin rectangles

STAT 309: MATHEMATICAL COMPUTATIONS I FALL 2018 LECTURE 13

RECAP How to find a maximum matching?

Peter J. Dukes. 22 August, 2012

.Cycle counting: the next generation. Matthew Skala 30 January 2013

Latin square determinants and permanents Ken Johnson Penn State Abington College (Joint work with D. Donovan and I. Wanless)

x 1 + x 2 2 x 1 x 2 1 x 2 2 min 3x 1 + 2x 2

1 Counting spanning trees: A determinantal formula

The Classification of Clifford Gates over Qubits

2 - Strings and Binomial Coefficients

STEINER 2-DESIGNS S(2, 4, 28) WITH NONTRIVIAL AUTOMORPHISMS. Vedran Krčadinac Department of Mathematics, University of Zagreb, Croatia

Chapter 2. Square matrices

C if U can. Algebra. Name

Group Isomorphisms - Some Intuition

A Markov chain for certain triple systems

The Interlace Polynomial of Graphs at 1

A Dynamic Programming Approach to Counting Hamiltonian Cycles in Bipartite Graphs

And, even if it is square, we may not be able to use EROs to get to the identity matrix. Consider

Dynamic Programming on Trees. Example: Independent Set on T = (V, E) rooted at r V.

Notes. Relations. Introduction. Notes. Relations. Notes. Definition. Example. Slides by Christopher M. Bourke Instructor: Berthe Y.

Transcription:

Computing autotopism groups of partial Latin rectangles: a pilot study Raúl M. Falcón (U. Seville ); Daniel Kotlar (Tel-Hai College ); Rebecca J. Stones (Nankai U. ) 9 December 206 2 3 2 4 5 6 7 5 3 4 2 5 3 4 4 3 5 2 2 3

Partial Latin rectangles An r s partial Latin rectangle is an r s matrix containing symbols from [n] { } such that each row and each column contains at most one copy of any symbol in [n]. 5 4 3 2 5 4

Partial Latin rectangles An r s partial Latin rectangle is an r s matrix containing symbols from [n] { } such that each row and each column contains at most one copy of any symbol in [n]. 5 4 3 2 5 4 Every partial Latin rectangle L PLR(r, s, n) is uniquely determined by its entry set: entry {}}{ Ent(L) := {(i, j, L[i, j]) : i [r], j [l], and L[i, j] [n]}. Ent(above) = { (2, 5, ), (3, 4, ), (, 5, 2), (, 4, 3), (, 3, 4), (3,, 4), (, 2, 5), (2,, 5) }

Isotopisms and autotopisms { r s partial Latin rectangles on symbol set [n] The isotopism θ := (α, β, γ) S r S s S n acts on PLR(r, s, n). } 2 3 4 3 4 2 5 6 5 6 5 6 swap first two rows α = (2) swap last two columns β = (56) do nothing to symbols γ = id 3 4 2 2 3 4 5 6 5 5 6 6

Isotopisms and autotopisms { r s partial Latin rectangles on symbol set [n] The isotopism θ := (α, β, γ) S r S s S n acts on PLR(r, s, n). } 2 3 4 3 4 2 5 6 5 6 5 6 swap first two rows α = (2) swap last two columns β = (56) do nothing to symbols γ = id 3 4 2 2 3 4 5 6 5 5 6 6 And, in some cases, we can apply an isotopism θ and end up back where we started = θ is an autotopism.

Isotopisms and autotopisms { r s partial Latin rectangles on symbol set [n] The isotopism θ := (α, β, γ) S r S s S n acts on PLR(r, s, n). } 2 3 4 3 4 2 5 6 5 6 5 6 swap first two rows α = (2) swap last two columns β = (56) do nothing to symbols γ = id 3 4 2 2 3 4 5 6 5 5 6 6 And, in some cases, we can apply an isotopism θ and end up back where we started = θ is an autotopism. The set of autotopisms form a group, named the autotopism group.

2 3 4 This member of PLR(2, 2, 4) has 4 autotopisms. (id, id, id), ((2), id, (3)(24)), (id, (2), (2)(34)), ((2), (2), (4)(23)),

2 3 4 This member of PLR(2, 2, 4) has 4 autotopisms. (id, id, id), ((2), id, (3)(24)), (id, (2), (2)(34)), ((2), (2), (4)(23)),...forming a group isomorphic to C 2 C 2.

2 3 4 This member of PLR(2, 2, 4) has 4 autotopisms. (id, id, id), ((2), id, (3)(24)), (id, (2), (2)(34)), ((2), (2), (4)(23)),...forming a group isomorphic to C 2 C 2. Note: The row and column permutations determine the autotopism.

How to efficiently compute the autotopism group? Input: partial Latin rectangle. Output: its autotopism group.

How to efficiently compute the autotopism group? Input: partial Latin rectangle. Output: its autotopism group. By the looks of things, the answer is...

How to efficiently compute the autotopism group? Input: partial Latin rectangle. Output: its autotopism group. By the looks of things, the answer is... Basically, the answer depends on the partial Latin rectangle.

How to efficiently compute the autotopism group? Input: partial Latin rectangle. Output: its autotopism group. By the looks of things, the answer is... Basically, the answer depends on the partial Latin rectangle. This work is a pilot study to (a) identify design goals of future software for computing the autotopism group, and (b) eliminate unpromising methods.

How to efficiently compute the autotopism group? Input: partial Latin rectangle. Output: its autotopism group. By the looks of things, the answer is... Basically, the answer depends on the partial Latin rectangle. This work is a pilot study to (a) identify design goals of future software for computing the autotopism group, and (b) eliminate unpromising methods. We experimentally compare 6 families of methods...

Backtracking methods... Family : Alpha-beta backtracking.

Backtracking methods... Family : Alpha-beta backtracking. At each level of the α search tree, we designate row i α provided it doesn t clash. row a α a i 3 4 2

Backtracking methods... Family : Alpha-beta backtracking. At each level of the α search tree, we designate row i α provided it doesn t clash. row a α a i 3 4 2 Once α is determined... At each level of the β search tree, we designate column j β provided it doesn t clash. column b β j b 3 4 2

Backtracking methods... Family : Alpha-beta backtracking. At each level of the α search tree, we designate row i α provided it doesn t clash. row a α a i 3 4 2 Once α is determined... At each level of the β search tree, we designate column j β provided it doesn t clash. column b Then we check if (α, β,??) is an autotopism. β j b 3 4 2

Backtracking methods... Family 2: Entrywise backtracking.

Backtracking methods... Family 2: Entrywise backtracking. At each level of the search tree, we designate entry (i, j, L[i, j]) θ provided it doesn t clash. entry (a, b, L[a, b]) α(i) = a β(j) = b γ(l[i, j]) = L[a, b] a i j b 3 4 2

Graph methods... Family 3: McKay, Meynert, and Myrvold method.

Graph methods... Family 3: McKay, Meynert, and Myrvold method. Vertex set: Ent(L) {R i : i [r] and row i of L is non-empty} {S j : j [s] and column j of L is non-empty} {N k : k [n] and symbol k occurs in L} where each of the four subsets, Ent(L), {R i }, {S j }, and {N k }, are assigned a distinct color. Edge set: {R i L[i, j]: (i, j, L[i, j]) Ent(L)} {S j L[i, j]: (i, j, L[i, j]) Ent(L)} {N L[i,j] L[i, j]: (i, j, L[i, j]) Ent(L)}.

Graph methods... Family 3: McKay, Meynert, and Myrvold method. Vertex set: Ent(L) {R i : i [r] and row i of L is non-empty} {S j : j [s] and column j of L is non-empty} {N k : k [n] and symbol k occurs in L} where each of the four subsets, Ent(L), {R i }, {S j }, and {N k }, are assigned a distinct color. Edge set: {R i L[i, j]: (i, j, L[i, j]) Ent(L)} {S j L[i, j]: (i, j, L[i, j]) Ent(L)} {N L[i,j] L[i, j]: (i, j, L[i, j]) Ent(L)}. The automorphism group of this graph is isomorphic to the autotopism group of the partial Latin rectangle.

Graph methods... Family 3: McKay, Meynert, and Myrvold method. Vertex set: Ent(L) {R i : i [r] and row i of L is non-empty} {S j : j [s] and column j of L is non-empty} {N k : k [n] and symbol k occurs in L} where each of the four subsets, Ent(L), {R i }, {S j }, and {N k }, are assigned a distinct color. Edge set: {R i L[i, j]: (i, j, L[i, j]) Ent(L)} {S j L[i, j]: (i, j, L[i, j]) Ent(L)} {N L[i,j] L[i, j]: (i, j, L[i, j]) Ent(L)}. The automorphism group of this graph is isomorphic to the autotopism group of the partial Latin rectangle. We compute this using Nauty.

Graph methods... Family 4: Bipartite graph method.

Graph methods... Family 4: Bipartite graph method. 5 4 3 2 5 4 transform into bipartite graph row index 2 3 column index 2 3 4 5 (Edges are colored to illustrate construction.)

Graph methods... Family 4: Bipartite graph method. 5 4 3 2 5 4 transform into bipartite graph row index 2 3 column index 2 3 4 5 (Edges are colored to illustrate construction.) Then compute the automorphism group of the bipartite graph using Nauty.

Graph methods... Family 4: Bipartite graph method. 5 4 3 2 5 4 transform into bipartite graph row index 2 3 column index 2 3 4 5 (Edges are colored to illustrate construction.) Then compute the automorphism group of the bipartite graph using Nauty. Filter out non-autotopisms.

Graph methods... Family 4: Bipartite graph method. 5 4 3 2 5 4 transform into bipartite graph row index 2 3 column index 2 3 4 5 (Edges are colored to illustrate construction.) Then compute the automorphism group of the bipartite graph using Nauty. Filter out non-autotopisms. Nauty can also return (a) the row/column orbits or (b) entry orbits, under the autotopism group. We can alternatively use alpha-beta or entrywise backtracking on these orbits.

Graph methods... Family 5: Partial Latin rectangle graph method.

Graph methods... Family 5: Partial Latin rectangle graph method. Partial Latin rectangle graph Γ L (left): 2 2 convert to Γ L 2 convert to Γ L 2 2 2

Graph methods... Family 5: Partial Latin rectangle graph method. Partial Latin rectangle graph Γ L (left): 2 2 convert to Γ L 2 convert to Γ L 2 2 2 Then compute the automorphism group of Γ L using Nauty. Filter out non-autotopisms [autoparatopisms & graph artifacts].

Graph methods... Family 5: Partial Latin rectangle graph method. Partial Latin rectangle graph Γ L (left): 2 2 convert to Γ L 2 convert to Γ L 2 2 2 Then compute the automorphism group of Γ L using Nauty. Filter out non-autotopisms [autoparatopisms & graph artifacts]. Also edge-colored version Γ L (right), because Nauty doesn t allow edge colors.

Graph methods... Family 5: Partial Latin rectangle graph method. Partial Latin rectangle graph Γ L (left): 2 2 convert to Γ L 2 convert to Γ L 2 2 2 Then compute the automorphism group of Γ L using Nauty. Filter out non-autotopisms [autoparatopisms & graph artifacts]. Also edge-colored version Γ L (right), because Nauty doesn t allow edge colors. No filtering required Nauty output is autotopism group.

Graph methods... Family 6: Rook s graph method.

Graph methods... Family 6: Rook s graph method. Induced subgraph of the rook s graph Ξ L (left): 2 2 convert to Ξ L 2 convert to Ξ L 2 2 2

Graph methods... Family 6: Rook s graph method. Induced subgraph of the rook s graph Ξ L (left): 2 2 convert to Ξ L 2 convert to Ξ L 2 2 2 Then compute the automorphism group of Ξ L using Nauty. Filter out non-autotopisms.

Graph methods... Family 6: Rook s graph method. Induced subgraph of the rook s graph Ξ L (left): 2 2 convert to Ξ L 2 convert to Ξ L 2 2 2 Then compute the automorphism group of Ξ L using Nauty. Filter out non-autotopisms. Also edge-colored version Ξ L (right)...

Summary thus far... We have six families of methods: Backtracking: alpha-beta and entrywise. Graphical: bipartite graph, MMM graph, PLR graph, rook s graph.

Summary thus far... We have six families of methods: Backtracking: alpha-beta and entrywise. Graphical: bipartite graph, MMM graph, PLR graph, rook s graph. Each of these methods can be improved by using invariants, properties of partial Latin rectangles which are invariant under autotopisms.

Summary thus far... We have six families of methods: Backtracking: alpha-beta and entrywise. Graphical: bipartite graph, MMM graph, PLR graph, rook s graph. Each of these methods can be improved by using invariants, properties of partial Latin rectangles which are invariant under autotopisms. We consider two invariants.

Summary thus far... We have six families of methods: Backtracking: alpha-beta and entrywise. Graphical: bipartite graph, MMM graph, PLR graph, rook s graph. Each of these methods can be improved by using invariants, properties of partial Latin rectangles which are invariant under autotopisms. We consider two invariants. (More sophisticated invariants may improve run-times, but will improve run-times for every method.)

Strong entry invariants... For entry (i, j, k) we define the strong entry invariant as the vector (a, b, c) where a is the number of entries in row i, b is the number of entries in column j, c is the number of copies of symbol k in the partial Latin rectangle. 2 3 2 4 5 6 7 5 3 4 2 5 3 4 4 3 5 2 2 3 strong entry invariants relabeled, 2,... 2 3 4 3 4 5 5 6 7 6 8 6 8 6 7 9 0 9 0 0 2

Strong entry invariants... For entry (i, j, k) we define the strong entry invariant as the vector (a, b, c) where a is the number of entries in row i, b is the number of entries in column j, c is the number of copies of symbol k in the partial Latin rectangle. 2 3 2 4 5 6 7 5 3 4 2 5 3 4 4 3 5 2 2 3 strong entry invariants relabeled, 2,... 2 3 4 3 4 5 5 6 7 6 8 6 8 6 7 9 0 9 0 0 2...useless for Latin rectangles (i.e., no empty cells and number columns = number symbols).

Square invariants... The entry (i, j, k) belongs to exactly (r )(s ) 2 2 sub-matrices, a typical one looking like: j j i k x i y z which may have some of the following five properties: (a) x is undefined, (b) y is undefined, (c) z is undefined, (d) k = z, and (e) x = y.

Square invariants... The entry (i, j, k) belongs to exactly (r )(s ) 2 2 sub-matrices, a typical one looking like: j j i k x i y z which may have some of the following five properties: (a) x is undefined, (b) y is undefined, (c) z is undefined, (d) k = z, and (e) x = y. This gives a maximum of 2 5 = 32 possibilities, whose enumeration gives a length-32 vector that sums to (r )(s ).

Square invariants... The entry (i, j, k) belongs to exactly (r )(s ) 2 2 sub-matrices, a typical one looking like: j j i k x i y z which may have some of the following five properties: (a) x is undefined, (b) y is undefined, (c) z is undefined, (d) k = z, and (e) x = y. This gives a maximum of 2 5 = 32 possibilities, whose enumeration gives a length-32 vector that sums to (r )(s ). 2 3 4 5 4 2 5 3 4 3 5 2 5 2 3 4 3 5 4 2 square invariants relabeled, 2,... 3 2 3 3 2 2 3 3 3 2 3 3 3 2 2 3 3 2 3 2 2 2 2 2 We call this length-32 vector the square invariant.

Row and column invariants

Row and column invariants Given some kind of entry invariant: the multiset of entry invariants in a given row is preserved under autotopisms and

Row and column invariants Given some kind of entry invariant: the multiset of entry invariants in a given row is preserved under autotopisms and the multiset of entry invariants in a given column is preserved under autotopisms.

Row and column invariants Given some kind of entry invariant: the multiset of entry invariants in a given row is preserved under autotopisms and the multiset of entry invariants in a given column is preserved under autotopisms. In the alpha-beta backtracking method, once α is determined, then......when we decide that β(j) = b, the filled/unfilled cells in column j map to filled/unfilled cells in column b.

Row and column invariants Given some kind of entry invariant: the multiset of entry invariants in a given row is preserved under autotopisms and the multiset of entry invariants in a given column is preserved under autotopisms. In the alpha-beta backtracking method, once α is determined, then......when we decide that β(j) = b, the filled/unfilled cells in column j map to filled/unfilled cells in column b. This can also be used to improve the computation.

Experiments... So we have six families of methods, and two invariants, etc.

Experiments... So we have six families of methods, and two invariants, etc. Putting these together gives around 48 different ways of computing the autotopism group of a partial Latin rectangle.

Experiments... So we have six families of methods, and two invariants, etc. Putting these together gives around 48 different ways of computing the autotopism group of a partial Latin rectangle. Q: Which is the best?

Experiments... So we have six families of methods, and two invariants, etc. Putting these together gives around 48 different ways of computing the autotopism group of a partial Latin rectangle. Q: Which is the best? Experiment set : Start with empty PLR(r, s, n) and add try to add entry (i, j, k) [r] [s] [n] randomly.

Experiments... So we have six families of methods, and two invariants, etc. Putting these together gives around 48 different ways of computing the autotopism group of a partial Latin rectangle. Q: Which is the best? Experiment set : Start with empty PLR(r, s, n) and add try to add entry (i, j, k) [r] [s] [n] randomly. Experiment set 2: Start with random r s submatrix of a LS(n) and delete entries randomly.

Experiments... So we have six families of methods, and two invariants, etc. Putting these together gives around 48 different ways of computing the autotopism group of a partial Latin rectangle. Q: Which is the best? Experiment set : Start with empty PLR(r, s, n) and add try to add entry (i, j, k) [r] [s] [n] randomly. Experiment set 2: Start with random r s submatrix of a LS(n) and delete entries randomly. (Each data point is averaged over 0000 samples.)

(r, s, n) = (5, 5, 5); discard bad methods run time (µs) 20 5 0 5 PLR Set A (add random entries) 20 5 0 5 PLR Set B (delete random entries) Entrywise backtracking Entrywise backtracking (SEI) Entrywise backtracking (sq.) Entrywise backtracking (SEI, sq.) run time (µs) run time (µs) run time (µs) run time (µs) run time (µs) 0 0 00 200 300 400 500 600 700 800 900 000 20 5 0 5 0 0 00 200 300 400 500 600 700 800 900 000 20 5 0 5 0 0 00 200 300 400 500 600 700 800 900 000 20 5 0 5 0 0 00 200 300 400 500 600 700 800 900 000 20 5 0 5 0 0 00 200 300 400 500 600 700 800 900 000 20 5 0 5 0 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 20 5 0 5 α-β backtracking α-β backtracking (CV) α-β backtracking (SEI) α-β backtracking (CV, SEI) α-β backtracking (sq.) 0 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 20 5 0 5 McKay, Meynert, Myrvold (Nauty) McKay, Meynert, Myrvold (Nauty, sq.) McKay, Meynert, Myrvold (Nauty, SEI) McKay, Meynert, Myrvold (Nauty, SEI, sq.) McKay, Meynert, Myrvold (Nauty, SEI, RC) 0 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 20 5 0 5 Bipartite graph (Nauty) Bipartite graph (Nauty) e/w Bipartite graph (Nauty) α-β Bipartite graph (Nauty, SEI, RC) Bipartite graph (Nauty, sq., RC) 0 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 20 5 0 5 PLR graph (Nauty) PLR graph (Nauty, SEI) PLR graph (Nauty, EC, SEI) PLR graph (Nauty, EC) PLR graph (Nauty, sq.) 0 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 20 5 0 5 Rook s graph (Nauty) Rook s graph (Nauty, SEI) Rook s graph (Nauty, EC, SEI) Rook s graph (Nauty, EC) Rook s graph (Nauty, sq.) 0 0 00 200 300 400 500 600 700 800 900 000 number of attempts 0 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 number of entries

0 00 200 300 400 500 600 700 800 900 000 run time (µs) 40 35 30 25 20 5 0 5 0 PLR Set A (add random entries) (a) (r, s, n) = (7, 8, 9) 40 35 30 25 20 5 0 5 PLR Set B (delete random entries) α-β backtracking (CV, SEI) McKay, Meynert, Myrvold (Nauty, SEI) Bipartite graph (Nauty, SEI, RC) Bipartite graph (Nauty, sq., RC) PLR graph (Nauty) 0 0 2 4 6 8 0246820222426283032343638404244464850525456 run time (µs) 40 35 30 25 20 5 0 5 40 35 30 25 20 5 0 5 0 0 00 200 300 400 500 600 700 800 900 000 (b) (r, s, n) = (8, 9, 0) 0 0 3 6 9 2 5 8 2 24 27 30 33 36 39 42 45 48 5 54 57 60 63 66 69 72 run time (µs) 40 35 30 25 20 5 0 5 40 35 30 25 20 5 0 5 0 0 00 200 300 400 500 600 700 800 900 000 number of attempts (c) (r, s, n) = (8, 8, 8) 0 0 4 8 2 6 20 24 28 32 36 40 44 48 52 56 60 64 number of entries Figure: Average run times of the remaining methods.

Squares vs. rectangles run time (µs) (r, s, n) (7, 8, 9) (7, 7, 7) no. entries rs 0 rs rs 2 rs 0 rs rs 2 MMM (Nauty) 58.2 30.4 29.0 203.0 30.8 5.6 MMM (Nauty, SEI) 206.5 42.6 42.7 200.6 24.2 5.7 MMM (Nauty, sq.) 42.4 33. 33.0 6.6 2.8 2.2 MMM (Nauty, SEI, sq.) 42.2 33.6 33.6 6.5 3.0 2.2 PLR graph (Nauty) 29.7 8.5 8.5 840.3 22. 2.2 PLR graph (Nauty, SEI) 0.7 20.7 20. 837.7 4.3 2.6 PLR graph (Nauty, sq.) 35.5 33.0 33. 5.3 2.2 2. PLR graph (Nauty, SEI, sq.) 36. 34.0 33.7 5.4 2.3 2.

Squares vs. rectangles run time (µs) (r, s, n) (7, 8, 9) (7, 7, 7) no. entries rs 0 rs rs 2 rs 0 rs rs 2 MMM (Nauty) 58.2 30.4 29.0 203.0 30.8 5.6 MMM (Nauty, SEI) 206.5 42.6 42.7 200.6 24.2 5.7 MMM (Nauty, sq.) 42.4 33. 33.0 6.6 2.8 2.2 MMM (Nauty, SEI, sq.) 42.2 33.6 33.6 6.5 3.0 2.2 PLR graph (Nauty) 29.7 8.5 8.5 840.3 22. 2.2 PLR graph (Nauty, SEI) 0.7 20.7 20. 837.7 4.3 2.6 PLR graph (Nauty, sq.) 35.5 33.0 33. 5.3 2.2 2. PLR graph (Nauty, SEI, sq.) 36. 34.0 33.7 5.4 2.3 2. PLR beats MMM method (to my surprise!).

Squares vs. rectangles run time (µs) (r, s, n) (7, 8, 9) (7, 7, 7) no. entries rs 0 rs rs 2 rs 0 rs rs 2 MMM (Nauty) 58.2 30.4 29.0 203.0 30.8 5.6 MMM (Nauty, SEI) 206.5 42.6 42.7 200.6 24.2 5.7 MMM (Nauty, sq.) 42.4 33. 33.0 6.6 2.8 2.2 MMM (Nauty, SEI, sq.) 42.2 33.6 33.6 6.5 3.0 2.2 PLR graph (Nauty) 29.7 8.5 8.5 840.3 22. 2.2 PLR graph (Nauty, SEI) 0.7 20.7 20. 837.7 4.3 2.6 PLR graph (Nauty, sq.) 35.5 33.0 33. 5.3 2.2 2. PLR graph (Nauty, SEI, sq.) 36. 34.0 33.7 5.4 2.3 2. PLR beats MMM method (to my surprise!). Massive difference between Latin squares and everything else.

Squares vs. rectangles run time (µs) (r, s, n) (7, 8, 9) (7, 7, 7) no. entries rs 0 rs rs 2 rs 0 rs rs 2 MMM (Nauty) 58.2 30.4 29.0 203.0 30.8 5.6 MMM (Nauty, SEI) 206.5 42.6 42.7 200.6 24.2 5.7 MMM (Nauty, sq.) 42.4 33. 33.0 6.6 2.8 2.2 MMM (Nauty, SEI, sq.) 42.2 33.6 33.6 6.5 3.0 2.2 PLR graph (Nauty) 29.7 8.5 8.5 840.3 22. 2.2 PLR graph (Nauty, SEI) 0.7 20.7 20. 837.7 4.3 2.6 PLR graph (Nauty, sq.) 35.5 33.0 33. 5.3 2.2 2. PLR graph (Nauty, SEI, sq.) 36. 34.0 33.7 5.4 2.3 2. PLR beats MMM method (to my surprise!). Massive difference between Latin squares and everything else. Square invariants were crucial for Latin squares.

Usefulness of invariants... computation required 00% 80% 60% 40% 20% PLR Set A (add random entries) 0% 0 00 200 300 400 500 600 700 800 900 000 00% 80% 60% 40% 20% (a) (r, s, n) = (5, 6, 7) PLR Set B (delete random entries) 0% 0 3 6 9 2 5 8 2 24 27 30 SEI sq. SEI, sq. computation required 00% 80% 60% 40% 20% 0% 0 00 200 300 400 500 600 700 800 900 000 number of attempts 00% 80% 60% 40% 20% (b) (r, s, n) = (9, 9, 9) 0% 0 3 6 9 258224273033363942454855457606366697275788 number of entries Figure: Proportion of time computation is required (0000 samples).

Usefulness of invariants... computation required 00% 80% 60% 40% 20% PLR Set A (add random entries) 0% 0 00 200 300 400 500 600 700 800 900 000 00% 80% 60% 40% 20% (a) (r, s, n) = (5, 6, 7) PLR Set B (delete random entries) 0% 0 3 6 9 2 5 8 2 24 27 30 SEI sq. SEI, sq. computation required 00% 80% 60% 40% 20% 0% 0 00 200 300 400 500 600 700 800 900 000 number of attempts 00% 80% 60% 40% 20% (b) (r, s, n) = (9, 9, 9) 0% 0 3 6 9 258224273033363942454855457606366697275788 number of entries Figure: Proportion of time computation is required (0000 samples). Invariants often eliminate the need for computation with an intermediate number of entries.

run time (µs) 400 200 000 800 600 400 200 Latin squares (Jacobson and Matthews) McKay, Meynert, Myrvold (Nauty, sq.) PLR graph (Nauty, sq.) 0 0 2 3 4 5 6 7 8 9 20 r (= s = n) Figure: MMM method vs. PLR graph method, both using square entry invariants, for random Latin squares (0000 samples). I m really surprised by this the MMM method is the usual method.

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs...

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs... For very few entries, we have lots of symmetries, but we should be able to account for these mathematically.

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs... For very few entries, we have lots of symmetries, but we should be able to account for these mathematically. For an intermediate number of entries, we can often eliminate computation using an entry invariant.

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs... For very few entries, we have lots of symmetries, but we should be able to account for these mathematically. For an intermediate number of entries, we can often eliminate computation using an entry invariant. For a large number of entries, we may be best using the PLR graph method without invariants.

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs... For very few entries, we have lots of symmetries, but we should be able to account for these mathematically. For an intermediate number of entries, we can often eliminate computation using an entry invariant. For a large number of entries, we may be best using the PLR graph method without invariants. (Maybe some theoretical work to reduce post-filtering?)

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs... For very few entries, we have lots of symmetries, but we should be able to account for these mathematically. For an intermediate number of entries, we can often eliminate computation using an entry invariant. For a large number of entries, we may be best using the PLR graph method without invariants. (Maybe some theoretical work to reduce post-filtering?) For Latin squares, we re in another world...

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs... For very few entries, we have lots of symmetries, but we should be able to account for these mathematically. For an intermediate number of entries, we can often eliminate computation using an entry invariant. For a large number of entries, we may be best using the PLR graph method without invariants. (Maybe some theoretical work to reduce post-filtering?) For Latin squares, we re in another world... Some Latin squares have transitive autotopism groups (invariants are useless!).

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs... For very few entries, we have lots of symmetries, but we should be able to account for these mathematically. For an intermediate number of entries, we can often eliminate computation using an entry invariant. For a large number of entries, we may be best using the PLR graph method without invariants. (Maybe some theoretical work to reduce post-filtering?) For Latin squares, we re in another world... Some Latin squares have transitive autotopism groups (invariants are useless!). Some Latin squares have large autotopism groups computing this will be slow, even with an oracle.

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs... For very few entries, we have lots of symmetries, but we should be able to account for these mathematically. For an intermediate number of entries, we can often eliminate computation using an entry invariant. For a large number of entries, we may be best using the PLR graph method without invariants. (Maybe some theoretical work to reduce post-filtering?) For Latin squares, we re in another world... Some Latin squares have transitive autotopism groups (invariants are useless!). Some Latin squares have large autotopism groups computing this will be slow, even with an oracle. (Can we recognize these?)

Conclusion: Design goals... To write a decent piece of code for computing autotopism groups of PLRs... For very few entries, we have lots of symmetries, but we should be able to account for these mathematically. For an intermediate number of entries, we can often eliminate computation using an entry invariant. For a large number of entries, we may be best using the PLR graph method without invariants. (Maybe some theoretical work to reduce post-filtering?) For Latin squares, we re in another world... Some Latin squares have transitive autotopism groups (invariants are useless!). Some Latin squares have large autotopism groups computing this will be slow, even with an oracle. (Can we recognize these?) It may be worthwhile re-implementing Nauty s individualization-refinement method for this purpose.