Classification Algorithms For Codes and Designs PDF
Classification Algorithms For Codes and Designs PDF
in Mathematics • Volume 15
Editors
Classification Algorithms
for Codes and Designs
ABC
This eBook does not include ancillary media that was packaged with the
printed version of the book.
Authors
Petteri Kaski
Department of Computer Science and Engineering
Helsinki University of Technology
P.O. Box 5400
02015 TKK
Finland
e-mail: petteri.kaski@tkk.fi
Mathematics Subject Classification (2000): 05-02, 05Bxx, 05Cxx, 05E20, 51Exx, 68-02,
68Rxx, 94-02, 94Bxx
ISSN 1431-1550
This work is subject to copyright. All rights are reserved, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting,
reproduction on microfilm or in any other way, and storage in data banks. Duplication of this publication
or parts thereof is permitted only under the provisions of the German Copyright Law of September 9,
1965, in its current version, and permission for use must always be obtained from Springer. Violations are
liable for prosecution under the German Copyright Law.
Springer is a part of Springer Science+Business Media
springer.com
c Springer-Verlag Berlin Heidelberg 2006
Printed in The Netherlands
The use of general descriptive names, registered names, trademarks, etc. in this publication does not imply,
even in the absence of a specific statement, that such names are exempt from the relevant protective laws
and regulations and therefore free for general use.
Typesetting: by the authors and TechBooks using a Springer LATEX macro package
Cover design: design & production GmbH, Heidelberg
Printed on acid-free paper SPIN: 11427841 46/TechBooks 543210
Preface
available to researchers [247]. In the past there are many examples of manual
calculations that have later been corrected in a computer search. Note, how-
ever, that the results on Steiner triple systems of order 15 in a paper published
by Fisher [189] in 1940, occasionally claimed to be erroneous (incomplete, with
one design missing), were never meant to form a complete classification, a fact
that a careful reading of the paper reveals. Certainly, correctness of computa-
tional results is of central importance and will be discussed separately in the
main text.
Mr. Cole and his co-authors found (all) 80 Steiner triple systems of or-
der 15. But when are two objects different? This question is here answered
through a proper definition (and motivation) of the concepts of equivalence
and isomorphism for the objects considered.
Among the vast number of combinatorial objects, there is an idea behind
the choice of classifying codes and designs and objects closely related to these.
Namely, they can all be viewed as some sort of incidence structures, whereas,
on the other hand, graphs, which are not considered from a classification
perspective, are adjacency structures. The same applies to algebraic objects
such as groups.
In studying this book, Chaps. 2, 3, and 4 are essential. Chapter 2 treats
the foundations of the combinatorial objects considered; Chap. 3 the concepts
of isomorphism, representations, and symmetry; and Chap. 4 presents the
generic algorithms for classifying combinatorial objects. Chapter 5 contains
several algorithms for solving subproblems in the classification of the objects
discussed later. This chapter may be omitted unless one wants to implement
these particular algorithms (but it may also be studied separately by anyone
who wants to get an insight into contemporary algorithms for several impor-
tant hard problems). Chapters 6 to 8 contain specific results for, respectively,
designs, codes, and related structures. There is some dependency between
these chapters, but hardly any overlapping. Constructions of objects with
prescribed automorphism groups are studied in Chap. 9, validity of computa-
tional results is addressed in Chap. 10, and complexity issues are considered
in Chap. 11. Finally, the celebrated nonexistence proof for projective planes
of order 10 is surveyed in Chap. 12.
This book serves several different audiences. We have attempted to com-
pletely cover all important classification results in the areas of the book, and
hope that researchers will find it an invaluable reference showing the state of
the art. In fact, some of the results presented were obtained during the very
process of writing this text. Most notably, these include a classification of the
Steiner triple systems of order 19, the next open case after order 15, and a
classification of the Steiner quadruple systems of order 16.
Due to its multidisciplinary nature, the book can be used as course material
for graduate courses in computer science and discrete mathematics, as well as
in coding theory (and selectively even for undergraduate courses). Elementary
background knowledge in group theory will make the book more accessible,
but it has been our intention to make the book as self-contained as possible.
Preface VII
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
1
Introduction
codes and code families of importance, which have been named after their
originators. To give one example, we list a code with the parameters of the
ternary Hamming code of length 4:
Algorithmic methods have been widely used in design theory for solving
existence and classification problems [205], whereas, until recently, computer-
aided classifications of codes have received less attention. The success of algo-
rithmic methods is based on the fact that the configurations studied are finite
and thus amenable to local and exhaustive search methods.
Local search methods [342, Chap. 5] are typically incomplete in the sense
that they are not guaranteed to find a solution to a problem even if one
exists. Thus, local search methods are primarily applicable to solving existence
problems by explicit construction, where they often outperform exhaustive
methods. Exhaustive search [342, Chap. 4], on the other hand, considers all
candidate solutions in turn and is guaranteed to find a solution if one exists.
Exhaustive search can thus be applied to generate all combinatorial structures
with particular properties, or to settle the nonexistence of such a structure.
Indeed, often an exhaustive computer search has been the only instrument for
demonstrating the nonexistence of a particular object. The nonexistence of
projective planes of order 10 is perhaps the most notable such result to date
[351]; that result is thoroughly discussed in Chap. 12.
A central issue in the design of practical exhaustive search algorithms for
the generation of combinatorial configurations is the detection and elimination
of equivalent, or isomorphic, copies of (sub)configurations. This is because
failure to do so results in redundant work proportional to the number of
such copies – which is typically exponential in the size of the configuration –
making the search very inefficient or altogether infeasible to conduct with
available computational resources. Furthermore, from a mathematical point
of view, isomorphic configurations are by definition identical in the structure of
interest, so it is desirable to eliminate all but one of such generated structures.
As an example, consider a permutation of the values in the first position of
the code in (1.1):
0 → 1, 1 → 2, 2 → 0. (1.2)
With respect to the error-correcting and error-detecting properties, the
new, distinct code cannot be distinguished from the original one.
In this book, we study the problem of isomorph-free exhaustive genera-
tion in an algorithmic and group-theoretic framework. The main structures
4 1 Introduction
considered are codes and designs, but we also devote one chapter, Chap. 8, to
other combinatorial objects that are so closely related to codes and designs
that the developed algorithms can be applied more or less directly. These
objects include orthogonal arrays, Latin squares, and Hadamard matrices.
Objects outside the scope of the book include graphs (which have been exten-
sively studied and deserve a book on their own) and algebraic objects (such
as groups).
The organization of the book is as follows. Chapter 2 focuses on intro-
ducing the terminology and the necessary theoretical background on designs,
codes, and certain related objects. The central concepts of group and isomor-
phism are discussed in Chap. 3, and Chap. 4 describes three generic algo-
rithmic frameworks for the problem of generating an exhaustive collection of
nonisomorphic objects: orderly generation, generation by canonical augmen-
tation, and utilization of homomorphisms and group-theoretic localization.
Some auxiliary algorithms needed as parts of the classification algorithms are
considered in Chap. 5. In Chaps. 6 to 8, specific algorithms for, respectively,
designs, codes, and related structures are presented. Exhaustive tables of clas-
sification results for the most important structures have also been included.
Classification of objects with prescribed automorphism groups is the theme of
Chap. 9, and complexity results (for various problems occurring in the earlier
chapters and related to classification) and the efficiency of algorithms that
generate all solutions to a given problem are discussed in Chap. 11. The book
ends in Chap. 12 with a survey of the celebrated result that no projective
plane of order 10 exists.
Before proceeding with the main text, it is necessary to mention some
conventions for mathematical notations and the pseudocode algorithms.
The set {0, 1, . . . , q−1} is denoted by Zq . For a given set Ω, Ω
k denotes the
set of k-element subsets – briefly, k-subsets – of Ω, and Ω k the set of ordered
k-tuples with elements from Ω. The ring of order q over Zq with addition and
multiplication carried out modulo q is denoted by Zq , and the finite field of
order q by Fq . Moreover, the multiplicative group of Fq is F∗q = Fq \ {0}. A
basic knowledge of finite fields is assumed in the discussion of linear codes;
more information about finite fields can be found in any textbook on abstract
algebra or [372, 409].
It is our aim to make the algorithms as self-explanatory as possible. The
syntax is close to that of the main contemporary programming languages
(such as C) and needs no further explanation. The variables are not declared,
but the types of the input parameters to procedures are indicated. In addition
to the ordinary types, we use variables that are sets. The return statement
is omitted when it occurs at the end of a procedure.
Catalogues of objects considered in this book are provided in digital form
on a supplementary DVD. Specifically, for object types where the tabulated
classification results exhaust a certain range of parameters, exhaustive lists
of nonisomorphic objects are made available (exceptions are Table 8.4, which
is directly related to Table 8.3, and instances with more than 100 million
1 Introduction 5
objects). The tables in question are Tables 6.2–6.10 (BIBDs), Tables 6.12–6.16
(RBIBDs), Table 7.2 (error-correcting codes), Table 7.4 (covering codes), Ta-
ble 7.7 (one-error-correcting linear codes), Table 8.1 (1-factorizations of com-
plete graphs), Table 8.2 (Latin squares), and Table 8.3 (Hadamard matrices).
2
Graphs, Designs, and Codes
This chapter gives a brief introduction to graphs, designs, codes, and concepts
related to these. Although classification algorithms for graphs are not consid-
ered in this book, graphs provide a convenient framework for several of the
concepts and algorithms to be discussed.
For a general introduction to discrete mathematics, see [87, 376]. For an
introduction to design theory, the reader is referred to the monographs [7, 36,
274, 562]; an encyclopedia of central results for combinatorial designs is [116].
For the theory of codes, see the classical reference [388] or [487]; introductory
texts include [264, 273, 374, 484]. Introductory graph theory texts include
[54, 159, 326, 604].
2.1 Graphs
Probably the most important – at least, the most studied – combinatorial
object is a graph. For our purposes, the definition of a graph as a set system
is appropriate.
Definition 2.1. A set system is an ordered pair (X, S), where X is a finite
set and S is a collection of subsets of X.
Definition 2.2. A graph G is an ordered pair (V, E), where V is a finite set
of vertices and E is a set of two-element subsets of vertices, called edges.
For a graph G we write V (G) and E(G) for the vertex set and the edge
set, respectively. If the graph is clear from the context we may write simply
V and E.
The number of vertices in a graph is called its order and the number of
edges its size. An edge {u, v} joins the vertices u and v. Two vertices are
adjacent if they are joined by an edge. An edge e and a vertex u are incident
if u ∈ e. The neighborhood Γ (u) of a vertex u is the set of all vertices adjacent
to u. The degree d(u) of a vertex u is the number of vertices adjacent to u,
8 2 Graphs, Designs, and Codes
that is, d(u) = |Γ (u)|. A graph in which all vertices have the same degree k is
regular (k-regular). A k-regular graph of order v where every adjacent pair of
vertices has λ common neighbors and every nonadjacent pair has µ common
neighbors is said to be a (v, k, λ, µ) strongly regular
graph. The complement
of a graph G = (V, E) is the graph Ḡ = (V, V2 \ E).
There are a number of ways to represent a graph.
Example 2.3. By definition, to describe a graph it suffices to specify the vertex
set and the edge set, for example,
V = {1, 2, 3, 4, 5, 6},
E = {{1, 2}, {2, 3}, {2, 6}, {3, 4}, {3, 6}, {4, 5}}.
Example 2.4. Perhaps the visually most pleasing way to represent a graph is
to draw it. Figure 2.1 contains a drawing of the graph in Example 2.3.
1 2 3 4 5
Fig. 2.1. A graph
Example 2.8. Two isomorphic graphs are shown in Fig. 2.2. Also an isomor-
phism is given.
1 t y
6 q
2 5
u x
7 10 p
r s
8 9
v w
3 4
f (1) = p, f (2) = q, f (3) = x, f (4) = w, f (5) = r,
f (6) = s, f (7) = u, f (8) = y, f (9) = v, f (10) = t
Special notations and names are used for certain important graphs and
families of graphs. We list a few such families that occur later in this book.
Example graphs from some of these families are depicted in Fig. 2.4.
complete bipartite graph A graph isomorphic to the graph Km,n with ver-
tex set V1 ∪ V2 , such that |V1 | = m, |V2 | = n, |V1 ∩ V2 | = 0, and all vertex
pairs with one vertex from V1 and the other from V2 are joined by an
edge.
complete graph A graph isomorphic to the graph Kn , which is of order n
and where all pairs of distinct vertices are joined by an edge.
cube or n-cube A graph isomorphic to the graph Qn whose vertices are
the 2n binary words of length n and whose edges are the pairs of words
that differ in exactly one position. By a generalization to words over an
alphabet of size q, we get the graph Kqn (K2n ∼ = Qn ).
cycle A graph isomorphic to the graph Cn with vertex set Zn and edge set
{i, i + 1}, i ∈ Zn .
empty graph A graph isomorphic to the graph K̄n , which is of order n and
has no edges.
path A graph isomorphic to the graph Pn with vertex set {0, 1, . . . , n} and
edge set {i−1, i}, 1 ≤ i ≤ n, where n is the length of the path. The vertices
0 and n are the endvertices of the path. A path connects its endvertices.
K4 Q3 P3 C5
+ + + + =
Example 2.18. The complete graph K2n admits a 1-factorization for all n ≥ 1.
Let V = Z2n−1 ∪ {∞} be the vertex set, and let the edge set of the ith 1-factor
be Fi = {{i, ∞}} ∪ {{i − j, i + j} : 1 ≤ j ≤ n − 1} for all 0 ≤ i ≤ 2n − 2.
The resulting 1-factorization of K2n is known as GK2n ; the 1-factorization in
Fig. 2.6 is GK6 .
2.2 Designs
v y
z
w x
Fig. 2.8. Pasch configuration
We observed for graphs that the labels of the vertices are necessary only
to describe the graph, but the properties studied are in general independent
of the labels. A similar situation occurs with incidence structures, which mo-
tivates the following definition of isomorphism.
2.2 Designs 15
If there is a natural order relation defined on the points and blocks, then we
assume that the incidence matrix is constructed subject to the order-induced
labelings p1 < p2 < · · · < pv and B1 < B2 < · · · < Bb .
Example 2.24. An incidence matrix of the Pasch configuration in Example
2.21 is as follows (the rows are labeled u, v, w, x, y, z from top to bottom and
the columns P, Q, R, S from left to right):
⎡ ⎤
1100
⎢1 0 1 0⎥
⎢ ⎥
⎢1 0 0 1⎥
N=⎢ ⎢0 1 1 0⎥.
⎥
⎢ ⎥
⎣0 1 0 1⎦
0011
We will also use the term configuration for a substructure, implying that the
substructure itself has certain regularity properties, or that it occurs as a
substructure of a regular structure such as a design (cf. [36, 123]).
Example 2.29. The dual of the Pasch configuration consists of four points and
six blocks formed by all distinct pairs of the four points.
2.2.2 t-Designs
Example 2.33. A single block incident with all the v points is clearly a t-design
for any t ≤ v. Similarly, if we take as blocks all the k-subsets of P , we obtain
a t-(v, k, λ) design for any t ≤ k. These types of designs are usually omitted
from consideration as trivial .
2.2 Designs 17
2 4
5
0 1 3
Fig. 2.9. Fano plane
The designs in Examples 2.34 and 2.35 are the smallest nontrivial de-
signs in two important infinite families of 2-designs, the projective and affine
geometries.
Example 2.36. Let q be a prime power and consider the 3-dimensional vector
space F3q . Take as points the 1-dimensional subspaces of F3q and as blocks
the 2-dimensional subspaces. A point is incident with a block if and only if
the 1-dimensional subspace is contained in the 2-dimensional subspace. The
resulting 2-(q 2 + q + 1, q + 1, 1) design is known as a projective geometry of
order q and dimension 2 or a projective plane of order q.
Example 2.37. Let q be a prime power and consider the 2-dimensional vector
space F2q . A line in F2q consists of all points (x, y) ∈ F2q that satisfy an equation
of the form ax + by = c, where a, b, c ∈ Fq and at least one of a, b is nonzero.
Take as points the elements of F2q and as blocks all lines in F2q . A point is
incident with a line if and only if the line contains the point. The resulting
2-(q 2 , q, 1) design is known as an affine geometry of order q and dimension 2
or an affine plane of order q.
The main topic of interest in our later discussion of classification algorithms for
designs is 2-designs, which are often called balanced incomplete block designs
(BIBDs) or simply block designs. For BIBDs, the parameters v, k, λ, b, r are
connected by the following equations:
Example 2.50. Construction for an STS(6j + 1). We take as point set Z2j ×
Z3 ∪ {∞}. The 6j + 1 base blocks are
where the blocks (2.10) are included once for every i = 1, 2, . . . , j − 1 and the
blocks (2.11) once for every i = 1, 2, . . . , j. The block set is now constructed
by adding the element (, 0) to each of the 6j + 1 base blocks for all =
0, 1, . . . , j − 1. (Addition is carried out coordinatewise modulo 2j and 3 with
∞ + x = x + ∞ = ∞ for all x ∈ Z2j × Z3 .)
These two constructions solve the existence problem for Steiner triple systems.
The next step is of course to classify all the nonisomorphic STS(v). This,
however, is not an easy problem because the number of nonisomorphic designs
increases very rapidly with increasing v by a result of Wilson [610].
2
Theorem 2.51. The number of nonisomorphic STS(v) is at least (e−5 v)v /6
This section lists several other families of designs that we will require later in
this book. Two generalizations of block designs are pairwise balanced designs
and group divisible designs. Both of these families are of fundamental impor-
tance in the construction of many other types of designs including BIBDs; see
[36, 116].
3. there exists a partition of the point set P into disjoint groups such that,
for any pair of distinct points, the number of blocks incident with both
points is λ1 if the points belong to the same group, and λ2 if the points
belong to different groups.
We remark that the term “group” in this context is in no way related to
the more familiar algebraic notion of a group.
The type of a group divisible design is the multiset consisting of the sizes
of all the groups. It is customary to use exponential notation for the group
type. We write g1a1 g2a2 · · · gmam
to indicate that there are ai groups of size gi
for i = 1, 2, . . . , m. If λ1 = 0 we write GDD(v, K; λ), where λ = λ2 . Similarly,
if K = {k} for some positive integer k, then we write GDD(v, k; λ1 , λ2 ). If
λ1 = 0 and λ2 = 1, we write GDD(v, K).
The following list contains more families of designs.
Steiner system A t-(v, k, 1) design. The notation S(t, k; v) is also used in
the literature.
projective plane A square 2-(n2 + n + 1, n + 1, 1) design. The parameter n
is the order of the plane; cf. Example 2.36.
affine plane A 2-(n2 , n, 1) design. The parameter n is the order of the plane;
cf. Example 2.37.
quasi-residual design A 2-(v, k, λ) design with r = k + λ. A quasi-residual
design that is a residual design of a square 2-(v + k + λ, k + λ, λ) design
is called embeddable.
quasi-derived design A 2-(v, k, λ) design with k = λ + 1. A quasi-derived
design that is a derived design of a square 2-(v(v − 1)/k + 1, v, k) design
is called embeddable.
Hadamard design A square 2-(4n − 1, 2n − 1, n − 1) design. Hadamard de-
signs will be encountered in connection with Hadamard matrices in Sect.
2.4.3.
Hadamard 3-design A 3-(4n, 2n, n − 1) design. To be encountered in Sect.
2.4.3.
transversal design A GDD(kn, k) of type nk . The notation TD(k, n) is
commonly used for transversal designs.
The following basic embeddability result will be required later. Proving
the case λ = 1 is straightforward. A proof of the case λ = 2, called the
Hall–Connor theorem after the originators, is presented in [245].
Theorem 2.54. Quasi-residual designs with λ = 1 or λ = 2 are embeddable.
Consequently, any square designs with λ = 1 or λ = 2 may be constructed
via their residuals.
[7, 200]. Resolutions of BIBDs are also relevant because of their connection
to coding theory (see Sect. 2.3.2 and Theorem 3.82). A comprehensive mono-
graph on construction techniques for resolvable designs is [200].
Example 2.56. The solution to the fifteen schoolgirls problem that was pre-
sented in Chap. 1 is a resolution of a STS(15).
For v = 2k, the following theorem of Alltop [5] connects families of resolv-
able t-designs with consecutive values of t.
sµ − 1 s2 µ − 1
v = s2 µ, k = sµ, λ= , r= , b = sr,
s−1 s−1
where µ is the intersection parameter of D and s is an integer.
Proof. See [36, Theorem II.8.7].
2.2 Designs 25
Example 2.64. A design with the parameters of an affine design need not be
affine if the design is not resolvable. For example, the parameters 2-(8, 4, 3)
are the parameters of an affine design with µ = 2, but three of the designs in
Example 2.58 are not resolvable and hence not affine.
Example 2.65. Bose’s condition and the requirement that k divide v are not
sufficient to guarantee that a resolvable 2-(v, k, λ) design exists. Theorems 6.39
and 6.40 give further conditions under which a design is not resolvable. Fur-
ther examples are provided by the nonexistence of certain projective planes –
by the Bruck–Ryser–Chowla theorem or by computer search (Chap. 12) –
which implies the nonexistence of affine planes by Theorem 2.120. A sporadic
example is the nonexistence of resolvable 2-(15, 5, 4) designs (see Table 6.13).
Only two families of affine resolvable 2-(v, k, λ) design are known; see
[36, Examples II.8.9] for more details on the following theorem (Hadamard
matrices will be considered in Sect. 2.4.3).
Theorem 2.66. Affine resolvable 2-(s2 µ, sµ, sµ−1 s−1 ) designs exist for s = q
and µ = q n , where q is a prime power and n is a nonnegative integer; and for
s = 2 and µ = n whenever an Hadamard matrix of order 4n exists.
Shrikhande [532] conjectured that these are the only values of s and µ for
which such designs exist.
Definition 2.67. Two resolutions, (X , R) and (Y, S), are isomorphic if there
exists an isomorphism f = (fP , fB ) of X onto Y such that fB maps the parallel
classes in R onto parallel classes in S. Such an f is an isomorphism of (X , R)
onto (Y, S). An isomorphism of a resolution onto itself is an automorphism.
Example 2.68. There are 80 nonisomorphic STS(15), only four of which are
resolvable. Three of the four resolvable STS(15) have two nonisomorphic res-
olutions each, and one has a unique resolution up to isomorphism [408]. Two
nonisomorphic resolutions of an STS(15) over the point set {a, b, . . . , o} are
given below.
abc dhl ekn fio gjm abc dhl ekn fio gjm
ade bhj clo fkm gin ade bhj clo fkm gin
afg bmo chk djn eil afg bln cij dko ehm
ahi bdf cmn ejo gkl ahi bdf cmn ejo gkl
ajk bln cef dim gho ajk bmo cdg eil fhn
alm beg cij dko fhn alm bik cef djn gho
ano bik cdg ehm fjl ano beg chk dim fjl
2.3 Codes
The origin of coding theory is in engineering applications, but it soon turned
out that this topic is also of purely mathematical interest. In particular, many
of the basic mathematical problems of coding theory are related to construc-
tion of certain combinatorial objects.
A class of combinatorial objects often has alternative representations [116];
we will later see several ways in which codes are linked to designs. The reason
why such connections should be investigated is that they provide the possibil-
ity of choosing a proper description for a particular study of the corresponding
objects.
We start with a brief introduction to the theory of codes.
2.3.1 Preliminaries
The concept of distance is central in the study of codes. There are some
obvious – in the sense that Euclidean distance, which is the distance concept
of everyday language, fulfills these – requirements that a distance function
should fulfill.
Definition 2.69. A nonempty set Ω together with a mapping d : Ω × Ω →
{0, 1, . . .} is a (discrete) metric space if the mapping d, called the metric or
distance function, has the following properties for all x, y, z ∈ Ω:
1. d(x, y) = 0 if and only if x = y,
2. d(x, y) = d(y, x),
3. d(x, z) ≤ d(x, y) + d(y, z).
In the sequel, we consider tuples over the set Zq = {0, 1, . . . , q − 1}, called
the alphabet – any alphabet with q symbols could actually have been chosen –
and denote the set of all such tuples of length n by Zqn . The proof of the
following lemma is straightforward and is omitted.
Lemma 2.70. The mapping dH : Zqn × Zqn → {0, 1, . . .} defined by
dH (x, y) = |{i ∈ {1, 2, . . . n} : xi = yi }|
is a metric for Zqn .
Definition 2.71. The metric space (Zqn , dH ) is called the q-ary Hamming
space of dimension n. The corresponding metric dH is called the Hamming
metric or the Hamming distance.
The tuples x ∈ Zqn can be interpreted as vectors in that space and are
in the context of coding theory called words. The components of a word
(x1 , x2 , . . . , xn ) are called coordinates and the values xi ∈ Zq are called coor-
dinate values. If there is no risk for confusion, we may simply write a word
as x1 x2 · · · xn , cf. (1.1). The Hamming weight, or just weight, wt(x) is the
number of nonzero coordinates in the word x. The weight and distance are
closely related, as wt(x) = dH (x, 0), where 0 is the all-zero word.
2.3 Codes 27
Note that we define codes to be sets and not multisets. For some special
types of codes it is necessary to consider multisets over Zqn , but such codes
are not treated here. One may consider a space where different coordinates
have different alphabets; codes in such a space are said to be mixed .
There are several common ways of manipulating a code.
Unless mentioned otherwise, the codes we study in this work are unre-
stricted , that is, either nonlinear or linear. Linear codes are also considered
in their own right; an introduction to these is given in Sect. 2.3.3. Whenever
unrestricted codes are considered, we assume without loss of generality that
C ⊆ Zqn . There are a few central parameters related to codes.
distance or the covering radius is studied, this is pointed out by talking about
error-correcting codes and covering codes, respectively.
Codes can now be specified according to the parameters of the space, the
minimum distance, and the covering radius.
Note that we in this definition give bounds for the minimum distance and
covering radius, instead of exact values. Both of these forms occur in the
literature; our choice simplifies the subsequent discussion of codes.
An (n, M, d)2 binary code with constant weight w is also called a packing
design since the codewords can be viewed as w-subsets (blocks) of an n-set
such that every t-subset of the n-set occurs in at most one block, where
t = w + 1 − d/2. We may in fact define even more general packing designs
with every t-subset occurring in at most λ blocks, where λ is called the index
of the packing design.
For covering codes of length n and constant weight w we have to specify
the weight wC of the words to be covered with covering radius R. Binary
constant weight covering codes, or covering designs, can then be viewed as
w-subsets (blocks) of an n-set of points such that every wC -subset of the n-set
intersects at least one block – or, more generally, at least λ blocks – in at least
(w + wC − R)/2 points. Covering designs of this type are coined B-coverings
in [552], and the term covering design usually refers to the case R = w − wC ;
in this case every wC -set of points occurs in at least one block.
Fundamental problems in coding theory are to determine, for fixed para-
meter values, the minimum cardinality of an error-correcting code and the
minimum cardinality of a covering code:
One may also look at similar functions when both the values of d and R
are prescribed [464], but such exceptional codes are not discussed here. Codes
that attain the bound Aq (n, d) are called called optimal error-correcting codes,
and codes attaining Kq (n, R) are called optimal covering codes. The Hamming
sphere or ball of radius r around x ∈ Zqn is defined by
Theorem 2.78.
qn
Aq (n, 2R + 1) ≤ R n ≤ Kq (n, R).
i=0 (q − 1)i i
Proof. The Hamming spheres of radius R must contain all q n words of the
space if the code has covering radius (at least) R, and they must be non-
overlapping if the code has minimum distance (at most) 2R + 1. The theorem
now follows as
R
i n
|BR (x)| = (q − 1) .
i=0
i
Through Hamming spheres it is convenient to introduce the concept of
index for error-correcting and covering codes: such a code has index λ if every
word in Zqn occurs in, respectively, at most or at least λ spheres (of prescribed
radius). Codes with index λ > 1 are called multiple packing codes and multiple
covering codes.
Codes that attain both bounds in Theorem 2.78 – then Aq (n, 2R + 1) =
Kq (n, R) – are called perfect. Before leaving the general discussion of codes, we
give an example that illustrates some of these basic properties and functions.
Example 2.79. Consider codes in Z23 . With R = 1, it follows from the sphere-
covering bound that A2 (3, 3) ≤ 2 ≤ K2 (3, 1). The (3, 2, 3)2 1 code
C = {000, 111}
proves that A2 (3, 3) = K2 (3, 1) = 2. The code C is perfect.
Example 2.80. Consider codes in Z24 . With R = 1, the sphere-covering bound
gives that A2 (4, 3) ≤ 16/5 ≤ K2 (4, 1). Since there exist (4, 4)2 1 codes, one
example being
{0000, 0001, 1110, 1111},
we have that K2 (4, 1) = 4. It is not difficult to see that a (4, 3, 3)2 code cannot
be found. Since (4, 3, 2)2 codes exists, such as
{0000, 1111},
we get that A2 (4, 1) = 2.
Proof. We first show that the smallest value cannot be attained if there exist
i and j such that ai − aj ≥ 2. Namely, then we can substitute the values ai
and aj by ai − 1 and aj + 1, respectively, to get an even smaller value, since
(ai − 1)2 + (aj + 1)2 = a2i + a2j + 2(aj − ai + 1) < a2i + a2j . The unique solution
n−1
(up to permutation of the indices) to i=0 ai = A with |ai − aj | ≤ 1 for all
i, j is ai = (A + i)/n.
where Mi = (M + i)/q. If equality holds, then the code is equidistant, and
the distribution of the values in a coordinate is up to permutation uniquely
given by the values of Mi .
Proof. As in the proof of the binary case [489], we sum the distances between
all ordered pairs of distinct codewords in two different
q−1 q−1ways. An q−1arbitrary
column contributes with m i (M − m i ) = M m i − 2
i=0 mi =
q−1 2 i=0 i=0
M − i=0 mi to this sum, where mi is the number of codewords with value
2
Corollary 2.83 (Binary Plotkin bound). If there exists an (n, M, d)2 code
with 2d > n, then
d
M ≤2 .
2d − n
A code with the property that every coordinate value occurs equally of-
ten in every coordinate is called equireplicate. The codes characterized by
2.3 Codes 31
Corollary 2.84 were first studied by Semakov and Zinov’ev [526], who called
these EDm -codes (equidistant with maximal distance). We follow [580] and
call them optimal equidistant (OE) codes.
In the next theorem we will see that the word optimal in the name of the
class of OE codes is justified, they are indeed optimal.
Proof. Consider an (n, M, d)q OE code. Because the minimum distance does
not decrease after deleting codewords, it suffices to show that an (n, M +1, d)q
code cannot exist. Suppose, for the sake of contradiction, that such a code C
exists. Then, we can delete any codeword x ∈ C and obtain a code C , which
is an OE code by Corollary 2.84.
We will now carry out double counting for the sum of distances between
x and the words in C . Since C is equireplicate, every coordinate contributes
with (q − 1)M/q to the sum, so the total sum is n(q − 1)M/q, which equals
(M − 1)d by Corollary 2.84. On the other hand, all pairwise distances between
x and the M words in C must be at least d, so the total sum must be at least
M d, and we have a contradiction.
Theorem 2.87. If q divides M and a putative (n, M, d)q OE code does not
exist, then there is no (n, M − 1, d)q code either.
C = C ∪ {x} \ {y}. The codes C and C have the same value distributions
in all coordinates, so a double counting of distances between codewords will
give the same sum for C and C. But dH (y, z) = d for all z ∈ C \ {y}, so
the total sum depends solely on dH (x, y). Since the sum is the same for all
choices of y, dH (x, y) is the same for all choices of y. The code C ∪ {x} is
equireplicate so the sum of distances between codewords equals that of an OE
code. But the distances dH (x, y) for y ∈ C must then be exactly d,otherwise
the total distance sum would be smaller than or greater than M 2 d. Hence,
an (n, M, d)q code exists, and we have arrived at a contradiction.
Corollary 2.89. If there exists an (n, M, 2δ)2 code with constant weight w,
then
δn
M≤ 2 (2.16)
w − wn + δn
provided that the denominator is positive.
Semakov and Zinov’ev [527] observed that if equality holds in (2.16), then
the codewords of any such code define the rows of an incidence matrix of a
2-(v, k, λ) design with v = M , k = wM/n, λ = w − δ, b = n, and r = w; and
vice versa.
In a manner analogous to that of the proof of Theorem 2.87 (see also the
subsequent remark), the second Johnson bound can be used to prove that in
constructing a BIBD point by point along the lines of Sect. 6.1.1, one missing
row can always be completed (in a unique way). A similar result – proved with
a different technique – holds in constructing Steiner systems block by block
[1, Theorem 13] (such methods are considered in Sects. 6.1.3 and 6.2.2).
2.3 Codes 33
Definition 2.90. An [n, k, d]q R code is a q-ary linear code of length n, dimen-
sion k, minimum distance at least d, and covering radius at least R, where
either of the parameters d and R, or both, may be omitted. If q = 2, that
parameter may also be omitted.
n
W (x, y) = Ai xn−i y i ,
i=0
and call an [n, k, dmax (n, k)]2 code optimal . Similar functions may be intro-
duced for q > 2.
We will next discuss some basic properties of linear codes; see [388] or any
introductory textbook for proofs of these results. Two types of matrices are
closely related to linear codes.
The vector HxT is called the syndrome of x. Vectors with the same syn-
drome form cosets of the linear code.
Observe that row operations (row addition, scalar multiplication) on the
matrices G and H do not affect the code to which they are related. If we
permute columns, the code will be affected, but we then get an equivalent
code; equivalence of linear codes is discussed in Sect. 7.3.1. These operations
34 2 Graphs, Designs, and Codes
with addition and multiplication carried out in Fq . There are also other pos-
sible inner products, such as the Hermitian inner product, which is often
preferred for F4 [497].
Definition 2.98. Given a linear code C, its dual code is defined as C ⊥ =
{c : c · c = 0 for all c ∈ C}. A linear code C is called self-orthogonal if
C ⊆ C ⊥ and self-dual if C = C ⊥ .
Self-dual and self-orthogonal codes are surveyed in [497]. Using basic linear
algebra, one may prove that the dual code is necessarily linear and that for
codes of length n,
dim(C ⊥ ) = n − dim(C).
In the study of codes, there are several possible ways of defining which codes
should be considered indistinguishable. For some background and motivation,
we look at the basic engineering problem of sending information across vari-
ous communication channels. In this informal consideration, we assume that
the codes are unrestricted. One channel, the binary memoryless channel, is
depicted in Fig. 2.10.
1−p
0 0
q
p
1 1
1−q
Definition 2.99. Two codes are said to be isomorphic if one can be trans-
formed into the other by a permutation of the coordinates in the codewords.
In many practical situations, the error probabilities, p and q, take the
same value. The binary memoryless channel with p = q is called the binary
symmetric channel (BSC). Then also the coordinate values may be permuted
in a code without affecting the performance of the code.
Definition 2.100. Two codes are said to be equivalent if one can be trans-
formed into the other by a permutation of the coordinates in the codewords
followed by permutations of the coordinate values, independently for each co-
ordinate.
Example 2.101. The (4, 9, 3)3 codes
1 → 2, 2 → 3, 3 → 4, 4 → 1.
Then exchange the coordinate values 0 and 1 in every coordinate but the last.
We will later see that this definition of equivalence coincides with a defin-
ition we arrive at after a more formal treatment. Actually, the main question
is whether there are other transformations of the codes than those in Defin-
ition 2.100 that should be allowed. In a formal treatment, one possible way
of approaching this issue is to regard as indistinguishable all codes of equal
cardinality that have the same collection of pairwise codeword distances and
thereby the same error-detecting capabilities (but they may differ with respect
to the possibility of correcting errors, as we will see in Example 2.103).
Definition 2.102. Two codes C, C ⊆ Zqn are said to be isometric if there
exists a bijection f : C → C satisfying dH (x, y) = dH (f (x), f (y)) for all
x, y ∈ C.
Only sporadic results on code isometry have been published in the liter-
ature [131, 543]. In particular, we observe that all equidistant codes of fixed
length, cardinality, and minimum distance are isometric. The following exam-
ple is in part from [131].
Example 2.103. The ternary codes
are equidistant with minimum distance 2 and are therefore isometric. They
are, however, not equivalent: the code C1 has a coordinate with only one
2.4 More Combinatorial Objects 37
value and any equivalence transformation maintains this property. The codes
are distinguishable with respect to error correction. For each codeword in C1 ,
there are two words with one bit-error that are correctable (for example, if
000 is sent: 100 and 200), but for each codeword in C2 three bit-errors are
correctable (if 000 is sent: 200, 020, and 002).
The parameters t and λ of OAλ (t, n, q) may be omitted and are then under-
stood to be 2 and 1, respectively. It is important to observe that many other
notations, in particular OA(N, n, q, t), have been used instead of OAλ (t, n, q)
in the literature; cf. [257, p. 2].
You have actually seen this structure earlier, namely the columns of this array
are the codewords of the ternary Hamming code in (1.1).
Theorem 2.106. An (n, q t , d)q code is MDS if and only if it has minimum
distance d = n − t + 1.
Proof. Consider an (n, q t , d)q MDS code. Since this is an OA1 (t, n, q), which is
also an OAq (t − 1, n, q), there are codewords that coincide in t − 1 coordinates,
so the minimum distance cannot exceed n−(t−1) = n−t+1. If the minimum
distance is less than n − t + 1, then there are codewords that coincide in (at
least) t coordinates, implying that there are t-tuples in these coordinates that
occur in more than one codeword. But this contradicts the fact that we have
an OA1 (t, n, q).
In the other direction, any two words of an (n, q t , n − t + 1)q code coincide
in at most t − 1 coordinates, so all codewords differ in any given set of t
coordinates. Since the code has q t codewords, it is MDS.
The connection between orthogonal arrays and codes also motivates the
definition of isomorphic orthogonal arrays, which follows Definition 2.100.
Definition 2.107. Two orthogonal arrays are isomorphic if one can be trans-
formed into the other by row and column permutations followed by independent
value permutations in the rows.
Proof. Given an OA(k, n), let the points of the transversal design to be con-
structed be the ordered pairs (i, v), where v ∈ Zn ranges over the elements of
a group and 1 ≤ i ≤ k ranges over the groups. Moreover, let each column j of
the orthogonal array define a block Bj of the transversal design: Bj is incident
with (i, v) if and only if the entry at row i, column j of the orthogonal array
contains v ∈ Zn .
In the converse transformation, each group of the transversal design defines
one row of the orthogonal array, and each block defines one column.
Theorem 2.110. There exists an OAλ (2t, k, 2) if and only if there exists an
OAλ (2t + 1, k + 1, 2).
Certain families of orthogonal arrays are better known under other names;
Latin squares form one such family [149].
Example 2.113. The first three rows of the orthogonal array in Example 2.105
form an OA(3, 3). By Theorem 2.112, this can be transformed into a Latin
square of side 3.
0 1 2
1 2 0
2 0 1
L1 (x, y) = s1 , L2 (x, y) = s2
0 1 2 0 1 2
1 2 0 2 0 1
2 0 1 1 2 0
How many MOLS of side n can there be (more precisely, what is the
maximum k, such that an OA(k, n) exists)? An upper bound on this number
is given by the following theorem.
Proof. Given a set of MOLS, these Latin squares still form a MOLS after a
permutation of the values in Zn in any one Latin square. Therefore, we may
transform these into a set of MOLS such that the first row of every square is
(0, 1, . . . , n − 1). For any two distinct squares in this set, the value pair (1, 1)
occurs among the pairs in the first row, so the 1 in the first column must
occur in different rows (distinct from the first row, which contains a 0 in that
position). By the pigeonhole principle, the total number of MOLS is at most
n − 1.
a pair of values more than once. Hence, the columns of such an array can be
viewed as codewords of a code with minimum distance n, an (n + 1, n2 , n)n
code. By the Plotkin bound (Corollary 2.84) such a code is equidistant, which
implies that any two distinct columns indeed agree in exactly one row.
(3) → (2): Since an (n + 1, n2 , n)n OE code has minimum distance n, two
codewords cannot agree in two coordinates. Therefore, viewing the codewords
as columns of an (n + 1) × n2 matrix, for any pair of distinct rows, each of
the n2 possible pairs of values must occur exactly once.
(3) → (4): Associate a unique point with each codeword of an (n+1, n2 , n)n
OE code. Now each coordinate of the code defines a parallel class: two points
are incident with the same block if and only if the values that occur in these
codewords agree. From the definition of an OE code it follows that every value
occurs n times in every coordinate, so every block in every parallel class has
size n.
To establish that these n+1 parallel classes together define an affine plane,
it suffices to prove that every pair of distinct points occurs together in a unique
block. In other words, we must prove that every two distinct codewords agree
in exactly one coordinate. But this is also a property of an (n + 1, n2 , n)n OE
code.
(4) → (2): An affine plane of order n always admits a resolution with
n + 1 parallel classes by Theorem 2.62. For every parallel class, label each
block in the parallel class with an element of Zn so that no two blocks in the
same parallel class get the same label. Define an (n + 1) × n2 array so that
each parallel class in the affine plane corresponds to a row and each point in
the plane corresponds to a column. The array element at row i, column j is
the label of the block in which j occurs in parallel class i. This results in an
OA(n + 1, n) because in an affine plane any two blocks from different parallel
classes have exactly one point in common (Theorem 2.62).
(4) → (5): An affine plane is quasi-residual and is therefore embeddable
by Theorem 2.54.
(5) → (4): A residual of a projective plane is an affine plane (Definition
2.46).
Theorem 2.121. An affine resolvable 2-(v, k, λ) design with the auxiliary pa-
rameters s and µ introduced in Theorem 2.63 can be transformed into an
2
OAµ ( s s−1
µ−1
, s) and vice versa.
Proof. We construct an orthogonal array by taking one row for each parallel
class of the 2-(v, k, λ) design and one column for each point. Within a parallel
class, the blocks are labeled with elements from Zs so that no two blocks
get the same label. The array element at row i, column j is the label of
the block in which j occurs in parallel class i. It is straightforward to verify
the parameters of the orthogonal array obtained. In particular, its index is
given by the intersection parameter µ. Reversion of the construction proves
implication in the opposite direction.
2.4 More Combinatorial Objects 43
a + b − c − d = 0, a − b + c − d = 0, a − b − c + d = 0,
Hadamard matrices are directly related to several types of codes and de-
signs.
Example 3.2. Let G = {1, a, b, c, d, e} and define the group operation · by the
following table, where the entry at row x, column y gives x · y.
1abcde
1 1ab cde
a ab1 dec
b b1a ecd
c ced 1ba
d dce a1b
e edc ba1
3.1 Finite Groups and Group Actions 49
It follows from the properties required from a group that the identity
element 1G is unique. Similarly, for every g ∈ G, the inverse g −1 is unique.
We write simply 1 for the identity of G if the group is clear from the context
and there is no danger of confusion with the integer 1. The order of a group
is |G|.
Example 3.3. In Example 3.2 the element 1 is the identity element; the inverses
are 1−1 = 1, a−1 = b, b−1 = a, c−1 = c, d−1 = d, and e−1 = e.
Example 3.4. The subgroups of the group {1, a, b, c, d, e} in Example 3.2 are
{1, a, b, c, d, e}, {1, a, b}, {1, c}, {1, d}, {1, e}, and {1}. The first, second, and
last subgroup are normal subgroups.
{a, c} = {1, a, b, c, d, e}, {a} = {1, a, b}, {c} = {1, c}.
Theorem 3.7 (Lagrange). Let G be a group and let H ≤ G. Then, the set
G/H (respectively, H\G) is a partition of G. Moreover, |G/H| = |H\G| =
|G|/|H|.
Proof. We work with left cosets only – the proof for right cosets is analogous.
To establish the first claim, it suffices to prove that two left cosets, g1 H and
g2 H, are either equal or disjoint. Suppose g1 H ∩ g2 H = ∅, that is, there
50 3 Representations and Isomorphism
and all other x ∈ Ω are fixed. We denote such a cycle by (x1 x2 · · · xk ). The
integer k is the length of the cycle. A cycle of length k is also called a k-cycle.
A 2-cycle is called a transposition.
Every nonidentity permutation can be expressed as a product of disjoint
cycles. This product is unique up to ordering of the cycles.
Example 3.10. Consider the permutation g ∈ Sym({1, 2, 3, 4, 5, 6, 7, 8}) with
1 5 3 8
2 7
4 6
Example 3.11. The cube graph Q3 in Fig. 3.2 has 48 automorphisms, which
we list here. In Theorems 3.53 and 3.54 we will prove that these are all the
automorphisms that the cube graph Q3 ∼ = K23 admits. With composition
as the group operation, the automorphisms form a permutation group on
V (Q3 ) = {1, 2, 3, 4, 5, 6, 7, 8}; this group is called the automorphism group of
Q3 , or Aut(Q3 ).
52 3 Representations and Isomorphism
7 8
3 4
5 6
1 2
Fig. 3.2. The cube Q3
g1 = , g2 = (1 2 3 4 5), g3 = (1 3 5 2 4),
g4 = (1 4 2 5 3), g5 = (1 5 4 3 2).
Group actions are the main tool that we use in the sequel in studying isomor-
phism from a computational perspective. Before proceeding with the abstract
definition, let us start with a brief illustrative example.
Example 3.13. Consider the cube Q3 in Fig. 3.2. In terms of vertices and edges,
the graph can be expressed as
V (Y ) = {1, 2, 3, 4, 5, 6, 7, 8},
E(Y ) = {{1, 2}, {1, 7}, {1, 8}, {2, 3}, {2, 4}, {3, 5},
{3, 7}, {4, 5}, {4, 8}, {5, 6}, {6, 7}, {6, 8}}.
Because both graphs have the same vertex set V = V (X) = V (Y ), any isomor-
phism of X onto Y is a permutation of V . For example, g = (1 2 3 4 5)(6 7 8) ∈
Sym(V ) is an isomorphism of X onto Y .
There are three fundamental observations to be made. First, we can view
the graph Y as being obtained from X via the permutation g acting on X by
relabeling its vertices and edges, in notation, g ∗ X = Y , where
V (g ∗ X) = {g(x) : x ∈ V (X)} = V,
(3.2)
E(g ∗ X) = {{g(x), g(y)} : {x, y} ∈ E(X)}.
Second, this notion of acting on a graph makes sense for any permutation
in Sym(V ) and any graph with the vertex set V . For example, h = (1 2 3)
acts on Y to yield Z = h ∗ Y , where
Third, it is easy to check that (3.2) is compatible with the group operation
on Sym(V ). That is, if we act on X first by g and then by h, the result is the
same as if we initially acted on X by the composition h◦g = (1 3 4 5 2)(6 7 8);
in notation, h ∗ (g ∗ X) = Z = (h ◦ g) ∗ X. Figure 3.3 illustrates the situation.
The general combinatorial setting is now that we have a finite set Ω of
combinatorial objects and a group G whose elements consist of all the possible
isomorphisms between the objects in Ω. An action of G on Ω is a mapping
that associates with every group element g ∈ G and every object X ∈ Ω the
object g ∗ X obtained when we “relabel” X using g.
54 3 Representations and Isomorphism
g = (1 2 3 4 5)(6 7 8) h = (1 2 3)
X Y Z
7 8 8 6 8 6
3 4 4 5 4 5
5 6 1 7 2 7
1 2 2 3 3 1
h ◦ g = (1 3 4 5 2)(6 7 8)
Now that we have the basic terminology available, let us proceed to study
notions of isomorphism for combinatorial objects using group actions. The
following definition is motivated by Example 3.13.
Definition 3.16. Let G be a group that acts on a finite set Ω. Associate with
every two objects X, Y ∈ Ω the set
Iso(X, Y ) = {g ∈ G : gX = Y }.
Definition 3.17. Let G be a group that acts on a finite set Ω, and let X ∈ Ω.
The orbit of X under the action of G is the set
GX = {gX : g ∈ G}.
NG (X) = {g ∈ G : gX = X}.
We write G\Ω for the set of all orbits of the action of G on Ω. The set
G\Ω is a partition of Ω. Indeed, for X, Y ∈ Ω it is straightforward to check
that GX and GY are either equal or disjoint.
An action is transitive if it has only one orbit. An action is regular if it is
transitive and NG (X) = {1} for all X ∈ Ω.
In terms of Definition 3.16 and combinatorial objects, the orbit of an ob-
ject X ∈ Ω is the set of all objects in Ω isomorphic to X. Furthermore, the
stabilizer of X is the automorphism group Aut(X) = Iso(X, X) of X. How-
ever, to emphasize the role of the acting group G in the present setting, we
use the term stabilizer and the notation NG (X).
Example 3.18. Consider Example 3.11. The natural action of the automor-
phism group Aut(Q3 ) on V (Q3 ) = {1, 2, 3, 4, 5, 6, 7, 8} has only one orbit,
namely the entire vertex set. Thus, the action is transitive. The induced ac-
tion of Aut(Q3 ) partitions the set of all 2-subsets of V (Q3 ) into three orbits:
3.1 Finite Groups and Group Actions 57
{{1, 2}, {1, 3}, {1, 5}, {2, 4}, {2, 6}, {3, 4}, {3, 7}, {4, 8},
{5, 6}, {5, 7}, {6, 8}, {7, 8}};
{{1, 4}, {1, 6}, {1, 7}, {2, 3}, {2, 5}, {2, 8}, {3, 5}, {3, 8},
{4, 6}, {4, 7}, {5, 8}, {6, 7}};
{{1, 8}, {2, 7}, {3, 6}, {4, 5}}.
, (3 5)(4 6), (1 2)(3 4)(5 6)(7 8), (1 2)(3 6)(4 5)(7 8).
Example 3.19. The induced action of the group (1 2 3 4 5 6) partitions the
edge set of the complete graph K6 into the three orbits depicted in Fig. 3.4.
3 2 3 2 3 2
4 1 4 1 4 1
5 6 5 6 5 6
Fig. 3.4. Orbits of (1 2 3 4 5 6) on the edge set of K6
Example 3.21. We know from Example 3.11 that |Aut(Q3 )| = 48. On the other
hand, we know from Example 3.18 that with respect to the induced action of
Aut(Q3 ) on 2-subsets of {1, 2, 3, 4, 5, 6, 7, 8}, we have |NAut(Q3 ) ({1, 2})| = 4.
By the orbit-stabilizer theorem, we obtain that the Aut(Q3 )-orbit of {1, 2} on
2-subsets of {1, 2, 3, 4, 5, 6, 7, 8} has size 48/4 = 12. This is in agreement with
Example 3.18.
Example 3.22. In Example 3.19 and Fig. 3.4 we have three orbits of sizes 6, 6,
and 3, respectively. Since |(1 2 3 4 5 6)| = 6, the stabilizers of {1, 2}, {1, 3},
and {1, 4} in (1 2 3 4 5 6) thus have orders 1, 1, and 2, respectively.
Proof. The first claim is an immediate corollary of Theorems 3.7 and 3.20.
For the second claim, let g ∈ Iso(X, Y ) and g1 ∈ G. We have g1 ∈ NG (Y ) if
and only if g1 gX = gX; that is, if and only if g −1 g1 gX = X; that is, if and
only if g −1 g1 g ∈ NG (X); that is, if and only if g1 ∈ gNG (X)g −1 .
Example 3.25. Consider the action (3.2) and the graphs X and Y given in
Example 3.13. The stabilizer NSym({1,2,3,4,5,6,7,8}) (X) = Aut(Q3 ) is listed in
Example 3.11. By Corollary 3.24 every isomorphism from X to Y be ex-
pressed uniquely as a product of any fixed isomorphism g ∈ Iso(X, Y ) and an
automorphism a ∈ Aut(Q3 ).
Example 3.26. The number of distinct graphs that can be constructed over
4
the vertex set {1, 2, 3, 4} is 2(2) = 64. On the other hand, the classification in
Example 2.9 contains 11 graphs, whose stabilizer subgroups with respect to
the action (3.2) of Sym({1, 2, 3, 4}) have orders 24, 4, 8, 2, 2, 6, 6, 8, 2, 4, and
3.1 Finite Groups and Group Actions 59
More advanced consistency checks of this type are discussed in Chap. 10.
The following lemma due to Cauchy and Frobenius (but often incorrectly
attributed to Burnside; see [441]) is useful in counting the number of orbits
of a group action.
On the other hand, applying the orbit-stabilizer theorem and observing that
|GX| = |GY | whenever X ∼=G Y , we obtain
|G| 1
χ(g, X) = |NG (X)| = = |G| = |G| · |G\Ω|.
|GX| |GX|
X∈Ω g∈G X∈Ω X∈Ω X∈Ω
Also the wreath product is a special case of the semidirect product. Let
Ω and ∆ be nonempty finite sets. Let Fun(Ω, ∆) be the set of all functions
from Ω into ∆. If K is a group, then it is straightforward to check that
Fun(Ω, K) becomes a group if the group operation on Fun(Ω, K) is defined
for all f1 , f2 ∈ Fun(Ω, K) and x ∈ Ω by
and
b1 = (0 2), b2 = (1 2 0), b3 = , b4 = (0 1), d = (2 3)
we obtain
k1 = a1 b4 = (0 1),
k2 = a2 b1 = (1 2),
k3 = a3 b2 = (0 2),
k4 = a4 b3 = (0 1),
h = cd = (1 2 4).
Also other conventions exist (cf. [34, 385, 467]), in particular for the case
q = 2; later in this section we will discuss one possible representation for
S2 Sn that is convenient in the context of Hadamard matrix equivalence.
The relevance of the group Sq Sn in coding theory is revealed in the
following definition and the subsequent discussion.
Definition 3.32. Let K act on ∆ and let β be the corresponding group ho-
momorphism. The product action of K γ H on Fun(Ω, ∆) (subject to β) is
defined for all (f, h) ∈ K γ H, g ∈ Fun(Ω, ∆) and x ∈ Ω by
Definition 2.100 states that two codes are equivalent if one can be obtained
from the other by first permuting the coordinates and then the coordinate
values separately for each coordinate. In the language of group actions this is
the same as saying that two codes are equivalent if they are on the same orbit
of the action (3.9) of Sq Sn induced on subsets of Zqn . Similarly, Definition
2.99 for code isomorphism is captured by the coordinate-permuting action
(3.10).
Example 3.33. In (1.2) and the related text, a transformation of the code in
(1.1) is suggested. In terms of the product action (3.9), the group element
(k, h) ∈ S3 S4 that performs this transformation is
k1 = (0 1 2), k2 = k3 = k4 = , h = .
k1 = k2 = k3 = (0 1), k4 = , h = (1 2 3 4).
for all (f, h) ∈ K γ H and (y, x) ∈ ∆ × Ω. The action is faithful if and only
if the actions given by both β and γ are faithful.
(01 11 21 ),
(01 11 ),
(01 02 03 04 )(11 12 13 14 )(21 22 23 24 ),
(01 02 )(11 12 )(21 22 ).
respectively.
g◦f
X Y Z W
f g h
h◦g
that {u, v} ∈ E(G) if and only if {g(f (u)), g(f (v))} ∈ E(K). Thus, g ◦ f is
an isomorphism of G onto K in the sense of Definition 2.7. It follows that
the standard composition operation ◦ for mappings is a composition map for
morphisms of graphs in the sense of Definition 3.37. Property (1) in Definition
3.37 is satisfied by the identity map on the vertex set of a graph. Property
(2) is a natural property of the composition operation ◦ for mappings. Also
note that viewing a graph isomorphism f as an isomorphism in the sense of
Definition 3.38 is justified because the inverse function f −1 meets the required
properties.
In this connection one must be careful with the properties invariant under
a particular notion of isomorphism. For example, Definition 2.99 preserves
linearity in a code, but Definition 2.100 in general does not, cf. Sect. 7.3.1.
3.2 Categories and Equivalence 67
Example 3.44. Let the objects of a category consist of the ordered pairs (G, x),
where G is a graph and x ∈ V (G). For two such objects, (G, x) and (H, y),
isomorphisms (if any) are defined by
We call this category the category of graphs with one vertex individualized.
Example 3.48. The vertices of a graph form a category where the isomor-
phisms are automorphisms of the graph; cf. Example 3.44. We may also con-
sider other “subobjects” such as the edges or cliques in place of the vertices.
Example 3.49. The resolutions of a BIBD form a category where the isomor-
phisms are the automorphisms of the BIBD, cf. Definition 2.67.
In the context of this book perhaps the most interesting situation of this
kind occurs with the Hamming space (Zqn , dH ), whose automorphisms are
isometries, or distance-preserving maps from Zqn onto itself. We proceed to
characterize the isometries of (Zqn , dH ).
Definition 3.50. Let (Ω, d) be a metric space. A mapping ψ : Ω → Ω is an
isometry of (Ω, d) if d(ψ(x), ψ(y)) = d(x, y) for all x, y ∈ Ω. We denote by
Aut(Ω, d) the set of all isometries of (Ω, d).
For a finite metric space, Aut(Ω, d) is a permutation group on Ω.
Theorem 3.51. For a finite metric space (Ω, d), Aut(Ω, d) ≤ Sym(Ω).
Proof. Let ψ ∈ Aut(Ω, d). Suppose ψ(x) = ψ(y) for some x, y ∈ Ω. Then,
d(ψ(x), ψ(y)) = d(x, y) = 0. Thus, x = y. It follows that ψ is injective since
x, y are arbitrary. Since Ω is finite, ψ is bijective. Thus, ψ ∈ Sym(Ω). Two
isometries clearly compose to form an isometry, which is sufficient to establish
that Aut(Ω, d) ≤ Sym(Ω) because Sym(Ω) is finite.
Proof. Construct a graph with one vertex for each word in Zqn and with a
vertex between edges x and y whenever dH (x, y) = 1. In this way we get
a graph isomorphic to Kqn . Since, by Definition 3.50, for an isometry ψ we
have dH (x, y) = dH (ψ(x), ψ(y)) for all x, y ∈ Zqn , this equality must in
particular hold whenever dH (x, y) = 1, so the corresponding mapping on
Kqn must be an automorphism. Since all automorphisms of a graph maintain
the length of a shortest path between two connected vertices, we get that
Aut(Zqn , dH ) ∼
= Aut(Kqn ).
3.2 Categories and Equivalence 69
Denote by ei,v the word of weight 1 with v ∈ Zq \ {0} in the ith coordinate.
Define (k, h) ∈ Sq Sn by requiring ψ(ei,v ) = eh(i),kh(i) (v) for all 1 ≤ i ≤ n
and v ∈ Zq \ {0}. It follows immediately that ψ(x) = (k, h)x for all x ∈ Zqn of
weight at most 1. For any word y ∈ Zqn of weight w ≥ 2 there are exactly w
words of weight 1 that have distance w − 1 to y. Namely, these are precisely
those words of weight 1 that agree with y in exactly one nonzero coordinate.
These w words of weight 1 uniquely determine the word y. Consequently,
ψ(x) = (k, h)x for all x ∈ Zqn .
Example 3.56. For binary codes of length n and constant weight w = n/2, we
may add the all-one word to all words of a code to get another code with the
same weight. For example, for
3.2.2 Functors
A functor transforms the objects and morphisms of one category into objects
and morphisms of another category. Functors have two main applications
in the context of this book. First, functors can be used to study whether
two different families of combinatorial objects (two categories) are really “the
same” up to isomorphism of objects, and if not, to point out the difference in
subtle cases. Second, functors mediate changes in representation for purposes
of isomorphism computations; this will be discussed in Sects. 3.2.3 and 3.3.2.
Definition 3.57. Let A and B be categories. A (covariant) functor F of A
into B associates to each object X ∈ Ob(A ) an object F (X) ∈ Ob(B), and
to each morphism f ∈ Mor(X, Y ) a morphism F (f ) ∈ Mor(F (X), F (Y )) such
that the following two properties hold:
1. for all X ∈ Ob(A ) it holds that
X F (X)
F
g◦f F (g ◦ f ) =
f F (f ) F (g) ◦ F (f )
Y Z F (Y ) F (Z)
g F (g)
Example 3.59. Let X be an incidence structure. The line graph LG(X ) has
the block set B(X ) as vertex set, where any two vertices (blocks) are adjacent
if and only if the blocks are incident with at least one common point. Every
isomorphism f = (fP , fB ) ∈ Iso(X , Y) defines an isomorphism LG(f ) = fB ∈
Iso(LG(X ), LG(Y)).
Alternative names for a line graph in the literature are block graph and
block intersection graph; the latter is also used in a more general context.
Let us continue with two functors related to Theorems 2.120 and 2.127.
Here we will only define the functors – their implications to the isomorphism
classes of the respective objects will be explored in the context of recon-
structibility in Sect. 3.2.3.
Example 3.61. Here is a concrete instance to illustrate Example 3.60. The lines
of a projective plane of order 4 over the point set {a, b, . . . , u} are
abcde afghi ajklm anopq arstu bfjnr bgkos
bhlpt bimqu cfkpu cgjqt chmns cilor dflqs
dgmpr dhjou diknt efmot eglnu ehkqr eijps.
Taking the residual with respect to the line abcde, we obtain the affine plane
of order 4 with lines
fghi jklm nopq rstu fjnr gkos hlpt imqu fkpu gjqt
hmns ilor flqs gmpr hjou iknt fmot glnu hkqr ijps.
72 3 Representations and Isomorphism
In particular, row a and column b of Dab are filled with 1s, the rest of the
matrix forms an incidence matrix of an Hadamard 2-(4n − 1, 2n − 1, n − 1)
design if we replace all −1s by 0s.
Let us look at the normalization operation (3.18) in the context of equiv-
alence and isomorphism. First, it is convenient to represent H with a, b indi-
vidualized as a triple (H, ea , eb ), where H is an Hadamard matrix of order
4n, and ek denotes the 4n × 1 column vector with a 1 in the kth row and 0s
elsewhere. Define isomorphism for such triples by extending the action (3.13):
a pair (SP, TQ) of signed permutation matrices acts by
HD((H, ea , eb )) = Dab ,
HD((SP, TQ)) = (P, Q).
Example 3.67. Here is a concrete instance to illustrate (3.22). Label the par-
allel classes and the blocks of a resolution R of an STS(9) over the point set
{a, b, c, d, e, f, g, h, i} as follows:
The resulting nine codewords SZ (R) = {x(a), x(b), . . . , x(i)} are
x(a) = 0000, x(b) = 0111, x(c) = 0222, x(d) = 1021, x(e) = 1102,
x(f) = 1210, x(g) = 2012, x(h) = 2120, x(i) = 2201.
Example 3.72. By Theorem 2.44 the line graph (Example 3.59) of any square
BIBD is isomorphic to the complete graph Kv , but in general more than one
isomorphism class of square BIBDs with given parameters exists. Thus, the
line graph functor is not reconstructible in the category of square BIBDs.
Reconstructible functors can further be divided into those that also give
a one-to-one correspondence between Mor(X, Y ) and Mor(F (X), F (Y )) and
those that do not.
F (f1 ) = t−1 −1
Y G(f1 )tX = tY G(f2 )tX = F (f2 ),
GF (f ) = F −1 (F (Y ) F (f )F −1 (−1
F (X) ))
= F −1 (F (Y ) )f F −1 (−1
F (X) )
The second equality follows from (3.24) and the fact that both F (Y ) and
F (X) are isomorphisms between objects in the image of F in Ob(B). Thus,
tX = F −1 (F (X) ) is a natural equivalence from 1A to GF . Since GF 1A
and F G 1B , we have that F is an equivalence of categories.
Example 3.78. The dual and complement functors in Example 3.58 both define
an equivalence of categories because F ◦F is the identity functor in both cases.
3.2 Categories and Equivalence 79
Example 3.79. Although the line graph functor in Example 3.59 is not re-
constructible in general, there exist important special cases in which recon-
structibility is obtained, this is discussed in more detail in Sect. 3.3.2.
Example 3.81. Consider the Hadamard design functor HD and the categories
H1 and H2 in Example 3.62. We claim that the functor is reconstructible.
To see this, let HD(H1 , ea1 , eb1 ) ∼
=H2 HD(H2 , ea2 , eb2 ), that is, there exists
a pair (P, Q) of permutation matrices with
Because only row a1 and column b1 in HD(H1 , ea1 , eb1 ) are filled with 1s,
and similarly for row a2 and column b2 in HD(H2 , ea2 , eb2 ), we must have
Pea1 = ea2 and Qeb1 = eb2 . Thus, by (3.19) we have that (P, Q) is an
isomorphism establishing
Proof. We apply Theorem 3.77 to the functor SZ defined by (3.22) and (3.23).
By the generalized Plotkin bound (Theorem 2.82), every coordinate of an OE
code with parameters (r, qk, r − λ)q contains exactly k occurrences of every
coordinate value. Thus, for any such code C ⊆ Zqr , the incidence structure X
defined by P (X ) = C, B(X ) = {1, 2, . . . , r} × Zq , and I(X ) = {(x, (i, j)) :
x ∈ C, 1 ≤ i ≤ r, j ∈ Zq , xi = j} is a 2-(qk, k, λ) design. Furthermore,
R = {{(i, j) : j ∈ Zq } : 1 ≤ i ≤ r} defines a resolution R = (X , R). Relative
to the identity labeling R (i, j) = (i, j), we have SZ (R) = C. By Theorem
3.70 thus SZ(R) ∼ = C independent of the labeling . Thus, every equivalence
class of OE codes with parameters (r, qk, r − λ)q contains a code that lies in
the image of SZ.
It remains to establish strong reconstructibility of SZ. By Theorems 3.70
and 3.74, strong reconstructibility is independent of the labeling employed.
Let R and Q be resolutions of 2-(qk, k, λ) designs with underlying designs X
and Y, respectively.
To establish injectivity of SZ : Iso(R, Q) → Iso(SZ (R), SZ (Q)), observe
that SZ (f ) and (3.23) together uniquely determine fB . Furthermore, from fB
we can uniquely determine fP since by r > λ no two points are incident with
the same set of blocks.
To establish surjectivity, let (k, h) ∈ Iso(SZ (R), SZ (Q)). Define fP :
P (X ) → P (Y) so that (k, h)(x(p)) = y(fP (p)) for all p ∈ P (X ). Define
fB : B(X ) → B(Y) by setting fB (R (i, j)) = Q (h(i), kh(i) (j)) for all 1 ≤ i ≤ r
and j ∈ Zq . Obviously SZ (f ) = (k, h) for f = (fP , fB ) by (3.23). It is also
immediate that fB maps the parallel classes in R onto parallel classes in Q.
It remains to check that f ∈ Iso(X , Y). Let p ∈ P (X ) and B ∈ B(X ). Let
i, j be determined from R (i, j) = B. By (3.22), (p, B) ∈ I(X ) if and only if
x(p)i = j. By (3.9) and (k, h)(x(p)) = y(fP (p)), we have x(p)i = j if and only
if y(fP (p))h(i) = kh(i) (j). Again applying (3.22), the latter holds if and only
if (fP (p), Q (h(i), kh(i) (j))) ∈ I(Y), that is, (fP (p), fB (B)) ∈ I(Y). It follows
that f ∈ Iso(X , Y) and hence f ∈ Iso(R, Q).
3.3 Isomorphism Computations 81
Before proceeding to the main subject matter, we will briefly discuss lexico-
graphic order, which is frequently employed in the context of isomorphism
computations because it is easy to define by extension to virtually any type
of object constructed from elements of an ordered set. Lexicographic order
also has other desirable properties in the context of isomorph rejection in
classification algorithms. These will be discussed in Chap. 4.
An ordered set is well-ordered if every nonempty subset has a minimum
element. In particular, all finite ordered sets are well-ordered.
Definition 3.83. Let A be an ordered set, let J be a well-ordered set, and let
Fun(J, A) be the set of all functions from J into A. The lexicographic order
≺ on Fun(J, A) is defined for all f1 , f2 ∈ Fun(J, A) by f1 ≺ f2 if and only if
there exists an i ∈ J such that f1 (i) < f2 (i) and f1 (j) = f2 (j) for all j ∈ J
with j < i.
Example 3.85. Let S = {1, 2, 3} with 1 < 2 < 3. The lexicographic order on
the set of all subsets of S is
Example 3.86. Let S = {1, 2, 3} with 1 < 2 < 3. The lexicographic order on
the set of all partitions of S is
{{1, 2, 3}} ≺ {{1}, {2, 3}} ≺ {{1, 3}, {2}} ≺ {{1, 2}, {3}} ≺ {{1}, {2}, {3}}.
Given x ∈ V , we write π(x) for the index of the cell in which x occurs,
that is, x ∈ Vi if and only if π(x) = i. Intuitively, the coloring π assigns the
color π(x) to the vertex x. Accordingly, it is convenient to identify the ordered
partition π with the function of V onto {1, 2, . . . , m} defined by x → π(x).
In the context of isomorphism computations we use the following precise
notion of a colored graph.
Definition 3.88. A colored graph is a pair (G, π), where G is a graph and
π is an ordered partition of V (G). For two colored graphs, (G, π) and (H, σ),
the set of isomorphisms of (G, π) onto (H, σ) is defined by
however, that several different transformations are often possible. The trans-
formations are presented mostly without a detailed proof; the concepts and
tools suitable for checking the desired properties of the transformations in
connection to associated notions of isomorphism can be found in Sect. 3.2.
The transformation for designs is a standard tool in design theory and oc-
curs throughout the literature, cf. [126], [205, Remark 9.41], [342, Sect. 7.4.2],
and [412].
Definition 3.89. Let X be an incidence structure where P (X ) and B(X )
are disjoint. The incidence graph IG(X ) is the colored graph with vertex
set P (X ) ∪ B(X ), edge set {{p, B} : (p, B) ∈ I(X )}, and vertex coloring
(P (X ), B(X )).
The incidence graph [55, 207] is also called the Levi graph [18, 139], espe-
cially in the context of projective planes.
Example 3.90. A colored graph that is obtained from the Fano plane in Ex-
ample 2.34 is presented in Fig. 3.7. This particular graph without the coloring
of the vertices is known as the Heawood graph [55].
For illustration, let us review the steps that suffice to check that it is appro-
priate to use the incidence graph representation for isomorphism computations
on incidence structures. First we extend to a functor the transformation IG
from incidence structures into colored graphs. Let f = (fP , fB ) ∈ Iso(X , Y) be
an isomorphism of incidence structures. Associate with f the bijection IG(f )
obtained by merging fP and fB into one bijection from P (X ) ∪ B(X ) onto
P (Y) ∪ B(Y). Because f is an isomorphism of incidence structures, it follows
by Definitions 2.22, 2.7, and 3.89 that IG(f ) is an isomorphism of the col-
ored graph IG(X ) onto the colored graph IG(Y). Properties (3.16) and (3.17)
3.3 Isomorphism Computations 85
Example 3.97. The colored graph obtained from the unique Hadamard matrix
of order 2 (see Example 2.126) is shown in Fig. 3.10.
Example 3.100. The graphs in Fig. 3.11 are nonisomorphic as witnessed by the
number of triangles: the left-hand side graph has four triangles, the right-hand
side graph has none.
3.3 Isomorphism Computations 89
Example 3.101. Graphs derived from combinatorial objects can be highly reg-
ular. For example, no invariant mentioned in Example 3.99 can distinguish
between the nonisomorphic line graphs of the following two Steiner triple
systems of order 15:
abc ade afg ahi ajk abc ade afg ahi ajk
alm ano bdf beh bgj alm ano bdf beh bgj
bik bln bmo cdg cel bil bkn bmo cdg cef
cfh cij cmn cko dim cio chl cjn ckm dij .
dkn hjn dho djl efn dmn dho dkl hjm fim
gin eio ejm egk fil egm ein eko ejl fjo
fjo fkm ghm glo hkl fhk fln ghn gik glo
Example 3.103. Given a code C, the multiset that contains the Hamming
distances of every pair of codewords in C is an invariant for the category
of codes under every notion of isomorphism considered for codes so far.
where the maximum is taken with respect to some order on the set of all n × n
adjacency matrices of graphs.
In other words, I(G) is the maximum adjacency matrix associated with
G. It follows immediately from Definitions 2.5 and 2.7 that I is a certificate
for graphs of order n.
A lexicographic order for adjacency matrices is obtained as follows. Asso-
ciate with an adjacency matrix A the binary n(n − 1)/2-tuple obtained by
listing the entries above the diagonal column by column; that is,
Our main application for invariants will be in narrowing down the set of pos-
sible isomorphisms between objects to expedite isomorphism computations.
In essentially all cases encountered so far, an isomorphism can be viewed as
a bijection defined on certain subobjects of an object, say, the vertices of a
graph, the points and blocks of an incidence structure, or the coordinate values
in the coordinates of a code. If we can distinguish between different subob-
jects in an isomorphism-invariant manner, then we can restrict the possible
isomorphisms between objects. This leads us to subobject invariants; that is,
invariants for a category where each object is a pair consisting of an object
and an individualized subobject.
For example, let I be an invariant for the category of graphs with one
vertex individualized (Example 3.44), and let G and H be two graphs. For all
f ∈ Iso(G, H) and x ∈ V (G) we have by definition that (G, x) ∼ = (H, f (x)) in
the category of graphs with one vertex individualized. Because I is an invariant
for this category, I(G, x) = I(H, f (x)). It follows that any isomorphism from
G to H must map a vertex x ∈ V (G) into a vertex y ∈ V (H) satisfying
I(G, x) = I(H, y). An invariant for the category of graphs with one vertex
individualized is called a vertex invariant.
Before proceeding to discuss examples, we adopt the convention of writing
multisets as sorted tuples consisting of the elements of a multiset.
Thus, in this particular situation we are able to distinguish all vertices from
each other. Note that this leaves at most one possible isomorphism from G to
any other graph H.
92 3 Representations and Isomorphism
I(C, 00000) = (3, 4), I(C, 00111) = (3, 3), I(C, 11011) = (3, 4).
A good invariant is both fast to compute and can distinguish well be-
tween different isomorphism classes in the category of objects under study.
In essence, there are two main difficulties hindering the development of good
invariants for combinatorial objects: symmetry and regularity.
Symmetry (as recorded by the automorphism group) presents a fundamen-
tal obstacle to subobject invariants. In particular, no subobject invariant can
by definition distinguish between subobjects that are in the same orbit under
the action of the automorphism group.
Example 3.112. Consider the graphs in Fig. 3.11. For both graphs the auto-
morphism group acts transitively on the vertices. Thus, no vertex invariant
can by definition distinguish between the vertices in such a graph. A similar
situation occurs with the cube graph in Fig. 3.2.
Fortunately, even if the original object is highly symmetric, subobject in-
variants can often be employed to expedite isomorphism computations by first
individualizing a subobject that breaks the symmetry, and then applying an
invariant that takes into account the individualized subobject; we will return
to this topic in Sects. 3.3.5 and 5.6.
Regularity of the objects being studied is another obstacle to invariants.
3.3 Isomorphism Computations 93
A1 A2 B1 B2 B3
B4 B5 C1 C2 C3
C4 C5 C6 C7 C8
The associated cycle graph consists of one 8-cycle and one 4-cycle with edges
de eh hi ik kj jg gf fd, lm mo on nl,
respectively. On the other hand, the double neighborhood determined by the
points a and c is
abc ade afg ahi ajk alm ano cdg cel cfh cij cmn cko,
where the associated cycle graph consists of one 12-cycle with edges
de el lm mn no ok kj ji ih hf fg gd.
Example 3.117. Point and block invariants for square designs can be obtained
from invariants for the associated derived and residual designs.
Example 3.118. Any three points not on a common line in a projective plane of
order n determine a configuration equivalent to a main class of Latin squares
of order n − 1 (see Definition 2.114 and Example 6.21). Thus, an invariant for
main classes of Latin squares yields an invariant for projective planes.
Invariants applicable to designs are discussed in [8, 125, 204, 205, 206] and
in the references therein.
For codes it appears that not many invariants have been published. By uti-
lizing the equivalence of resolutions of BIBDs and OE codes (Theorem 3.82),
invariants for the design underlying a corresponding resolution can be used
as invariants for OE codes. Another possibility is to use block intersections
between parallel classes, see [431, 432]. Invariants for Hadamard matrices are
discussed in [184, 364] and the references therein. Many vertex invariants for
colored graphs appear in [412].
π = ({3, 6}, {1, 5}, {2, 4}), σ = ({3, 5}, {1, 2, 4, 6}).
We have
π ∧ σ = ({3}, {6}, {5}, {1}, {2, 4})
and
σ ∧ π = ({3}, {5}, {6}, {1}, {2, 4}).
Definition 3.125. Let I be a vertex invariant for colored graphs. The refine-
ment transformation RI from colored graphs into colored graphs is defined for
a colored graph (G, π) by RI (G, π) = (G, π ∧ I¯G,π ).
Example 3.126. Let us continue Example 3.121 and refine π1 to a stable par-
tition with respect to D. From π1 and D̄G,π1 computed in Example 3.121, we
obtain the refined partition
Thus,
D̄G,π2 = ({1}, {6}, {5}, {3}, {4}, {2})
and
π3 = π2 ∧ D̄G,π2 = ({1}, {5}, {6}, {4}, {3}, {2}).
Since π3 is a discrete partition, it is obviously stable.
Ordered partitions that are stable with respect to the color degree invariant
D are often called equitable [342, Sect. 7.3.2], [411]. Let us continue with
another example.
3 2
4 1
5 8
6 7
Fig. 3.14. The graph for Example 3.127
Example 3.127. Consider the graph G in Fig. 3.14. Let us refine the ordered
partition π1 = ({1, 2, 3, 4, 5, 6, 7, 8}) using the color degree invariant D until
an equitable partition is reached. As in previous examples, we assume lexico-
graphic order for the invariant values when constructing D̄G,π , we obtain
general – consider, for example, the color degree invariant D and the colored
graphs (G, π3 ) and (G, π4 ) in Example 3.127.
For a colored graph (G, π), we write RI+ (G, π) for the stable colored graph
obtained by iteratively applying RI .
Theorem 3.130. For any two isomorphic colored graphs (G, π) and (H, σ) it
holds that Iso((G, π), (H, σ)) = Iso(RI+ (G, π), RI+ (H, σ)).
Proof. A discrete ordered partition is always stable. Because each iteration of
RI either has already produced a stable partition or increases the number of
cells by at least one, we always have RI+ (G, π) = RIn−1 (G, π) and RI+ (H, σ) =
RIn−1 (G, σ), where n = |V (G)| = |V (H)|. Applying n−1 times Theorem 3.129
completes the proof.
Theorem 3.131. Let (G, π) be a colored graph, and let RI+ (G, π) = (G, π + ).
Then, I + defined for all u ∈ V (G) by I + (G, π, u) = π + (u) is a vertex invariant
for colored graphs.
Proof. Let (G, π, u) = ∼ (H, σ, v) in the category of colored graphs with one
vertex individualized. We prove that I + (G, π, u) = I + (H, σ, v). Because
(G, π, u) ∼= (H, σ, v), there exists an f ∈ Iso((G, π), (H, σ)) with f (u) = v.
Theorem 3.130 implies f ∈ Iso(RI+ (G, π), RI+ (H, σ)); in particular, π + (u) =
σ + (f (u)) = σ + (v).
Invariants and refinement are central to practical isomorphism algorithms
on combinatorial objects. Typically it is the case that a significant fraction of
the running time of an algorithm is spent in evaluating subobject invariants
and refining ordered partitions. Thus, a very fast implementation is required
for good performance. A more detailed discussion and algorithms appear in
[325], [342, Chap. 7], and [411]; also consulting the source code of nauty [412]
is recommended to the reader interested in low-level implementation.
Invariants obviously exhibit varying computational difficulty. For exam-
ple, the color degree invariant D is cheap to evaluate, whereas an invariant
counting the occurrences of a nontrivial subgraph or configuration is more
expensive. Performancewise it is thus prudent to employ a hierarchy of in-
variants ordered from cheap to expensive, whereby an expensive invariant is
applied only when the cheaper invariants fail to refine a given ordered parti-
tion. As long as the order of application for the invariants is invariant under
isomorphism, results analogous to Theorems 3.130 and 3.131 hold for a stable
colored graph obtained using a hierarchy of invariants.
For reasons of performance it is typically the case that invariants are best
evaluated using a natural representation of the objects, even in the case where
a colored-graph representation is eventually used to carry out the isomorphism
computations. For example, a block invariant for Steiner triple systems is typ-
ically best evaluated in a triple system representation compared with the line
graph representation. After a subobject invariant has been evaluated in a nat-
ural representation, most colored-graph representations allow us to encode the
3.3 Isomorphism Computations 101
V (g ∗ X) = V,
E(g ∗ X) = {{g(u), g(v)} : {u, v} ∈ E(X)}, (3.30)
π(g ∗ X) = (g(V1 ), g(V2 ), . . . , g(Vm )),
V (gX) = V,
E(gX) = {{1, 3}, {1, 4}, {2, 3}, {3, 4}, {4, 5}, {5, 6}},
π(gX) = ({2, 6}, {1, 5}, {3, 4}).
In the case X ∼
= Y a variant of the isomorphism problem also asks for an
isomorphism g ∈ G with gX = Y . Another basic problem is that of computing
a set of generators for the automorphism group of an object.
Example 3.137. To order the set of all colored graphs with vertex set V =
{1, 2, . . . , n}, one possibility is to use a lexicographic order analogous to the
order in Example 3.106. For example, given a colored graph X, define the
corresponding ordered tuple by first listing the color of every vertex, followed
by a list of the entries in the upper triangular part of the associated adjacency
3.3 Isomorphism Computations 103
matrix. Note that since the vertex set is {1, 2, . . . , n}, we have a natural corre-
spondence between graphs and adjacency matrices. For example, the ordered
tuple that corresponds to the colored graph X in Example 3.133 is
(1, 3, 3, 2, 1, 2, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0).
(3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0).
As with Example 3.106, this canonical representative map for colored graphs
is easy to define, but practical to compute only for relatively small n.
Example 3.142. The software package nauty [412] computes canonical labeling
of a colored graph X given as input. As a side-effect, nauty also produces a
set of generators for the automorphism group Aut(X). The algorithm used by
nauty is discussed in Sect. 5.6.
The first and fourth equality follow immediately from definition of κ . The
second and fifth equality hold by the initial observation. The third equal-
ity holds because κ is a canonical labeling map. From (3.32) we thus have
κ (gX) ∈ Iso(R(gX), R(κ (X)X)). Because clearly gX ∼ = κ (X)X, we have
by assumption κ (gX) ∈ Iso(gX, κ (X)X), that is, κ (gX)gX = κ (X)X.
4
Isomorph-Free Exhaustive Generation
Now, this is obviously not a very difficult problem to solve, even by hand
calculation. There are six possible 0-1 rows subject to a row containing two
1s:
1100, 1010, 1001, 0110, 0101, 0011. (4.1)
We can thus proceed one row at a time, making sure that no column contains
more than two 1s:
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
???? 1100 1100 1100 1100
⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ 1100 ⎥ ⎢ 1100 ⎥ ⎢ 1100 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ???? ⎦ , ⎣ ???? ⎦ , ⎣ ???? ⎦ , ⎣ 0011 ⎦ , ⎣ 0011 ⎦ .
???? ???? ???? ???? 0011
The last matrix is clearly one of the matrices that needs to be generated.
So far so good, but suppose we take a different path:
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
???? 1100 1100 1100
⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ 1010 ⎥ ⎢ 1010 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ???? ⎦ , ⎣ ???? ⎦ , ⎣ ???? ⎦ , ⎣ 0110 ⎦ .
???? ???? ???? ????
Now we are stuck, because none of the six possible rows can be placed into
the last row without introducing a column with three 1s. This illustrates a
partial object that does not lead to the discovery of an object to be gen-
erated. Accepting defeat, we can always proceed to consider the remaining
possibilities.
If we carry out this procedure systematically, it is obvious that we will
obtain all 0-1 matrices that were to be generated. In doing so, we end up
considering a tree of matrices that looks like the tree in Fig. 4.1. Parts of the
tree are not displayed because of space limitations; the truncated subtrees are
marked with dots.
Definition 4.4. The domain of a search is a finite set Ω that contains all
objects considered by the search.
Example 4.5. Let the domain be the set of all 0-1 matrices of size 4 × 4 with
entries in zero or more rows set to the undefined value “?”.
⎡ ⎤
????
⎢ ???? ⎥
⎢ ⎥
⎣ ???? ⎦
????
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1100 1010 1001 0110 0101 0011
⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ ???? ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦
???? ???? ???? ???? ???? ????
... ... ... ... ...
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1100 1100 1100 1100 1100 1100
⎢ 1100 ⎥ ⎢ 1010 ⎥ ⎢ 1001 ⎥ ⎢ 0110 ⎥ ⎢ 0101 ⎥ ⎢ 0011 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦
???? ???? ???? ???? ???? ????
... ... ...
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1100 1100 1100 1100 1100 1100 1100
⎢ 1100 ⎥ ⎢ 1010 ⎥ ⎢ 1010 ⎥ ⎢ 1010 ⎥ ⎢ 0101 ⎥ ⎢ 0101 ⎥ ⎢ 0101 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ 0011 ⎦ ⎣ 0110 ⎦ ⎣ 0101 ⎦ ⎣ 0011 ⎦ ⎣ 1010 ⎦ ⎣ 1001 ⎦ ⎣ 0011 ⎦
???? ???? ???? ???? ???? ???? ????
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1100 1100 1100 1100 1100
⎢ 1100 ⎥ ⎢ 1010 ⎥ ⎢ 1010 ⎥ ⎢ 0101 ⎥ ⎢ 0101 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ 0011 ⎦ ⎣ 0101 ⎦ ⎣ 0011 ⎦ ⎣ 1010 ⎦ ⎣ 0011 ⎦
0011 0011 0101 0011 1010
Definition 4.7. For a node X in a search tree we write C(X) for the set of
all child nodes of X. For a nonroot node X we write p(X) for the parent node
of X.
In practice a search tree is defined only implicitly through the domain Ω,
the root node R ∈ Ω, and the rule X → C(X) for forming the child nodes of
a node X.
Example 4.8. Let the domain Ω of the search be as in Example 4.5, and let the
root node R be the matrix with all entries undefined. Given a node X ∈ Ω,
the set C(X) of child nodes is formed by placing each of the six possible rows
(4.1) into the first undefined row of X (if any), and removing any resulting
matrices that contain more than two 1s in some column. The resulting search
tree is depicted in Fig. 4.1.
In Example 4.8 the rule for forming the child nodes is straightforward. In
most cases occurring in practice we are actually facing a search whose imple-
mentation involves multiple layers of searching, where in order to generate the
child nodes in an upper level search it is necessary to carry out a lower level
search to actually generate the children. However, it is typically possible to
study the upper level search by treating the lower level search as a subroutine
that produces the child nodes one at a time.
The execution of a search algorithm can be viewed as traversing a search
tree by systematically following its edges to visit all the nodes. The operation
of a typical search algorithm can be modeled as a depth-first traversal of the
search tree; that is, starting from the root node R, the algorithm recursively
visits the children of a node before returning from the node. Pseudocode for
a depth-first traversal is given in Algorithm 4.1.
We do not prescribe any order in which the children of a node are visited
during traversal – unless explicitly indicated otherwise, any order will do.
partial solution further. Detecting such partial solutions and backtracking im-
mediately – this is called pruning – can avoid a lot of work compared with the
cost of detection. One manifestation of this principle is the branch-and-bound
technique, where the solutions are associated with a target value – for exam-
ple, the size of a clique in a graph – and a bounding function provides for each
partial solution an upper bound on the value of any partial solution obtained
by extending it. If the bounding function indicates that the target value can-
not be reached by extending the current partial solution, the algorithm can
backtrack immediately.
Minimize the amount of work at each recursive call. Even a small
computational overhead at each recursive call can require a lot of time if
there are many calls. A careful design of the data structures can significantly
decrease the time overhead. There are three basic operations. First, when a
choice is made, the data structure must be updated to reflect the implications
of the choice – for example, in the form of constraint propagation – and to
facilitate subsequent choices. Second, upon backtracking it is necessary to
rewind the data structure back to its original state. Third, when the search
returns from a recursive call it is necessary to determine the next alternative
in the choice set. Copying of data should be avoided whenever possible.
Keep it simple. A small loss in efficiency is worthwhile for a gain in
simplicity. Complex algorithms contain errors more often than simple ones.
In other words, the estimate assumes that all nodes at each level i = 0, 1, . . . , n
in (T, R) have the same weight and number of children as Xi . Of course this
is not true for a typical search tree; however, we can prove that W always has
the correct expected value:
Algorithm 4.3 Estimating the weight of a search tree via random paths
function path-estim(X: node, d: integer): cost estimate
1: select uniformly at random an Y ∈ C(X)
2: return d · w(X)+ path-estim(Y, d · |C(X)|)
function tree-cost(R: root node, m: integer): cost estimate
3: Wtot ← 0
4: for all i ∈ {1, 2, . . . , m} do
5: Wtot ← Wtot + path-estim(R, 1)
6: end for
7: return Wtot /m
Example 4.14. Consider Example 4.13. Let the domain of the search be as in
Example 4.5. To capture the notion of isomorphism in Example 4.13, let the
acting group be S4 × S4 , where a pair of permutations (h, k) ∈ S4 × S4 acts on
a matrix X = (xij ) of size 4 × 4 so that h permutes the rows and k permutes
the columns; more precisely, Y = (h, k) ∗ X, where yij = xh−1 (i),k−1 (j) for all
i, j = 1, 2, 3, 4. For example, the matrices
116 4 Isomorph-Free Exhaustive Generation
⎡ ⎤ ⎡ ⎤
1100 1100
⎢ 1010 ⎥ ⎢ 0101 ⎥
⎢ ⎥ ⎢ ⎥
⎣ ???? ⎦ , ⎣ ???? ⎦ (4.2)
???? ????
are isomorphic under this action – an isomorphism is (h, k) = (, (1 2)(3 4)).
Isomorph rejection techniques can now be described in terms of this model
by making assumptions about the process that generates the objects – that
is, assumptions about the structure of an associated search tree – in relation
to the group action inducing isomorphism on the search domain.
Example 4.15. Armed with the isomorphism relation from the previous exam-
ple, let us take a new look at the search tree in Fig. 4.1. It is not difficult to
observe from the figure – and if necessary, formally prove based on Example
4.8 – that isomorphic nodes have isomorphic children. This is an example of
an assumption about an abstract search tree that we will make in the context
of isomorph rejection.
If the search tree meets the assumptions made, then redundancy can be
detected via appropriate isomorphism computations on search tree nodes. The
precise form of the assumptions, the isomorphism computations, and what is
considered redundant are specific to a technique.
Example 4.16. Consider the assumption that isomorphic nodes have isomor-
phic children. A corollary – which we will prove in detail later – is that two
rooted subtrees with isomorphic root nodes consist of (up to isomorphism) the
same nodes. Thus, traversing only one such subtree suffices for isomorph-free
exhaustive generation, making any other subtrees redundant. For a concrete
illustration, consider the subtrees with roots (4.2) in Fig. 4.1.
From a practical perspective the present search tree model for isomorph
rejection has two main applications. First, the assumptions about the search
tree dictate how an algorithm should be structured in practice so that an
isomorph rejection technique can be applied. Thus, each isomorph rejection
technique essentially provides a framework for algorithm design. Second, pro-
vided that the operation of an actual algorithm is accurately described by a
traversal of a search tree meeting the assumptions, the correctness of isomorph
rejection is established as an immediate corollary of a correctness proof in the
search tree model.
The main design goal for isomorph rejection in the search tree model is to
traverse a subtree of the abstract search tree as efficiently as possible subject to
the correctness constraint that exactly one object is output from every isomor-
phism class that we wish to generate. The best isomorph rejection techniques
in general gain efficiency by taking advantage of the way in which the objects
are generated, whereby potentially expensive explicit isomorphism computa-
tions (such as canonical labeling) are either traded for group-theoretic tech-
niques relying on prescribed groups of automorphisms or replaced with less
4.2 Techniques for Isomorph Rejection 117
Lemma 4.18. Every search tree that satisfies (4.3) admits a total order re-
lation < defined on the isomorphism classes of its nodes such that for every
nonroot node X it holds that p(X) < X.
Proof. By the structure of the algorithm it is obvious that the record R con-
tains at most one node from every isomorphism class of nodes. Furthermore,
a node X is reported if and only if X ∈ R. Let us say that a node X appears
in R if there exists a Y ∈ R with X ∼ = Y . We claim that every node appears
in R when the invocation record-traverse(R) returns, where R is the root
node of the search tree.
4.2 Techniques for Isomorph Rejection 119
⎡ ⎤
????
⎢ ???? ⎥
⎢ ⎥
⎣ ???? ⎦
????
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1100 1010 1001 0110 0101 0011
⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ ???? ⎥ ⎢ ???? ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦
???? ???? ???? ???? ???? ????
× × × × ×
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1100 1100 1100 1100 1100 1100
⎢ 1100 ⎥ ⎢ 1010 ⎥ ⎢ 1001 ⎥ ⎢ 0110 ⎥ ⎢ 0101 ⎥ ⎢ 0011 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦ ⎣ ???? ⎦
???? ???? ???? ???? ???? ????
× × ×
⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤
1100 1100 1100 1100 1100 1100 1100 1100 1100 1100
⎢ 1100 ⎥⎢ 1010 ⎥⎢ 1010 ⎥⎢ 1010 ⎥⎢ 0011 ⎥⎢ 0011 ⎥⎢ 0011 ⎥⎢ 0011 ⎥⎢ 0011 ⎥⎢ 0011 ⎥
⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥
⎣ 0011 ⎦⎣ 0110 ⎦⎣ 0101 ⎦⎣ 0011 ⎦⎣ 1100 ⎦⎣ 1010 ⎦⎣ 1001 ⎦⎣ 0110 ⎦⎣ 0101 ⎦⎣ 0011 ⎦
???? ???? ???? ???? ???? ???? ???? ???? ???? ????
× × × × × × ×
⎡ ⎤ ⎡ ⎤
1100 1100
⎢ 1100 ⎥ ⎢ 1010 ⎥
⎢ ⎥ ⎢ ⎥
⎣ 0011 ⎦ ⎣ 0101 ⎦
0011 0011
Furthermore:
for every nonroot node X in canonical form, it holds that the (4.5)
parent node p(X) is also in canonical form.
(1, 1, 0, 0, 1, 0, 1, 0, ?, ?, ?, ?, ?, ?, ?, ?).
Example 4.23. The search tree in Example 4.21 has this property: whenever
a new row becomes defined in a 4 × 4 matrix, the four lexicographically most
significant undefined entries in the associated 16-tuple become defined.
Theorem 4.24. If a search tree over the domain Σ n constructs the n-tuples
in order of lexicographic significance, and the lexicographically maximum n-
tuple of every orbit of G on Σ n is in canonical form, then (4.5) holds.
4.2 Techniques for Isomorph Rejection 123
Proof. We prove the contrapositive claim; that is, for every nonroot node x it
holds that if p(x) is not in canonical form, then neither is x. Clearly, if p(x)
is not in canonical form, then there exists a g ∈ G such that g ∗ p(x) p(x).
We claim that g ∗ x x, which implies that x is not in canonical form.
Because the n-tuples are constructed in order of lexicographic significance,
any undefined symbols “?” in x and p(x) occur in the lexicographically least
significant entries. Furthermore, since the undefined symbol is the minimum
symbol in the alphabet Σ, the lexicographically most significant entries in
g ∗ p(x) up to and including the entry where g ∗ p(x) and p(x) differ cannot
contain an undefined symbol. Since g acts by permuting the coordinates, and
p(x) is equal to x in the entries not containing an undefined symbol, we must
have g ∗ x x. Thus, x is not in canonical form.
Example 4.25. Under the assumption that the lexicographically maximum 16-
tuple of every orbit is in canonical form, it is easy to see that the search tree
in Example 4.21 satisfies (4.4). Also (4.5) holds by Theorem 4.24. Thus, we
can apply Algorithm 4.5.
Viewed in terms of 4×4 matrices instead of 16-tuples, the subtree traversed
by Algorithm 4.5 is identical to the tree depicted in Fig. 4.2. The symbol “×”
now marks nodes that are not in canonical form.
Note that the matrices in respective sequence positions 1, 2, 4, and 5 are iso-
morphic, but the matrices in position 3 are nonisomorphic. Thus, the ancestor
sequences are distinct on the level of isomorphism classes of matrices.
To arrive at an isomorph rejection strategy, let us now specify on the level
of isomorphism classes a “canonical way” to generate each nonroot node of
the search tree. More formally, let Ωnr be the union of all orbits of G on Ω
that contain a nonroot node of the search tree. Associate with every object
X ∈ Ωnr a weak canonical parent w(X) ∈ Ω such that the following property
holds:
Because of (4.8), any two isomorphic objects have identical sequences (4.9) if
we look at the sequences on the level of isomorphism classes of objects.
In rejecting isomorphs, the sequence (4.9) now constitutes the “canonical
way” to generate objects in the isomorphism class of X. When the search tree
is traversed, a node X is considered further only if it has been constructed in
the canonical way specified by (4.9); that is, every node in the ancestor se-
quence (4.6) should be isomorphic to the object in the corresponding position
126 4 Isomorph-Free Exhaustive Generation
in the sequence (4.9). In practice this property is tested one sequence position
at a time. Accordingly, we say that a node X is generated by weak canonical
augmentation if
p(X) ∼= w(X). (4.10)
Before proceeding with further technical details, let us look at the im-
plications for isomorph rejection. Suppose that X, Y are isomorphic nodes
encountered when traversing the search tree. Furthermore, suppose that both
nodes are generated by weak canonical augmentation. By (4.8) we obtain
p(X) ∼
= w(X) ∼
= w(Y ) ∼
= p(Y ).
for every nonroot node X, there exists a nonroot node Y such (4.11)
that X ∼= Y and p(Y ) ∼
= w(Y ).
In essence, (4.3) and (4.11) together imply that, for every node X, the canon-
ical parent sequence (4.9) is realized on the level of isomorphism classes by
an actual sequence (4.7) of nodes occurring in the search tree.
Proof. Order the isomorphism classes of nodes in the search tree using Lemma
4.18. We proceed by induction in the order of isomorphism classes. Note that
the only node in the first isomorphism class is the root node R. Thus, the in-
duction base follows from the initial invocation weak-canaug-traverse(R).
To establish uniqueness, suppose uniqueness holds for the first isomor-
phism classes of nodes. Let Z1 , Z2 be nodes in isomorphism class number + 1
such that weak-canaug-traverse is invoked with input Z1 , Z2 . Thus, we
must have p(Zi ) ∼ = w(Zi ) for i = 1, 2. Consequently, Z1 ∼ = Z2 and (4.8)
∼
imply p(Z1 ) = p(Z2 ). The order on isomorphism classes implies that we
can apply the inductive hypothesis (uniqueness) on p(Z1 ) and p(Z2 ). Thus,
p(Z1 ) = p(Z2 ). Because isomorph rejection has been performed on siblings,
Z1 = Z2 .
It remains to establish existence; suppose existence holds for the first
isomorphism classes of nodes. Let W be a node in isomorphism class number
+ 1. We show that there exists a node Z such that Z ∼ = W and weak-
canaug-traverse is invoked with Z. By (4.11) there exists a node Y ∼ =W
such that w(Y ) ∼= p(Y ). The order on isomorphism classes implies that we can
apply the inductive hypothesis (existence) and conclude that weak-canaug-
traverse is invoked at least once with input X such that X ∼ = p(Y ). It
follows from (4.3) that there exists a Z ∈ C(X) such that Z ∼ = Y . Now (4.8)
implies p(Z) = X ∼ = p(Y ) ∼
= w(Y ) ∼ = w(Z). Thus, weak-canaug-traverse
is invoked either with Z or with a sibling isomorphic to Z.
Let us now abandon the simplified framework and proceed to discuss gen-
eration by canonical augmentation. The essential extension to the simplified
framework is that, in addition to requiring that a node X has a specific parent
node with p(X) ∼ = w(X), we also require that X must be generated by aug-
menting p(X) in a specific “way”. To describe the framework in an abstract
setting, we must first model the process in which an object is generated by aug-
menting another object. In terms of a search tree, the ordered pair (X, p(X))
characterizes the augmentation that is performed to generate a node X from
p(X) during the search.
Example 4.29. Consider the search tree in Example 4.8. The matrix
⎡ ⎤
1100
⎢ 1010 ⎥
X=⎢ ⎥
⎣ 0101 ⎦
????
The ordered pair (X, p(X)) now contains the information how X was gener-
ated by augmenting p(X) in the search.
Formally, an augmentation is an ordered pair (X, Z) ∈ Ω × Ω of objects
from the search domain. Define isomorphism for augmentations by extending
the isomorphism-inducing action of G on Ω to the elementwise action on
Ω × Ω. In particular, (X, Z) ∼
= (Y, W ) if and only if there exists a g ∈ G with
gX = Y and gZ = W .
Example 4.30. Recall the group action in Example 4.14. The augmentations
⎛⎡ ⎤ ⎡ ⎤⎞ ⎛⎡ ⎤ ⎡ ⎤⎞
1100 1100 0101 0101
⎜ ⎢ 1010 ⎥ ⎢ 1010 ⎥ ⎟ ⎜ ⎢ 0110 ⎥ ⎢ 0110 ⎥ ⎟
⎜⎢ ⎥ ⎢ ⎥⎟ ⎜⎢ ⎥ ⎢ ⎥⎟
⎝ ⎣ 0101 ⎦ , ⎣ ???? ⎦ ⎠ , ⎝ ⎣ 1010 ⎦ , ⎣ ???? ⎦ ⎠
???? ???? ???? ????
(Z, p(Z)) ∼
= (Z, m(Z)). (4.13)
Note that (4.13) implies (4.10) but the converse need not hold.
4.2 Techniques for Isomorph Rejection 129
(Z, p(Z)) ∼
= (Z, m(Z)) ∼
= (W, m(W )) ∼
= (W, p(W )). (4.14)
for every nonroot node X, there exists a node Y such that (4.16)
X∼ = Y and (Y, m(Y )) ∼
= (Y, p(Y )).
130 4 Isomorph-Free Exhaustive Generation
Note that (4.15) and (4.16) are strengthened versions of (4.3) and (4.11),
respectively. The following theorem is analogous to Theorem 4.28; nevertheless
we give a full proof for completeness.
Proof. Because (4.15) implies (4.3), we can order the isomorphism classes of
nodes in the search tree using Lemma 4.18. We proceed by induction in the
order of isomorphism classes. Note that the only node in the first isomorphism
class is the root node R. Thus, the induction base follows from the initial
invocation canaug-traverse(R).
To establish uniqueness, suppose uniqueness holds for the first isomor-
phism classes of nodes. Let Z1 , Z2 be nodes in isomorphism class number
+ 1 such that canaug-traverse is invoked with input Z1 , Z2 . Thus, we
must have (Zi , p(Zi )) ∼ = (Zi , m(Zi )) for i = 1, 2. Consequently, Z1 ∼ = Z2
and (4.12) imply (Z1 , p(Z1 )) ∼ = (Z2 , p(Z2 )). In particular, p(Z1 ) ∼
= p(Z2 ).
The order on isomorphism classes implies that we can apply the inductive
hypothesis (uniqueness) on p(Z1 ) and p(Z2 ). Thus, X = p(Z1 ) = p(Z2 ). By
(Z1 , p(Z1 )) ∼
= (Z2 , p(Z2 )) there exists an automorphism a ∈ Aut(X) such that
aZ1 = Z2 . Thus, Z1 = Z2 by the structure of the algorithm.
It remains to establish existence; suppose existence holds for the first
isomorphism classes of nodes. Let W be a node in isomorphism class number
+ 1. We show that there exists a node Z such that Z ∼ = W and canaug-
traverse is invoked with input Z. By (4.16) there exists a node Y ∼ = W such
that (Y, m(Y )) ∼= (Y, p(Y )). The order on isomorphism classes implies that we
can apply the inductive hypothesis (existence) and conclude that canaug-
traverse is invoked at least once with node X such that X ∼ = p(Y ). It follows
from (4.15) that there exists a Z ∈ C(X) such that (Z, X) ∼ = (Y, p(Y )). Let
a ∈ Aut(X) such that aZ ∈ C(X). Clearly, p(aZ) = X = p(Z) and (aZ, X) ∼ =
(Z, X). Furthermore, (4.12) implies (aZ, m(aZ)) ∼ = (Z, m(Z)) ∼= (Y, m(Y )) ∼=
(Y, p(Y )) ∼= (Z, p(Z)) ∼ = (aZ, p(aZ)). Thus, aZ passes the test (4.13) for
all applicable choices of a ∈ Aut(X). It follows that canaug-traverse is
invoked with an input isomorphic to Z ∼ =Y ∼ = W.
In practice this property holds for most natural notions of a subobject, in-
cluding the subobjects in Example 4.33.
The necessary assumptions on subobjects are now in place. In this setting
the typical way to define a canonical parent function m is to rely on a canonical
labeling map in selecting a subobject so that (4.12) will hold. Let κ be a
canonical labeling map for the action of G on Ω. Given an object Z ∈ Ωnr ,
we compute the canonical parent m(Z) as follows. First, we compute the
canonical labeling κ(Z) ∈ G and the canonical form Ẑ = κ(Z)Z of Z. Then,
we select any subobject Ẑ0 ∈ S(Ẑ) so that the selection depends only on the
canonical form Ẑ and not on Z. Finally, we set m(Z) = κ(Z)−1 Ẑ0 .
To establish (4.12), observe that the selection of the subobject is made on
the canonical form of the input object. Thus, for any two isomorphic objects
Z, W ∈ Ωnr we have Ẑ = Ŵ , Ẑ0 = Ŵ0 , and therefore (Z, m(Z)) ∼= (W, m(W ))
as witnessed by the isomorphism κ(W )−1 κ(Z). Thus, (4.12) holds.
To establish (4.16), observe that by (4.18) we have that m(Z) ∈ S(Z) for
all Z ∈ Ωnr . Thus, (4.17) implies that for any Z ∈ Ωnr there exists a nonroot
node Y in the search tree with (Z, m(Z)) ∼ = (Y, p(Y )). Because Y ∼ = Z, we
have (Y, m(Y )) ∼= (Z, m(Z)) ∼= (Y, p(Y )) by (4.12). Thus, (4.16) holds.
Example 4.35. Consider the search tree in Example 4.8 and Algorithm 4.7.
Suppose the function m from Example 4.34 is used, and suppose that the
lexicographically maximum matrix is always selected in line 3 of the algorithm.
Then, the subtree traversed by Algorithm 4.7 is identical to the earlier tree
depicted in Fig. 4.2, where “×” now marks nodes that fail the test (4.13) or
are not the maximum in their respective orbits on C(X) under the action of
Aut(X).
block, and so forth – in which case the automorphism orbits of subobjects are
immediately obtained by computing a canonical labeling and generators for
Aut(Z) in a permutation representation that involves the elementary objects.
Example 4.37. One subobject invariant that can be applied in the setting of
Examples 4.33 and 4.36 is to associate with every defined row i of a matrix
the total number of 1s that occur in the columns that contain a 1 in row i.
that acts on a finite set Ω that is implicitly defined, and we are asked to
produce an orbit transversal TΩ ⊆ Ω for the action.
Example 4.38. Let us consider as a running example the problem of construct-
ing an orbit transversal for the induced action of C6 = (1 2 3 4 5 6) on
2-subsets of {1, 2, 3, 4, 5, 6}; cf. Example 3.19.
Kerber and Laue [308, 309, 356, 357] together with collaborators have
extensively studied the use of homomorphisms of group actions in solving orbit
transversal problems. In essence, the idea is to first solve an orbit transversal
problem for a secondary action, and then use this transversal in solving the
primary transversal problem, where the primary and secondary action are
connected by means of a homomorphism of group actions. For simplicity, we
assume that the acting group G is fixed.
Definition 4.39. Let G be a group that acts on two finite sets Ω and Π. A
homomorphism of group actions is a map ϕ : Ω → Π such that ϕ(gX) =
gϕ(X) for all g ∈ G and X ∈ Ω.
A bijective homomorphism of group actions is called an isomorphism. Two
actions are equivalent if they are related by an isomorphism of group actions.
Basic homomorphisms of group actions are the map X → NG (X) taking
an object X ∈ Ω to its stabilizer (G acts on its subgroups by conjugation), the
bijection gX → gNG (X) taking an orbit element gX ∈ GX to a left coset of
the stabilizer (G acts on left cosets of its subgroups by left multiplication), and
the map gH → gK taking a left coset into a (larger) left coset, H ≤ K ≤ G.
In many cases these homomorphisms can be used to transform a problem
involving an “external” action of a group on a finite set Ω into a problem
involving a “local” action of the group on its subgroups or cosets of subgroups.
Example 4.40. A local description of the orbit transversal problem in Example
4.38 can be obtained in terms of the group S6 = Sym({1, 2, 3, 4, 5, 6}) and the
setwise stabilizer NS6 ({1, 2}) of {1, 2} in S6 . Namely, the induced action of
S6 on 2-subsets of {1, 2, 3, 4, 5, 6} is easily checked – cf. Theorem 3.20 – to be
equivalent to the action of S6 on the left cosets S6 /NS6 ({1, 2}) by left multi-
plication. Accordingly, for the group C6 = (1 2 3 4 5 6) ≤ S6 , a “localized”
orbit transversal problem equivalent to Example 4.38 is to determine an orbit
transversal for the action of C6 on S6 /NS6 ({1, 2}) by left multiplication.
Another basic family of homomorphisms is obtained from maps that “for-
get” some structure in an object or make the object “coarser” in such a way
that the group action is respected. An important special case are projection
maps of various types. For example, let G act on finite sets Ψ1 and Ψ2 , and
let Λ ⊆ Ψ1 × Ψ2 , where G acts elementwise on ordered pairs in Λ, that is, for
g ∈ G and (Y1 , Y2 ) ∈ Λ, define g ∗ (Y1 , Y2 ) = (gY1 , gY2 ). In this case the pro-
ψ1 ψ2 ψ1 ψ2
jection maps Ψ1 ← Λ → Ψ2 defined for all (Y1 , Y2 ) ∈ Λ by Y1 ← (Y1 , Y2 ) → Y2
are homomorphisms of group actions.
4.2 Techniques for Isomorph Rejection 135
In each case the relevant action is the action of C6 = (1 2 3 4 5 6) by left
multiplication, that is, g ∗ sHi = (gs)Hi for all g ∈ C6 , s ∈ S6 , and 1 ≤ i ≤ 4.
The solution approach is now to start with an orbit transversal for the action
of C6 on S6 /H4 = S6 /S6 – which is trivially {S6 } – and proceed along the
sequence (4.20) in the reverse direction until we have an orbit transversal for
the action of C6 on S6 /H1 . That is, in terms of (4.19) we have
ϕ1 ϕ2 ϕ3
S6 /H1 ←− S6 /H2 −→ S6 /H3 −→ S6 /H4 .
rows are 0-1 rows with two 1s, k rows consist of the undefined symbol “?”, and
every column contains at most two 1s. For k = 0, 1, 2, 3, let Σk ⊆ Γk × Γk+1
consist of all ordered pairs (Xk , Xk+1 ) such that Xk+1 is obtained from Xk
by transforming one 0-1 row into an undefined row. Let S4 × S4 act on each of
the sets Γ0 , Γ1 , Γ2 , Γ3 , Γ4 by row and column permutation – see Example 4.14
– and let S4 × S4 act elementwise on the ordered pairs in Σ0 , Σ1 , . . . , Σ3 . For
k = 0, 1, 2, 3, define projection homomorphisms πk and λk for all (Xk , Xk+1 ) ∈
Σk by πk : (Xk , Xk+1 ) → Xk and λk : (Xk , Xk+1 ) → Xk+1 , respectively. In
terms of (4.19), we have the sequence
π
0 0 λ 1 π1 2λ 2 π 3 λ
3 π λ
Γ0 ←− Σ0 −→ Γ1 ←− Σ1 −→ Γ2 ←− Σ2 −→ Γ3 ←− Σ3 −→ Γ4 .
Theorem 4.43. Let G be a group that acts on finite sets Ω and Π, and let
ϕ : Ω → Π be a homomorphism of group actions. Then,
1. for all Z, W ∈ ϕ(Ω) the sets of orbits on Ω intersected by the preimages
ϕ−1 (Z) and ϕ−1 (W ) are either equal or disjoint, where equality holds if
and only if Z ∼
= W,
2. for all Z ∈ ϕ(Ω) and X ∈ ϕ−1 (Z) it holds that
#
Aut(Z) = Iso(X, Y ). (4.21)
Y ∈ϕ−1 (Z)
Proof. We first prove that if ϕ−1 (Z) and ϕ−1 (W ) intersect the same orbit,
say GX ∈ G\Ω, then Z ∼ = W . Let g1 , g2 ∈ G such that g1 X ∈ ϕ−1 (Z) and
−1
g2 X ∈ ϕ (W ). Thus,
To establish the second claim, let Z ∈ ϕ(Ω) and X ∈ ϕ−1 (Z). For an
arbitrary g ∈ Aut(Z) we have ϕ(gX) = gϕ(X) = gZ = Z. Thus, for Y = gX
it holds that Y ∈ ϕ−1 (Z) and g ∈ Iso(X, Y ). Conversely, for arbitrary X, Y ∈
ϕ−1 (Z) and g ∈ Iso(X, Y ), we have gZ = gϕ(X) = ϕ(gX) = ϕ(Y ) = Z.
Thus, g ∈ Aut(Z).
Example 4.44. Let us illustrate lifting steps in the situation of Example 4.41.
The orbit transversal for the action of C6 on S6 /H4 = S6 /S6 = {S6 } is
trivially {S6 }. Accordingly, the preimage ϕ−1
3 (S6 ) consists of all the cosets in
S6 /H3 = S6 /NS6 (1), namely
Note that because H3 = NS6 (1) a left coset sH3 is uniquely determined by
the image s(1) ∈ {1, 2, 3, 4, 5, 6}, where s ∈ S6 . Thus, because C6 is transitive
on {1, 2, 3, 4, 5, 6}, the action of C6 by left multiplication on S6 /H3 is also
transitive. Let us select {H3 } as an orbit transversal for the action of C6
138 4 Isomorph-Free Exhaustive Generation
Because Aut(H3 ) = {}, Theorem 4.43 implies that these cosets lie on pair-
wise different orbits of C6 on S6 /H2 . Furthermore, each coset has a trivial
automorphism group. These cosets form an orbit transversal for the action of
C6 on S6 /H2 .
Example 4.45. In the situation of Example 4.42, an orbit transversal for the
action of S4 × S4 on Γ2 consists of the three matrices
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1100 1100 1100
⎢ 1100 ⎥ ⎢ 1010 ⎥ ⎢ 0011 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ???? ⎦ , ⎣ ???? ⎦ , ⎣ ???? ⎦ .
???? ???? ????
Lifting from Γ2 to Σ1 using λ1 , the preimage of the first matrix intersects one
orbit on Σ1 represented by
⎛⎡ ⎤ ⎡ ⎤⎞
1100 1100
⎜ ⎢ 1100 ⎥ ⎢ 1100 ⎥ ⎟
⎜⎢ ⎥ ⎢ ⎥⎟
⎝ ⎣ 0011 ⎦ , ⎣ ???? ⎦ ⎠ ,
???? ????
and the preimage of the third matrix intersects two orbits represented by
⎛⎡ ⎤ ⎡ ⎤⎞ ⎛⎡ ⎤ ⎡ ⎤⎞
1100 1100 1100 1100
⎜ ⎢ 0011 ⎥ ⎢ 0011 ⎥ ⎟ ⎜ ⎢ 0011 ⎥ ⎢ 0011 ⎥ ⎟
⎜⎢ ⎥, ⎢ ⎥⎟, ⎜⎢ ⎥ ⎢ ⎥⎟
⎝ ⎣ 1100 ⎦ ⎣ ???? ⎦ ⎠ ⎝ ⎣ 1010 ⎦ , ⎣ ???? ⎦ ⎠ .
???? ???? ???? ????
These five ordered pairs of matrices together form an orbit transversal for the
action of S4 × S4 on Σ1 .
For a projecting step we are given a surjective homomorphism ϕ : Ω → Π
and an orbit transversal {X1 , X2 , . . . , Xm } for the action of G on Ω. The task
is to produce an orbit transversal for the action of G on Π. Because ϕ is
surjective, the set {ϕ(X1 ), ϕ(X2 ), . . . , ϕ(Xm )} intersects every orbit on Π. It
thus suffices to remove from this set all but one element from every orbit.
4.2 Techniques for Isomorph Rejection 139
Example 4.46. Consider the orbit transversal (4.22) for the action of C6 on
S6 /H2 in Example 4.44 and the homomorphism ϕ1 : S6 /H2 → S6 /H1 in
Example 4.41. From Theorem 4.43 we know that two images of transversal
elements are isomorphic if and only if the respective preimages intersect the
same orbits. We obtain the following preimages of images of the transversal
elements:
ϕ−1
1 (H1 ) = {H2 , (1 2)H2 },
ϕ−1
1 ((2 3)H1 ) = {(2 3)H2 , (1 3 2)H2 },
ϕ−1
1 ((2 4)H1 ) = {(2 4)H2 , (1 4 2)H2 },
ϕ−1
1 ((2 5)H1 ) = {(2 5)H2 , (1 5 2)H2 },
ϕ−1
1 ((2 6)H1 ) = {(2 6)H2 , (1 6 2)H2 }.
Because
(1 2 3 4 5 6) ∗ (1 6 2)H2 = (3 4 5 6)H2 = H2
we obtain H1 ∼
= (2 6)H1 . Similarly,
(1 3 5)(2 4 6) ∗ (1 5 2)H2 = (2 3 5 4 6)H2 = (2 3)H2
implies (2 3)H1 ∼ = (2 5)H1 . With some further effort it can be checked no other
images of transversal elements are isomorphic under the action of C6 . Thus,
{H1 , (2 3)H1 , (2 4)H1 } is an orbit transversal for the action of C6 on S6 /H1 .
The associated automorphism groups are also straightforward to determine
using Theorem 4.43. Namely, for ϕ−1 1 ((2 4)H1 ) we have (1 4)(2 5)(3 6) ∗
(2 4)H2 = (2 1 4 5)(3 6)H2 = (1 4 2)H2 and Aut((2 4)H2 ) = {}. Thus, using
Theorem 4.43 we obtain
Aut((2 4)H1 ) = Aut((2 4)H2 ) ∪ Iso((2 4)H2 , (1 4 2)H2 )
= {, (1 4)(2 5)(3 6)}.
The implementation of the lifting and projecting steps into a practical algo-
rithm greatly depends on the group actions and homomorphisms in question.
Indeed, in this connection generation by homomorphisms should be regarded
more as a general principle – such as backtrack search – rather than a specific
implementation technique for isomorph rejection. Thus, our discussion here
will be limited to some rather general implementation principles.
Typically it is the case that an implementation proceeding step by step
along a sequence of group actions requires also information on the automor-
phism groups of transversal elements; cf. Examples 4.44 and 4.46. Further-
more, it is convenient to have available a canonical labeling map for each
action in the sequence.
Definition 4.48. An extended orbit transversal consists of an orbit transver-
sal TΩ ⊆ Ω, a set SX of generators for the automorphism group Aut(X)
for each X ∈ TΩ , and a practical way to evaluate a canonical labeling map
κG,Ω : Ω → G satisfying κG,Ω (X)X ∈ TΩ for all X ∈ Ω.
The implementation of a lifting step from Π to Ω via a homomorphism
ϕ : Ω → Π clearly requires a way to construct objects in the preimage ϕ−1 (Z)
for every Z ∈ TΠ . Also required is a way to reject objects isomorphic under
the action of Aut(Z) in ϕ−1 (Z). If Aut(Z) is small, then this can be done
by exhaustive search through elements of Aut(Z) – in particular, no search
is required if Aut(Z) is trivial. If ϕ−1 (Z) is small, then the orbit algorithms
in Sect. 5.5 can be employed. In both cases it is possible to determine gen-
erators for Aut(X) and canonical labeling for any X ∈ ϕ−1 (Z) under the
action of Aut(Z); in the former case the entire group Aut(Z) is obtained as
a side effect of executing the search, in the latter case a left transversal L of
Aut(X) in Aut(Z) is easily obtained as a side effect of orbit computations, af-
ter which Theorem 5.26 and sifting yield a small set of generators for Aut(X);
see Sect. 5.5. In general, a lifting step requires for every Z ∈ TΠ the solution of
an (extended) orbit transversal problem for the action of Aut(Z) on ϕ−1 (Z).
By Theorem 4.43 from such a set of solutions we obtain directly an orbit
transversal TΩ and associated automorphism group generators. Canonical la-
beling for the action of G on Ω can be defined for all X ∈ Ω by
To verify this claim, observe that we first canonically label the image ϕ(X)
using κG,Π – which is available by assumption that we have an extended
orbit transversal for the action of G on Π – and then canonically label gX in
the preimage ϕ−1 (gϕ(X)) ⊆ Ω using a canonical labeling map given by the
extended orbit transversals on the preimages.
Let us now proceed to consider a projecting step from Ω to Π via a surjec-
tive homomorphism ϕ : Ω → Π. There are two basic approaches to implement
a projecting step. The first approach is to employ Theorem 4.43 and dynamic
programming (cf. [356]). It is assumed that the preimages ϕ−1 (Z) are small
4.2 Techniques for Isomorph Rejection 141
Theorem 4.49. The following claims hold when Algorithm 4.8 terminates:
1. TΠ is an orbit transversal for the action of G on Π,
2. Aut(Z) = SZ for all Z ∈ TΠ ,
3. a canonical labeling map κG,Π can be defined for every Z ∈ Π by using
the look-up array τ [·] as follows: select any X ∈ ϕ−1 (Z), and then put
Proof. The first claim holds by surjectivity of ϕ and Theorem 4.43. To estab-
lish the second claim, observe that X ∼ = Y implies Iso(X, Y ) = g0−1 Aut(X)
and apply Theorem 4.43. To verify the third claim, observe that for each
Y0 ∈ TΩ the array entry τ [Y0 ] contains a group element taking Y0 to an ob-
ject Y ∈ Ω with ϕ(Y ) ∈ TΠ . Thus, because gZ = gϕ(X) = ϕ(gX) and
gX ∈ TΩ , we have κG,Π (Z)Z = τ [gX]ϕ(gX) = ϕ(τ [gX]gX) ∈ TΠ .
Note that the look-up array τ [·] is defined for all X ∈ TΩ . Thus, the amount of
storage space required by the dynamic programming approach is proportional
to the number of orbits on Ω and Π.
The second approach to implement a projecting step is to assume the
existence of practical auxiliary algorithms for evaluating a canonical labeling
map κG,Π : Π → G and a set SZ generators for Aut(Z), Z ∈ Π. In this way
it is possible to obtain a parallelizable and more memory-efficient approach
analogous to generation by canonical augmentation. The idea is to associate
with every orbit in GZ ∈ G\Π a canonical orbit in the preimage ϕ−1 (GZ)
from which the orbit GZ should be generated by projection. In practice it
is convenient to define the association with respect to a preimage ϕ−1 (Z),
whereby the connection to generation by canonical augmentation becomes
more apparent (cf. [357]).
Theorem 4.50. Let ϕ : Ω → Π be a surjective homomorphism of group
actions and let G be the acting group for both actions. Let µ be a function
that associates to every Z ∈ Π a nonempty Aut(Z)-orbit µ(Z) ⊆ ϕ−1 (Z)
such that gµ(Z) = µ(gZ) holds for all g ∈ G. Then,
1. for all X, Y ∈ Ω it holds that X ∈ µ(ϕ(X)), Y ∈ µ(ϕ(Y )), and ϕ(X) ∼
=
ϕ(Y ) together imply X ∼=Y,
2. for every orbit GZ ∈ G\Π there exists an orbit GX ∈ G\Ω with ϕ(GX) =
GZ and X0 ∈ µ(ϕ(X0 )) for all X0 ∈ GX.
Proof. To establish the first claim, let g ∈ G satisfy gϕ(X) = ϕ(Y ). From X ∈
µ(ϕ(X)) we obtain gX ∈ gµ(ϕ(X)) = µ(gϕ(X)) = µ(ϕ(Y )). Because µ(ϕ(Y ))
is an Aut(ϕ(Y ))-orbit and Y ∈ µ(ϕ(Y )), there exists an a ∈ Aut(ϕ(Y )) with
agX = Y . Thus, X ∼ = Y . To establish the second claim, select an arbitrary
Z ∈ Π and let X ∈ µ(Z). Clearly, ϕ(X) = Z and hence ϕ(GX) = GZ. Select
an arbitrary X0 ∈ GX and let g ∈ G satisfy X0 = gX. From X ∈ µ(Z) =
µ(ϕ(X)) we obtain
TΠ = {ϕ(X) : X ∈ TΩ , X ∈ µ(ϕ(X))}
Proof. Because TΩ contains exactly one object from every orbit on Ω, the
first claim of Theorem 4.50 implies that TΠ contains at most one object from
every orbit on Π; conversely, the second claim implies that TΠ contains at
least one object from every orbit on Π.
Clique search plays a central role for many classification problems. Actually,
clique search can be used for any problem where one wants to construct ob-
jects that are sets of smaller subobjects (of any kind) that must fulfill certain
pairwise requirements. By mapping all possible subobjects into vertices of a
graph and inserting an edge between two vertices exactly when the require-
ments are fulfilled, the final objects correspond to cliques in this graph. For
a survey of application of clique algorithms to constructing and classifying
objects of this type, see [458].
Whereas most clique algorithms in the literature focus on finding a maxi-
mum clique – or a maximum-weight clique in a weighted graph – our interest
is in finding all cliques of a given size or weight (although, if they exist, these
are in most cases maximum or maximum-weight cliques). The two types of
problems for unweighted graphs are presented as Problems 5.1 and 5.2.
Problem 5.1. (Maximum Clique) Given a graph G, find (the size of) a
maximum clique in G.
Problem 5.2. (Cliques) Given a graph G and an integer k, find all cliques
of size k in G.
For certain hard instances, when no cliques of size k exist, a speed-up may
be achieved by first calculating values of d[i], the size of a maximum clique
the graph induced by the vertices in Ti = {1, 2, . . . , i}, but only for i ≤ n/2
[456, 459]. Then d[i] + c[i + 1] gives an upper bound on the size of a clique in
the graph.
Alternative approaches for finding cliques include algorithms that use ver-
tex coloring for pruning [529] and branch-and-bound algorithms; we will have
a brief look at an approach of the latter type.
148 5 Auxiliary Algorithms
over all solutions of (5.1). To find one or all cliques of size k, we instead add
to (5.1) the equation
n
xi = k.
i=1
where S is an independent set, may be added to the system (5.1). Such in-
equalities have no effect on the solutions of the system, but they do have an
impact on the pruning strategy that we now present.
In a backtrack search for cliques of size k – and analogously in the search
for maximum cliques – a relaxation of the integer constraint on the variables
may be used for bounding. The relaxed variables are real numbers 0 ≤ xi ≤ 1,
and
n linear programming methods can then be used to find the maximum of
i=1 xi under the given constraints and values of xi known from the partial
solution of the backtrack search. If the maximum is smaller than k, then
the search tree can be pruned. The solution of the relaxed problem can also
provide useful information for the choice of the next variable to branch on in
the backtrack algorithm.
If an instance has many more inequalities than there are variables, then
one should think about solving the linear programming relaxation via its dual
problem instead; see [81], which also contains several other ideas for solving
clique problems in this manner.
The outlined methods can be further generalized to weighted graphs with
integer weights on the vertices. The algorithm published in [453] – which
generalizes the one in [456] to weighted graphs – has been implemented as
a set of C routines for finding cliques in arbitrary weighted graphs, called
Cliquer [443].
For most of the problems encountered in this book, the performance of the
known algorithms depends on the type of instance, and the algorithm to use
should be carefully chosen on a case-by-case basis. For the problem to be
discussed in this section, however, there is an algorithm that lacks serious
competitors.
Definition 5.4. A set cover, or simply cover, of a finite set P is a set of non-
empty subsets of P whose union is P . A cover consisting of pairwise disjoint
subsets is an exact cover.
Research Problem 5.6. Determine under what conditions, and how, looka-
head can improve the performance of Algorithm 5.2.
Knuth [323] observed that an idea from [265] can speed up a direct im-
plementation of Algorithm 5.2 by a factor of about two with the following
designated data structure.
Let A be a 0-1 matrix of size n × m with one column for each element
of P , one row for each set in S, and a 1 indicating that an element occurs
in a subset. This means that the exact covers correspond to the solutions of
AT x = 1, where x is a 0-1 column vector.
The employed data structure consists of multiple circular doubly linked
lists. Each 1 in the matrix A corresponds to a list entry i with five fields:
150 5 Auxiliary Algorithms
L[i], R[i], U [i], D[i], and C[i]. The rows of the matrix are doubly linked as
circular lists via the L and R fields (“left” and “right”), and the columns are
doubly linked as circular lists via the U and D fields (“up” and “down”). Each
column list includes a special entry called the column header. The C field of
each list entry points to the column header of the column in which the entry
lies. A column header contains an additional field, S[c] (“size”), which is used
to keep track of the number of rows linked to the column list.
The uncovered columns are linked to a circular list via the L and R fields
of their column headers. The column header list also contains a special entry,
h, which is used to access the column header list.
Example 5.7. Let P = {1, 2, 3, 4, 5, 6} and S consist of
S1 = {3, 5, 6}, S2 = {1, 4}, S3 = {2, 3, 6},
S4 = {1, 4}, S5 = {2}, S6 = {4, 5}.
The data structure initialized with this instance is shown in Fig. 5.1. The
arrows represent the L, R, U, D links in the list entries depicted by boxes. The
column headers appear in the topmost row.
Algorithm 5.3, to be invoked with search(1), shows in detail the imple-
mentation of Algorithm 5.2 using the data structure with linked lists.
Consider the first two lines of the procedure cover in Algorithm 5.3. The
operations
L[R[c]] ← L[c], R[L[c]] ← R[c]
clearly remove the column header c from the list of uncovered columns. The
crucial observation for backtracking is that the operations
L[R[c]] ← c, R[L[c]] ← c
suffice to insert c back into the list. Thus, it suffices to keep track of the
elements deleted from a list to enable their insertion back into the list. This
5.2 Exact Cover Algorithms 151
h 1 2 3 4 5 6
2 2 2 3 2 2
S1
S2
S3
S4
S5
S6
In the set cover problem we do not require that the subsets be disjoint, so it
is more general than Exact Covers. Obviously, we could then just take all
given subsets (forming S) of a finite set P and check whether their union is
P , so we need another parameter: weights are associated with the subsets and
5.3 Set Cover Algorithms 153
we want to find set covers of given weight. The case when all weights are 1 is
recurrent.
Problem 5.8. (Set Covers) Given a set S of subsets of a finite set P and
an integer k, find all covers of P consisting of k sets from S.
Problem 5.9. (Weighted Set Covers) Given a set S of weighted subsets
of a finite set P and an integer k, find all covers of P consisting of sets from
S with total weight k.
A set cover with the property that by removing any subset it is no longer
a cover is said to be minimal . It is often reasonable to restrict the search to
minimal covers, since it is not difficult to construct all covers given all minimal
covers. The unweighted case, Set Covers, is considered in the rest of this
section.
An algorithm for Set Covers restricted to minimal covers can be ob-
tained by slightly modifying Algorithm 5.2 and is presented as Algorithm 5.4.
The elements in the union of the sets of a partial solution are said to be
covered and the elements in P that are not covered are said to be uncovered.
for all S ∈ S. Then any set cover of P using sets from S has size at least
w(x).
x∈P
Corollary 5.11. The size of a set cover of a finite set P using sets from S is
bounded from below by
1
.
max{|S| : x ∈ S ∈ S}
x∈P
There are several possible heuristics for choosing the next element to cover;
we list two possible criteria:
partial solution, and the value of mi gives the last level that is able to change
the value of si , that is, ai,mi = 0 and aij = 0 for j > mi .
Like with clique algorithms, the ordering of the input data affects the
speed of the algorithm. It is, for example, desirable that the values of mi be
small to get early pruning of the search. Therefore one may sort the rows of
A in order of increasing number of nonzero entries. Thereafter, the columns
may be sorted in reverse lexicographic order, with the entries of the first row
being the most significant.
If the matrix A contains identical columns – say columns number j1 ,
j2 ,. . . ,jk are identical
–k one should remove all of these but column number j1 ,
and replace uj1 by i=1 uji . With many identical columns, this may have a
significant impact on the size of the search tree. Actually, the preprocessing
in the beginning of [333, Algorithm 6] has the same goal (but the frame-
work is different). There are various ways of further improving Algorithm 5.5,
5.4 Diophantine Linear Systems of Equations 157
and that has 0s in the m first coordinates followed by values from the ranges
of the respective variables xi (and check that it is indeed a solution). The
vectors that can be obtained as an integer linear combination of a given set
of vectors form a lattice. Accordingly, we now want to find a vector with the
given properties in the lattice spanned by the columns of (5.2). One property
of such a solution vector that leads to the success of this approach is that the
Euclidean norm %
x21 + x22 + · · · + x2n
For example, with xi ∈ {0, 1}, the Euclidean norm is bounded
is rather small. √
from above by n.
The columns of (5.2) are linearly independent and thereby form a basis of
the lattice that they span. A lattice has many bases, and we are interested
in transforming a basis into another basis with vectors of smaller norm; this
procedure is called lattice basis reduction. The seminal lattice basis reduction
algorithm is the Lenstra–Lenstra–Lovász (LLL) algorithm [363]. Subsequently,
a large number of other algorithms have been presented; different methods can
also be combined. For an introduction to the theory of basis reduction, see
[342, Chap. 8].
Much of the work in this area has considered existence problems, where
one hopes to find a solution to the original problem among the vectors (or the
vectors negated) in the bases encountered in the reduction process. However,
Wassermann [598, 599] – inspired by results of Kaib and Ritter [289] – de-
veloped an exhaustive algorithm for solving Diophantine that starts from a
reduced basis, and applied this to classifying designs in [598]. It turns out that
for optimal performance other lattices than that of (5.2) are to be preferred.
The best choice depends on the type of problem, for example, whether it has
only 0-1 variables or not. One lattice proposed in [599] for general instances
with 0 ≤ xi ≤ ui is the lattice spanned by the columns of
⎡ ⎤
NA −N b
⎢ 2c1 0 · · · 0 −u ⎥
⎢ ⎥
⎢ 0 2c2 0 −u ⎥
⎢ ⎥
⎢ .. . . .. .. ⎥ ,
⎢ . . . . ⎥
⎢ ⎥
⎣ 0 0 · · · 2cn −u ⎦
0 0 ··· 0 u
Problem 5.15. (Orbit Partition Update) Given the orbit partition S\Ω
for some S ⊆ Sym(Σ), and a permutation g ∈ Sym(Σ), determine the orbit
partition S ∪ {g}\Ω.
it is obvious that this is practical only for groups of small order, because all
group elements are generated and stored in memory.
Sims [537, 538] defined the fundamental concepts of a base and strong
generating set that enable the efficient solution of many permutation group
problems.
Definition 5.16. Let G ≤ Sym(Σ). A sequence B = (b1 , b2 , . . . , bm ) of dis-
tinct elements of Σ is a base for G if NG (B) = {}.
A base defines a chain of point stabilizer subgroups
G = G1 ≥ G2 ≥ · · · ≥ Gm ≥ Gm+1 = {}, (5.3)
where Gi = NG ((b1 , . . . , bi−1 )), 1 ≤ i ≤ m + 1. A base is nonredundant if Gi+1
is a proper subgroup of Gi for all 1 ≤ i ≤ m.
Example 5.17. Recall the automorphism group of the cube Q3 from Exam-
ple 3.11. The sequence B = (1, 2, 3) is a base for G = Aut(Q3 ). The associated
stabilizer chain is
G1 = Aut(Q3 ),
G2 = {, (3 5)(4 6), (2 3)(6 7), (2 3 5)(4 7 6),
(2 5 3)(4 6 7), (2 5)(4 7)},
G3 = {, (3 5)(4 6)},
G4 = {}.
Example 5.18. A nonredundant base is not necessarily unique. For example,
B1 = (1, 3, 7), B2 = (4, 8), and B3 = (7) are nonredundant bases of
G = (1 2)(3 4 5 6)(7 8 9 10 11 12 13 14).
A strong generating set contains generators for every group Gi in the
stabilizer chain (5.3) in a conveniently accessible form.
Definition 5.19. Let G ≤ Sym(Σ) and let B = (b1 , b2 , . . . , bm ) be a base for
G. A set S ⊆ Sym(Σ) is a strong generating set (SGS) for G relative to B if
S ∩ Gi = Gi for all 1 ≤ i ≤ m. (5.4)
In other words, Gi is generated by those permutations in S that stabilize the
base points b1 , b2 , . . . , bi−1 .
Example 5.20. An SGS for Aut(Q3 ) relative to B = (1, 2, 3) is
S = {(1 2)(3 4)(5 6)(7 8), (2 3 5)(4 7 6), (3 5)(4 6)}.
Once an SGS is available it can be used in a number of ways. Associated
with every Gi is the fundamental orbit ∆i = Gi bi and – by the orbit-stabilizer
theorem (Theorem 3.20) – a corresponding left transversal Li for Gi+1 in Gi .
These can be determined from generators for Gi using Algorithm 5.6.
162 5 Auxiliary Algorithms
Example 5.21. For G = Aut(Q3 ) and B = (1, 2, 3) the fundamental orbits are
Because two cosets in Gi /Gi+1 are either equal or disjoint, it follows that
every g ∈ G can be written uniquely as a product
&m
|Gi | &
m &m
|G| = = |Li | = |∆i |.
i=1
|Gi+1 | i=1 i=1
h = s s−1 · · · s1 = u−1
r r−1 · · · r1 .
in mind is to let Ω be the set of all graphs with vertex set {1, 2, . . . , n}, and
let G = Sym({1, 2, . . . , n}) act on Ω by permuting the vertices as in (3.2).
Given an object X ∈ Ω as input, a refinement-based algorithm carries out
a backtrack search on the group G to find an object Y isomorphic to X, where
it is required that the same object Y is obtained for all inputs isomorphic to
X. As a side-effect of the search we obtain an isomorphism g ∈ Iso(X, Y )
and a set of generators for the automorphism group Aut(X) = Iso(X, X).
The structure of the search is easiest to describe using an associated search
tree T (X, G). The nodes in the tree are right cosets of the form Hg, where
H ≤ G and g ∈ G. The tree is defined inductively using the following two
basic operations.
The partitioning rule takes a coset Hg = {g} and partitions it into a set of
subcosets {Kh1 g, Kh2 g, . . . , Khu g}, where K is a proper subgroup of H and
{h1 , h2 , . . . , hu } is a right transversal for K in H. In essence, the partitioning
rule takes a subproblem and partitions it into a set of smaller subproblems in
the hope that they would be easier to solve.
The refinement transformation takes a coset Hg and refines it to a subcoset
Khg, where K ≤ H and h ∈ H. We say that Khg is the refinement of Hg.
{ } {(2 3)} {(1 2)} {(1 3 2)} {(1 2 3)} {(1 3)}
T (X, G) T (g0 X, G)
g0
Hg Hgg0−1
is to keep track of the minimum leaf object encountered so far while traversing
T (X, G). We obtain a canonical labeling map by setting κ(X) = g for any
leaf node {g} with Y = gX, where Y is the minimum leaf object.
The structure of a refinement-based isomorphism algorithm is now evident.
On input X ∈ Ω the algorithm traverses the search tree T (X, G) and returns
a canonical labeling κ(X) ∈ G that takes X to the leaf object indicated by the
leaf selection rule. A set of generators for the automorphism group Aut(X) is
computed during the tree traversal, and discovered automorphisms are used
to prune redundant parts of the tree – this will be discussed in more detail
later.
To implement an algorithm in practice, we require first a representation
for the cosets that occur in the search trees. If G is a permutation group, then
a direct representation for a coset Hg ⊆ G is obtained from a pair consisting
of a permutation in Hg and a set of permutations that generate H ≤ G.
Permutation group algorithms (Sect. 5.5) can then be used to compute with
cosets in this representation. The permutation representation is typically only
employed in special cases, however. In most cases the acting group G is a
symmetric group or a direct product thereof, whereby ordered partitions offer
a very efficient representation for a certain family of cosets of subgroups.
We proceed to develop the connection between ordered partitions and
cosets. At this point it may be useful to recall the terminology and notation
for ordered partitions introduced in Sects. 3.3.2 and 3.3.5. For brevity we
write Sn for the symmetric group Sym({1, 2, . . . , n}) and Πn for the set of
all ordered partitions of {1, 2, . . . , n}. Let g ∈ Sn act on an ordered partition
π = (V1 , V2 , . . . , Vm ) ∈ Πn by g ∗ π = (g(V1 ), g(V2 ), . . . , g(Vm )). Associate
every ordered partition π ∈ (V1 , V2 , . . . , Vm ) ∈ Πn the ordered partition − →
π =
(W1 , W2 , . . . , Wm ) defined for all i = 1, 2, . . . , m by t0 = 0, ti = ti−1 + |Vi |,
and Wi = {ti−1 + 1, ti−1 + 2, . . . , ti−1 + |Vi |}. In other words, − →
π has the same
sequence of cell sizes as π, and the elements within each cell and on successive
cells are consecutively numbered. For π ∈ Πn , let Q(π) = {g ∈ Sn : g∗π = − →
π }.
→
−
Example 5.31. For π = ({2, 3}, {1, 5}, {4}), we have π = ({1, 2}, {3, 4}, {5})
and
Q(π) = {(1 3 2)(4 5), (1 3)(4 5), (1 4 5 3 2), (1 4 5 3)}.
The following observations are straightforward to verify. First, for every
π ∈ Πn , the set Q(π) is a right coset of the stabilizer NSn (−→
π ) = {g ∈ Sn :
→
− →
− →
−
g ∗ π = π }; that is, Q(π) = NSn ( π )g, where g ∈ Q(π) is arbitrary. Second,
the set Q(π) uniquely determines π. Third, let g0 ∈ Sn act on the coset Q(π)
by g0 ∗ Q(π) = Q(π)g0−1 . Then g0 ∗ Q(π) = Q(g0 ∗ π), and thus C defines
an isomorphism of the group actions of Sn on Πn and on Q(Πn ). Fourth, for
π1 , π2 ∈ Πn we have that π1 is finer than π2 if and only if Q(π1 ) ⊆ Q(π2 ).
These observations together imply that the ordered partitions in Πn provide
an alternative representation for the cosets Q(Πn ). An algorithm implementa-
tion can thus in practice operate on ordered partitions, with the background
provided by the cosets Q(Πn ) in the group-theoretic framework.
5.6 Isomorphism Algorithms 169
Example 5.32. Figure 5.4 shows the search tree in Fig. 5.2 (rotated 90 degrees
counterclockwise) where each right coset is now represented using the corre-
sponding ordered partition. Note, however, that in general not every coset of a
subgroup of a symmetric group can be represented using an ordered partition.
Let us now briefly develop the structure of a partitioning rule and a re-
finement transformation in the setting of ordered partitions.
Given X ∈ Ω and a nondiscrete π = (V1 , V2 , . . . , Vm ) ∈ Πn as input,
the typical partitioning rule splits a cell Vi with |Vi | > 1 by individualizing
an element x ∈ Vi in all possible ways. More precisely, the partitioning rule
produces from π the set {π ∧ ({x}, {1, 2, . . . , n} \ {x}) : x ∈ Vi } of ordered
partitions. Looking at the corresponding right cosets, we have
#
Q(π) = Q(π ∧ ({x}, {1, 2, . . . , n} \ {x})),
x∈Vi
Example 5.33. Splitting the second cell of π = ({2, 3}, {1, 5}, {4}), we obtain
the ordered partitions
π1 = ({2, 3}, {1}, {5}, {4}), π2 = ({2, 3}, {5}, {1}, {4}).
170 5 Auxiliary Algorithms
Comparing
with Q(π) in Example 5.31, we see that Q(π) = Q(π1 ) ∪ Q(π2 ) holds. Fig-
ures 5.4 and 5.2 provide a further illustration.
There are two aspects of dividing a computation into parts for distribution
among several computers: methodology and implementation. For most classi-
fication algorithms in this work, both of these issues are easily dealt with.
172 5 Auxiliary Algorithms
starting point of the partial search, and the program writes to standard out-
put, then the whole search is simply carried out with
The macro character # takes the value of the incremental parameter, which
goes through all values from 1 to 500. The output of the first process is writ-
ten to the file 1.out and the executed program is search 1. The autoson
system comprises extensive possibilities for administrating the processes in-
volved, which may be affected by various situations such as computer shut-
down. Other software systems for batch control and parallel search that have
been used for traversing large search trees include Condor [130], PVM [42],
and ZRAM [77].
6
Classification of Designs
In this chapter we turn to the first main topic of this book, classification of
designs. The designs to be discussed are divided into three classes: balanced
incomplete block designs (BIBDs) – that is, 2-designs – are considered in Sect.
6.1, t-designs with t ≥ 3 in Sect. 6.2, and resolutions of designs in Sect. 6.3.
In the discussion of resolutions of designs, the main focus is on resolutions of
BIBDs. Extensive tables of classification results are provided at the end of each
section. Finally, in Sect. 6.4, classification of designs with certain additional
properties is briefly discussed.
The two main approaches for classifying BIBDs proceed point by point and
block by block; such algorithms are discussed in Sects. 6.1.1 and 6.1.3, respec-
tively. With a few exceptions, these two approaches suffice to reproduce the
known classification results for BIBDs. Some methods for getting at instances
that cannot be handled with the basic techniques are discussed in Sect. 6.1.5.
w(A) = (a11 , a12 , . . . , a1t , a21 , a22 , . . . , a2t , . . . , as1 , as2 , . . . , ast ).
This induces a lexicographic order ≺ on the set of all 0-1 matrices of size s × t
by A ≺ B if and only if w(A) ≺ w(B), where the latter order relation refers
to the lexicographic order on tuples (Sect. 3.3.1).
We say that two 0-1 matrices of size s × t are isomorphic if one can be
obtained from the other by permuting the rows and the columns. Note that if
we view the matrices as incidence structures, this is equivalent to saying that
the two incidence structures are isomorphic (Definition 2.22). This notion of
isomorphism partitions the set of all 0-1 matrices of size s×t into isomorphism
classes. We say that a matrix is canonical – that is, the canonical represen-
tative of its isomorphism class – if it is the lexicographic maximum of the
matrices in its isomorphism class.
The next theorem gives the following fundamental property required by or-
derly generation: a canonical matrix is obtained only by augmenting a canon-
ical matrix with a new row. (Here we assume that the augmenting row always
becomes the last row.) Thus, it suffices to consider only canonical matrices
while traversing the search tree.
Theorem 6.1. Let A be a canonical 0-1 matrix of size s × t. Then, the sub-
matrix A[{1,2,...,i},·] is canonical for any 1 ≤ i ≤ s.
Proof. Assume that A[{1,2,...,i},·] is not canonical. Then we can permute the
rows and columns of A[{1,2,...,i},·] to obtain a lexicographically greater matrix.
6.1 Balanced Incomplete Block Designs 177
Example 6.2. Figure 6.1 shows the first five levels of the search tree for
2-(7, 3, 2) designs. Only canonical matrices are displayed.
11111100000000
11111100000000
11000011110000
⎡ ⎤⎡ ⎤⎡ ⎤
11111100000000 11111100000000 11111100000000
⎣ 11000011110000⎦ ⎣ 11000011110000⎦ ⎣ 11000011110000⎦
11000000001111 10100010001110 00110011001100
⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤
11111100000000 11111100000000 11111100000000 11111100000000
⎢ 11000011110000⎥⎢ 11000011110000⎥⎢ 11000011110000⎥⎢ 11000011110000⎥
⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥
⎣ 11000000001111⎦⎣ 10100010001110⎦⎣ 10100010001110⎦⎣ 00110011001100⎦
00110011001100 01010001001101 00011001101100 00001100111100
Fig. 6.1. A search tree for 2-(7, 3, 2) designs (truncated to first five levels)
Proof. If (6.3) does not hold, then we can sort the columns of A into de-
creasing lexicographic order so that (6.3) holds. This column-sorted matrix is
lexicographically greater than A, which is impossible if A is canonical. The
reasoning for (6.4) is similar.
178 6 Classification of Designs
Example 6.4. Figure 6.2 shows the compatibility graph for the canonical ma-
trix ⎡ ⎤
11111100000000
⎢ 11000011110000 ⎥
N=⎢ ⎣ 10100010001110 ⎦
⎥
01010001001101
that occurs in the search tree for 2-(7, 3, 2) designs in Fig. 6.1.
00001110011001
00001110010101
00001110100101
00001101101010
00001110101001
00001101100110
00001111000011
00001101011010
00010100110110
00001101010110
00010100111010
00001100111100
00010110010011
00110000110011
00010110100011
00101001100011
00011000110110
00101001010011
00011000111010
00101000111001
00011010010011
00101000110101
00011010100011
00100101100011
00100100110101
00100101010011
00100100111001
this is surely not the only possibility to prune the search tree. Bounding func-
tions based on relaxations of integer linear programs could provide useful in
this respect; cf. [395].
that occurs in the search tree for 2-(7, 3, 2) designs in Fig. 6.1. The equations
and inequalities in (6.2) give the following Diophantine linear system:
and
yj0 = 1 for j0 = min{j : 1T N[·,j] < k}. (6.7)
Example 6.8. Property (6.6) gives no additional constraints to (6.5). Property
(6.7) gives the constraint y3 = 1.
To eliminate redundancy in the search space for Diophantine – especially
in the early stages of the search – it is useful to partition N into regions of
identical columns, and replace the variables associated with a region by a
single variable.
6.1 Balanced Incomplete Block Designs 181
Example 6.9. In Example 6.7, the partition into regions of identical columns
and the associated variables are as follows.
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11
1 1 1 1 11 0 0 00 00 0 0
1 1 0 0 00 1 1 11 00 0 0
1 0 1 0 00 1 0 00 11 1 0
0 1 0 1 00 0 1 00 11 0 1
Taking into account the constraint y3 = 1 from Example 6.8, we obtain the
reduced system
x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 = 6,
x1 + x2 + x3 + x4 + x5 = 2,
x1 + x2 + x6 + x7 + x8 = 2, (6.8)
x1 + x3 + x6 + x9 + x10 = 2,
x2 + x4 + x7 + x9 + x11 = 2
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11
0 0 1 1 0 0 0 2 0 1 1 (6.9)
0 0 1 0 1 0 1 1 0 1 1
0 0 1 0 1 0 0 2 1 0 1
Note that for a reduced solution x there is exactly one original solution y
that can produce a canonical matrix by augmenting N. Namely, the variable
values must form a nonincreasing sequence in each region of identical columns;
more precisely, N augmented by y violates (6.3) unless we have
Example 6.11. The first, second, and sixth solution in Example 6.10 satisfy
(6.11).
On the other hand, if we are looking for all solutions to (6.2) subject to
(6.6) – for example, to build the compatibility graph for N – then neither (6.7)
nor (6.11) can be used to restrict the solutions; cf. Example 6.4 and Fig. 6.2.
Example 6.14. The search tree on cosets for the right transversals in Example
6.13 is depicted in Fig. 6.3. Note that the tree is identical to the tree in Fig. 5.2.
G1
G2 G2 (1 2) 2 (1 3)
G3 G3 (2 3) 3 (1 2) G3 (2 3)(1 2) G3 (1 3) G3 (2 3)(1 3)
Fig. 6.3. Search tree for G = Sym({1, 2, 3}) and Example 6.13
Algorithm 6.1 records the discovered automorphisms into the set S and
uses these to prune the search tree. The relevant notion of an automorphism is
−→ − →
captured by the group Autr (A) = {g ∈ G : gA = A}. Equivalently, Autr (A)
is the group consisting of all row permutations (in G) that can be extended
to an automorphism of A by permuting the columns.
By the structure of the algorithm it is obvious that S ≤ Autr (A) at all
times. Associated with S is Θ, the partition of {1, 2, . . . , s} into S-orbits.
Whenever a new automorphism is discovered, the orbit partition Θ is updated
via the partition join operation ∨ discussed in Sect. 5.5. For ∈ {1, 2, . . . , s},
we write Θ() for the cell of Θ that contains .
Automorphisms are employed in two different ways in pruning the search
tree (cf. Sect. 5.6). The first observation is that we can prune the current
coset Gi g whenever a new automorphism is discovered. Here i is the smallest
value for which the invocation first(i) is complete when the automorphism
is discovered. In Algorithm 6.1 this pruning strategy is implemented in the
function coset, which returns 0 when an automorphism has been discovered,
and equality in line 10 takes care of the pruning. The following lemma shows
that this pruning strategy is correct, provided that all automorphisms have
186 6 Classification of Designs
To establish the inequality in the second claim of Theorem 6.17, observe that
some cells in Θ merge whenever S is updated, and there can be at most s − i
such merges.
Automorphism pruning analogous to line 26 could also be performed
within the function coset by changing the base of S with permutation
group techniques (see [528]), but this is worth the effort only for large au-
tomorphism groups. For isomorphism algorithms employing base change, see
the concluding references in Sect. 5.6.
Theorem 6.18. The matrix A satisfies g(Ax) = A(gx) for all g ∈ Sym(V )
and all integer vectors x with the components indexed by the k-subsets of V .
k
|Aut(Si )|
. (6.15)
i=1
|Aut(X , Si )|
Table 6.1. Automorphism group order for the 25-block seeds for STS(19)
Example 6.21. We will now discuss the type of seed is used in the classification
of projective planes of orders n = 8 [249] and n = 9 [346].
A triangle in a projective plane is a set of three points not on a common
line. A triangle induces a seed with the structure depicted in Fig. 6.6.
Each of the three pairs of distinct points in the triangle occurs on a unique
line; these lines constitute the first three columns in Fig. 6.6. Because the lines
of a projective plane have pairwise exactly one point in common, there are
3(n − 1) additional lines incident with exactly one point of the triangle; these
lines form the remaining columns in Fig. 6.6, which are partitioned into three
groups based on their incidence with the triangle.
Because every pair of distinct points must occur on exactly one line, and
every two lines must have exactly one point in common, it is not difficult to
check that the matrix T must be a (n − 1)2 × 3(n − 1) transposed incidence
matrix of a transversal design TD(3, n − 1). Up to isomorphism these are
equivalent to the main classes of Latin squares of side n − 1. By Table 8.2,
there are 147 Latin squares of side 7 and 283,657 Latin squares of side 8,
giving the number of such objects for n = 8 and n = 9, respectively.
Ay = λ1 − As. (6.16)
Example 6.22. The extension problems for STS(19) originating from the 25-
block seeds in Example 6.20 can be efficiently solved by formulating (6.16)
as an instance of Exact Covers – see Sects. 5.2 and 5.4 – and applying
Algorithm 5.2. See [304].
instance of Cliques, where any two candidate lines are connected by an edge
if and only if they have exactly one point in common; cf. [346, 350, 572].
Compared with Cliques, a more efficient approach is obtained by com-
pleting the points to full incidence (point occurs in n + 1 lines) one at a time
using backtrack search and Exact Covers as follows. Disregarding the points
already at full incidence, let x be a point incident to the maximum number of
lines. Apply Exact Covers to find all the candidate lines through x. Next,
apply Exact Covers to find all sets of candidate lines that – together with
the existing lines through x – cover all the other points once.
Provided that the number of nonisomorphic designs is not too large – such
as with projective planes of order 8 and 9 – and evaluating a certificate for
the generated designs is not too expensive, isomorph rejection via recorded
objects suffices. If this is not the case – such as in the case of STS(19) – more
advanced isomorph rejection techniques must be employed for the generated
designs.
The seed-based approach is well-suited for generation by canonical aug-
mentation, assuming that it is easy to identify from a given design X all the
subsystems in X that are isomorphic to seeds.
To apply generation by canonical augmentation, the seed-based construc-
tion of designs can be described by the following search tree. The tree consists
of three levels of nodes: the root node, the set systems isomorphic to seeds,
and the designs. The root node has as children all the set systems isomorphic
to seeds, and the children of such a set system S are all the designs that
extend S.
In addition to the search tree, we require a canonical parent function m
that associates with every design X a subsystem m(X ) occurring in X . It is
required that m(X ) is isomorphic to a seed, and, in conformance with (4.12),
that
Example 6.24. In the case of STS(19) and the seeds from Example 6.20, se-
lecting a set system Ŝ isomorphic to a seed amounts to selecting a block B̂m
from X̂ , and letting Ŝ consist of all blocks in X̂ intersecting B̂m .
194 6 Classification of Designs
Let us sketch a proof that the search tree and the canonical parent func-
tion satisfy the requirements of generation by canonical augmentation in
Sect. 4.2.3. By construction, every design X extends its canonical parent
m(X ), which is isomorphic to a seed and hence occurs in the search tree. Thus,
(4.16) holds. To verify (4.15) it suffices to consider only set systems S, S iso-
morphic to seeds. Suppose S ∼ = S and that X is a design that extends S. Let
g ∈ G such that gS = S . Then, gX extends S and g(X , S) = (gX , S ). This
Example 6.25. To implement the test m(X ) ∼ =Aut(X ) p(X ) for STS(19) and
the seeds in Example 6.20, it is useful to observe that it suffices to consider
the blocks Bm and Bp in X that define m(X ) and p(X ), respectively. An
equivalent test is then Bm ∼
=Aut(X ) Bp .
Because an STS(19) is strongly reconstructible from its line graph (Corol-
lary 3.94), the test Bm ∼
=Aut(X ) Bp is equivalent to testing whether the vertices
corresponding to Bm and Bp are in the same automorphism orbit of the line
graph of X . This approach is employed in [304].
Example 6.26. For STS(19) and the seeds in Example 6.20, a significant per-
formance improvement is obtainable through the following block invariant
[304]. Associate with every block B in X the number P (X , B) of Pasch con-
figurations in which B occurs in X .
Now, in selecting the block B̂m in Example 6.24, we always select B̂m so
that it has the maximum invariant value among the blocks in X̂ . Because P is
a block invariant, it follows that Bm has the maximum invariant value among
the blocks in X . Thus, we have Bp ∼ =Aut(X ) Bm only if Bp has the maximum
invariant value among the blocks in X , so we can reject X if Bp does not
have the maximum invariant value. Similarly, if Bp is the unique block with
the maximum invariant value, then we can accept X based on the invariant
values only.
A further performance gain is obtained from the fact that the ordered
partition of blocks defined by the invariant values can be used to expedite the
evaluation of a canonical labeling for the line graph in the case it is necessary
to compute Bm explicitly – see Lemma 3.143.
any two isomorphic designs X , Y accepted in the parent test must both extend
the same seed S = p(X ) = p(Y). Furthermore, there exists a g ∈ Aut(S) such
that gX = Y. Thus, in the second test it suffices to reject Aut(S)-isomorphs
only, and no further testing is required if Aut(S) is trivial.
A canonical labeling map κAut(S) for the action of Aut(S) on set systems
can be used to reject Aut(S)-isomorphs. Namely, for every design X that is
accepted in the parent test, it holds that all designs in the Aut(S)-orbit of
X are generated as extensions of S and accepted in the parent test. Thus,
rejection of Aut(S)-isomorphs is achieved by rejecting a generated design X
unless X = κAut(S) (X )X .
Example 6.27. For STS(19), most of the seeds in Example 6.20 have a small
automorphism group. For such seeds S, a canonical labeling map is easily
obtained by exhaustive search on Aut(S). For example, we can set κAut(S) (X )
equal to the first group element g ∈ Aut(S) encountered that takes X to
the lexicographically minimum set system in its Aut(S)-orbit. This is the
approach employed in [304] for seeds with a small automorphism group.
Example 6.28. In [304], a hash table is used to reject isomorphs among designs
accepted in the parent test for the 11 seeds whose automorphism group order
exceeds 200. For these seeds, the maximum number of certificates that has to
be stored in a hash table is 100,813.
6.1.6 Results
The standard reference for tables of classified BIBDs is [407], whose earlier
versions are [405] and [406]. The entries in those tables are ordered lexico-
graphically by r, k, and λ (in this order), which effectively gives parameter
sets for which classification is feasible an early position in the total order im-
posed. However, for the sake of readability, we have chosen a different order
in collecting the results in Tables 6.2 to 6.10. There is one table for each value
of k, and the rows are ordered lexicographically by λ and v.
The entries of the tables contain the five central parameters of a design,
the number of nonisomorphic designs (N), a reference to the result, and finally
its entry number in the table of [407]. For each pair of k and λ, we stop at
the smallest v for which there is no complete classification and indicate this
situation by omitting the N value. An exception to this rule is that such an
198 6 Classification of Designs
entry is completely omitted if there is an open case listed with the same k,
smaller λ, and smaller or equal v. As in [407], we stop at r = 41 at the latest.
For k > 11, the only known classification result – apart from nonexistence
results that follow from Theorems 2.47 and 2.54 – is that there are 208,310
2-(27, 13, 6) Hadamard designs [547].
The following conventions are adhered to throughout the book. We have
tried to trace the original reference for each result. If more than one reference
is given, this indicates either that the result has been obtained in independent
studies – then the form is [A], [B] – or that a result builds on several papers,
possibly including corrigenda, shown by [A,B]. However, if a result builds on a
corpus of papers by the same researcher or team, like for 2-(111, 11, 1) designs,
only the last paper in the series is referenced. If a reference in Tables 6.2 to
6.10 is [407], then the result is unpublished and the originator is listed within
parentheses; throughout this book, results that are not obtained by the cited
authors are presented in the same way. The reference [H] means that the result
has been obtained while preparing this book.
Obviously, it is not always clear whether a result should be interpreted
as a reinvention (when the author should have been able to find out that the
result is not novel). The importance of reproved results should, however, not be
underestimated as they strengthen the confidence in correctness of the original
results. The following list is an extraction of (not too old) references containing
among other things either such classification results or related surveys: [36,
80, 152, 204, 225, 226, 227, 229, 244, 278, 298, 404, 405, 406, 407, 480, 556].
Several of these studies also contain results on t-designs with t ≥ 3.
A formula for determining the number of 2-(6, 3, λ) designs (cf. Table 6.2)
has been obtained by Mathon [400, 404]. Classification results for affine planes
can be obtained from classified projective planes by Theorem 2.120 and the
observation in Example 3.80 (uniqueness of the projective planes of orders 2,
3, and 4 is easily proved by hand; no references are given for these cases). In
general, classification results for quasi-residual designs with λ = 1 or λ = 2
can be produced by Theorem 2.54. References to the literature are omitted
when the Bruck–Ryser–Chowla theorem (Theorem 2.47) can be applied, and
when Theorem 2.54 or 2.120 is applicable to settled cases.
Hadamard designs are indicated by HD; the reference(s) listed for these
occasionally address some of the other families in Theorem 2.127.
Some classification results related to simple BIBDs have been tabulated
in [227].
6.1 Balanced Incomplete Block Designs 199
v k λ b r N References No
7 3 1 7 3 1 HD 1
9 3 1 12 4 1 Theorem 2.120 2
13 3 1 26 6 2 [143], [76] 8
15 3 1 35 7 80 [129] 14
19 3 1 57 9 11,084,874,829 [304] 29
21 3 1 70 10 42
6 3 2 10 5 1 Theorem 2.54 4
7 3 2 14 6 4 [439] 9
9 3 2 24 8 36 [434, 403] 21
10 3 2 30 9 960 [115], [278] 30
12 3 2 44 11 242,995,846 [452] 55
13 3 2 52 12 65
7 3 3 21 9 10 [434] 31
9 3 3 36 12 22,521 [402] 66
11 3 3 55 15 116
6 3 4 20 10 4 [228] 43
7 3 4 28 12 35 [228] 67
9 3 4 48 16 16,585,031 [407] (Spence) 145
10 3 4 60 18 190
7 3 5 35 15 109 [278, 407] (Spence) 117
9 3 5 60 20 5,862,121,434 [463] 235
6 3 6 30 15 6 [228] 118
7 3 6 42 18 418 [278, 481] 191
8 3 6 56 21 3,077,244 [407] (Spence) 275
9 3 6 72 24 356
7 3 7 49 21 1,508 [481] 276
6 3 8 40 20 13 [278], [404, 400] 236
7 3 8 56 24 5,413 [481] 357
7 3 9 63 27 17,785 [481] 477
6 3 10 50 25 19 [404, 400] 409
7 3 10 70 30 54,613 [407] (Mathon & Pietsch) 595
7 3 11 77 33 155,118 [407] (Mathon & Pietsch) 735
6 3 12 60 30 34 [404, 400] 596
7 3 12 84 36 412,991 [407] (Mathon & Pietsch) 881
7 3 13 91 39 1,033,129 [407, Addendum] (Mathon & Pietsch) 1030
6 3 14 70 35 48 [404, 400] 816
6 3 16 80 40 76 [404, 400] 1078
200 6 Classification of Designs
v k λ b r N References No
13 4 1 13 4 1 3
16 4 1 20 5 1 Theorem 2.120 5
25 4 1 50 8 18 [549] 22
28 4 1 63 9 32
10 4 2 15 6 3 Theorem 2.54 10
13 4 2 26 8 2,461 [480] 23
16 4 2 40 10 44
8 4 3 14 7 4 [439] 15
9 4 3 18 8 11 [206], [557], [375], [66] 24
12 4 3 33 11 56
10 4 4 30 12 13,769,944 [154] 71
8 4 6 28 14 2,310 [480] 101
9 4 6 36 16 270,474,142 [454] 150
10 4 6 45 18 193
8 4 9 42 21 8,360,901 [153] 278
9 4 9 54 24 364
8 4 12 56 28 524
v k λ b r N References No
21 5 1 21 5 1 6
25 5 1 30 6 1 Theorem 2.120 11
41 5 1 82 10 45
11 5 2 11 5 1 [396], [574], HD 7
15 5 2 21 7 0 Theorem 2.54 16
21 5 2 42 10 46
10 5 4 18 9 21 [206], [375] 33
11 5 4 22 10 4,393 [407] (Breach) 47
15 5 4 42 14 102
13 5 5 39 15 124
11 5 6 33 15 125
10 5 8 36 18 195
6.1 Balanced Incomplete Block Designs 201
v k λ b r N References No
31 6 1 31 6 1 [386] 12
36 6 1 42 7 0 Theorem 2.54 17
46 6 1 69 9 0 [271] 34
51 6 1 85 10 48
16 6 2 16 6 3 [276] 13
21 6 2 28 8 0 Theorem 2.54 25
31 6 2 62 12 74
16 6 3 24 9 18,920 [407] (Spence) 35
21 6 3 42 12 75
16 6 4 32 12 76
12 6 5 22 11 11,603 [407] (Pietsch) 58
13 6 5 26 12 19,072,802 [303] 77
15 6 5 35 14 104
12 6 10 44 22 319
v k λ b r N References No
43 7 1 43 7 0 Theorem 2.47 18
49 7 1 56 8 1 Theorem 2.120 26
85 7 1 170 14 105
22 7 2 22 7 0 Theorem 2.47 19
28 7 2 36 9 8 Theorem 2.54 36
43 7 2 86 14 106
15 7 3 15 7 5 [574], HD 20
21 7 3 30 10 3,809 [545] 49
29 7 3 58 14 107
22 7 4 44 14 108
14 7 6 26 13 15,111,019 [303] 89
15 7 6 30 14 109
202 6 Classification of Designs
v k λ b r N References No
57 8 1 57 8 1 [479, 248] 27
64 8 1 72 9 1 Theorem 2.120 37
113 8 1 226 16 155
29 8 2 29 8 0 Theorem 2.47 28
36 8 2 45 10 0 Theorem 2.54 50
57 8 2 114 16 156
22 8 4 33 12 78
16 8 7 30 15 130
v k λ b r N References No
73 9 1 73 9 1 [249] 38
81 9 1 90 10 7 Theorem 2.120 51
145 9 1 290 18 203
37 9 2 37 9 4 [515] 39
45 9 2 55 11 59
25 9 3 25 9 78 [151] 40
33 9 3 44 12 79
19 9 4 19 9 6 [242], [45], HD 41
27 9 4 39 13 90
21 9 6 35 15 131
18 9 8 34 17 179
v k λ b r N References No
91 10 1 91 10 4 [346] 52
100 10 1 110 11 0 Theorem 2.120 60
136 10 1 204 15 132
46 10 2 46 10 0 Theorem 2.47 53
55 10 2 66 12 0 Theorem 2.54 80
91 10 2 182 20 254
31 10 3 31 10 151 [545] 54
40 10 3 52 13 91
28 10 5 42 15 134
25 10 6 40 16 160
20 10 9 38 19 224
6.2 t-Designs 203
v k λ b r N References No
111 11 1 111 11 0 [351] 61
121 11 1 132 12 81
56 11 2 56 11 62
66 11 2 78 13 92
23 11 5 11 5 1,106 [277, 316], HD 63
33 11 5 48 16 161
22 11 10 42 21 293
6.2 t-Designs
Pursuing an analogy with the BIBD case, t-(v, k, λ) designs with t ≥ 3 can
be constructed point by point using the same basic setting as in the BIBD
case. That is, in incidence matrix representation the designs are constructed
one row at a time.
For t ≥ 3, the essential difference compared with the BIBD case lies in the
problem of finding rows that augment a given partial incidence matrix. Nev-
ertheless, the row generation problem remains an instance of Diophantine,
which we proceed to derive.
By Theorem 2.38, every t-(v, k, λ) design satisfies the property that every
-subset of points, = 0, 1, . . . , t, is incident to exactly b blocks, where
v− k−
b = λ .
t− t−
b &
−1
niu ,j yj = b , (6.17)
j=1 u=1
$−1
where it is assumed that u=1 niu ,j = 1 for = 1. In addition to these equa-
tions, the row generation problem has the constraint forcing yj = 0 whenever
v
i=1 nij = k. We assume that variables forced to 0 are removed from the
equation system.
The system (6.17) is linear in the variables yj , so we have an instance of
Diophantine. Furthermore, for t = 2 the system reduces to the system with
Ny = λ1 and 1T y = r1 encountered in the BIBD case.
Example 6.31. For the parameters 3-(8, 4, 1), a partial 3 × 14 incidence matrix
is ⎡ ⎤
11111110000000
N = ⎣ 11100001111000 ⎦ .
10011001100110
The resulting system of equations consists of seven equations in three groups
based on the value of .
For = 3 we obtain the equations
y1 + y2 + y3 = 1,
y1 + y4 + y5 = 1,
y1 + y8 + y9 = 1.
y1 + y2 + y3 + y4 + y5 + y6 + y7 = 3,
y1 + y2 + y3 + y8 + y9 + y10 + y11 = 3,
y1 + y4 + y5 + y8 + y9 + y12 + y13 = 3.
y1 + y2 + · · · + y14 = 7.
Observe that the equations with < t are useful in restricting the number
of partial incidence matrices that need to be considered, but redundant in
the sense that all v × b matrices obtained are incidence matrices of t-(v, k, λ)
designs even if only equations with = t are employed. In general, the more
equations we have, the more constrained the search becomes, but at the cost
of keeping track of the equations during the backtrack search.
A basic technique from Sect. 6.1.1 that also applies to the case t ≥ 3 is
that variables associated with identical columns of N can be merged into a
single variable, thus reducing the number of variables in the system. Also the
order-based constraints (6.6), (6.7), and (6.11) can be used in row genera-
tion, provided that orderly generation based on lexicographic order is used
for isomorph rejection.
Possibilities for isomorph rejection include orderly generation similar to
the BIBD approach in Sect. 6.1.1 (cf. [153, 154]), or generation by canonical
augmentation as employed in [417].
We would like to emphasize, however, that the general-purpose techniques
outlined here are not in general sufficient to yield practical classification algo-
rithms for t-designs with larger parameters. Typically a detailed combinatorial
study of the target designs is required to restrict the number of partial inci-
dence matrices that need to be traversed.
The nonexistence result for 4-(12, 6, 6) designs [417] is perhaps the most
advanced application of a point-by-point classification approach for t-designs
to date. The nonexistence is established by three independent techniques, two
of which rely on point-by-point classification. All of the techniques depend on
a detailed combinatorial study [338] of the parameters 4-(12, 6, 6) and related
simple 5-(12, 6, 3) designs. The first technique establishes nonexistence by di-
rect point-by-point construction for the parameters 4-(12, 6, 6). The second
technique relies on a point-by-point classification of the simple 5-(12, 6, 3) de-
signs. In both cases the properties derived in [338] are employed extensively
to prune the search. (For an illustration of the magnitude of an unrestricted
search, observe that for the parameters 4-(12, 6, 6) and 5-(12, 6, 3), the number
of blocks is 198 and 396, respectively.)
Studies of t-designs where a point-by-point approach is employed include
[153, 154, 278, 417]. With the exception of [417], point-by-point classification
is applied only in the case t ≤ 3 in these studies.
111100000000 111111110000000000
100011100000 100001101111100000
100000011100 011100001011011000
010010010010 110010000110010110
010001001001 001001010101010101
001010000101 000111001000110011
001000101010 010000111100001011
000101000110 001010100010101101
000100110001 100100010001101110
111111111111 000000000000000000
Fig. 6.7. A 3-(10, 4, 1) design with one 2-(9, 3, 1) derived design individualized
for derived STS(v − 1) can be used to obtain a point invariant for SQS(v).
For v = 14, 16 the multiset consisting of the number of occurrences of each
point in Pasch configurations is an invariant that distinguishes between all
isomorphism classes of STS(v − 1).
The isomorphism classes of the derived designs are used as a point invariant
in performing the test m(X ) ∼ =Aut(X ) p(X ) and in expediting the evaluation
of a canonical labeling of X . Complete isomorph rejection among generated
designs X satisfying m(X ) ∼=Aut(X ) p(X ) is achieved by accepting X only if
it is the lexicographic minimum of its Aut(p(X ))-orbit. In this connection it
is advantageous to select m(X ) so that it has the minimum automorphism
group order among all derived STS(v − 1) occurring in X .
Example 6.35. For t ≥ 3, one may carry out a classification recursively via a
sequence of derived designs and extensions; the following sequence is utilized
in [417]:
6.2.3 Results
A list of classification results for t-designs with t ≥ 3 have been collected into
Table 6.11. Hadamard 3-designs are indicated by HD; the reference(s) listed
for these occasionally address some of the other families in Theorem 2.127.
We do not include parameters for which nonexistence follows from Corollary
2.39. In addition to some of the references given in Sect. 6.1.6, the following
works contain (tables of) classification results for t-designs: [169, 170].
Denny and Mathon [154] classified 3-(8, 4, λ) designs up to λ = 15. Some
parameter sets of simple 3-designs have been considered in, for example, [417].
t v k λ b r N References
3 8 4 1 14 7 1 [28], HD
3 8 4 2 28 14 4 [433], [224]
3 8 4 3 42 21 10 [433], [224]
3 8 4 4 56 28 31 [278]
3 8 4 5 70 35 82 [153]
3 8 4 6 84 42 240 [153]
3 8 4 7 98 49 650 [153]
3 8 4 8 112 56 1,803 [153]
3 8 4 9 126 63 4,763 [153]
3 10 4 1 30 12 1 [28]
3 10 4 2 60 24 132 [153]
3 10 5 3 36 18 7 [206], [66]
3 11 5 2 33 15 0 [153]
3 11 5 4 66 30 1,749 [154]
3 12 6 2 22 11 1 [574], HD
3 14 4 1 91 26 4 [423]
3 16 4 1 140 35 1,054,163 [306]
3 16 8 3 30 15 5 [574], HD
3 17 5 1 68 20 1 [612]
3 20 10 4 38 19 3 [242], HD
3 22 6 1 77 21 1 [612]
3 24 12 5 46 23 130 [277, 316], HD
3 26 6 1 130 30 1 [106]
3 28 14 6 54 27 7,570 [317, 318], HD
4 11 5 1 66 30 1 [28]
4 11 5 2 132 60 12 [153]
4 12 6 4 132 66 11 [154]
4 12 6 6 198 99 0 [417]
4 15 5 1 273 91 0 [423]
4 18 6 1 204 68 0 [612]
4 23 7 1 253 77 1 [612]
5 12 6 1 132 66 1 [28]
5 24 8 1 759 253 1 [612]
Analogously to the methods for classifying designs, there are essentially two
approaches for classifying resolutions of designs directly. Either one proceeds
point by point – that is, codeword by codeword in the framework of OE
codes – or parallel class by parallel class – that is, coordinate by coordinate in
the framework of codes. Approaches presented elsewhere in this book are then
applicable: the codeword-by-codeword approach discussed in Sect. 7.1.2, and
the coordinate-by-coordinate approach discussed in the context of covering
codes in Sect. 7.2. If t ≥ 3, then even further restrictions can be imposed on
the OE codes.
Combinatorial properties of the resolutions can be used to restrict the
search space. Morales and Velarde [431, 432] use the intersection properties of
blocks in different parallel classes to restrict the search. More precisely, let Q =
{B1 , B2 , . . . , Bq } and Q = {B1 , B2 , . . . , Bq } be two different parallel classes
in a resolution of a 2-(qk, k, λ) design. The (Q, Q ) parallel class intersection
matrix is the q × q matrix A(Q, Q ) with entries defined by aij = |Bi ∩ Bj |
for all 1 ≤ i, j ≤ q.
The equations (6.18) and (6.19) have two solutions in nonnegative integers:
n50 = 0, n41 = 5, n32 = 30; and n50 = 1, n41 = 2, n32 = 32. This observation
can then be employed to restrict the search space in a parallel class by parallel
class backtrack search.
6.3 Resolutions of Designs 211
6.3.3 Results
We here tabulate results only for resolutions of BIBDs; such results are pre-
sented in Tables 6.12 to 6.15. The parameters for which RBIBDs exist motivate
an ordering different from that in the tables for BIBDs, and we now present
one table for each value of
v b
q= = .
k r
Within a table, the rows are ordered lexicographically by k and λ.
The entries of the tables contain the five parameters of the underlying
design, the number of nonisomorphic resolvable designs (Nd), the number of
nonisomorphic resolutions (N), a reference to the result, and its entry number
in the table of [407]. For some parameters, only the number of resolutions is
known and not the number of resolvable designs.
As for BIBDs, the first open case in a series of parameters is indicated;
here the N/Nd values are omitted. In any case, following [407], we stop at
r = 41. Some results for r > 41 can be found in [298]. The following references
contain surveys and additional results related to the classification of RBIBDs:
[36, 244, 404, 405, 406, 407].
Resolvable designs that do not exist because of Bose’s condition (Theorem
2.63)
b≥v+r−1
are indicated by giving a reference to that theorem.
The following two theorems for the case v = 2k can be obtained with
combinatorial arguments; the latter is from [404].
212 6 Classification of Designs
For v = 2k, one may utilize Theorem 2.59 and check whether the 3-(v, k, λ)
designs from Table 6.11 are resolvable or not; such entries are indicated with a
reference to Theorem 2.59. For example, it turns out that five out of the seven
3-(10, 5, 3) designs are resolvable. For v = 8, k = 4 the following theorem is
applicable.
Proof. Partition the set of points into two sets, S and T , of four points each.
For a given 3-(8, 4, λ) design, we denote by ai the number of blocks that
intersect S in i points. Since |S| = |T |, the sums of all intersection numbers
with respect to S and T must coincide,
which simplifies to
2a3 + 4a4 = 4a0 + 2a1 . (6.20)
On the other hand, if we count how many triples within S and T are contained
in the blocks, we get
a3 + 4a4 = 4a0 + a1 . (6.21)
Combining (6.20) and (6.21) yields a1 = a3 and a0 = a4 , where the latter
equality implies resolvability.
Note that Nd equals N in Table 6.12 by the comment at the end of Sect.
2.2.6. Also here we indicate designs mentioned in Theorem 2.127 by HD, and
recognize results for related families as well. We know from Theorem 2.62
that affine planes are resolvable and have a unique resolution, so we get the
count directly from the corresponding entry in Tables 6.2 through 6.10; in
these cases we refer to the aforementioned theorem.
6.3 Resolutions of Designs 213
v k λ b r Nd N References No
6 3 2 10 5 0 0 Theorem 6.39 4
6 3 4 20 10 1 1 Theorem 6.39 43
6 3 6 30 15 0 0 Theorem 6.39 118
6 3 8 40 20 1 1 Theorem 6.39 236
6 3 10 50 25 0 0 Theorem 6.39 409
6 3 12 60 30 1 1 Theorem 6.39 596
6 3 14 70 35 0 0 Theorem 6.39 816
6 3 16 80 40 1 1 Theorem 6.39 1078
8 4 3 14 7 1 1 Theorem 2.59, HD 15
8 4 6 28 14 4 4 Theorem 2.59 101
8 4 9 42 21 10 10 Theorem 2.59 278
8 4 12 56 28 31 31 Theorem 2.59 524
8 4 15 70 35 82 82 Theorem 2.59 819
10 5 4 18 9 0 0 Theorem 6.40 33
10 5 8 36 18 5 5 Theorem 2.59 195
10 5 12 54 27 0 0 Theorem 6.40 480
10 5 16 72 36 27,121,734 27,121,734 [432] 891
12 6 5 22 11 1 1 [574], HD 58
12 6 10 44 22 545 545 [H] 319
12 6 15 66 33 743
14 7 6 26 13 0 0 Theorem 6.40 89
14 7 12 52 26 1,363,486 1,363,486 [301] 451
14 7 18 78 39 0 0 Theorem 6.40 1038
16 8 7 30 15 5 5 [574], HD 130
16 8 14 60 30 618
18 9 8 34 17 0 0 Theorem 6.40 179
18 9 16 68 34 791
20 10 9 38 19 3 3 [242], HD 224
20 10 18 76 38 1007
22 11 10 42 21 0 0 Theorem 6.40 293
24 12 11 46 23 130 130 [277, 316], HD 346
26 13 12 50 25 0 0 Theorem 6.40 424
28 14 13 54 27 7,570 7,570 [317, 318], HD 499
30 15 14 58 29 0 0 Theorem 6.40 579
32 16 15 62 31 HD 668
214 6 Classification of Designs
v k λ b r Nd N References No
9 3 1 12 4 1 1 Theorem 2.62 2
9 3 2 24 8 9 9 [403], [434] 21
9 3 3 36 12 395 426 [402, 463] 66
9 3 4 48 16 119,985 149,041 [463] 145
9 3 5 60 20 203,047,732 [463] 235
9 3 6 72 24 356
12 4 3 33 11 5 5 [431] 56
12 4 6 66 22 316
15 5 2 21 7 0 0 No BIBD exists 16
15 5 4 42 14 0 0 [302] 102
15 5 6 63 21 281
18 6 5 51 17 176
21 7 3 30 10 0 0 Theorem 2.63 49
21 7 6 60 20 250
24 8 7 69 23 343
27 9 4 39 13 68 68 [353] 90
27 9 8 78 26 453
30 10 9 87 29 576
33 11 5 48 16 0 0 Theorem 2.63 161
33 11 10 96 32 704
v k λ b r Nd N References No
12 3 2 44 11 62,929 74,700 [452] 55
12 3 4 88 22 314
16 4 1 20 5 1 1 Theorem 2.62 5
16 4 2 40 10 325,062 339,592 [303] 44
16 4 3 60 15 119
20 5 4 76 19 221
24 6 5 92 23 341
28 7 2 36 9 0 0 Theorem 2.63 36
28 7 4 72 18 201
32 8 7 124 31 664
6.4 Designs with Additional Properties 215
v k λ b r Nd N References No
15 3 1 35 7 4 7 [435], [128] 14
15 3 2 70 14 99
20 4 3 95 19 220
25 5 1 30 6 1 1 Theorem 2.62 11
25 5 2 60 12 72
30 6 5 145 29 573
v k λ b r Nd N References No
36 6 1 42 7 0 0 No BIBD exists 17
49 7 1 56 8 1 1 Theorem 2.62 26
64 8 1 72 9 1 1 Theorem 2.62 37
81 9 1 90 10 7 7 Theorem 2.62 51
100 10 1 110 11 0 0 No BIBD exists 60
121 11 1 132 12 81
Often one is interested in designs that, for example, either lack or possess a
particular configuration or subdesign. Other additional properties of interest
include resolvability (Sect. 6.3) and prescribed automorphisms (Chap. 9).
In many cases it is not computationally feasible to generate all noniso-
morphic designs with given parameters – due to their large number – and
filter out those designs that do not have the desired property. Consequently,
there is a demand for tailored classification algorithms for designs that have
a specified property.
Informally, we can speak of local and global properties of a design. A local
property is such that its presence can be ascertained by looking only at a
(small) subset of points and blocks. The property of having a subdesign is a
good example of a local property. In contrast, a global property cannot be de-
termined without looking at the design as a whole. For example, resolvability
and the absence of a subdesign are global properties.
A classification algorithm tailored for a local property typically proceeds
by first determining up to isomorphism all the substructures that cause the
216 6 Classification of Designs
111100000000 111110000000000000000000000000000000000000000
100011100000 000001111100000000000000000000000000000000000
100000011100 000000000011111000000000000000000000000000000
010010010010 000000000000000111110000000000000000000000000
010001001001 000000000000000000001111100000000000000000000
001010000101 000000000000000000000000011111000000000000000
001000101010 000000000000000000000000000000111110000000000
000101000110 000000000000000000000000000000000001111100000
000100110001 000000000000000000000000000000000000000011111
000000000000 100001000010000100001000010000100001000010000
000000000000 100000100001000010000100001000010000100001000
000000000000 010001000001000001000010000100001000010000100
000000000000 010000100010000000100001000010000100001000010
000000000000 001000010000100100000100000010000010000100100
000000000000 001000001000010010001000000001000100010000001
000000000000 000100000100100001000000110000010000001000001
000000000000 000100001000001000010010001000100000000100010
000000000000 000010000100010000010001000100000011000001000
000000000000 000010010000001000100000100001001000100010000
There are essentially two ways the previous structural observation can be
exploited to classify the STS(19) with an STS(9) subsystem. Namely, either
we can use the 396 nonisomorphic 1-factorizations of K10 (Sect. 8.1.1) as
seeds, or we can use the STS(9) as a seed. Out of these, the former approach
is more practical and is employed in [563]. Indeed, in this way each seed has
exactly 9!/432 = 840 extensions, which correspond to the number of distinct
STS(9) on a fixed point set. If the latter approach is used, then additional
isomorph rejection is required – for example, in the form of a larger seed.
Clearly, using only an STS(7) as a seed leaves too much redundancy in the
search space, so a larger seed is required. It turns out that we can use the seeds
from Example 6.20, now restricted to seeds that contain an STS(7). Namely,
a seed in Example 6.20 consists of all the blocks in an STS(19) that have
nonempty intersection with a given block. Because the blocks of an STS(7)
intersect pairwise, it follows that every STS(19) that contains an STS(7) also
contains a set system isomorphic to a seed that contains an STS(7). Out of
the 14,648 seeds in Example 6.20, only 157 contain an STS(7). The approach
described in Sect. 6.1.4 can be used to reject isomorphs among the generated
designs, provided that we modify the canonical parent function m so that it
always produces a set system isomorphic to a seed that contains an STS(7).
It is not hard to come up with global properties that hardly constrain the
search at all.
Example 6.46. Among the STS(19), 10,997,902,498 of the 11,084,874,829 non-
isomorphic designs are subsystem-free, that is, contain neither an STS(7) nor
an STS(9) [307].
On the other hand, certain properties are very restrictive.
Example 6.47. The cycle structure of an STS(v) is the set of all cycle graphs
(Example 3.115) defined by pairs of distinct points. An STS(v) is perfect if
the cycle structure consists of cycles of length v − 3 only.
A perfect STS(v) is known only for [221]
v = 7, 9, 25, 33, 79, 139, 367, 811, 1531, 25771, 50923, 61339, 69991.
If M = Aq (n, d), then the codes are optimal and correspond to the maximum
cliques in the graph G.
A straightforward approach for classifying error-correcting codes would be
to find all cliques of size M in the aforementioned graph G and then carry out
isomorph rejection among the codes found. By the orbit-stabilizer theorem
(Theorem 3.20), the number of codes equivalent to a given code C is
220 7 Classification of Codes
|Aut(Zqn , dH )| n!(q!)n
= ,
|Aut(C)| |Aut(C)|
which shows that this approach is not feasible (one often encounters codes with
|Aut(C)| = 1). It is therefore obvious that one should utilize the large auto-
morphism group of the space to carry out isomorph rejection among partial
codes. In the sequel, we discuss the classification problem in coding-theoretic
terms. Whenever clique search has to be carried out, it is understood that
this is done in the graph constructed in the aforementioned way. If a set of
codewords has been fixed, we must also take into account that the new code-
words are at distance at least d from those words. A graph obtained in this
manner is called a compatibility graph.
One important implementational issue should still be mentioned. Namely,
the ordering of vertices is crucial when Algorithm 5.1 from Sect. 5.1 is used
to search for cliques. Experience shows that good performance is obtained
when the vertices are ordered so that the corresponding codewords are in –
increasing or decreasing – lexicographic order.
Until the late 1990s, only sporadic results had been published on classifi-
cation of unrestricted error-correcting codes. Earlier results had mainly con-
cerned constant weight error-correcting codes (packing designs), within both
the coding theory and the design theory community. The idea of constructing
codes via certain subcodes pertains to much of this work, and that approach
will be the first one considered here. There are two other basic approaches for
classifying error-correcting codes: codeword by codeword and coordinate by
coordinate. The former of these two basic methods is discussed in this section,
whereas the latter is presented for covering codes in Sect. 7.2 (mentioning the
minor modifications needed for the error-correcting case). The current section
ends with the special case of constant weight codes and a survey of published
classification results.
The choice between a classification via subcodes and the codeword-by-
codeword approach – very little is yet known about the coordinate-by-
coordinate approach – should be based on the parameters of the code; the
former method performs better for short length n, large cardinality M , and
small minimum distance d, whereas the latter is better for large n and d
and small M . If in doubt, preliminary experiments should be carried out to
indicate the most efficient approach for the desired code parameters.
Consider an (n, M, d)2 binary code C. This code can be shortened in a given
coordinate by removing the coordinate and taking the codewords with a given
value i in the removed coordinate. We denote such shortened codes by Ci ,
i = 0, 1; the parameters of Ci are (n − 1, Mi , d)2 with M0 + M1 = M . Hence
max{M0 , M1 } ≥ M/2.
7.1 Error-Correcting Codes 221
Observe that both 0C0 ∪ 1C1 (we use the notation iC = {(i, x) : x ∈ C})
and 1C0 ∪ 0C1 are equivalent to C; permutations of the coordinate values give
equivalent codes. Therefore, we may without loss of generality assume that
M0 ≥ M/2.
Reversing this procedure by lengthening codes to classify the (n, M, d)2
codes, we first classify the (n − 1, M , d)2 codes for
obviously the size of an optimal code with the given parameters gives an upper
bound on M . Thereafter, for each such (n − 1, M , d)2 code C0 , we construct
the compatibility graph G = (V, E) in which we search for the possible values
of C1 . Since all words in C1 must be at distance greater than or equal to d − 1
from the words in C0 , all words in Zqn−1 that fulfill this property make up the
vertex set V . Edges are inserted as in the basic approach, that is, between
vertices whose corresponding words are at distance greater than or equal to d
from each other. In the graph G, we search for all cliques of size M − M and
finally carry out isomorph rejection.
Isomorph rejection can be carried out via recorded objects among the codes
constructed from all possible (n − 1, M , d)2 codes with M fulfilling (7.1).
Certificates of codes are most conveniently obtained via a transformation to
graphs, see Sect. 3.3.2. This approach is appropriate whenever the number of
subcodes is limited, but to solve the hardest instances with an abundance of
subcodes, generation by canonical augmentation is to be preferred. We will
return to this issue later.
The described approach is recursive: in order to classify the (n − 1, M , d)2
codes, one should carry out the aforementioned procedure starting from all
(n−2, M , d)2 codes with M /2 ≤ M ≤ A2 (n−2, d), and so on. The recursive
break-up can be stopped at a length where optimal codes have few words and
the necessary codes are obtainable in some other manner (such as the method
in Sect. 7.1.2 or perhaps even by hand calculation). This process is illustrated
in the following example.
(4,2,3)
(5,3,3) (5,4,3)
(8,19,3) (8,20,3)
(10,73,3)
Fig. 7.1. Subcode graph
Example 7.2. In traversing the subcode graph in Fig. 7.1, one step is that
of classifying the (5, 4, 3)2 codes from the (4, 2, 3)2 codes {0000, 0111} and
{0000, 1111}. For lengthening these codes, we get the compatibility graphs in
Fig. 7.2. All words in the graph have length 5 and a 1 in the first coordinate
to indicate that we search for codewords of C1 . There are obviously three
cliques of size 2 in each graph. When the six codes obtained are checked for
equivalence – do this by hand calculation! – it turns out that they are all
pairwise equivalent, so the (5, 4, 3)2 code is unique.
In other words, for every coordinate j = 1, 2, . . . , n, exactly one xj,v has value
1, and the other variables have value 0, corresponding to the situation yj = v.
To achieve the required minimum distance, we have the inequality
n
xj,v ≥ d (7.3)
j=1 v=cj
x1,0 + x1,1 = 1,
x2,0 + x2,1 = 1,
x3,0 + x3,1 = 1,
x4,0 + x4,1 = 1,
x1,1 + x2,1 + x3,1 + x4,1 ≥ 2,
x1,1 + x2,1 + x3,0 + x4,0 ≥ 2.
x1,0 + x1,1 = 1,
x2,0 + x2,1 = 1,
x3,0 + x3,1 = 1,
(7.4)
x4,0 + x4,1 = 1,
x1,1 + x2,1 + x3,1 + x4,1 − z1 = 2,
x1,1 + x2,1 + x3,0 + x4,0 − z2 = 2.
x12,0 + x12,1 = 2,
x34,0 + x34,1 = 2,
x12,1 + x34,1 − z1 = 2,
x12,1 + x34,0 − z2 = 2,
where all variables assume values in {0, 1, 2}. This system has four solutions,
which we list together with the sets of corresponding words:
Example 7.7. To classify the (5, 3, 3)2 codes, we start from the all-zero word
of length 5. There are three canonical matrices of (5, 2, 3)2 codes:
When one tries to augment these matrices, only one matrix is canonical, so
the following (5, 3, 3)2 code is unique:
00000
00111
11011
where each value occurs M/q times. Forcing this property during row by row
construction has the advantage of restricting the (n, m, d)q codes for m < M
that need to considered beyond plain isomorph rejection, which is analogous
to the requirement yj0 = 1 discussed for BIBDs in Sect. 6.1.1.
Little experimental work has been done in this area; in particular, it would
be interesting to see how generation by canonical augmentation compares with
228 7 Classification of Codes
the outlined orderly generation algorithm. Apparently, there are so far no re-
sults in the literature on using generation by canonical augmentation in this
context. Yet again, effective invariants are of great importance in developing
such algorithms. In the current case, the invariants could be built from dis-
tance distributions between codewords and value distributions in coordinates
(for equidistant codes, invariants of the former type are useless).
Research Problem 7.10. Classify error-correcting codes by canonical aug-
mentation in a codeword-by-codeword manner and make comparisons with
orderly generation.
7.1.4 Results
We will next look at some general observations and then summarize the
published results for specific parameters. The following theorem plays a central
role for binary codes.
Proof. If a parity check bit is added to a binary code, the resulting code has
only even-weight codewords and even minimum distance, so A2 (n + 1, 2d) ≥
A2 (n, 2d − 1). Since the minimum distance can decrease by at most 1 when a
code is punctured by deleting one of the coordinates, A2 (n, 2d − 1) ≥ A2 (n +
1, 2d).
Example 7.15. For d = 1, all words in the space are included to get an optimal
code, so A2 (n, 1) = 2n and we have a unique code. To classify the codes at-
taining A2 (n + 1, 2) = 2n (Theorem 7.14), we construct a graph by connecting
vertices whose codewords differ in exactly one coordinate. The graph we get
is the n-cube, which is connected, so the optimal binary codes with minimum
distance 2 are unique.
n\d 3 5 7 9 11
1 1 1 1 1 1
2 1 1 1 1 1
3 2 1 1 1 1
4 2 1 1 1 1
5 4 2 1 1 1
6 8 2 1 1 1
7 16 2 2 1 1
8 20 4 2 1 1
9 40 6 2 2 1
10 72 12 2 2 1
11 144 24 4 2 2
12 256 32 4 2 2
13 512 64 8 2 2
14 1024 128 16 4 2
15 2048 256 32 4 2
Proof. According to the Plotkin bound (Corollary 2.83), A2 (3n, 2n) ≤ 4, and
a (3n, 4, 2n)2 code attains that bound. Therefore, dH (x, y) = 2n for all pairs
x, y of codewords of such a code (which also must be equireplicate). Up to
equivalence, this code is
00 · · · 0 00 · · · 0 00 · · · 0
00 · · · 0 11 · · · 1 11 · · · 1
11 · · · 1 00 · · · 0 11 · · · 1
11 · · · 1* 11
' () · · · 1* 00
' () · · · 0*
' ()
n n n
In Table 7.2 we survey classification results for the entries in Table 7.1 that
are not covered by Theorems 7.16 and 7.17 and the preceding discussion. Now
we need to consider both odd and even distances, so for each entry we give
both the number of inequivalent codes (N) and the number of inequivalent
extended codes (Ne).
For the references, we have used the conventions described in Sect. 6.1.6.
For several of the cases, only the even-weight or the odd-weight result appears
232 7 Classification of Codes
n d A2 (n, d) N Ne References
6 3 8 1 1 2-(8, 4, 3) RBIBD
7 3 16 1 1 [620]
8 3 20 5 3 [24]
9 3 40 1 1 [378]
10 3 72 562 96 [459]
11 3 144 7398 1041 [459]
12 3 256
13 3 512
14 3 1024
15 3 2048
9 5 6 1 1 2-(6, 3, 4) RBIBD
10 5 12 1 1 2-(12, 6, 5) RBIBD
11 5 24 1 1 [H]
12 5 32 2 1 [208]
13 5 64 1 1 [208]
14 5 128 1 1 [542]
15 5 256 1 1 [542]
12 7 4 9 6 [H]
13 7 8 6 4 2-(8, 4, 6) RBIBD
14 7 16 10 5 2-(16, 8, 7) RBIBD
15 7 32 5 5 [H]
15 9 4 9 6 [H]
Codes with the same parameters as binary Hamming codes have been
extensively studied. There is a unique such code of length 7 – see Table 7.2 –
but in general it has been proved that for admissible lengths n there are at
least (n+1)/2−log(n+1) (n−3)/4
22 22
labeled perfect binary one-error-correcting codes [392]; divide this expression
by 2n n! to get a lower bound on the number of inequivalent such codes. Similar
bounds exist also for nonbinary perfect codes [179].
For q-ary codes with q > 2, much less is known than in the binary case.
Most of the known results concern codes corresponding to RBIBDs; such
classification results can be found in Tables 6.13 to 6.15 and are not repeated
here.
Binary optimal codes with d = 2 are unique by Example 7.15, but this does
not hold for general alphabet sizes q. It is not difficult to see that (n, q n−1 , 2)q
optimal codes correspond to orthogonal arrays of size q n−1 and strength n−1,
so for length n = 3, these objects correspond to Latin squares by Theorem
2.112. The problem of counting all codes with d = 2, not just the inequivalent
ones, is studied in [186].
Some classification results for ternary codes are as follows: in [591] it is
stated that there is a unique (6, 4, 5)3 code; the uniqueness of (5, 18, 3)3 and
(6, 38, 3)3 codes, and (5, 6, 4)3 and (6, 18, 4)3 codes are shown in [451] and
[450], respectively. The uniqueness of the (4, 9, 3)3 Hamming code is proved in
[292] but was stated without proof even earlier [570]. Delsarte and Goethals
[147] proved that the ternary Golay code [209] (constructed independently
by Virtakallio, see [250] and [109, Sect. 15.3]) and some related unrestricted
codes are unique; these codes have parameters (11, 729, 5)3 , (11, 243, 6)3 , and
(12, 729, 6)3 . In [370] it is shown that there are ten (10, 14, 7)3 codes, and
in [371] that there are 2,703 (13, 6, 10)3 codes and 6,151 (14, 13, 10)3 codes.
Classification results for suboptimal ternary codes with d = 3, 4 can be found
in [450, 451].
The described methods have in several places been used to prove nonexis-
tence of codes and improve upper bounds on Aq (n, d). We list two instances
for which the size of an optimal code is not known, and which seem to be
tractable.
Classification methods have been developed for several types of codes with
more specific properties, including mixed codes [450, 451], nonbinary constant
weight codes [465, 566], and packing designs with index λ > 1 [558], but there
are still many types of codes for which such a study is justified.
Zqn = W1 ∪ W2 ∪ · · · ∪ Wm . (7.6)
If G = Aut(Zqn , dH ), then we get only one orbit, and if G = {1}, then the
space is partitioned into singleton sets. The following lemma is central in the
further development of the classification methods.
m
R
Dijk |Wi | ≥ |Wj |.
i=1 k=0
In the next subsections, various choices of these parameters and the meth-
ods they lead to are considered. The general approach is actually closely
connected to the homomorphism principle. Isomorph rejection is discussed
separately.
{1} ≤ G ≤ Aut(Zqn , dH ).
The choice of G and its interaction with the other parts of the algorithm are
crucial for the overall performance; a few possible approaches for choosing G
that have been discussed in the literature will now be discussed.
Let G ∼ = Sn be the subgroup of Aut(Zqn , dH ) that permutes the n coor-
dinates arbitrarily but keeps the coordinate values fixed; this choice leads us
to the approach taken by Stanton and Kalbfleisch in [554]. For simplicity, we
consider binary codes, q = 2. Clearly, the space is then partitioned by the
action of G into one set for each Hamming weight; we let yi be the number of
codewords of weight i.
By applying Theorem 7.22, the following set of n + 1 inequalities is ob-
tained:
y0 + y1 ≥ n0 ,
ny0 + y1 + 2y2 ≥ n1 ,
(n − 1)y1 + y2 + 3y3 ≥ n2 ,
.. .. (7.7)
. .
n
2yn−2 + yn−1 + nyn ≥ n−1 ,
n
yn−1 + yn ≥ n .
n
yi = M.
i=0
Example 7.23. To classify the (4, 4)2 1 covering codes, we choose G to permute
the four coordinates arbitrarily and get
7.2 Covering Codes 237
y0 + y1 ≥ 1,
4y0 + y1 + 2y2 ≥ 4,
3y1 + y2 + 3y3 ≥ 6,
2y2 + y3 + 4y4 ≥ 4,
y3 + y4 ≥ 1,
which together with y0 +y1 +y2 +y3 +y4 = 4 has the solutions (y0 , y1 , y2 , y3 ) =
(0, 1, 2, 1, 0), (0, 2, 1, 0, 1), (1, 2, 0, 0, 1), (1, 1, 0, 1, 1), (1, 0, 1, 2, 0), (1, 0, 0, 2, 1).
The reader is encouraged to complete the classification; there are, up to
equivalence, two optimal (4, 4)2 1 covering codes: {0000, 0001, 1110, 1111} and
{0000, 0011, 1101, 1110}.
The observant reader has realized that there is some symmetry in (7.7)
which one obviously should not ignore. Another useful remark is that any code
has an equivalent code that contains the all-zero word, so we could assume
that y0 = 1. However, we will not waste time tuning a suboptimal method,
but instead we turn to a more efficient approach.
The ideas behind the next choice of G can actually be traced as far back
as to the 1960s and results by Kamps and Van Lint [294] and Stanton and
Kalbfleisch [555]. The full strength of it, however, was achieved through im-
provements that were obtained very much later by Blass and Litsyn [51] and
Östergård and Blass [460]. Some related ideas have also been presented by
Ma [385].
Actually, in this case there is not a single choice of G, but we have a series
of groups,
{1} = G0 ≤ G1 ≤ · · · ≤ Gn = Aut(Zqn , dH ),
where Gi ∼ = Aut(Zqi , dH ) is the subgroup of Aut(Zqn , dH ) that fixes the n − i
first coordinates and the values in these coordinates. The orbits of words
under the actions of these groups are in fact just stepwise refinements of the
space with respect to the values of the coordinates. For example, the orbits
under Gn−1 partition the space Zqn into q sets consisting of the words starting
with 0, 1, . . . , q − 1. We denote the number of codewords in the set of words
starting with i by yi , and generalize this notation to any number of specified
coordinates.
Having prescribed the size of the code, M , Theorem 2.78 should be checked
in the very first step. Now we are ready to apply Theorem 7.22, and we do
this for each pair of groups Gi−1 ≤ Gi , 1 ≤ i ≤ n, starting from i = n. For
i = n we have the additional equality
q−1
M= yj ,
j=0
238 7 Classification of Codes
q−1
yk = ykj ,
j=0
Example 7.24. As in Example 7.23, we want to classify the (4, 4)2 1 codes,
whose existence is not ruled out by the Hamming bound. Initially, we get the
instance
4y0 + y1 ≥ 8,
y0 + 4y1 ≥ 8,
y0 + y1 = 4,
whose only solution is y0 = y1 = 2. In the next step, we get
which has the following solutions for (y00 , y01 , y10 , y11 ): (2, 0, 0, 2), (0, 2, 2, 0),
(1, 1, 1, 1). At this point, we abandon the example. In the last two stages,
one gets, respectively, 8 and 16 inequalities, and isomorph rejection should be
included to keep the number of (intermediate and final) solutions small.
To solve the instances of Diophantine, one may use any of the algorithms
discussed in Sect. 5.4.
In comparing this method with the method for classifying error-correcting
codes discussed in Sect. 7.1.1, one observes that these are in some sense dual
to each other. For error-correcting codes, the method is bottom-up, where
small codes are classified and used in the classification of larger and larger
codes. For covering codes, the approach is top-down, and possible codeword
distributions in the space are considered, dividing the space into smaller and
smaller subspaces.
A coordinate-by-coordinate approach for equidistant, equireplicate error-
correcting codes is considered in [305]. The tools of this section are not utilized
in [305], where pruning is based on distances between partial codewords (and
the partial codes are all the time kept equireplicate).
For error-correcting codes with odd minimum distance d, the spheres of
radius R = (d−1)/2 must be nonoverlapping, so the only modification needed
to apply the approach in this section is a replacement of ≥ by ≤ in Theorem
7.22.
7.2 Covering Codes 239
Theorem 7.22, the core of the methods for classifying covering codes that
have been discussed here, is derived from the covering property that such
codes must have. The covering property can also be expressed as follows: for
a given code C and all x ∈ Zqn ,
where
Ai (x) = |Bi (x) ∩ C|;
the definition of a Hamming sphere, Bi (x), is given in (2.12). If, for all x ∈ Zqn ,
a covering code must satisfy
(1, 1, . . . , 1) 1. (7.10)
' () *
R+1
Obtaining new inequalities that can be used efficiently in the search for
covering codes is a highly nontrivial task. Fortunately, for our purposes, we
need not go into these constructions, but we may just use inequalities produced
by others. In general, the inequalities have been obtained by combinatorial
methods or by combining known inequalities. The latter approach has been
automatized by Habsieger and Plagne [240]. We here present one important
inequality for binary codes obtained by Johnson [285] and rediscovered by
Van Wee [600]:
+ , + , + , + ,
n+1 n+1 n+1 n+1
, ,..., , 1, 1 .
R+1 R+1 R+1 R+1
' () *
R+2
240 7 Classification of Codes
Other important inequalities include those by Zhang [621] and Zhang and
Lo [622]. To make use of these inequalities in the algorithms, one should
replace the bound given by Theorem 7.22 by the following generalization.
m
l
λk Dijk |Wi | ≥ β|Wj |.
i=1 k=0
Example 7.27. Ignoring the distance criterion and focusing on the minimality
test of the extensions, consider the following three-word code of length 5:
00000
00111
11011
As mentioned in Sect. 7.2.1, Stanton and Bate [552] used an algorithm for
solving Set Covers to prove nonexistence of certain constant weight covering
codes. A coordinate-by-coordinate approach does not seem to be efficient for
covering codes with the additional property of having constant weight. On
the other hand, as we will now see, constant weight covering codes may be
classified via subcodes, an approach that does not seem suitable for general
covering codes.
The following method of classifying constant weight covering codes via
subcodes is due to Applegate, Rains, and Sloane [10]. We restrict the discus-
sion to binary codes that are covering designs in the restricted sense as defined
in Sect. 2.3.1 and continue the discussion in the framework of designs.
For any point p of a covering design with b blocks and parameters v, k, and
t, consider the blocks containing p and delete p. These blocks form a covering
design with parameters v − 1, k − 1, and t − 1. Moreover, by a straightforward
counting argument there must be such a covering design with b blocks where
Compare the bounds of (7.11) with the bounds of (7.1) and (7.5). We now
have a framework for classifying covering designs in a recursive manner. For a
complete classification with given parameters and cardinality, all inequivalent
minimal covering designs – analogous to minimal covers as defined in Sect.
5.3 – given by (7.11) are used as starting points and an algorithm for Set
242 7 Classification of Codes
Covers is used to find the remaining blocks (which do not contain the new
point).
Additional conditions for pruning any Set Covers algorithm applied to
instances of the problem under consideration are obtained by observing that
each point must occur in at least C(v−1, k−1, t−1) blocks, each pair of distinct
points in at least C(v − 2, k − 2, t − 2) blocks, and so on; cf. [395, Eq. (5.6)].
7.2.6 Results
We will now look at some general results and summarize the published results
on the classification of optimal covering codes for specific parameters. As for
perfect codes, the results overlap those of Sect. 7.1.4. In the binary case, all
values of K2 (n, R) are known for n ≤ 9 and are shown in Table 7.3.
n\R 1 2 3 4
1 1 1 1 1
2 2 1 1 1
3 2 2 1 1
4 4 2 2 1
5 7 2 2 2
6 12 4 2 2
7 16 7 2 2
8 32 12 4 2
9 62 16 7 2
Theorem 7.29. For R+1 ≤ n ≤ 2R+1, K2 (n, R) = 2 and there are 2R−n+2
inequivalent optimal codes.
The entries in Table 7.3 that are not covered by these combinatorial results
are listed in Table 7.4. The number of inequivalent codes is given in the column
N, and that value is omitted for open cases. One result obtained in this work
is denoted by [H]. It might be possible to settle the number of inequivalent
codes attaining K2 (2R + 3, R) = 7, R ≥ 1, perhaps by utilizing techniques
from [310, 311].
n R K2 (n, R) N References
5 1 7 1 [554]
6 1 12 2 [468]
7 1 16 1 [620]
8 1 32 10 [468]
9 1 62
7 2 7 3 [468, 32]
8 2 12 277 [468]
9 2 16 4 [32]
9 3 7 8 [H]
Proof. A (2, q)q 1 code must have all values of Zq in (at least) one coordinate,
say the first one. The values of the second coordinate may then be arbitrarily
chosen. Two such codes are equivalent exactly when they have the same integer
partition corresponding to the number of times the values of Zq occur.
For optimal ternary codes we know that there are three (2, 3)3 1 codes [449]
(and Theorem 7.32), a unique (3, 5)3 1 code [449], a unique (4, 9)3 1 (Hamming)
code [292], 17 (5, 27)3 1 codes [469], and a unique (5, 8)3 2 code [32]. For optimal
quaternary codes we know that there are a unique (4, 24)4 1 code [464] and
eight (4, 7)4 2 codes [310].
Classification results for covering designs are listed in Tables 7.5 and 7.6.
The columns of Tables 7.5 and 7.6 contain the parameters of the design, v,
k, and t, the size of a minimal covering, M , the number of nonisomorphic
optimal coverings, N, and references to the classification results following the
conventions outlined in Sect. 6.1.6. Steiner systems are optimal covering de-
signs; since these have been tabulated in Chap. 6, they are not included here.
The cases v = k + 1 and v = k + 2 are settled by the following two theorems
and are therefore also omitted. The result in Theorem 7.36 was obtained by
Turán [585].
Proof. For any set of t blocks, consider the set S (of size less than or equal to t)
consisting of the points that do not occur in the respective blocks. If necessary,
add arbitrary points to S so that |S| = t. Obviously, S is not covered by any
of the blocks, so C(v, v − 1, t) ≥ t + 1. On the other hand, any set of t + 1
distinct blocks covers all t-sets, so C(v, v − 1, t) = t + 1. Since all such sets of
blocks are isomorphic, the optimal covering is unique.
Many of the results in Tables 7.5 and 7.6 have been verified in [10]; see
also [30, 64, 84, 550, 551, 502].
There are several classification results in the literature that concern vari-
ants of the discussed covering codes, for example, with respect to the index
λ. Some classification results for multiple constant weight covering codes are
listed in [429, Sect. 11]. It is shown in [460] that the approach used in Sect.
7.2.2 classifies certain multiple covering codes as a by-product. Classification
of codes with both the minimum distance and the covering radius prescribed
is discussed in [464].
7.2 Covering Codes 245
v k t M N References
6 3 2 6 1 [10]
8 3 2 11 5 [10]
10 3 2 17 1 [10]
7 4 2 5 4 [565]
9 4 2 8 17 [551, 428], [30]
10 4 2 9 4 [551, 428]
15 4 2 19 4 [3]
22 4 2 39 1 [553]
8 5 2 4 1 [565]
9 5 2 5 1 [550]
10 5 2 6 2 [550]
11 5 2 7 2 [550]
7 4 3 12 4 [10]
9 4 3 25 77 [10]
8 5 3 8 3 [565]
11 5 3 20 1 [502]
9 6 3 7 4 [565]
12 6 3 15 68 [216]
v k t M N References
8 5 4 20 6 [10]
9 5 4 30 3 [84]
10 5 4 51 40 [10], [395]
9 6 4 12 1 [565]
10 6 4 20 1 [30]
10 7 4 10 2 [565]
9 6 5 30 2 [10]
10 6 5 50 1 [533]
10 7 5 20 5 [64]
10 7 6 45 20 [10]
11 7 6 84 3 [10]
11 8 6 29 1 [64]
11 8 7 63 40 [10]
12 8 7 126 3 [10]
12 9 7 40 16 [64]
12 9 8 84 4 [10]
13 9 8 185 1 [10]
13 10 8 52 1 [64]
14 10 9 259 1 [10]
246 7 Classification of Codes
Definition 7.38. Two linear codes C, C ∈ Fnq are equivalent if there exists
a linearity-preserving isometry ψ ∈ Aut(Fnq , dH ) such that ψ(C) = C .
Proof. It is easily checked that the kernel of the group homomorphism given by
(7.12) is trivial, so it suffices to show that every linearity-preserving isometry
ψ ∈ Aut(Fnq , dH ) can be obtained as ψ(x) = (z, h, α)x for some (z, h, α) ∈
(F∗q Sn ) θ Aut(Fq ).
Because ψ is linearity-preserving, it must fix the subspace consisting only
of the all-zero word. Because ψ is an isometry, by Theorem 3.54 we may as-
sume – by composing ψ with an appropriate isometry induced by a (z, h, α) ∈
(F∗q Sn ) θ Aut(Fq ) if necessary – that ψ fixes all the coordinates and the all-
one word. Thus, for all x ∈ Fnq we have ψ(x) = (α1 (x1 ), α2 (x2 ), . . . , αn (xn )),
where αi ∈ Sym(Fq ), αi (0) = 0, αi (1) = 1 for all 1 ≤ i ≤ n. Con-
sider the subspace C = {c(1, 1, . . . , 1) : c ∈ Fq }. Since (1, 1, . . . , 1) ∈ ψ(C)
and ψ preserves the dimension of a subspace, we have ψ(C) = C. Thus,
α1 = α2 = · · · = αn = α. To complete the proof, we show that α ∈ Aut(Fq ).
Let a, b ∈ Fq and consider the subspace C = {c(1, 0, a) + d(0, 1, b) : c, d ∈
Fq } – for spaces with more than three coordinates, the remaining coordinates
are set to 0. Since (1, 1, a + b) ∈ C , we have (1, 1, α(a + b)) ∈ ψ(C ). On
the other hand, (1, 0, α(a)) ∈ ψ(C ) and (0, 1, α(b)) ∈ ψ(C ), so (1, 1, α(a) +
α(b)) ∈ ψ(C ) since ψ(C ) is a subspace. It follows that α(a + b) = α(a) + α(b)
for all a, b ∈ Fq .
Letting d = 1, we get ψ((c, 1, ac + b)) = (α(c), 1, α(ac) + α(b)) ∈
ψ(C ) for all c ∈ Fq . On the other hand, α(c)(1, 0, α(a)) + (0, 1, α(b)) =
(α(c), 1, α(a)α(c) + α(b)) ∈ ψ(C ), so α(ac) = α(a)α(c) for all a, c ∈ Fq .
Thus, α ∈ Aut(Fq ).
Lemma 7.40. For a parity check matrix of a linear code C over Fq , and any
a ∈ F∗q , if a column vector y of the parity check matrix is replaced by ay to
get a new code C , then C is equivalent to C.
We are now ready to discuss classification of linear codes. Since [n, k, d]q
linear codes make up a subset of unrestricted (n, q k , d)q codes, one possibility
of getting at this classification would be through a classification of the latter
codes. However, since such an approach is applicable only for trivially small
parameters, it is not discuss further.
As in the unrestricted case, one possibility of classifying linear error-
correcting codes is through subcodes.
An [n, k, d]q linear code C with k ≥ 1 has at least one coordinate in which
not all codewords have a 0. If we shorten C in such a coordinate, and let C
248 7 Classification of Codes
Proof. An [n, 1, d]q code is generated by a single word of weight at least d. All
nonzero coordinates of this word may be transformed into 1s by multiplying
the coordinate values with their multiplicative inverses (such transformations
lead to equivalent codes, see Sect. 7.3.1). The codes obtained are, up to per-
mutation of the coordinates, the codes defined by the parity check matrix
stated in the theorem.
Lemma 7.42. Suppose C is an [n, k, d]q code and suppose c ∈ C has weight
w, where d > w(q − 1)/q. Then the residual code of C with respect to c is an
[n − w, k − 1, d ]q code with d ≥ d − w + w/q.
7.3 Linear Codes 249
Theorem 7.43. Consider two linear codes C, C ∈ Fnq . For a given set S ⊆
{0, 1, . . . , n}, let W = {c ∈ C : wt(c) ∈ S} and W = {c ∈ C : wt(c) ∈ S}.
If the words in W and W generate C and C , respectively, then for any
linearity-preserving ψ ∈ Aut(Fnq , dH ) we have ψ(W ) = W if and only if
ψ(C) = C .
edges are presented as ordered pairs to indicate that they are directed. For
binary codes there are no such edges and the transformation coincides with
that for binary constant weight codes.
Example 7.44. By taking the four nonzero codewords of the unique [2, 1, 2]5
code, we get the graph in Fig. 7.3.
We will here bring forward and utilize a well-known (cf. [272]) connection
between linear codes and sets of points in projective geometries.
The one-dimensional subspaces of Frq can be viewed as the points of an inci-
dence structure (P, L, I), where the blocks – or lines – are the two-dimensional
subspaces, and incidence is given by containment; that is, (p, L) ∈ I if and only
if p ⊆ L. This incidence structure is called the projective geometry PG(r−1, q)
of order q and projective dimension r − 1. The two-dimensional projective
geometries were encountered already in Chap. 2. See [78] for a handbook of
projective and other geometries; a brief survey can be found in [43].
7.3 Linear Codes 251
Three references for a proof of this result are listed in [388, p. 700]. See also
[509, Theorem 9.43].
Now, two linear codes C, C ⊆ Fnq with r × n parity check matrices H, H ,
respectively, are equivalent if and only if there exists an invertible r ×r matrix
L and a linearity-preserving ψ ∈ Aut(Fnq , dH ) such that H = Lψ(H), where ψ
acts on each row of H. Recalling Theorem 7.39, if we view the matrices H and
H as defining n-sets of points in PG(r − 1, q), the monomial transformation
part of ψ obviously fixes the n-set of points defined by H. What remains is
the field automorphism component α and the matrix L, and this is exactly
the notion of equivalence for two n-sets of points under the induced action of
PΓLr (q). Therefore we have that H and H determine equivalent linear codes
if and only if the n-sets of points defined by their columns are in the same
orbit of the action of PΓLr (q).
252 7 Classification of Codes
Studies where linear codes have been constructed and classified via their
residuals include [59, 61, 62].
Other techniques that have been proposed and used for classifying linear
codes include utilization of split weight enumerators [280] and various group
theoretic methods [181, 197].
7.3.6 Results
Classification results for infinite families of binary codes can also be found
in [261]. Classification results for (long) binary codes with k ≤ 7 were obtained
7.3 Linear Codes 257
in [60]. Many results are also known for ternary codes, cf. [181], and codes
with larger values of q.
Classification results for binary codes with minimum distance at least 3
and small parameters are given in Table 7.7. The number of inequivalent codes
were actually determined already by Slepian [540]. Arnold [11] classified these
codes up to length 7, Betten [38] up to length 12, and Östergård [455] up to
length 14. The entries for k = 1 follow from Lemma 7.41.
n\k 1 2 3 4 5 6 7 8 9 10
3 1
4 2
5 3 1
6 4 4 1
7 5 8 5 1
8 6 14 15 6
9 7 22 38 29 5
10 8 32 80 105 46 4
11 9 44 151 312 273 64 3
12 10 59 266 821 1,285 700 89 2
13 11 76 440 1,948 5,098 5,632 1,794 112 1
14 12 96 695 4,288 17,934 37,191 26,792 4,579 128 1
The set system is strongly reconstructible from its line graph. (8.3)
Property (8.1) guarantees that the exact cover algorithm can be used for
exhaustive generation. Properties (8.2) and (8.3) guarantee that generation
by canonical augmentation can be applied in a manner analogous to that for
Steiner triple systems in Sect. 6.1.3, defining a seed as a subsystem consisting
of a block and all blocks that intersect that block. Note that (8.3) is required
only when line graphs are used for isomorph rejection. An invariant based on
260 8 Classification of Related Structures
Pasch configurations can be used if we have block size 3, which in fact holds
for all objects in this section.
We here consider two types of objects defined in Sect. 2.4: 1-factorizations
of the complete graph K2n and uniform 3-GDDs; the latter include Latin
squares. For each of the objects considered, we will derive a representation as
a set system and establish that (8.1) to (8.3) hold.
Obviously, if only (8.1) holds for a particular type of object, we may still
classify the objects with an algorithm for Exact Covers by using other tech-
niques for (intermediate and final) isomorph rejection. One such classification
problem is that of finding starters in Abelian groups of odd order. See [161]
for a definition of starters; orderly generation of such objects is considered in
[327].
Research Problem 8.1. Classify starters in a framework utilizing Exact
Covers, and compare the algorithm with that in [327].
The solutions of this problem are precisely the set system representations of
1-factorizations of K2n . This establishes (8.1).
It follows directly from (8.4) and (8.5) that a set system representation of
a 1-factorization of K2n is a GDD(4n − 1, 3) with group type (2n − 1)1 12n .
8.1 Triple Systems 261
1 + (n − 1) + 2(2n − 2) = 5n − 4
blocks. The block that induces a seed is easily seen to be unique for n ≥ 3.
Thus, (8.2) holds for n ≥ 3. An example of a seed for 2n = 12 is given in
Example 8.2.
Example 8.2. One seed for finding 1-factorizations of K12 , with the points fi
corresponding to the 1-factors in the first 11 rows, is displayed below.
111111 0000000000 0000000000
000000 1000000000 1000000000
000000 0100000000 0100000000
000000 0010000000 0010000000
000000 0001000000 0001000000
000000 0000100000 0000100000
000000 0000010000 0000010000
000000 0000001000 0000001000
000000 0000000100 0000000100
000000 0000000010 0000000010
000000 0000000001 0000000001
100000 1111111111 0000000000
100000 0000000000 1111111111
010000 1000000000 0100000000
010000 0100000000 1000000000
001000 0010000000 0001000000
001000 0001000000 0010000000
000100 0000100000 0000010000
000100 0000010000 0000100000
000010 0000001000 0000000100
000010 0000000100 0000001000
000001 0000000010 0000000001
000001 0000000001 0000000010
We will now consider the line graphs of (set system representations of)
1-factorizations of K2n . Property (8.3) for a line graph of a 1-factorization
can be proved by a slight modification of the proof of Corollary 3.93. This
result can also be found in [305, Theorem 1].
Proof. Every block of the set system has 3 points, every point corresponding
to a 1-factor occurs in n blocks, and every point corresponding to a vertex
occurs in 2n − 1 blocks. By Theorem 3.92 the points corresponding to vertices
can be reconstructed from the cliques of size 2n−1 when 2n−1 > 32 −3+1 = 7.
This can be strengthened by the fact [155, 156] that if a clique of size 7 does
not correspond to one common point for the blocks, then it corresponds to
the Fano plane. It is straightforward to check that a Fano plane is not possible
here.
Consequently, for 2n − 1 ≥ 7 the maximum cliques of size 2n − 1 in the
line graph correspond to the vertices of K2n . Excluding edges occurring in the
subgraphs of the line graph induced by these cliques, the remaining edges de-
fine 2n−1 pairwise disjoint cliques of size n, which correspond to the 1-factors
in the 1-factorization. To reconstruct the blocks, each vertex of the line graph
occurs in precisely three of the aforementioned cliques, which reveals the point
incidences of the corresponding block.
Any isomorphism between line graphs must map maximum cliques onto
maximum cliques, which induces a unique isomorphism between the underly-
ing set systems. This establishes strong reconstructibility.
A set of six blocks that are pairwise intersecting and do not all have one
single point in common is possible:
{f1 , 1, 2}, {f1 , 3, 4}, {f2 , 1, 3}, {f2 , 2, 4}, {f3 , 1, 4}, {f3 , 2, 3}.
2n N References
2 1 Trivial
4 1 Trivial
6 1 Trivial
8 6 [157]
10 396 [202]
12 526,915,620 [162]
Proof. The proof is analogous to the proof of Theorem 8.3. Now every point
occurs in at exactly t(u−1)/2 blocks, and the points can be reconstructed from
the line graphs whenever t(u − 1)/2 > 7 (by Theorem 3.92). The group parti-
tion can be reconstructed using the observation that two maximum cliques in
the line graph are disjoint if and only if the corresponding points are in the
same group. Finally, strong reconstructibility follows from the fact that any
isomorphism between line graphs must map maximum cliques onto maximum
cliques, which induces a unique isomorphism between the underlying set sys-
tems.
n N References
1 1 Trivial
2 1 Trivial
3 1 Trivial
4 2 [180]
5 2 [180]
6 12 [473, p. 81] (Clausen), [569]
7 147 [446, 514]
8 283,657 [328]
9 19,270,853,541 [415]
10 34,817,397,894,749,939 [415]
Research Problem 8.7. Classify the Latin squares of side 9. Use this clas-
sification to check, for example, [117, Conjectures 1.18 and 1.22].
later corrected in [316]). We will now briefly look at classification within the
framework of Hadamard matrices.
Hadamard matrices may be classified in a row-by-row manner by orderly
generation. For (partial) Hadamard matrices we allow row and column per-
mutations as well as row and column negations (Definition 2.125) – a matrix
is in canonical form if the tuple formed by concatenating its rows is the lexico-
graphic maximum of its equivalence class. Algorithm 6.1 from Sect. 6.1.2 with
extensions discussed in Sect. 7.1.2 can be used to test maximality in the case
when no row negations occur. To incorporate row negations, one possibility
is to employ the extended Algorithm 6.1 as a subroutine. Namely, given an
input matrix, we select one column and its sign in all possible ways as the
first column, normalize the first column by row negations to consist of only
1s, and then employ the extended Algorithm 6.1 as a subroutine in search-
ing for counterexamples to the maximality of the input matrix; that is, the
counterexample candidate being constructed is always compared against the
input matrix rather than the input to the subroutine.
Every new row that augments a partial Hadamard matrix must have inner
product 0 with the existing rows. It turns out that sets of one, two, and three
rows of an Hadamard matrix are unique up to equivalence. Any set of three
rows – and columns as well, transposed – of an Hadamard matrix of order 4n
is equivalent to
⎡ ⎤
11 1 1 1 1 1 1 1 1 1 1
⎣1 1 ··· 1 1 1 ··· 1 − − ··· − − − ··· −⎦, (8.6)
11 1−− − 1 1 1 −− −
where the submatrices are of size 3 × n; cf. the proof of Theorem 2.123. This is
the fundamental reason why we get 3-designs from Hadamard matrices (The-
orem 2.127), and also indicates that finding (easily computable) invariants for
Hadamard matrices is a nontrivial task.
Spence [547] remarks that canonicity testing in orderly generation is very
time-consuming already when the partial matrix contains a rather small num-
ber of rows. Consequently, beyond a certain number of rows, canonicity testing
cannot be performed for each partial matrix.
where the matrices Aii of size 2k × 2k have row and column sum −2, the
matrices Bij of size 2k × 2k have row and column sum 0, [D1 D2 D3 D4 ]
coincides with (8.8), and ⎡ ⎤
11 1 1
⎢1 1 − −⎥
E=⎢ ⎥
⎣1 − 1 −⎦.
1−−1
See [318] and its references for details on utilizing the structure (8.9) in
classifying such Hadamard matrices. A corollary of (8.9) is that the transpose
of this matrix also has a Hall set.
The known classification results for Hadamard matrices are summarized
in Table 8.3.
Uniqueness for the cases n = 8 and n = 12 follows from Example 3.81 and
the uniqueness of the 2-(7, 3, 1) and 2-(11, 5, 2) designs, respectively, which
was known long before this problem was studied within the framework of
Hadamard matrices. The classification results have been verified for n = 16
in [241] and for n = 24 and n = 28 in [547].
&
q−1
λq(q − i)
,
i=0
λq
in Table 8.2 apply to OA(3, n) as well and need not be repeated. Classifica-
tion results for OAn (4n − 1, 2) can be gathered from Table 6.12 because the
equivalence classes of OAn (4n − 1, 2) coincide by Theorem 2.127 with those
of (4n − 1, 4n, 2n)2 OE codes, and therefore, by Theorem 3.82, with the iso-
morphism classes of resolutions of 2-(4n, 2n, 2n − 1) designs. These results are
shown in Table 8.4. The entries for n = 4 and n = 5 are discussed in [614] and
[615], respectively. Alternatively, one could start from the classified Hadamard
matrices, viewed in Table 8.3, and compute their row automorphism orbits. It
turns out that every Hadamard matrix of order at most 20 has an automor-
phism group that acts transitively on the rows (and thereby on the columns,
as well) [257, p. 165].
n 4n − 1 N
1 3 1
2 7 1
3 11 1
4 15 5
5 19 3
6 23 130
7 27 7,570
Note that the minimum distance d of the code in Theorem 8.11 is irrele-
vant. The dual distance of a linear code is simply the minimum distance of
its dual code, cf. Definition 2.98. For an unrestricted code, the dual distance
is obtained from the MacWilliams transform of the weight distribution of the
code [257, p. 69]. Hence, specific coding-theoretic methods are of central im-
portance in utilizing Theorem 8.11. For an exhaustive discussion of this topic,
we refer the reader to [257, Chaps. 4 and 5]. Three examples of unique or-
thogonal arrays are listed in [257, p. 109]: OA8 (5, 16, 2), OA32 (7, 24, 2), and
OA3 (5, 12, 3). The corresponding codes are the Nordstrom-Robinson code, the
binary Golay code, and the ternary Golay code, respectively; we know from
Sect. 7.1.4 that these are unique.
Other classification results for orthogonal arrays include those in [198, 256,
438, 617, 619].
The fact that the classification results in the literature are rather scattered
inspires the restatement (slightly reformulated) of the following open problem
from [257, Research Problem 5.13]. Known existence results are summarized
in [257, Chap. 12], which is a useful reference in pursuing a further study.
9.1 Preliminaries
Throughout this chapter we assume the following setup. Our interest is to
classify objects in an implicitly defined finite set Ω, where isomorphism is
defined by an action of a group G on Ω (Definition 3.16). The automorphism
group of an object X ∈ Ω is the group Aut(X) = Iso(X, X) ≤ G. An object
X ∈ Ω admits a group H ≤ G as a group of automorphisms if H ≤ Aut(X).
The focus of classification with prescribed automorphisms may be very
wide considering, for example, all objects with a nontrivial automorphism
group, or very narrow, fixing a specific group order |H| and possibly even the
group H up to conjugacy in G. Moreover, we might require that H be the
automorphism group Aut(X) instead of merely a group of automorphisms. We
do not here contemplate on the various motivations behind different choices
of H and |H|.
It is usually desirable to break up problems of this type into subproblems
where the prescribed group H is fixed. So if one only prescribes the group
order, then the first task is to find all applicable groups up to conjugacy in G.
Combinatorial arguments may often be applied to reject some of the groups
immediately. Since such arguments are generally problem-specific, they have
to be applied on a case-by-case basis and we will not be able to give any
general guidelines.
What comes to finding the groups, one may use group-theoretic results or
consult the literature – for example, generators for the transitive permutation
groups of degree up to 15 are listed in [132], and the possible permutation
representations of large groups on a relatively small number of points are gen-
erally known. One may obviously implement an independent classification of
possible groups up to conjugacy; the need for such an approach is accentuated
if one is considering objects where the isomorphism-inducing group G is not a
symmetric group Sv . For example, this issue is discussed in [385] for ternary
codes and cyclic subgroups. Since group-theoretic classification problems are
out of the scope of this work, we omit further discussions and refer the reader
to [33, 132].
One recurrent special case that is simple enough to solve by hand calcula-
tion is the situation where G = Sv and we want to produce up to conjugacy
in Sv the subgroups H ≤ Sv of prime order p. Since every nonidentity ele-
ment of a prime-order group generates the group, it suffices to produce up to
conjugacy all permutations h ∈ Sv with order p. The cycle type an1 1 an2 2 · · · ant t
of a permutation h ∈ Sv gives for each cycle length ai the number ni of such
cycles in the cycle decomposition of h, where v = i ni ai . Observing that for
every g ∈ Sv and k-cycle (x1 x2 · · · xk ) ∈ Sv we have
g · (x1 x2 · · · xk ) · g −1 = (g(x1 ) g(x2 ) · · · g(xk )),
it follows that two permutations are conjugate in Sv if and only if they have
the same cycle type. Furthermore, a permutation h ∈ Sv has order p if and
only if its cycle type is of the form 1f pm , where v = f + pm, f ≥ 0, and
9.1 Preliminaries 275
NG (H) = {g ∈ G : gHg −1 = H}
the generated objects. One basic observation that is useful for large groups is
that if H is a maximal subgroup of the isomorphism-inducing group G with
NG (H) = H, then by Theorem 9.4 all distinct objects admitting H are non-
isomorphic (unless Aut(X) = G, which is usually impossible). In particular,
for G = Sv we have NSv (H) = H unless the maximal subgroup H is the al-
ternating group Av , eliminating the need for isomorph rejection in classifying
designs with such prescribed groups. See [239, 357, 358, 520, 521] for further
techniques for classifying designs with large prescribed groups.
If several prescribed groups are employed, then one has to account for
the possibility that isomorphic objects are encountered from different groups
in the case when Aut(X) contains up to conjugacy more than one prescribed
group. In many cases it is possible to carry out isomorph rejection via recorded
objects. A less memory-intensive strategy is obtained if only the objects with
|Aut(X)| > |H| are treated in this manner, and isomorph rejection with re-
spect to the normalizer NG (H) is carried out for objects with Aut(X) = H; a
very fast implementation of this strategy in the context of Latin squares can be
found in [415]. Yet another technique is generation by canonical augmentation
such that the canonical parent m(X) associated with each generated object
X involves a subgroup in Aut(X) conjugate to one of the prescribed groups.
To apply the framework in Sect. 4.2.3 in this context, it is useful to observe
that objects with an individualized group of automorphisms can be viewed as
ordered pairs (H, Z), where Z is a combinatorial object and H ≤ Aut(Z) is a
group. A group element g ∈ G acts on such a pair by g∗(H, Z) = (gHg −1 , gZ).
An example of this approach is discussed in Sect. 9.2.3.
The rest of this chapter is concerned with implementing these ideas in
practice in the context of designs and codes.
9.2 Designs
The most common methods for classifying designs with prescribed automor-
phism groups are the Kramer–Mesner method and a method based on tactical
decompositions, which are the main topics of this section. As an example we
also discuss how the block-by-block approach considered in Sect. 6.1.3 can
be modified when required symmetries have been prescribed; actually, this
approach turns out to be closely related to the Kramer–Mesner method. As
far as we know, little or no work has been carried out on using the approach
in Sect. 6.1.1 in the prescribed automorphism group setting.
Research Problem 9.5. Study orderly generation (and generation by canon-
ical augmentation) for producing incidence matrices point by point in classi-
fying designs with prescribed automorphisms. Carry out a comparison with
other approaches.
Analytical rather than computational results on designs and their auto-
morphism groups can be found in any design theory textbook as well as in
the survey articles [91, 168].
278 9 Prescribing Automorphism Groups
The general approach that has become known as the Kramer–Mesner method
is based on results for simple designs presented by Alltop [4], which where
further developed by Kramer and Mesner [335].
Recall the general parameters of a design, t-(v, k, λ). In this section it is
convenient to view a design as a set system (V, B) over a fixed point set V .
Isomorphism is considered under the action of Sv = Sym(V ) on the points in
the blocks.
A prescribed group H ≤ Sv partitions the set of all candidate blocks (that
is, the set of all k-subsets of V ) into orbits K1 , K2 , . . . , Kn . In constructing
designs admitting H as a group of automorphisms, we may now study orbits
of k-subsets instead of individual k-subsets. Namely, if a k-subset is in the
final design, then all other k-subsets in the same orbit are also in the design,
because the design admits H.
Also the t-subsets of V are partitioned into H-orbits: T1 , T2 , . . . , Tm .
Example 9.6. We consider the classification of 2-(7, 3, 1) designs with respect
to the prescribed group H = (1 2 3)(4 5 6)(7). This group partitions the
2-subsets and the 3-subsets of V = {1, 2, 3, 4, 5, 6, 7} into the following orbits:
T1 = {{1, 2}, {2, 3}, {1, 3}}, K1 = {{1, 2, 3}},
T2 = {{1, 4}, {2, 5}, {3, 6}}, K2 = {{1, 2, 4}, {2, 3, 5}, {1, 3, 6}},
T3 = {{1, 5}, {2, 6}, {3, 4}}, K3 = {{1, 2, 5}, {2, 3, 6}, {1, 3, 4}},
T4 = {{1, 6}, {2, 4}, {3, 5}}, K4 = {{1, 2, 6}, {2, 3, 4}, {1, 3, 5}},
T5 = {{1, 7}, {2, 7}, {3, 7}}, K5 = {{1, 2, 7}, {2, 3, 7}, {1, 3, 7}},
T6 = {{4, 5}, {5, 6}, {4, 6}}, K6 = {{1, 4, 5}, {2, 5, 6}, {3, 4, 6}},
T7 = {{4, 7}, {5, 7}, {6, 7}}, K7 = {{1, 4, 6}, {2, 4, 5}, {3, 5, 6}},
K8 = {{1, 4, 7}, {2, 5, 7}, {3, 6, 7}},
K9 = {{1, 5, 6}, {2, 4, 6}, {3, 4, 5}},
K10 = {{1, 5, 7}, {2, 6, 7}, {3, 4, 7}},
K11 = {{1, 6, 7}, {2, 4, 7}, {3, 5, 7}},
K12 = {{4, 5, 6}},
K13 = {{4, 5, 7}, {5, 6, 7}, {4, 6, 7}}.
Theorem 9.7. For given i and j, every t-subset in Ti occurs the same number
of times in k-subsets of Kj , and every k-subset in Kj contains the same number
of t-subsets in Ti .
Proof. Let T ∈ Ti occur exactly in the k-subsets K1 , K2 , . . . , Ks ∈ Kj . Then
any other t-subset T ∈ Ti can be obtained as T = h(T ) for some h ∈ H, and
T occurs in the k-subsets h(K1 ), h(K2 ), . . . , h(Ks ) ∈ Kj . The first part of the
theorem now follows from the fact that h induces bijections on the t-subsets
and on the k-subsets. The proof of the second part is analogous.
9.2 Designs 279
Definition 9.10. A decomposition is tactical if the numbers sij and tij are
independent of the choices of p ∈ Pi and B ∈ Bj .
Associated with a tactical decomposition are the two m×n matrices S = (sij )
and T = (tij ).
Let H be a group of automorphisms of a given incidence structure X . The
H-decomposition of X is the decomposition of the blocks and the points into
H-orbits. The following theorem resembles Theorem 9.7.
Theorem 9.11. Let X be an incidence structure and let H ≤ Aut(X ). Then,
the H-decomposition of X is tactical.
Proof. Consider an arbitrary pair i, j and select p, p ∈ Pi arbitrarily. Let
{B1 , B2 , . . . , Bsij } = {B ∈ Bj : (p, B) ∈ I} and {B1 , B2 , . . . , Bs } = {B ∈
ij
Bj : (p , B) ∈ I}. Because Pi is an H-orbit, there exists an h ∈ H with
p = h(p). Because an automorphism by definition maps flags onto flags,
p = h(p) is incident with h(B1 ), h(B2 ), . . . , h(Bsij ) ∈ Bj , and thus sij ≤ sij .
Similarly, p = h−1 (p ) gives sij ≤ sij and hence sij = sij . The proof for tij is
analogous with the roles of the points and blocks interchanged.
If H is trivial, then we get a discrete decomposition where the blocks
and points are partitioned into singletons (sets with one element); the ma-
trices S and T associated with such a tactical decomposition coincide with
an incidence matrix. If H is a nontrivial group – in most studies where this
approach is used, |H| = p is a prime so that the orbits are of size 1 or p – the
classification consists of two steps:
282 9 Prescribing Automorphism Groups
where the Kronecker delta δi1 i2 is 1 if i1 = i2 and 0 otherwise (this takes care of
the two situations where two points are from the same orbit and from different
orbits in the decomposition). We also know the block sizes: for 1 ≤ j ≤ n,
m
tij = k, (9.3)
i=1
but it turns out that (9.3) is redundant given (9.1) and (9.2); this can be
shown with a proof analogous to that of [458, Theorem 3.3]. Note however,
that although (9.3) is redundant for complete m×n matrices, these additional
equations may be useful in pruning partial matrices that cannot be extended
to a full matrix. For t-designs with t ≥ 3, equations may be stated in an
analogous way.
From a computational perspective the construction of a matrix T amounts
to solving a quadratic system of equations, for example, using row-by-row
backtrack search (cf. Sect. 6.1.1). The normalizer NSym(P )×Sym(B) (H) induces
symmetry to the equation system by acting on the orbits P1 , P2 , . . . , Pm and
B1 , B2 , . . . , Bn . Isomorph rejection on partial solutions is typically required to
eliminate redundant work in solving the system.
Example 9.12. We yet again consider the classification of 2-(7, 3, 1) designs.
Let P = {1, 2, 3, 4, 5, 6, 7} and B = {B1 , B2 , B3 , B4 , B5 , B6 , B7 }. Let H =
(1 2 3)(4 5 6)(7)(B1 B2 B3 )(B4 B5 B6 )(B7 ) be the prescribed group of
automorphisms. Accordingly, there are 3 orbits on the points and 3 orbits on
the blocks:
P1 = {1, 2, 3}, B1 = {B1 , B2 , B3 },
P2 = {4, 5, 6}, B2 = {B4 , B5 , B6 },
P3 = {7}, B3 = {B7 }.
9.2 Designs 283
Likewise there are three possible choices for the 1,2 entry, and so forth. One
possible complete refinement of the matrix T is
⎡ ⎤
011 100 0
⎢1 0 1 0 1 0 0⎥
⎢ ⎥
⎢1 1 0 0 0 1 0⎥
⎢ ⎥
⎢1 0 0 1 0 0 1⎥.
⎢ ⎥
⎢0 1 0 0 1 0 1⎥
⎢ ⎥
⎣0 0 1 0 0 1 1⎦
000 111 0
284 9 Prescribing Automorphism Groups
In total there are 27 possible refinements, each leading to the unique Fano
plane.
Classification results obtained by this approach include [98, 103, 140, 259,
260, 334, 336, 399, 472, 544, 546, 582]; in a large number of other studies this
method has been used to obtain existence rather than classification results.
In the case of STS(21), the possible numbers for fixed points are thus f ∈
{0, 1, 3, 7, 9}. We obtain the following prime factorizations for each possible
number of moved points:
21 − 0 = 21 = 7 × 3,
21 − 1 = 20 = 5 × 22 ,
21 − 3 = 18 = 32 × 2,
21 − 7 = 14 = 7 × 2,
21 − 9 = 12 = 3 × 22 .
73 , 37 , 11 54 , 11 210 , 13 36 , 13 29 , 17 72 , 17 27 , 19 34 , 19 26 .
We are left with nine prime order groups in S21 ; each of these groups ac-
tually occurs as a group of automorphisms of an STS(21). Table 9.1 shows
the problem sizes for each of the nine prime order groups. The
original classi-
fication problem with no prescribed automorphisms has 21 2 = 210 2-subsets
21
of points to be covered and 3 = 1,330 candidate 3-subsets to cover these.
Looking at the normalizer orders in Table 9.1, it is clear that at least
for groups with order 2 and 3 isomorph rejection is required to eliminate
normalizer-induced symmetry from the Kramer–Mesner search. Thus, there
are essentially three subproblems that need to be solved to obtain a classifi-
cation of the STS(21) with a nontrivial automorphism group.
1. Constructing the STSs using the Kramer–Mesner method for each H.
2. Isomorph rejection with respect to NS21 (H) on partial solutions to the
Kramer–Mesner system.
3. Isomorph rejection for constructed STSs.
286 9 Prescribing Automorphism Groups
Example 9.18. For group type 11 54 one example of a seed is as follows, let
H = (2 3 4 5 6)(7 8 9 10 11) · · · (17 18 19 20 21), T = {1, 2}, and let S
be given by the incidence matrix in Fig. 9.3. The point and block orbits are
separated by horizontal and vertical lines, respectively. Note that T contains
one point fixed and one point moved by H. Furthermore, each point in T
occurs in r = 10 blocks.
Given a seed (H, T, S) as input, the second layer extends (H, T, S) in all
possible ways into an STS(21), X = (V, B), such that S ⊆ B and H ≤ Aut(X ).
This is an instance of Exact Covers on H-orbits of 2- and 3-subsets of V ,
and can be solved using techniques from Sect. 5.2.
The third layer uses generation by canonical augmentation to reject iso-
morphs. An input to the layer consists of a generated STS(21), X , and the
associated parent seed p(X ) = (H, T, S). To apply generation by canonical
augmentation, we must associate a canonical parent m(X ) with every STS(21)
having a nontrivial automorphism group.
Let κ be a canonical labeling map for the action of S21 on STS(21) over
V . Let X be the STS(21) given as input. First, let X̂ = κ(X )X . Identify a
group Ĥ conjugate to an eligible prime order group among the subgroups
of Aut(X̂ ) – such a group must clearly exist based on Theorem 9.1 and our
analysis of the prime order automorphisms of STS(21). For example, take the
group generated by the minimum prime order element in Aut(X̂ ) with respect
288 9 Prescribing Automorphism Groups
Example 9.19. For Ĥ of type 13 36 we let T̂ consist of the 3 points fixed by Ĥ.
Accordingly, the seed classification algorithm classifies all such seeds (H, T, S)
for H of type 13 36 by completing one point p fixed by H at a time so that p
occurs in r = 10 blocks in S. Example 9.17 gives one example of such a seed.
Example 9.20. For Ĥ of type 11 54 we let T̂ consist of the point fixed and
the minimum point moved by Ĥ. The seed classification algorithm proceeds
by first completing the fixed point and then considering all possible ways to
complete a moved point. Example 9.18 gives one example of such a seed.
9.2 Designs 289
This completes the outline of the backtrack layers. Obviously the algo-
rithm is analogous to the one described in Sect. 6.1.3, only now we have the
prescribed group H and the point set T inducing S complicating the im-
plementation. Also, the entire algorithm operates on H-orbits of 3-subsets
instead of individual 3-subsets.
The main implementation challenge is that isomorph rejection must be
performed with respect to the normalizer NS21 (H) in classifying the seeds.
Also, the implementation of Algorithm 4.7 and the test (4.13) require check-
ing whether m(X ) and p(X ) are in the same orbit of Aut(X ). Furthermore,
computation of the automorphism group Aut(H, T, S) = {g ∈ NS21 (H) :
gT = T, gS = S} is required if automorphisms of the parent are employed to
reject isomorphic siblings in Algorithm 4.7. A more detailed discussion of the
algorithm implementation can be found in [299].
There are 62,336,617 nonisomorphic STS(21) with a nontrivial automor-
phism group; Table 9.2 partitions these into classes based on the order of the
automorphism group and the types of prime order groups admitted. In a row
of the table there is one letter for each such class.
|Aut(D)| 37 73 11 54 13 29 13 36 17 27 17 72 19 26 19 34 N
2 a b c 60,588,267
3 a b c 1,732,131
4 ab a abc 11,467
5 a 1,772
6 abc ade dfg bfh cgi ehi 2,379
7 a 66
8 ab a abc 222
9 ab abc a 109
12 ab acd ce cd abcde d 85
14 a a 14
16 a a a 12
18 abc ad abcdef bce f bf 33
21 a ab bc c 10
24 abc abde def ad abcdef 19
27 a a 3
36 a b ab b ab 5
42 a ab a bc bc c 7
48 a a a a 2
54 a a a a 1
72 ab ab ab a ab 5
108 a a a a a 1
126 ab ab a ab b 2
144 a a a a a 1
294 a a a a 1
504 a a a a 1
882 a a a a a 1
1,008 a a a a a a 1
Classification results for cyclic S(3, 4, v) appear in [236] for v = 8, 14, 16,
in [28] for v = 10, in [477] for v = 20, and in [193] for v = 22 (the classification
reported in [158] is erroneous).
Other studied families of Steiner systems include the S(2, 4, v) family,
where a complete classification of the systems admitting a nontrivial auto-
morphism group has been obtained in [334] for v = 25 (see also [549] for the
complete classification) and in [336] for v = 28. In [127] the cyclic S(2, 4, v)
and S(2, 5, v) are classified for v ≤ 52 and v ≤ 65, respectively.
Other studies focusing on classification of Steiner systems with prescribed
automorphisms include [337] for the family S(2, 5, 41).
Among other types of BIBDs, in [581] the cyclic 2-(13, 5, 5) designs are
classified and in [191] the dicyclic 2-(v, 4, 2) designs are classified for v ≤
22. In [160] a family of quasi-derived 2-(28, 12, 11) designs with prescribed
automorphisms is classified.
9.3 Codes 291
9.3 Codes
Ax ≥ 1, (9.4)
where the 0-1 column vector x and the all-one vector have length s. Since
we are generally interested only in the covering codes with minimum car-
dinality, we wish to minimize cx over all solutions of (9.4), where c =
[|W1 | |W2 | · · · |Ws |]. Consequently, we have instances of Weighted Set
Covers.
W1 = {000},
W2 = {001, 010, 100},
W3 = {011, 101, 110},
W4 = {111},
for a set of vectors g and all α ∈ Fq , such codes are more conveniently con-
sidered in a different framework. Equation (9.5) implies that the orbits under
the group H are the cosets of a linear code (generated by the vectors g), so
all orbits will have length q k for some k, the dimension of the linear code.
As we have seen in Sect. 2.3.3, the codewords in a coset of a linear code
can be detected by calculating syndromes: if H is an (n − k) × n = r × n
parity check matrix of the linear code, then HxT = HyT if and only if x and
y are in the same coset. For clarity, we assume in the sequel that H has full
rank (but essentially the same result is obtained even if this assumption is
relaxed).
Codes of type (9.5) can be represented as a set of syndromes S and the
matrix H, which gives the method its name, the matrix method. Moreover,
from S and H, it is fairly straightforward to directly calculate the minimum
distance and the covering radius of the code, as we will now see.
Definition 9.23. We say that S ⊆ Frq R-covers Frq using H if every column
vector in Frq can be represented as a sum of one column vector of S and a
Fq -linear combination of at most R columns of H.
In [415] the limits for what can currently be done with respect to classifying
Latin squares with a nontrivial isomorphism group have been reached by using
state-of-the-art algorithms and an extensive amount of computing time. For
1-factorizations of complete graphs, however, it should be possible to settle
the next open instance.
In Sect. 10.1 we discuss the main types of errors that can occur in a
computer-aided classification, and give an overview of general strategies for
reducing the error probability (which, unfortunately, always will be nonzero).
Consistency checking based on the basic principle of double counting is con-
sidered in detail in Sects. 10.2 and 10.3, and some related general observations
are presented in Sect. 10.4.
Equation (10.1) is called a mass formula and can clearly be used as one part
of a double counting argument whenever the value of N also can be obtained
in an alternative way.
For some types of objects the total number of labeled objects can be
obtained analytically. Examples of such objects considered in this book are
self-dual linear codes and Latin squares. For the number of self-dual codes
there are rather simple formulae [497]; unfortunately, the known formulae for
300 10 Validity of Computational Results
the number of Latin squares [203, 440, 531] appear to be of little practical
importance.
The fastest known method for counting the total number of Latin squares
is not purely analytic but involve some classification [420, 421]; this method is
still orders of magnitude faster than a complete classification of Latin squares.
Due to the close relationship between Latin squares and 1-factorizations of
complete graphs, apparent from the discussion in Chap. 8, a similar counting
approach is applicable to the latter objects as well [162].
In the majority of cases that we have encountered earlier in this book
there is no obvious way of counting the total number of labeled objects that is
essentially different from and faster than carrying out a complete classification
up to isomorphism. Fortunately, a computer-aided classification produces in
many cases as a by-product data that can be used for double counting. We
illustrate this with two examples.
Example 10.1. In the classification of Steiner triple systems in Sect. 6.1.3, the
designs are obtained from a set of nonisomorphic seeds, Si . Now let Ei denote
the total number of completions of Si to a Steiner triple system, a number
that is easily recorded during the search.
By the orbit-stabilizer theorem, the total number of labeled Steiner triple
systems of order v with one seed individualized is
v! · Ei
N = . (10.2)
i
|Aut(Si )|
In each labeled Steiner triple system there are b ways to individualize a seed,
so
N = bN,
where N and N are from (10.1) and (10.2), respectively.
The classification of Steiner triple systems of order 19 in [305] was checked
for consistency in this manner.
2n−1 (n − 1)! · Ei
. (10.3)
|Aut(Ci )|
To obtain the total number of all codes, one should sum this expression over
all i and take the expression twice whenever |Ci | > M/2. Namely, assuming
(7.1), we do not otherwise count the codes with more 1s than 0s in the first
coordinate.
10.3 Double Counting by Identifying Subobjects 301
The order of the automorphism group of the unique (5, 3, 3)2 code is 8, so
(10.1) gives
25 × 5!
N= = 480,
8
and the two counts agree.
As these examples show, this method is widely applicable, and it deserves
much more attention than it has received so far in the literature. One more
study where the method has been used could be mentioned: classification of
designs with prescribed automorphism groups (as described in Sect. 9.2.3)
[299].
If all the other values in (10.1) are known except N1 , then N1 and thereby
i Ni can be determined. This means that is we know the value of N , then
a classification of the objects with a nontrivial automorphism group makes
it possible to count the total number of nonisomorphic objects. This can be
seen as one motivation for classifying objects with nontrivial automorphism
groups.
|G| · N (X)
(10.4)
|Aut(X)|
where the sum considers exactly one object Y from every isomorphism class
of objects with property Q.
Note that by summing (10.4) and (10.5) over all isomorphism classes of
objects with property P , we arrive at the results of Sect. 10.2.
Equations (10.4) and (10.5) can be combined into [151]
S(Y, X)
N (X) = |Aut(X)| . (10.6)
|Aut(Y )|
Y
Example 10.3. Consider Example 7.7, where the three (5, 2, 3)2 codes
with automorphism groups of order 24, 48, and 240, respectively, are aug-
mented to get the unique (5, 3, 3)2 code
00000
00111
11011
The number of ways to augment the three two-word codes to a (5, 3, 3)2
code is 6, 6, and 0, respectively.
If, respectively, the first, second, or the third codeword of the (5, 3, 3)2
code is removed, we get the first, second, and the first two-word code as a
subcode. Now we have all information needed for applying (10.6), once for
each of the subcodes:
2
6 = 24 × ,
8
1
6 = 48 × ,
8
0
0 = 240 × .
8
Thus, equality holds in (10.6) in all three cases.
The two counts (10.4) and (10.5) can now be used to perform consistency
checks at a number of levels of sensitivity. The basic idea is that we look
at objects with property P or Q encountered in a search. Assuming that
isomorph rejection is employed, each object encountered is either rejected or
accepted as the unique representative of its isomorphism class.
For each accepted object X with property P , we keep track of all the
objects Y encountered that have property Q and X as a subobject. From
these objects we can typically determine N (X) – in many cases N (X) is
simply the number of distinct Y encountered. Once N (X) is available, the
count (10.4) for the isomorphism class of X can be evaluated.
On the other hand, the second count (10.5) is accumulated across different
isomorphism classes. Whenever an object Y with property Q is accepted, we
determine all the subobjects X ⊆ Y with property P . For each isomorphism
class of subobjects, we increment the count (10.5) for the isomorphism class
by |G|/|Aut(Y )| · S(Y, X).
When the search terminates, the two counts (10.4) and (10.5) should agree
for every isomorphism class of objects with property P .
A straightforward approach to implement this counting technique is to
associate two counters to every certificate of an isomorphism class of objects
with property P . Whenever a counter for an isomorphism class needs to be
accumulated, the correct counter is found by computing the certificate of an
object in the isomorphism class. This approach clearly requires that we have
enough memory available to store the certificates of all isomorphism classes.
Furthermore, computing a certificate can be expensive.
To obtain a consistency check with less intensive resource requirements,
we can trade sensitivity to errors for performance. A simple strategy is to
replace a certificate with an isomorphism invariant that is faster to evaluate
and that assumes less values in the relevant isomorphism classes, resulting in
a smaller memory requirement. An extreme example is an invariant that has
the same value for all isomorphism classes – in this case the consistency check
304 10 Validity of Computational Results
reduces to checking whether (10.4) and (10.5) are equal when summed over
all isomorphism classes of objects with property P .
A slightly different approach to trading sensitivity for a less heavy mem-
ory requirement can be obtained as follows. A set of counters, each associated
with a certificate (or invariant value), can be viewed as a multiset F of cer-
tificates, where the multiplicity of each certificate is equal to the value of the
counter. Now, instead of representing the multiset F explicitly, we maintain
only a hash value H(F). Accordingly, instead of comparing two sets of coun-
ters individually, a consistency check is carried out by testing hash values for
equality. To accumulate a hash value, the hash function H should be equipped
with a commutative operation +H such that
11.1 Preliminaries
Our objective in this section is to give a review of the central complexity-
theoretic concepts and tools used in what follows. Standard texts on complexity
308 11 Computational Complexity
theory where a more extensive treatment can be found include [201, 471]. More
advanced or broader treatises include [262, 361].
Computational complexity theory studies computational problems with
the ultimate aim of characterizing the computational resources – for example,
time and storage space – required to solve a problem. Intuitively, a problem
consists of a collection of finite problem instances. Each problem instance has
a solution that one wishes to compute.
Problem 11.1. (Clique) Given a graph G and a nonnegative integer k, de-
cide whether G contains a clique of size k.
An instance of Clique is a pair (G, k). The solution to (G, k) is “yes” if G
contains a k-clique and “no” otherwise.
To accommodate algorithms and computation into this intuitive setting,
we must first represent both the problem instances and the solutions in a
manner that is suitable for computation. In practice it is customary to use
(binary) strings, where the intuitive analog is a sequence of bits stored in
computer memory.
Let Σ be a finite alphabet of symbols, say Σ = {0, 1}, and denote by Σ ∗
the set of all finite strings over Σ. Some basic operations on strings are as
follows. For x ∈ Σ ∗ we write |x| for the length of x. For x, y ∈ Σ ∗ we write xy
for the concatenation of x and y. For x ∈ Σ ∗ and a nonnegative integer k we
write xk for the string obtained by concatenating k copies of x. We assume
that Σ ∗ is lexicographically ordered first by length and then by lexicographic
order on strings of equal length.
A formally precise way to define a computational problem is now as follows.
Definition 11.2. A problem π associates to every instance x ∈ Σ ∗ a non-
empty set π(x) ⊆ Σ ∗ of solutions.
A large part of complexity theory deals with problems admitting a simple
“yes” or “no” answer, such as Clique.
Example 11.4. Consider the graph G in Fig. 2.1 and k = 3. The adjacency
matrix of G is given in Example 2.6, from which we obtain the string
010000101001010101001010000100011000
of length 62 = 36 and 36 = 10100. Thus, with the previous assumptions, the
ordered pair (G, k) is represented as the string
1111101010001000010100101010100101000010001100011.
by the maximum length of all register contents when concatenated into one
binary string, where the maximum is taken over all configurations of the RAM
during the computation. Again a practical intuition suffices – the running time
of an algorithm is the number of CPU instructions executed and the space
usage is the maximum number of memory bits required by the algorithm.
The resource usage of an algorithm is studied as a function of the instance
size |x|.
Before proceeding further we now briefly return to the issue of string rep-
resentations. As long as we are only interested in very coarse properties, such
as whether a problem is solvable by a polynomial-time algorithm or not, the
precise details of the string representation are irrelevant. In the context of
polynomial-time computability we only have to specify the string representa-
tion so that it is determined up to polynomial variance in length. For example,
in this case it becomes irrelevant whether a graph is represented by the ad-
jacency matrix or as a list of edges – a polynomial-time algorithm exists in
one representation if and only if it exists in the other. What we do have to
worry about, however, are superpolynomial differences in length. A concrete
example in the context of this book is that a linear code can be represented
succinctly via a generator (or parity check) matrix, which admits a natural
string representation that can be exponentially shorter than a string explicitly
listing all the codewords in the code.
These observations withstanding, we assume that an explicit string rep-
resentation (as opposed to a succinct representation) is always used unless
indicated otherwise. In more precise terms, graphs are represented by listing
an adjacency matrix, incidence structures by listing an incidence matrix, and
unrestricted codes by explicitly listing all the codewords – a q-ary word of
length n is represented using nlog2 q bits. A nonnegative integer m is rep-
resented in binary as m; in some cases the unary representation 1m is used
and this is explicitly indicated. Ordered pairs of strings are formed using the
pairing construction (x, y) → 1||x|| 0|x|xy. Sets and tuples of strings are
formed by applying the pairing construction repeatedly.
Having properly set up the basics, we now proceed to define the central
concepts and tools employed.
In general it is very difficult to characterize the computational resources
that are required to solve a problem. To combat this obstacle, complexity
theory uses a somewhat indirect set of tools in dividing problems into different
types with respect to computational difficulty. Central concepts in this respect
11.1 Preliminaries 311
In what follows we assume that whenever only decision problems are con-
sidered, reducibility refers to the existence of a polynomial-time transforma-
tion; otherwise reducibility refers to polynomial-time Turing reducibility.
Reducibility is transitive: if π1 reduces to π2 and π2 reduces to π3 , then
π1 reduces to π3 .
5 0 1 2 3 4
0 5 2 3 4 1
1 2 5 4 0 3
2 3 4 5 1 0
3 4 0 1 5 2
4 1 3 0 2 5
Analogously, a 1-factorization of the complement of a 3-regular graph H
of order n can be represented as a partial symmetric Latin square L with
constant diagonal and side n, where the entries corresponding to 1s in an
adjacency matrix of H are undefined, and all other entries contain one of the
11.2 Completion Problems 315
Lemmata 11.25 and 11.27 give the following embedding result [111].
Theorem 11.28. For any regular graph G of even order n and any even
m ≥ 2n there exists an LB(G; m, m). Moreover, such an LB(G; m, m) can be
computed from G in time polynomial in m.
Proof. Apply Lemma 11.25 to obtain an LB(G; m, n), and then extend it step
by step into an LB(G; m, m) using Lemma 11.27. A system of distinct repre-
sentatives guaranteed by Theorem 11.26 can be found in time polynomial in
m using a maximum matching algorithm for bipartite graphs (see, for exam-
ple, [331]): first find an arbitrary system of distinct representatives and then
transform it into a system containing all critical elements using the lemma in
[393, p. 399].
Example 11.33. Figure 11.1 illustrates a partial STS(15) resulting from the
construction in the proof of Theorem 11.32 when applied to the LB(K4 , 8, 8)
in Example 11.24. The partial symmetric Latin square L used in the con-
struction is also displayed.
0 2 1 6 3 4 5
2 1 0 5 6 3 4
1 0 2 4 5 6 3
6 5 4 3
3 6 5 4
4 3 6 5
5 4 3 6
Example 11.35. Figure 11.2 illustrates a partial STS(15) resulting from the
construction in the proof of Theorem 11.34 when applied to the LB(K4 , 8, 8)
in Example 11.24.
y0
y1
y2
y3 0101010 000000 1000000100100100 000000
y4 0100101 000000 0100100000010010 000000
y5 0011001 000000 0010010010000001 000000
y6 0010110 000000 0001001001001000 000000
x0 0000000 111000 1111000000000000 000000
x1 0000000 100110 0000111100000000 000000
x2 0000000 010101 0000000011110000 000000
x3 0000000 001011 0000000000001111 000000
x4 0000000 000000 1000100010001000 111000
x5 0000000 000000 0100010001000100 100110
x6 0000000 000000 0010001000100010 010101
x7 0000000 000000 0001000100010001 001011
Turning now to codes, Theorem 11.34 together with the second Johnson
bound (Theorem 2.88) implies that it is an NP-complete problem to decide
whether a given (n, M, d)2 code of constant weight w can be augmented to
an (n, M + 3, d)2 code of constant weight w by adding new codewords. For
illustration, note that the rows in Fig. 11.2 define the codewords of a constant
weight code.
For unrestricted error-correcting codes there are two basic problems as-
sociated with exhaustive generation: the problem of extending a given code
by adding new coordinates so that given distance constraints are met, and
the problem of augmenting a given code with new codewords so that given
distance constraints are met.
One example of an NP-completeness result is as follows. Observing that
a 1-factorization of K2u corresponds to a resolution of the unique 2-(2u, 2, 1)
design, and hence, to a (2u−1, 2u, 2u−2)u OE code by Theorem 3.82, Theorem
11.29 implies that it is an NP-complete problem to decide whether a given
code can be extended to an OE code by adding 3 new coordinates.
10 | 01010101 · · · 0101,
01 | 01010101 · · · 0101,
10 | 10101010 · · · 1010,
01 | 10101010 · · · 1010.
Proof. The problem is in NP because the distance bound for a given word
x can be verified in time polynomial in n and |C|. To establish complete-
ness, we exhibit a polynomial-time transformation from 3-Satisfiability.
Let C = {C1 , C2 , . . . , Cm } be a set of m clauses of size 3 over a set of
k variables {v1 , v2 , . . . , vk }. Without loss of generality we can remove any
clause(s) containing a pair {vi , v̄i } of complementary literals. Similarly, we
can assume k ≤ 3m. We construct from C a binary code C ⊆ Z22n of length
2n = 2k + 2 as follows. First, include the words in Y to the code. Then,
for every clause Cj include the word z(Cj ) = (z(Cj )1 , z(Cj )2 , . . . , z(Cj )2n )
defined for i = 1, 2, . . . , n by
322 11 Computational Complexity
⎧
⎨ z(Cj )2i−1 = 0, z(Cj )2i = 0 if i = n or vi ∈ Cj ,
z(Cj )2i−1 = 1, z(Cj )2i = 1 if v̄i ∈ Cj ,
⎩
z(Cj )2i−1 = 0, z(Cj )2i = 1 otherwise.
We have now seen that many completion problems for combinatorial ob-
jects are NP-complete or beyond, providing evidence that the completion
problems for partial objects are computationally challenging. What should
be explicitly pointed out, however, is that essentially all of the hardness re-
sults concern only very specific types of partial objects, which may or may
not be encountered as partial solutions during exhaustive generation with
backtrack search. Consequently, one should be careful when making claims on
the hardness of exhaustive generation based on the complexity of completion
problems. A case in point occurs with Latin squares. In general, the problem
of deciding whether a partial Latin square with some entries undefined can
be completed is NP-complete [112, 172]. However, it is a classic result that
a k × m Latin rectangle with k < m can always be extended to a complete
m × m Latin square, see, for example, [376, Chap. 17]; for algorithms, see
[331]. Thus, if we generate Latin squares row by row, the hard instances in
[112, 172] are never encountered. In this respect complexity results for com-
pletion problems provide evidence of computational difficulty only for specific
exhaustive generation techniques, such as point-by-point or block-by-block
generation of BIBDs. Even in these cases it is not always clear whether the
difficult partial objects are encountered in practice due to the heuristics and
pruning techniques employed.
Let V be the vertex set of the factors in F, and let W = {wij : i ∈ {0, 1, 2}, j ∈
{1, 2, . . . , m}} be a set disjoint from V . Let the point set of D be V ∪ W .
Because 3m ≡ 3 (mod 6), there exists an STS(3m). Construct an STS(3m)
over the point set W using, say, Example 2.49. Include m copies of each
block of the STS into D. Then include the block {u, v, wij } for all i = 0, 1, 2,
j = 1, 2, . . . , m, and u, v ∈ V for which {u, v} ∈ E(Fi ) holds.
Each block is clearly incident to 3 points, so to establish that D is a BIBD
with the stated parameters it remains to check that every pair of distinct
points occurs in m blocks. For pairs with both elements in W this is clear.
For pairs with both elements in V this follows from the fact that each such
pair occurs as an edge in exactly one Fi . For pairs with one element in both
V and W , observe that Fi is m-regular.
Let g : V → V be an isomorphism of F(G) onto F(G ). By the construc-
tion of g in the proof of Lemma 11.46 we can assume that g takes Fi onto Fi
for all i = 0, 1, 2. By using always the same STS for the same value of m, and
implementing the transformation D so that wij → wij is an isomorphism of
STSs used for the same value m, we have that g extends to an isomorphism
of D(F(G)) onto D(F(G )) by setting g(wij ) = wij
for all i = 0, 1, 2 and
j = 1, 2, . . . , m. Thus, F(G) = F(G ) implies D(F(G)) ∼
∼
= D(F(G )).
To reconstruct F(G) up to isomorphism from D(F(G)), observe that the
only repeated blocks in D(F(G)) are blocks of the STS, which enables us to
identify W . Selecting a wij ∈ W and looking at all the blocks containing wij
but not contained in W , we obtain Fi . Letting wij vary over W , we obtain
F(G). From F(G) we can reconstruct G by Lemma 11.46.
The transformations are clearly computable in time polynomial in the
input size.
can be replaced with a set of disjoint STSs, in which case a pair-closure argu-
ment allows us to reconstruct W ; see [126].
We now proceed to equivalence problems for codes. Equivalence of constant
weight codes is induced by the action (3.9) of Sq Sn restricted to the group
in Theorem 3.55; for binary constant weight codes, equivalence coincides with
Definition 2.99.
In the case of constant weight and unrestricted codes, the graph isomor-
phism completeness results are almost immediate corollaries of Theorem 11.47.
weight codes in question have the property that the number of 1s in every
coordinate is 3 and the number of 0s is 6m − 2 > 3. Thus, the constant
weight code can be reconstructed after arbitrary permutation of the coordinate
values.
Note that in the last two theorems graph isomorphism completeness holds
also in the restricted case when the code is equidistant. Furthermore, the
codes in Theorem 11.51 are optimal as constant weight codes by the second
Johnson bound (Theorem 2.88).
Linear codes given by a generator matrix form a natural example of objects
whose isomorphism problem admits a polynomial-time transformation from
graph isomorphism [474] but it is not known whether the problem is graph
isomorphism complete. We give here an alternative proof to that in [474] for
hardness of Linear Code Equivalence.
The cycle matroid M(G) of a graph G is the set system with point set
E(G) that consists of all subsets of E(G) that do not contain a cycle in G.
A graph G is k-connected if no deletion of at most k − 1 vertices results in a
disconnected graph. The following theorem is a standard corollary to Whit-
ney’s 2-isomorphism theorem [605], which characterizes the graphs that have
isomorphic cycle matroids. A more recent account is given in [470, Sect. 5.3].
Theorem 11.53. For 3-connected graphs G and G we have G ∼
= G if and
only if M(G) ∼
= M(G ).
The cycle space C(G) of a graph G is the dual of the binary linear code
generated by the rows of an incidence matrix of G.
Lemma 11.54. For graphs G and G we have C(G) ∼
= C(G ) if and only if
∼
M(G) = M(G ).
Proof. Let C(G) be the set system over E(G) that consists of all subsets of
E(G) that form a cycle in G. For all sets I ⊆ E(G) we have I ∈ M(G) if and
only if no set in C(G) is a subset of I. Thus, M(G) and C(G) determine each
other.
|E(G)|
Associate with every vector x ∈ F2 the set X = X(x) ⊆ E(G) of
edges corresponding to the 1s in x. We have x ∈ C(G) if and only if X defines
a subgraph of G where all vertices have even degree. Observe that each set
X ⊆ E(G) defining an even-degree subgraph of G is a union of edge sets of
cycles in G. Moreover, the nonempty minimal such sets X are the edge sets
of cycles in G. Thus, C(G) and C(G) determine each other.
Theorem 11.55. There exists a polynomial-time transformation from Graph
Isomorphism to Linear Code Equivalence.
Proof. A graph G with n ≥ 3 vertices can be transformed into a 3-connected
graph H in a reconstructible manner by introducing three disjoint copies of
Kn into the graph, and connecting each vertex of G by edges to correspond-
ing vertices in each of the complete graphs Kn . Let the generator matrix
11.3 Isomorphism Problems 329
Listing and classification problems differ from the types of problems dis-
cussed earlier in this chapter in two respects when resource usage of algorithms
is considered. First, it is not immediately clear what should be regarded as an
efficient algorithm in terms of running time. Many natural listing and clas-
sification problems produce an output whose size grows exponentially in the
input size. Thus, “time polynomial in the input size” as the definition for
tractable computation must be altered to accommodate the potentially large
size of the output. Second, the space usage of an algorithm requires attention
because some algorithms require access to objects output earlier and some
do not. In the latter case it is unreasonable to include the entire output of
an algorithm in the space requirement. To this end, we assume that a listing
algorithm reports each generated object to be output by executing a spe-
cial instruction whose parameters involve the area of memory (in the RAM
model, a sequence of RAM registers) where the object resides; the instruction
takes one time step and has otherwise no effect. The execution of the output
instruction is called an output event in what follows.
A number of notions of efficiency have been proposed for listing and clas-
sification algorithms; cf. [173, 210, 211, 283, 511, 568, 592].
polynomial time The running time of the algorithm is bounded by a poly-
nomial in the instance size and the size of the solution. Typically a stronger
variant is considered where the running time bound is linear in the number
of objects, and polynomial in the instance size.
332 11 Computational Complexity
polynomial delay The delay from the start to the first object output event,
and thereafter the delay between any two consecutive object output
events, is bounded by a polynomial in the instance size.
constant delay The delay from the start to the first object output event is
bounded by a polynomial in the instance size, after which the delay be-
tween any two consecutive object output events is bounded by a constant.
Constant-delay algorithms are alternatively called loopless algorithms. A
weaker variant is to require constant amortized time (CAT); that is, the
time period between the first and the last object output events is bounded
by a constant times the number of objects output.
polynomial space The space usage of the algorithm is bounded by a poly-
nomial in the instance size.
All listing and classification problems studied in this book have the prop-
erty that if one is given an object in an explicit representation – as opposed to
a succinct representation such as in Linear Error-Correcting Codes –
it is possible to verify in polynomial time that the object meets the required
properties. Also the size of each object is typically bounded by a polynomial
in the relevant parameters. (However, note that in the case of t-Designs this
requires that we consider the number of blocks b as a parameter because by
Theorem 2.38 the number of blocks in a t-design is not in general bounded
by a polynomial in the parameters t, v, k, λ.) Thus, it is natural to assume
that a listing problem λR is defined by a polynomially balanced, P-decidable
relation R.
The existence of efficient listing algorithms in this general setting is con-
nected with the P = NP question. The essential ideas in the following proof
appear in [359] (see also [211, Sect. 5.1]).
Proof. For the “if” direction, let π be any NP-complete decision problem,
and let R be an associated polynomially balanced, P-decidable relation. By
assumption, the associated listing problem λR admits a polynomial-time list-
ing algorithm, A. Using A we now describe a polynomial-time algorithm A
for π, from which P = NP follows. Given an instance x ∈ Σ ∗ of π, the al-
gorithm A simulates the operation of A for the maximum number of steps
permitted by the polynomial running time bound for A if the output of A is
going to be empty. If A has not halted when the simulation time runs out,
A declares x a “yes”-instance. Otherwise A looks at the output of A and
decides accordingly.
For the “only if” direction, let λR be an arbitrary listing problem defined
by a polynomially balanced, P-decidable relation R. Because of our assump-
tions on R, the following decision problem is in NP: given x ∈ Σ ∗ and w ∈ Σ ∗ ,
decide whether there exists a z ∈ Σ ∗ such that (x, wz) ∈ R. Consequently,
11.4 Classification Problems 333
(x, y), deciding whether there exists a z ∈ DR (x) lexicographically less than
y such that (y, z) ∈ E is in Σ2 . Thus, deciding canonicity is in Π2 , which
places deciding extendability into Σ3 . Because of the assumption P = NP
we have P = ∆i = Σi = Πi for all i = 1, 2, . . ., implying that canonicity and
extendability admit polynomial time algorithms.
for deciding whether a given partial solution can be completed into an object
to be listed. With appropriate assumptions on the size of the objects and the
structure of the backtrack search, such algorithm A employed as a bounding
function transforms the backtrack search into a polynomial-delay listing algo-
rithm. One problem with frequent combinatorial applications – cf. Sect. 11.2 –
that can be efficiently solved in this setting is as follows.
help of appropriate auxiliary data structures, from the current object in con-
stant (amortized) time. Thus, it is necessary that successive objects differ only
by a very small amount (on average), which makes such listing algorithms
closely connected with configuration graphs – the output of a constant-delay
(CAT) listing algorithm can be viewed as tracing a Hamiltonian path in an
appropriate configuration graph. Listing with prescribed, typically small, dif-
ferences between successive objects has been extensively studied under the
name combinatorial Gray codes [286], see [516, 608] for excellent surveys. To
mention one nontrivial example of constant-delay listing, it is possible to list
the linear extensions of a given partial order with constant delay [93, 330] (see
also [68, 493]). A technique for obtaining CAT listing algorithms is the ECO
method [23, 25, 26, 144].
Turning now to classification, the two main challenges in efficient classi-
fication are that we must have a means for producing candidate representa-
tives for the equivalence classes, and we must have a means for dealing with
the equivalence problem, which may not be at all straightforward in light of
Sect. 11.3.
We restrict the consideration to problems where the equivalence relation
on each set of objects to be classified can be viewed as being induced by the
orbits of a group action – this is clearly the case for the classification problems
in this book. Furthermore, without giving formally precise definitions (cf. [212]
and [528, Chap. 2]), we assume that the group action is computable in time
polynomial in the instance size: this includes group element recognition, taking
of products and inverses, and computing the action of a group element on an
object.
Apparently with only one exception to be discussed shortly, polynomial-
time classification algorithms are known only in cases where polynomial-time
algorithms are known for equivalence computations. Polynomial-time classifi-
cation algorithms can be divided roughly into two types based on the group
action inducing equivalence.
First, we have classification problems where the acting group inducing
equivalence has order at most polynomial in the instance size, whereby equiva-
lence computations can be achieved by exhaustive search on the acting group,
and the classification problem essentially reduces to the underlying listing
problem. For problems of this type, the main challenge is to improve upon
the obvious approach of listing followed by equivalence testing; for example,
by developing CAT or constant-delay algorithms. Classification problems for
necklaces and bracelets are excellent examples of problems of this type, see
[97, 192, 492, 512, 517, 588].
Second, we have classification problems where the group action inducing
equivalence has superpolynomial order, but where both the equivalence classes
are well understood and where polynomial-time algorithms are known for
equivalence computations. In the context of graphs, classifying the trees of
given (unary) order n up to isomorphism provides an excellent example of a
11.4 Classification Problems 337
- is self-dual.
Theorem 12.2. The code C
Proof. The 111 words w ∈ W . ⊆ F112 all have weight 12 and intersect pairwise
2
in two coordinates so the inner product of any two (not necessarily distinct)
words in W is 0. Hence all generators of C - are in C
- ⊥ , so C
- ⊆C- ⊥ , that is,
- - - ⊥
C is self-orthogonal. As dim(C) + dim(C ) = 112, in order to prove that C -
is self-dual, it suffices to prove that dim(C)- = dim(C - ) = 112/2 = 56. Since
⊥
-
dim(C) = dim(C), we can study the code C.
Consider an incidence matrix N of a projective plane. Then (for the mo-
ment carrying out operations over the integers)
(det(N))2 = det(NT N) = det(10I + J) = 112 × 10110
by (2.6). Hence |det(N)| = 11 × 1055 . On the other hand, by elementary row
and column operations – interchanging two rows; adding a multiple of a row
to another row; and corresponding operations for columns – it is possible to
transform the matrix into a diagonal integer matrix with the same absolute
value of the determinant. It is not difficult to see that a transformation into
a diagonal matrix is possible in this way, but to see that we can get a ma-
trix with integer entries is a little bit more trickier; a proof can be found in
[354, Appendix C] and many books on matrix algebra.
From the diagonal matrix we get the absolute value of the determinant
directly. Since
&111
|det(N)| = di = 11 × 555 × 255 ,
i=1
at least 111 − 55 = 56 of the di in the diagonal d1 , d2 , . . . , d111 must be odd.
But this means that if we carry out the elementary row and column operations
in F2 , we get a diagonal with at least 56 1s, and thereby dim(C) ≥ 56.
112
wt(c + c ) = wt(c) + wt(c ) − 2 ci ci
i=1
112
is applied repeatedly. The results follows as i=1 ci ci ≡ 0 (mod 2) by Theo-
rem 12.2.
We will now prove that the words in W are of minimum weight in C, and,
moreover, that there are no other minimum-weight codewords.
Proof. Assume that we have a codeword c ∈ W with wt(c) = 11. Select any
two distinct coordinates, i and j, for which ci = cj = 1. Now there is exactly
one word w ∈ W that intersects c in these positions and by Theorem 12.5 w
must intersect c in at least one more coordinate. Moreover, as w = c, there is
a coordinate k for which wk = 1 and ck = 0. Now we focus on the other ten
words in W that have a 1 in coordinate k. These must intersect c in different
coordinates, which all differ from the at least three coordinates where w and
c intersect. Hence wt(c) ≥ 13, a contradiction.
Theorem 12.8. For n ≡ 7 (mod 8), let C be an [n, (n − 1)/2, d]2 doubly-even
self-orthogonal code. Then, the weight enumerator of C has the form
W (x, y) = f7 (x, y)F (f8 (x, y), f24 (x, y)) + f23 (x, y)G(f8 (x, y), f24 (x, y)),
where
f7 (x, y) = x7 + 7x3 y 4 ,
f8 (x, y) = x8 + 14x4 y 4 + y 8 ,
f23 (x, y) = x23 + 506x15 y 8 + 1288x11 y 12 + 253x7 y 16 ,
f24 (x, y) = x4 y 4 (x4 − y 4 )4 ,
enumerator when A19 = 0 and Ai = 0 for exactly one i ∈ {12, 15, 16}, then for
the choices i = 12, 16 the weight enumerator gets negative coefficients, and for
the choice i = 15 the weight enumerator gets (many) noninteger coefficients.
We can actually get an even stronger result. If we set A15 = A19 = 0 and
solve (12.1), we get that
91054
A12 = α8 + ,
7
141 13011339
A16 =− α8 − ,
7 49
which has no solution that fulfills A12 , A16 ≥ 0. This result can be written in
a more comprehensive form by writing A19 as a function of A12 and A16 when
A15 = 0, cf. [96, 243]:
As we have seen, it is not necessary to eliminate all four cases for codewords
of weight 12, 15, 16, and 19, but one may restrict the search to weights 15
and 19. On the other hand, for weight 19 it turns out that we arrive at two
subcases that address existence of codewords of weight 12 and 16, respectively.
In the current approach, we are therefore bound to consider all four cases in
a complete proof.
Proof. A given row in R and any of the first 12 rows intersect in exactly one
column. Every 1 in a row in R contributes to two such intersections, so there
must be 12/2 = 6 1s in the row.
b1 + b3 + b5 = 111,
b1 + 3b3 + 5b5 = 165,
3b3 + 10b5 = 105.
b1 = 90, b3 = 15, b5 = 6.
To classify the PBD(15, {1, 3, 5}), we start by considering the blocks of weight
5.
Lemma 12.17. All six blocks of weight 5 in a PBD(15, {1, 3, 5}) with 111
blocks intersect pairwise in exactly one point, and every point occurs in exactly
two such blocks.
Proof. View the blocks as codewords of length 15, weight 5, and minimum
distance 8. The result follows from Theorem 2.88 (the second Johnson bound)
and the subsequent remarks.
Lemma 12.18. In a PBD(15, {1, 3, 5}) with 111 blocks, every point occurs in
exactly three blocks of weight 3.
Proof. Every point occurs together with 8 other points in the blocks of weight
5. It has to occur together with the final 15 − 8 − 1 = 6 points in the blocks
of weight 3, so every point must occur in three such blocks.
Using these lemmata, the PBD(15, {1, 3, 5}) with 111 blocks can be classi-
fied even by hand calculation. It turns out that there is a unique set of blocks
of weight 5, up to isomorphism; moreover, there is a unique choice for the
blocks of weight 3 given the blocks of weight 5. The unique PBD(15, {1, 3, 5})
with 111 blocks is presented in Fig. 12.4. In the sequel, we refer to the fifteen
points of this structure by D = {1, 2, . . . , 15}.
It is possible to make some further observations about how these blocks
can be completed to a putative projective plane of order 10. The blocks that
contain five points in the partial incidence matrix are pairwise intersecting in
this part, so they are pairwise nonintersecting in the rest of the points. These
6×6 = 36 points are denoted by E = {16, 17, . . . , 51}. All blocks of weight 3 in
the partial incidence matrix intersect the first six blocks in that part and the
rest of their points is therefore among the (60) points F = {52, 53, . . . , 111}.
Lemma 12.19. Every point in F occurs in exactly two blocks that intersect
D in three points.
350 12 Nonexistence of Projective Planes of Order 10
Proof. For a given point p ∈ F , let x and y denote the number of blocks that
contain p and intersect D in three points and one point, respectively. We then
obtain
x + y = 11,
3x + y = 15,
with the unique solution x = 2, y = 9.
Lemma 12.19 further implies that the blocks that intersect D in three
points can be completed in a unique way – any pair of such blocks that is
nonintersecting in the D part intersects in the F part. We now know the
contents of 15 rows and 21 columns of the incidence matrix.
Proof. A block that intersects D in one point intersects two of the first six
blocks in that point (Lemma 12.17). Moreover, the intersection of that block
with the other four of the first six blocks is in E, so it intersects E in 4 points.
Obviously, the block intersects F in 11 − 1 − 4 = 6 points.
The weight-16 case was settled by results of Carter [96] and Lam et al. [349].
Our treatment follows those sources and [243]. Some partial results were ob-
tained by Prince [490]. By now the reader should have a feeling for the vein
of this case as well.
b0 = 31, b2 = 72, b4 = 8.
Lemma 12.24. Every point occurs in exactly two of the eight blocks of weight
4 in a PBD(16, {2, 4})) with 111 blocks.
Proof. For a given point p, let x and y denote the number of blocks that
contain p and have weight 2 and 4, respectively. The point p occurs in 11
blocks and in 15 pairs of distinct points, so x + y = 11 and x + 3y = 15. The
unique solution is x = 9, y = 2.
If we take a set of eight blocks of weight 4, there is only one way of complet-
ing this set to a PBD(16, {2, 4}) by adding blocks of weight 2. The problem
of classifying the particular PBD(16, {2, 4}) is therefore essentially a problem
of classifying sets of eight blocks of weight 4 fulfilling Lemma 12.24, that is,
equireplicate constant weight error-correcting codes. Carter [96] showed that
there are six nonisomorphic such objects, which are presented in Fig. 12.5.
These can be obtained by slightly modifying either an algorithm for classify-
ing BIBDs (Sect. 6.1.1; v = 8, k = 2, b = 16, and r = 4 with inner products
of rows of the incidence matrix at most 1) or an algorithm for classifying
constant weight error-correcting codes (Sect. 7.1.3; an equireplicate (16, 8, 6)2
code with constant weight 4).
The numbering of the cases in Fig. 12.5 follows that of Carter [96] (to
which [349] refers), but note that a different order is used in [243]. The cor-
respondence between the cases considered is shown in Table 12.1. Carter [96]
eliminated Cases II to V and Case VI in part. Lam et al. [349] finally settled
the remaining cases.
We will now take a closer look at Cases I to VI. For reasons of space we
omit some of the details (which are essential for the best possible performance
of an implementation); the interested reader is referred to [96, 349].
After fixing the 16×8 matrix M16 for one of the Cases I to VI, the incidence
matrix to be completed can be divided into parts as shown in Fig. 12.6.
M16 A1 0
A2 A3 A4
0 A5 A6
I II III
IV V VI
Fig. 12.7. Complement graphs of six incidence structures
In Case VI there are also three subcases, depending on whether the clique
partition of Ḡ contains 0, 1, or 2 cliques of size 3 (the corresponding points
are called P and Q in [243]). In [96] the case with 0 cliques was eliminated,
and Case VI was finally settled in [349].
Research Problem 12.27. Consider an STS(19) and delete one point and
the blocks containing that point. Partition the remaining 48 blocks into 8
parallel classes, and arrange the blocks into two 6 × 4 arrays with one parallel
class in each column and with disjoint blocks in each row. Classify all such
objects, if any.
weight-19 case are challenging even for modern computers. This is the main
reason why an independent verification of this celebrated proof has not yet,
at the moment of writing, been carried out.
The result that the code of a projective plane of order 10 cannot have
codewords of weight 19 was announced by Lam et al. [351] in the late 1980s,
and was obtained using an extensive amount of CPU time on the best avail-
able computers (CRAY1A). Obviously, the approach for the search was also
polished – with many preliminary experiments – and the published results are
indispensable for anyone interested in attacking this problem.
As usual, we commence by studying possible intersection patterns for a
codeword of given weight and the blocks of a projective plane.
Theorem 12.28. A codeword c ∈ C with wt(c) = 19 intersects the codewords
in W in 1, 3, or 5 coordinates.
Proof. By Theorem 12.5 a codeword c ∈ C of weight 19 intersects a word
w ∈ W in an odd number of coordinates. If c and w intersect in at least 7
coordinates, then the weight wt(c + w) is even and at most 16, but we know
that no such codewords exists.
For a codeword c of weight 19, the combinatorial structure in these 19
points is then a PBD(19, {1, 3, 5}) with 111 blocks, and the corresponding
B-equations are
b1 + b3 + b5 = 111,
b1 + 3b3 + 5b5 = 209,
3b3 + 10b5 = 171.
The unique solution of this system is
b1 = 68, b3 = 37, b5 = 6.
It turns out that there is a very large number of PBD(19, {1, 3, 5}) with 111
blocks. In classifying these, one may start from all possible sets of six blocks
of weight 5; there are 66 nonisomorphic such sets, which can be obtained as
(19, 6, 8)2 codes of constant weight 5. We list these objects in Figs. 12.9 to
12.13; the numbering follows that used by Lam et al. [345, 351]. As many as
21 of these are eliminated in [345] by various arguments, some of which will
now be considered.
Lemma 12.29. If three of the six blocks intersecting a weight-19 codeword in
five points are pairwise nonintersecting within those 19 points, then there is a
codeword of weight 16.
Proof. The three blocks intersect outside the points of the weight-19 code-
word. They cannot, however, intersect in one common point, since then the
1s of that row would occur together with at least 3 × 5 + 8 × 1 = 23 (> 19) 1s
of the first 19 rows. Adding the three blocks and the weight-19 codeword, we
get a codeword of weight 16.
12.3 The Main Search 357
Without further details it is mentioned in [345] that a few more cases can
be eliminated by ad hoc arguments.
The remaining sets of six blocks are completed with a set of triples that
cover the pairs of distinct points that are not contained in the initial blocks.
The obvious way of doing this – cf. Sect. 6.1.3 – is by Exact Covers. Actu-
ally, for some sets of six blocks there is no completion. In [345] these instances
are included in those eliminated by ad hoc arguments. However, as the com-
putation time for processing these is negligible, we prefer not to treat them
separately here.
Even after isomorph rejection, we have almost one million 19×111 matrices
of the 19 rows corresponding to a codeword of weight 19; these are the starting
points for the final effort. The exact number for the various cases is denoted
by A2 in [351, Tables 1 and 2]. The subdivision of the incidence matrix in
Fig. 12.14 is done in a manner analogous to that in Fig. 12.6. The matrices
M19 , A1 , and A2 correspond to the parts of the first 19 rows where the
number of 1s in the columns is 5, 3, and 1, respectively.
From each of the partial 19 × 111 incidence matrices, the search proceeds
by completing one block at a time. Since by Lemma 12.29 there are no three
blocks that are pairwise nonintersecting in M19 , the completions of the first
six blocks are unique up to isomorphism. These completions are in part A3
of Fig. 12.14.
12.3 The Main Search 363
M19 A1 A2
A3 A4 A5
0 A6
For each point of a given block in the first six columns, we now complete
those rows of the incidence matrix. This procedure is then continued for an-
other block, and so on. For the first block we have 11−5 = 6 rows to complete,
but for subsequent choices of blocks this number may be smaller. If a row to
be completed intersects x, y, and z of the blocks whose intersection with the
first 19 rows has cardinality 5, 3, and 1, respectively, then
x + y + z = 11,
5x + 3y + z = 19,
x = 0, y = 4, z = 7; x = 1, y = 2, z = 8; x = 2, y = 0, z = 9.
For the rows to be constructed, this result gives the number of 1s in the parts
A4 and A5 , which is 2 and 8, or 0 and 9. With the latter distribution and when
completing the first block, the 1s in A5 can be placed in a unique way up to
isomorphism. We complete such rows first. Also with the former distribution
the 1s in A5 are uniquely determined after the 1s in A4 have been determined.
The 1s in A4 can be computed as follows.
Consider only the triples in the first 19 rows that do not intersect the first
block in those 19 points. Denote the number of such triples by t. Take all
nonintersecting pairs of these triples, and use Exact Covers to partition
the t triples into t/2 such pairs.
From the second block onwards, we precompute the set of all rows com-
patible with earlier rows before completing the blocks. Then either Cliques
or preferably Exact Covers can be used for finding the completions (the
rows must intersect in exactly one position; the blocks that do not intersect
the block to be completed in the previous points must do it in these points).
The number of partial incidence matrices for each case and each completed
block is presented in [351, Tables 1 and 2]. In the computer search of [351], no
completion of five blocks was encountered. It should be noted, however, that
the order in which the blocks are completed has a big impact on the size of
the search space. By [351] it is desirable to choose a block to complete next
among such blocks that do not intersect the earlier completed blocks in the
first 19 rows (and therefore must intersect them in the rows to be completed).
It is not possible to discuss all techniques that were used by Lam et al.
[351] to speed up the search. As an example, consider two blocks that intersect
outside the first 19 rows. Then the sum of these blocks and the weight-19 code-
word is another codeword of weight 19. We can then check whether the partial
364 12 Nonexistence of Projective Planes of Order 10
incidence matrix in those 19 rows corresponds to a case that has already been
considered.
[250] H. Hämäläinen and S. Rankinen, Upper bounds for football pool prob-
lems and mixed covering codes, J. Combin. Theory Ser. A 56 (1991),
84–95.
[251] R. W. Hamming, Error detecting and error correcting codes, Bell System
Tech. J. 29 (1950), 147–160.
[252] M. Harada and P. R. J. Östergård, Self-dual and maximal self-
orthogonal codes over F7 , Discrete Math. 256 (2002), 471–477.
[253] M. Harada and P. R. J. Östergård, On the classification of self-dual
codes over F5 , Graphs Combin. 19 (2003), 203–214.
[254] F. Harary, Graph Theory, Addison-Wesley, Reading, Mass., 1969.
[255] F. Harary, The automorphism group of a hypercube, J. UCS 6 (2000),
136–138.
[256] A. S. Hedayat, E. Seiden, and J. Stufken, On the maximal number of
factors and the enumeration of 3-symbol orthogonal arrays of strength
3 and index 2, J. Statist. Plann. Inference 58 (1997), 43–63.
[257] A. S. Hedayat, N. J. A. Sloane, and J. Stufken, Orthogonal Arrays:
Theory and Applications, Springer-Verlag, New York, 1999.
[258] Z. Hedrlı́n and A. Pultr, On full embeddings of categories of algebras,
Illinois J. Math. 10 (1966), 392–406.
[259] D. Held and M.-O. Pavčević, Symmetric (79, 27, 9)-designs admitting a
faithful action of a Frobenius group of order 39, European J. Combin.
18 (1997), 409–416.
[260] D. Held and M.-O. Pavčević, Some new Hadamard designs with 79
points admitting automorphisms of order 13 and 19, Discrete Math.
238 (2001), 61–65.
[261] T. Helleseth, A characterization of codes meeting the Griesmer bound,
Inform. and Control 50 (1981), 128–159.
[262] L. A. Hemaspaandra and M. Ogihara, The Complexity Theory Compan-
ion, Springer-Verlag, Berlin, 2001.
[263] P. J. Higgins, Notes on Categories and Groupoids, Van Nostrand Rein-
hold, London, 1971.
[264] R. Hill, A First Course in Coding Theory, Oxford University Press,
Oxford, 1986.
[265] H. Hitotumatu and K. Noshita, A technique for implementing backtrack
algorithms and its application, Inform. Process. Lett. 8 (1979), 174–175.
[266] C. M. Hoffmann, Group-Theoretic Algorithms and Graph Isomorphism,
Springer-Verlag, Berlin, 1982.
[267] I. Holyer, The NP-completeness of edge-coloring, SIAM J. Comput. 10
(1981), 718–720.
[268] J. D. Horton, A hyperfactorization of order 8, index 2, Discrete Math.
92 (1991), 127–129.
[269] S. Houghten, C. Lam, and L. Thiel, Construction of (48, 24, 12) doubly-
even self-dual codes, Congr. Numer. 103 (1994), 41–53.
380 References
[290] M. Kaikkonen, Codes from affine permutation groups, Des. Codes Cryp-
togr. 15 (1998), 183–186.
[291] J. G. Kalbfleisch and R. G. Stanton, On a certain set of linear inequal-
ities, Canad. Math. Bull. 11 (1968), 681–690.
[292] J. G. Kalbfleisch and R. G. Stanton, A combinatorial problem in match-
ing, J. London Math. Soc. 44 (1969), 60–64; and J. London Math Soc.
(2) 1 (1969), 398.
[293] J. G. Kalbfleisch, R. G. Stanton, and J. D. Horton, On covering sets and
error-correcting codes, J. Combin. Theory Ser. A 11 (1971), 233–250.
[294] H. J. L. Kamps and J. H. van Lint, The football pool problem for 5
matches, J. Combin. Theory 3 (1967), 315–325.
[295] H. J. L. Kamps and J. H. van Lint, A covering problem, Colloq. Math.
Soc. János Bolyai 4 (1970), 679–685.
[296] W. M. Kantor and Á. Seress, Eds., Groups and Computation, III, Walter
de Gruyter, Berlin, 2001.
[297] S. N. Kapralov, Enumeration of the binary linear [24, 7, 10] codes, in
Proc. 5th International Workshop on Algebraic and Combinatorial Cod-
ing Theory, (Sozopol, Bulgaria, June 1–7, 1996), Unicorn, Shumen, Bul-
garia, 1996, pp. 151–156.
[298] P. Kaski, Isomorph-free exhaustive generation of combinatorial designs,
Research Report A70, Laboratory for Theoretical Computer Science,
Helsinki University of Technology, Espoo, 2001.
[299] P. Kaski, Isomorph-free exhaustive generation of designs with prescribed
groups of automorphisms, SIAM J. Discrete Math., to appear.
[300] P. Kaski, Nonexistence of perfect Steiner triple systems of orders 19 and
21, Bayreuth. Math. Schr., to appear.
[301] P. Kaski, L. B. Morales, P. R. J. Östergård, D. A. Rosenblueth, and
C. Velarde, Classification of resolvable 2-(14, 7, 12) and 3-(14, 7, 5) de-
signs, J. Combin. Math. Combin. Comput. 47 (2003), 65–74.
[302] P. Kaski and P. R. J. Östergård, There exists no (15, 5, 4) RBIBD, J.
Combin. Des. 9 (2001), 357–362.
[303] P. Kaski and P. R. J. Östergård, Miscellaneous classification results for
2-designs, Discrete Math. 280 (2004), 65–75.
[304] P. Kaski and P. R. J. Östergård, The Steiner triple systems of order 19,
Math. Comp. 73 (2004), 2075–2092.
[305] P. Kaski and P. R. J. Östergård, One-factorizations of regular graphs of
order 12, Electron. J. Combin. 12 (2005) no. 1, #R2, 25pp.
[306] P. Kaski, P. R. J. Östergård, and O. Pottonen, The Steiner quadruple
systems of order 16, submitted for publication.
[307] P. Kaski, P. R. J. Östergård, S. Topalova, and R. Zlatarski, Steiner triple
systems of order 19 and 21 with subsystems of order 7, Discrete Math.,
to appear.
[308] A. Kerber, Applied Finite Group Actions, 2nd ed., Springer-Verlag,
Berlin, 1999.
382 References
[309] A. Kerber and R. Laue, Group actions, double cosets, and homomor-
phisms: Unifying concepts for the constructive theory of discrete struc-
tures, Acta Appl. Math. 52 (1998), 63–90.
[310] G. Kéri and P. R. J. Östergård, On the covering radius of small codes,
Studia Sci. Math. Hungar. 40 (2003), 243–256.
[311] G. Kéri and P. R. J. Östergård, Further results on the covering radius
of small codes, submitted for publication.
[312] H. Kharaghani and B. Tayfeh-Rezaie, A Hadamard matrix of order 428,
J. Combin. Des. 13 (2005), 435–440.
[313] M. Khatirinejad and P. Lisonek, Classification and constructions of com-
plete caps in binary spaces, Des. Codes Cryptogr., to appear.
[314] G. B. Khosrovshahi, M. Mohammad-Noori, and B. Tayfeh-Rezaie, Clas-
sification of 6-(14, 7, 4) designs with nontrivial automorphism groups, J.
Combin. Des. 10 (2002), 180–194.
[315] H. Kimura, Hadamard matrices of order 28 with automorphism groups
of order two, J. Combin. Theory Ser. A 43 (1986), 98–102.
[316] H. Kimura, New Hadamard matrix of order 24, Graphs Combin. 5
(1989), 235–242.
[317] H. Kimura, Classification of Hadamard matrices of order 28, Discrete
Math. 133 (1994), 171–180.
[318] H. Kimura, Classification of Hadamard matrices of order 28 with Hall
sets, Discrete Math. 128 (1994), 257–268.
[319] F. Klein, Das Erlanger Programm (1872). Vergleichende Betrachtungen
über neuere geometrische Forschungen. Einleitung und Anmerkung von
H. Wußing, 3rd ed., Harri Deutsch, Frankfurt am Main, 1997.
[320] A. R. Klivans and D. van Melkebeek, Graph nonisomorphism has subex-
ponential size proofs unless the polynomial-time hierarchy collapses,
SIAM J. Comput. 31 (2002), 1501–1526.
[321] D. E. Knuth, Estimating the efficiency of backtrack programs, Math.
Comp. 29 (1975), 121–136.
[322] D. E. Knuth, The Art of Computer Programming, Volume 3: Sorting
and Searching, 2nd ed., Addison-Wesley, Reading, Mass., 1998.
[323] D. E. Knuth, Dancing links, in Millennial Perspectives in Computer
Science (J. Davies, B. Roscoe, and J. Woodcock, Eds.), Palgrave, Bas-
ingstoke, England, 2000, pp. 187–214.
[324] J. Köbler, U. Schöning, and J. Torán, The Graph Isomorphism Problem:
Its Structural Complexity, Birkhäuser, Boston, 1993.
[325] W. Kocay, On writing isomorphism programs, in Computational and
Constructive Design Theory (W. D. Wallis, Ed.), Kluwer, Dordrecht,
the Netherlands, 1996, pp. 135–175.
[326] W. Kocay and D. L. Kreher, Graphs, Algorithms, and Optimization,
Chapman & Hall/CRC, Boca Raton, Fla., 2005.
[327] W. L. Kocay, D. R. Stinson, and S. A. Vanstone, On strong starters in
cyclic groups, Discrete Math. 56 (1985), 45–60.
References 383
[385] K. L. Ma, Solving the Dominating Set Problem: A Group Theory Ap-
proach, PhD Thesis, Concordia University, Montreal, 1998.
[386] C. R. MacInnes, Finite planes with less than eight points on a line, The
American Mathematical Monthly 14 (1907), 171–174.
[387] S. MacLane, Categories for the Working Mathematician, 2nd ed.,
Springer-Verlag, New York, 1998.
[388] F. J. MacWilliams and N. J. A. Sloane, The Theory of Error-Correcting
Codes, North-Holland, Amsterdam, 1977.
[389] F. J. MacWilliams, N. J. A. Sloane, and J. G. Thompson, On the ex-
istence of a projective plane of order 10, J. Combin. Theory Ser. A 14
(1973), 66–78.
[390] C. L. Mallows, V. Pless, and N. J. A. Sloane, Self-dual codes over GF(3),
SIAM J. Appl. Math. 31 (1976), 649–666.
[391] C. L. Mallows and N. J. A. Sloane, Weight enumerators of self-
orthogonal codes, Discrete Math. 9 (1974), 391–400.
[392] S. A. Malyugin, On a lower bound on the number of perfect binary
codes, Discrete Appl. Math. 135 (2004), 157–160.
[393] H. B. Mann and H. J. Ryser, Systems of distinct representatives, Amer.
Math. Monthly 60 (1953), 397–401.
[394] L. Marangunić, The classification of biplanes (56, 11, 2) admitting an
automorphism of order 8 which fixes some point, Rad. Mat. 2 (1986),
99–111.
[395] F. Margot, Small covering designs by branch-and-cut, Math. Program.
94B (2003), 207–220.
[396] V. Martinetti, Un’ osservazione relativa alla configurazione di Kummer,
Giornale di Matematiche di Battaglini 34 (1896), 192–194.
[397] R. Mathon, A note on the graph isomorphism counting problem, Inform.
Process. Lett. 8 (1979), 131–132.
[398] R. Mathon, The partial geometries pg(5, 7, 3), Congr. Numer. 31 (1981),
129–139.
[399] R. Mathon, Symmetric (31, 10, 3) designs with nontrivial automorphism
group, Ars. Combin. 25 (1988), 171–183.
[400] R. Mathon, Computational methods in design theory, in Surveys in
Combinatorics, 1991 (A. D. Keedwell, Ed.), Cambridge University
Press, Cambridge, 1991, pp. 101–117. Reprinted in Computational and
Constructive Design Theory (W. D. Wallis, Ed.), Kluwer, Dordrecht,
the Netherlands, 1996, pp. 29–48.
[401] R. Mathon, Searching for spreads and packings, in Geometry, Com-
binatorial Designs and Related Structures (J. W. P. Hirschfeld, S. S.
Magliveras, and M. J. de Resmini, Eds.), Cambridge University Press,
Cambridge, 1997, pp. 161–176.
[402] R. Mathon and D. Lomas, A census of 2-(9, 3, 3) designs, Australas. J.
Combin. 5 (1992), 145–158.
[403] R. Mathon and A. Rosa, A census of Mendelsohn triple systems of order
nine, Ars. Combin. 4 (1977), 309–315.
References 387
[404] R. Mathon and A. Rosa, Some results on the existence and enumeration
of BIBD’s, Mathematics Report 125-Dec-1985, Department of Mathe-
matics and Statistics, McMaster University, Hamilton, 1985.
[405] R. Mathon and A. Rosa, Tables of parameters of BIBDs with r ≤ 41 in-
cluding existence, enumeration, and resolvability results, Ann. Discrete
Math. 26 (1985), 275–307.
[406] R. Mathon and A. Rosa, Tables of parameters of BIBDs with r ≤ 41
including existence, enumeration and resolvability results: An update,
Ars. Combin. 30 (1990), 65–96.
[407] R. Mathon and A. Rosa, 2-(v, k, λ) designs of small order, in The CRC
Handbook of Combinatorial Designs (C. J. Colbourn and J. H. Dinitz,
Eds.), CRC Press, Boca Raton, Fla., 1996, pp. 3–41.
[408] R. A. Mathon, K. T. Phelps, and A. Rosa, Small Steiner triple systems
and their properties, Ars. Combin. 15 (1983), 3–110; and 16 (1983), 286.
[409] R. J. McEliece, Finite Fields for Computer Scientists and Engineers,
Kluwer, Boston, 1987.
[410] B. D. McKay, Hadamard equivalence via graph isomorphism, Discrete
Math. 27 (1979), 213–214.
[411] B. D. McKay, Practical graph isomorphism, Congr. Numer. 30 (1981),
45–87.
[412] B. D. McKay, nauty user’s guide (version 1.5), Technical Report TR-CS-
90-02, Computer Science Department, Australian National University,
Canberra, 1990.
[413] B. D. McKay, autoson – A distributed batch system for UNIX worksta-
tion networks (version 1.3), Technical Report TR-CS-96-03, Computer
Science Department, Australian National University, Canberra, 1996.
[414] B. D. McKay, Isomorph-free exhaustive generation, J. Algorithms 26
(1998), 306–324.
[415] B. D. McKay, A. Meynert, and W. Myrvold, Small Latin squares, qua-
sigroups, and loops, submitted for publication.
[416] B. McKay, W. Myrvold, and J. Nadon, Fast backtracking principles ap-
plied to find new cages, in Proc. 9th ACM-SIAM Symposium on Discrete
Algorithms, (San Francisco, Jan. 25–27, 1998), ACM Press, New York,
1998, pp. 188–191.
[417] B. D. McKay and S. P. Radziszowski, The nonexistence of 4-(12, 6, 6) de-
signs, in Computational and Constructive Design Theory (W. D. Wallis,
Ed.), Kluwer, Dordrecht, the Netherlands, 1996, pp. 177–188.
[418] B. D. McKay and S. P. Radziszowski, Towards deciding the existence
of 2-(22, 8, 4) designs, J. Combin. Math. Combin. Comput. 22 (1996),
211–222.
[419] B. D. McKay and S. P. Radziszowski, 2-(22, 8, 4) designs have no blocks
of type 3, J. Combin. Math. Combin. Comput. 30 (1999), 251–253.
[420] B. D. McKay and E. Rogoyski, Latin squares of order 10, Electron. J.
Combin. 2 (1995), #N3, 4pp.
388 References
puting, (El Paso, Tex., May 4–6, 1997), ACM Press, New York, 1997,
pp. 92–109.
[594] A. Vardy, The intractability of computing the minimum distance of a
code, IEEE Trans. Inform. Theory 43 (1997), 1757–1766.
[595] G. Verfaillie, M. Lemaı̂tre, and T. Schiex, Russian doll search for solving
constraint optimization problems, in Proc. 13th National Conference on
Artificial Intelligence (AAAI-96), (Portland, Oreg., Aug. 4–8, 1996),
AAAI Press, Menlo Park, Calif., 1996, pp. 181–187.
[596] R. J. Walker, An enumerative technique for a class of combinatorial
problems, in Combinatorial Analysis (R. Bellman and M. Hall, Jr.,
Eds.), Amer. Math. Soc., Providence, R.I., 1960, pp. 91–94.
[597] W. D. Wallis, One-Factorizations, Kluwer, Dordrecht, the Netherlands,
1997.
[598] A. Wassermann, Finding simple t-designs with enumeration techniques,
J. Combin. Des. 6 (1998), 79–90.
[599] A. Wassermann, Attacking the market split problem with lattice basis
reduction, J. Comb. Optim. 6 (2002), 5–16.
[600] G. J. M. van Wee, Improved sphere bounds on the covering radius of
codes, IEEE Trans. Inform. Theory 34 (1988), 237–245.
[601] B. Weisfeiler, Ed., On Construction and Identification of Graphs,
Springer-Verlag, Berlin, 1976.
[602] B. Yu. Weisfeiler and A. A. Leman, A reduction of a graph to a canonical
form and an algebra arising during this reduction (in Russian), Nauchn.-
Tekhn. Informatsiya Ser. 2 (1968) no. 9, 12–16.
[603] D. Welsh, Codes and Cryptography, Oxford University Press, Oxford,
1988.
[604] D. B. West, Introduction to Graph Theory, 2nd ed., Prentice Hall, Upper
Saddle River, N.J., 2001.
[605] H. Whitney, 2-isomorphic graphs, American Journal of Mathematics 55
(1933), 245–254.
[606] S. B. Wicker, Error Control Systems for Digital Communication and
Storage, Prentice Hall, Upper Saddle River, N.J., 1995.
[607] H. Wielandt, Finite Permutation Groups, Academic Press, New York,
1964.
[608] H. S. Wilf, Combinatorial Algorithms: An Update, SIAM, Philadelphia,
1989.
[609] R. M. Wilson, The necessary conditions for t-designs are sufficient for
something, Util. Math. 4 (1973), 207–215.
[610] R. M. Wilson, Nonisomorphic Steiner triple systems, Math. Z. 135
(1974), 303–313.
[611] P. M. Winkler, Isometric embeddings in products of complete graphs,
Discrete Appl. Math. 7 (1984), 221–225.
[612] E. Witt, Über Steinersche Systeme, Abhandlungen aus dem Mathema-
tischen Seminar der Universität Hamburg 12 (1938), 265–275.
398 References
1-factor 189 affine plane 17, 22, 24, 41, 71, 79, 197,
of complete graph 12, 190, 260, 317, 198, 212, 330
346–348 of order 4 71
1-factorization order of 22
of complete graph 12, 23, 209, algorithm 309
260–263, 295, 300, 314, 317, 320, backtrack 109–114, 172
347, 348 design principles for 111–112, 117
prescribing automorphism group of branch-and-bound 112, 147, 154,
295 235
of K6 12, 314 clique 146–148, 220
of K8 12 estimating resource requirements of
of K10 216, 263, 348 112–114
of K12 263 exact cover 149–152
of K14 295 isomorphism 164–171
of regular graph 263, 314, 315 lattice basis reduction 159
1-factorizations Lenstra–Lenstra–Lovász (LLL) 158
constructing as set systems 260–262 matching 317
constructing parallel class by parallel permutation group 159–164
class 262–263 polynomial-space 310
constructing point by point 262 polynomial-time 310, 311
constructing via codes 262
Russian doll search 146
invariant for 89
Schreier–Sims 164
1-factors
set cover 152–154
covering with 348
Alltop, W. O. 23, 207, 278
packing with 348
alphabet 26
2-design see balanced incomplete
ancestor 11
block design
proper 12
adjacency matrices Appel, K. 297
lexicographic order for 90 Applegate, D. 241
adjacency matrix 8 Arnold, E. 257
adjacent 7 Assmus, E. F., Jr. 341, 342
affine geometry 17 automorphism 67
affine linear group 280 1-rotational 295
402 Index
codes constraint 37
classification of 219–258 constraint propagation 111, 157
constant weight coordinate 26
constructing via subcodes 228 coordinate invariant 92
equivalent 70 coordinate value 26
constructing codeword by codeword coset 33, 49
157, 210, 220, 223–228 left 49
constructing coordinate by coordinate right 49
210, 220, 238, 239, 241, 244 counting problem 2, 297
constructing via residuals 255 cover see set cover
constructing via subcodes 220–223, covering radius see code, covering
228, 241 radius of
counting 254 CRAY 356
equivalence of 86, 324, 327–329 cube 10, 51, 52, 55, 56, 58, 92, 99, 161
equivalent 35–37, 62, 70 Cummings, L. D. V, 187
invariant for 89, 92, 93, 95 cycle 10, 51
isometric 36 length of 51
isomorphic 36 cycle graph 94
linear cycle structure 218
equivalence of 246–247, 249–253 cycle type 274
equivalent 246
codeword 27 dancing links 151, 152
codeword invariant 92 Davies, R. 252
coding theory 1 decision problem 308, 311, 312, 314
Cole, F. N. V, VI, 187 decomposition
collineation 251 tactical see tactical decomposition
color degree invariant 96, 100, 170 degree 7
color valency invariant see color Delsarte, P. 233, 239, 271
degree invariant Dembowski, P. 281
coloring 10, 83 Denniston, R. H. F. 348, 350
combinatorial design 1 Denny, P. C. 207
compatibility graph 178, 179, 182, depth 12
220–223, 227, 228, 292 depth-first search 109, 113, 172
completion problem 314–323 Desarguesian plane 342
complexity class 311 descendant 11
∆i 313, 334 proper 12
Πi 313, 334 design 13–25
Σi 313, 322, 334 1-rotational 295
coNP 313 affine 42, 211
NP 312, 313, 317–319, 321 code of 195, 341
P 311, 313 covering 28, 234, 235, 241–242, 244
computational result cyclic 289, 290
validity of 297–305 derived 20, 95, 206, 207
Condor 173 dicyclic 290
configuration 16 embeddable 22, 197
configuration graph 335 Hadamard 22, 72, 79, 198, 203, 207,
connected component 11 289
consistency checking 299, 301 prescribing automorphism group of
by double counting 58, 299–305 295
Index 405
incidence 14 k-cycle 51
incidence graph 84, 85 k-factor 12
incidence matrix 15 k-factorization 12
incidence relation 14 k-subset 4
incidence structure 14, 66, 71, 85, 86 Kaib, M. 158
affine 24 Kalbfleisch, J. G. 234, 236, 237
automorphism of 15 Kamps, H. J. L. 234, 237, 293
complement of 16 Kerber, A. 134, 254
decomposition of 281 Kirkman triple system (KTS) 23, 321
dual of 16, 19 prescribing automorphism group of
induced substructure of 16 295
intersection parameter of 24 Kirkman, T. P. V, 1
with repeated blocks 14 Klein, F. 3
resolution of 23 Knuth, D. E. 113, 149, 152
resolvable 23, 24 Kohnert, A. 294
self-complementary 16 Kramer, E. S. 157, 278
self-dual 16 Kramer–Mesner matrix 279, 291
simple 14 Kramer–Mesner method 278–280,
strongly reconstructible from line 284–286
graph 86 Kronecker delta 282
substructure of 15
incidence structures labeled objects
invariant for 92 classification of 300
isomorphic 15, 176 Lagrange’s theorem 49, 57, 162
incident 7 Lam, C. W. H. 270, 293, 298, 299, 301,
independent set 11, 148 305, 341, 345, 351, 356, 363
index 28, 29, 37, 244, 347 Latin background 315
information theory 1 Latin rectangle 39, 264, 323, 335
408 Index
seed 188–195, 205, 206, 216–218, 259, Steiner triple system (STS) V, 20–22,
261, 263, 264, 286, 340, 341 93, 94, 206, 216, 259, 273, 284–289,
Semakov, N. V. 31, 32, 74 300, 314, 318, 319, 330
semidirect product 60 anti-Pasch 218
set generalized 264
well-ordered 82 of order 7 see Fano plane
set cover 149, 152–154 of order 9 17, 74, 206, 216, 218
minimal 153 of order 15 V, VI, 23, 25, 89, 94, 318,
set partition 106 320
set system 7 of order 19 VI, 114, 189, 192, 193,
extension of 188 195, 216–218, 300
Shannon, C. E. 1 of order 21 218, 284–289, 295
Shrikhande, S. S. 25 perfect 218
sibling 12 resolvable 23
sift 162 subsystem of 216, 284
Simonis, J. 256 Steiner triple systems (STSs)
Sims, C. C. 161, 163 invariant for 89, 100, 194
slack variable 155 Steiner, J. V
Slepian, D. 229, 254, 255, 257 strength 37
Sloane, N. J. A. 241 string representation 308–310
Snover, S. L. 232 strong generating set see permutation
solution 110 group, strong generating set for
partial 110 STS see Steiner triple system
space subcode 344
discrete 26 subgraph 10
Hamming 26, 68 spanning 10
isometry of 68–70 subgroup 49
metric 26 left coset of 49
vector 27 left transversal for 50
Spence, E. 266 normal 49
sphere right coset of 49
Hamming 28, 29 right transversal for 50
spheres subobject invariant 91, 133, 194
nonoverlapping 238 subtree 12
stabilizer 56 Swiercz, S. 305
Stanton, R. G. 234–237, 241 Swift, J. D. 115
star configuration 93 syndrome 33, 293
starter 260, 295 system of distinct representatives 316,
state space tree 107 317, 335
Steiner quadruple system (SQS) 206,
289 t-design 16–18, 198, 203–207
of order 10 206 t-designs
of order 14 206 constructing block by block 32,
of order 16 VI, 206 205–207
Steiner quadruple systems (SQSs) constructing point by point 203–205
invariant for 207 tactical decomposition 281–284
Steiner system 22, 32, 93, 233, 289, 290 discrete 281
strongly reconstructible from line Thiel, L. H. 299, 301, 305
graph 86 Tonchev, V. D. 270
412 Index
transposition 51 connected 11
transversal Virtakallio, J. 233
left 50, 58
right 50 Wassermann, A. 158, 294
transversal design 22, 38, 191, 264 Wee, G. J. M. van 239
tree 11 weight 26
labeled 106 Hamming 26
rooted 11, 107 weight enumerator see code, weight
height of 12 enumerator of
triangle 191, 192 White, H. S. V, 187
triple system 259–265, 295 Whitney’s 2-isomorphism theorem
truth assignment 313 328
Turán, P. 244 Wilson, R. M. 1, 21
two-way counting 299 witness 312
word 26
Universität Bayreuth 280
wreath product 60
Velarde, C. 210 product action of 61
vertex 7 representing as permutation group
vertex coloring 10, 83, 147 62
proper 10
vertex invariant 91, 96, 100 Zhang, Z. 240
vertices Zinov’ev, V. A. 31, 32, 74
adjacent 7 ZRAM 173