Generating generalized necklaces and new quasi-cyclic codes∗

In many cases there is a need of exhaustive lists of combinatorial objects of a given type. We consider generation of all inequivalent polynomials from which defining polynomials for constructing quasicyclic (QC) codes are to be chosen. Using these defining polynomials we construct 34 new good QC codes over GF(11) and 36 such codes over GF(13). 2010 MSC: 94B05, 94B65


Introduction
Let GF(q) denote the Galois field of q elements and let V(n,q) denote the vector space of all ordered n-tuples over GF(q). The Hamming weight of a vector x, denoted by wt(x), is the number of nonzero entries in x. A linear code C of length n and dimension k over GF(q) is a k-dimensional subspace of V(n,q). Such a code is called [n, k, d] q code if its minimum Hamming distance is d. For linear codes, the minimum distance is equal to the smallest of the weights of the nonzero codewords. A k × n matrix G having as rows the vectors of a basis of a linear code C is called a generator matrix for C. Let A i denote the number of codewords of C with weight i. The weight distribution of C is the list of numbers A i . The weight distribution A 0 = 1, A d = α, . . . , A n = γ is expressed as 0 1 d α . . . n γ also.
In order to obtain a q-ary linear code which is capable of correcting most errors for given values of n, k, and q, it is sufficient to obtain an [n, k, d] q code C with maximum minimum distance d among all such codes or for given values of k, d, and q, to obtain an [n, k, d] q code C whose length n is the smallest one. The respective codes in these two cases are called optimal.
The problem of determining optimal code parameters, known as the Main Linear Coding Theory Problem, has two aspects. One is the construction of codes which optimize minimum distance and the other is proving non-existence of codes of certain parameters ( [14], [21]). In the former one often uses computers, but this approach becomes ineffective when the dimension of the codes is large, because, as we know, computing the minimum distance of linear codes is an NP-hard problem [30]. Thus, it becomes expedient to use classes of codes that have a rich mathematical structure. In recent years it has been shown that QC and QT codes form such nice classes. Being generalizations of cyclic and consta-cyclic codes, they contain many good, record-breaking codes [1-6, 10, 11, 15-20, 24, 27].
Markus Grassl and Eric Chen maintain online tables of linear codes. The Grassl's tables [28] contain lower and upper bounds on minimum distances for linear codes over small finite fields (q ≤ 9). Many of the best-known codes in these tables are QC and QT codes. The Chen's table [9] contains only good and best-known QC and QT codes (q ≤ 13). These two databases are updated when new codes are discovered.
In recent years there has been an increased interest in codes over GF (11) and GF (13). In [25] and [26] Gulliver constructed QT codes over GF (11) for k ≤ 7 and QC codes over GF (13) for k ≤ 6. Venkaiah and Gulliver [31] constructed quasi-cyclic [pk, k, d] 13 codes of dimensions k ≤ 6 and n ≤ 150. In [12] and [13] E. Chen and N. Aydin constructed 45 new OC and QT codes over GF (11), 38 such codes over GF (13) and presented databases for small dimensions and n ≤ 150. New QT codes over GF (11) and GF (13) are also presented in [7].
Three-dimensional projective codes are closely related to (n, r)−arcs in projective finite planes, and a lot of research has been done over finite fields of size up to 19 [8]. Recently an optimal (78, 8)-arc in PG(2,11) was constructed in [25] as a [78, 3, 70] 11 QC code.
In this paper we present 34 new QC codes over GF (11) and 36 new QC codes over GF(13).

QC codes
A code C is said to be p-QC if a cyclic shift of any codeword by p positions results in another codeword. Suppose that C is a p-QC [pm, k] code (m ≥ k). It is convenient to take the co-ordinate places of C in the following order 1, p + 1, 2p + 1, . . . , (m − 1)p + 1, 2, p + 2, . . . , (m − 1)p + 2, p, 2p, . . . , mp.
Then C will be generated by a matrix of the form where each B i is a circulant matrix, i.e. a matrix of the form . . .
where each polynomial is reduced modulo x m − 1.
Taking the polynomials ax l d i (x) instead of d i (x) we make a cyclic shift of the columns of B i and multiply them by a nonzero element of the field. This leads to a generator matrix of an equivalent code. So, the defining polynomials of a QC-code can be chosen from a fixed set of representatives of the equivalence classes of polynomials of degree less than m under the following relation: It stands to reason that we need an efficient algorithm to produce such a set of polynomials.

Necklaces
We identify the polynomials with the strings of their coefficients. In terms of strings the relation (1) is a composition of two actions on strings, namely, rotating the string and multiplying its entries by nonzero elements of the field (scaling the string). Efficient algorithms are known for generating the equivalence classes of the first of the actions. By efficient we mean that the amount of computation used in generating the objects is proportional to the number of objects generated.
Let Σ q be the alphabet {0, 1, 2, . . . , q − 1} and Σ m q be the set of q-ary strings of length m. Denote by α i , 1 ≤ i ≤ m, the entries of the string α ∈ Σ m q , and a t is the string of length t whose entries are all equal to a. The symbol is used for lexicographic order in Σ m q . Call two strings equivalent if one is a cyclic shift of the other. An equivalence class of strings under this relation is called a necklace of m beads in q colors. We identify each necklace with the lexicographically smallest representative in the equivalence class. Thus we call a string α = α 1 α 2 . . . α m a necklace if, for For given m and q the number of necklaces is well known to be where φ is the Euler totient function.
A simple and elegant algorithm was proposed by Fredricksen, Kessler and Maiorana [22], [23] to generate all necklaces in Σ m q . We will refer to this as the F KM algorithm.
For given m and q, the F KM algorithm creates a list, FKM(q, m), consisting of a certain subset of Σ m q in lexicographic order. The list begins with the string 0 m and ends with (q − 1) m . For a given α on FKM(q, m), the successor of α, succ(α), is obtained as follows: It is shown in [22] that there is no necklace between two elements of FKM(q, m), so that the list contains all necklaces. Thus, discarding non necklaces of FKM(q, m) would result in a list of all necklaces in increasing order. In [29] Ruskey, Savage and Wang proved that succ(α) is a necklace if and only if the "i" from the definition of the successor of α is a divisor of m. Including this test, the entire algorithm can be represented by the following PASCAL code:

Generalized necklaces
In its turn, scaling the necklaces partitions the set of all necklaces into new equivalence classes. We call them generalized necklaces. To generate their representatives we know no more efficient algorithm than rejecting those necklaces that are not the smallest representatives. A naive approach to testing whether a length m necklace is the smallest representative of an equivalence class according to (1) is to compare the necklace with all of its scaled rotations. However, by taking into consideration some facts we can decrease the number of comparisons that have to be made.
First of all we generate only necklaces with first non-zero element 1. It follows from the F KM algorithm that any necklace has the form Any rotation of α has the form Thus comparing the strings α and bα , b ∈ GF (q) \ {0, 1} it suffices to compare the substring β = α 1 α 2 . . . α i with its rotations, multiplied by an element of GF (q) \ {0, 1}. If p is the index of the first non-zero element of β, than scaled cyclic shifts with starting positions 2, 3, . . . , p will obviously follow β in lexicographic order. The cyclic shifts with starting positions i − p + 2, i − p + 3, . . . , i will have α i = 0 in position with number less than p and therefore they will also follow β = α 1 . . . α i . So, the only comparisons that have to be made are with cyclic shifts starting from positions and multiplied only by the inverse of α l+p−1 .
The implementation of these considerations yields the following PASCAL code, which produces the desired set of strings (or polynomials): In the table below the number K 11 (m) and K 13 (m) of generated objects is given for m = 6, 7, 8, 9. The respective number N 11 (m) and N 13 (m) of necklaces is also given for comparison. From some seconds up to some minutes are needed for the generation of the objects (CPU, Intel i3, 2.2GHz). The next explicit formula for the number of generalized necklaces (defining polynomials for QC codes) was given recently in [31] (for QT codes see [32]) 5. New QC codes over GF (11) and GF (13) In this section we present 34 new QC codes over GF (11) in dimensions k = 8, 9 and 36 new QC codes over GF (13) in dimensions k = 7, 8. The new codes are obtained by non-exhaustive local computer search. By reason of space the defining polynomials and weight distributions only of some of the codes are given. For the rest of the codes, the respective information is available on request from the authors. All constructed codes will be send to E. Chen to be included in the respective table [9]. The elements of the fields are denoted by 0, 1, 2, ... , 9, 10 = a, 11 = b, 12 = c.