Next Article in Journal
Optimal Control Problems Involving Combined Fractional Operators with General Analytic Kernels
Next Article in Special Issue
On Generalized Galois Cyclic Orbit Flag Codes
Previous Article in Journal
On Hermite–Hadamard-Type Inequalities for Coordinated h-Convex Interval-Valued Functions
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

An Extension of the Brouwer–Zimmermann Algorithm for Calculating the Minimum Weight of a Linear Code

by
Stefka Bouyuklieva
1,* and
Iliya Bouyukliev
2
1
Faculty of Mathematics and Informatics, St. Cyril and St. Methodius University of Veliko Tarnovo, 5000 Veliko Tarnovo, Bulgaria
2
Institute of Mathematics and Informatics, Bulgarian Academy of Sciences, 5000 Veliko Tarnovo, Bulgaria
*
Author to whom correspondence should be addressed.
Mathematics 2021, 9(19), 2354; https://doi.org/10.3390/math9192354
Submission received: 27 August 2021 / Revised: 16 September 2021 / Accepted: 18 September 2021 / Published: 22 September 2021
(This article belongs to the Special Issue Mathematical Coding Theory)

Abstract

:
A modification of the Brouwer–Zimmermann algorithm for calculating the minimum weight of a linear code over a finite field is presented. The aim was to reduce the number of codewords for consideration. The reduction is significant in cases where the length of a code is not divisible by its dimensions. The proposed algorithm can also be used to find all codewords of weight less than a given constant. The algorithm is implemented in the software package QextNewEdition.

1. Introduction

In 1997, Alexander Vardy proved that for general binary linear code, computing the minimum weight is an NP-hard problem, and the corresponding decision problem is NP-complete [1]. The popular practical algorithms are based on a maximum number of generating matrices G 1 , G 2 , , G s with disjoint sets of systematic coordinates. Some are the Brouwer–Zimmermann algorithm and its various modifications for cyclic codes, quasi-cyclic codes, divisible codes, etc. (see [2,3,4,5]). Such algorithms are implemented in the software package Magma [6].
The basic idea is that after taking 1 , 2 , , l linear combinations of the rows of all matrices, all codewords with weight w (depending on l) will be generated, provided there are any. Additionally, if so far the lightest generated codeword has a weight w + 1 , then the minimum distance d ( C ) is equal to w + 1 . The problem we are considering here is which matrices among G 1 , G 2 , , G s to use and which linear combinations of their rows to take so that the number of the codewords generated is minimal. We propose a new modification of the Brouwer–Zimmermann algorithm that allows the generation of fewer codewords than the algorithm implemented in Magma. The Magma algorithm is described by M. Grassl in [4] and is implemented in the function MinimumWeight(C). The advantages of the proposed approach are very visible in code with length n, close but less than 2 k , where k is the dimension. This can be seen in the table of experimental results. The number of required vector operations in some cases is many times smaller in our algorithm compared to the algorithms we know.
In Section 2, we present some important properties of the minimum weight of linear code and a short description of the Brouwer–Zimmermann algorithm. We give the theoretical basis of our method in Section 3. Section 4 is devoted to the new algorithm that we propose. The first difference between our algorithm and the BZ algorithm is that the Brouwer–Zimmermann algorithm uses overlapping information sets, but we partition the set of coordinate positions into disjoint sets called systematic sets (full and reduced). For each of the considered sets, the algorithm constructs a corresponding generator matrix of the code (this holds for both algorithms). Another important difference is in the number of considered linear combinations of rows of generator matrices needed to calculate the minimum weight. If the length n is not divisible by the dimension k, our algorithm needs fewer codewords to obtain the value of d ( C ) . We list and explain some computational results in Section 5.

2. Preliminaries

Let F q be a finite field with q elements and F q n be the n-dimensional vector space over F q . A linear [ n , k ] q code C is a k-dimensional subspace of the vector space F q n . A matrix whose rows form a basis of C is called a generator matrix of this code.
The (Hamming) distance  d ( x , y ) between two vectors x , y F q n is the number of coordinate positions in which they differ, and the (Hamming) weight wt ( x ) of a vector x F q n is the number of its nonzero coordinates. The minimum distance of a linear code is the smallest distance between two different codewords, and the minimum weight is the smallest weight among all non-zero codewords of the code. If C is a linear code, then its minimum weight and minimum distance are equal. An [ n , k , d ] q code is a linear code over F q with minimum distance d. Then d n , but there are much better upper bounds for the minimum weight. In our algorithm, we use the Singleton bound, namely, d n k + 1 .
The most widely used algorithm for computing the minimum weight of a linear [ n , k ] q code was designed by A. Brouwer and subsequently extended by K.-H. Zimmermann. The literature about this problem refers to it as the Brouwer–Zimmermann algorithm, abbreviated the BZ algorithm (see [2,4] for its description). The BZ algorithm was outlined in [5], where the authors proposed its extension, which consists of a good (sometimes best possible) sequence of information sets for a given code. We propose another extension to the BZ algorithm which is related to the linear combinations needed to compute the minimum weight of the given code.
The main idea of the BZ algorithm is to enumerate the codewords in such a way that one not only obtains an upper bound on the minimum weight of the code via the minimum of the weights of the words that have been encountered, but also a lower bound on the minimum weight. For this, the concept of information sets is needed [4].
Definition 1
((Information Set) [4]). Let C be a linear [ n , k , d ] q code of length n and dimension k over F q . A subset T { 1 , 2 , , n } of size | T | = k is called an information set if the corresponding columns in a generator matrix G of C are linearly independent. Then there also exists a systematic generator matrix G T of C such that the columns of G T specified by T form an identity matrix.
The BZ algorithm uses a family of information sets T 1 , , T l for the code C such that T 1 T l = { 1 , 2 , , n } . These information sets are not necessarily disjoint, and therefore a sequence r 1 , , r l of nonnegative integers, called relative ranks, is defined, where r i = | T i \ ( T 1 T i 1 ) | . The methods used in [2,4] for constructing sets T i and their corresponding systematic matrices G i produce them in such a way that the sequence of relative ranks is non-increasing.
The Brouwer–Zimmermann algorithm goes in the following way: In the initial step, the upper bound on the minimum weight is d ¯ = n k + 1 (Singleton bound), and the lower bound is d ̲ = 1 . Each step depends on the integers w and j so that the algorithm enumerates all codewords u G j such that wt ( u ) = w . During this process, if a codeword x with wt ( x ) < d ¯ is generated, then the algorithm updates d ¯ according to
d ¯ = min { d ¯ , min { wt ( u G j ) : u F q k , wt ( u ) = w } } .
The value of d ̲ is also updated (see [4,5] for more details). The algorithm then tests whether d ̲ d ¯ , and if so, then it terminates with the conclusion that d ( C ) = d ¯ .

3. Systematic Sets

We define the term systematic set, which is similar to the information set, but the difference is in the size of the set.
Definition 2.
Let C be a linear [ n , k ] q code with a generator matrix G. A subset T { 1 , 2 , , n } of size | T | k is called a systematic set for C if the corresponding columns in G are linearly independent. If | T | = k . then T is a full systematic set; otherwise it is a reduced systematic set.
The terms information set and full systematic set coincide. If T is a systematic set, then C has a generator matrix G T such that the columns corresponding to the set T form a submatrix of G T which is equivalent to the identity matrix I | T | extended with k | T | zero rows.
The following notation is very important for this research. Let T 1 , , T s be disjoint systematic sets for the linear [ n , k ] q code C, such that T 1 T s = { 1 , , n } . Suppose that T 1 , , T t , and t s , are full systematic sets, and the other s t systematic sets are reduced. Denote by U i ( a i ) the set of all nonzero codewords with j a i nonzero coordinates in the systematic set T i , a i 0 , and i = 1 , , s . If v | T i is the restriction of the vector v C on the set T i , then v U i ( a i ) if and only if v 0 and wt ( v | T i ) a i . In other words,
U i ( a i ) = { v C \ { 0 } | wt ( v | T i ) a i } .
According to this definition, U i ( a i ) U i ( a i + 1 ) for any a i 0 . These sets of codewords underlie our approach and make it different from known methods. We use a union of such sets (denoted as usual by U i ( a i ) ), and a multiset sum (denoted by U i ( a i ) ), which may contain some codewords repeated several times.
Consider first the case when n = t k for an integer t and C has t disjoint information sets T 1 , , T t , so s = t . Such is, for example, the self-dual code or the t-CIS (complementary information set) code. Obviously, the minimum distance of such code is at least t. This is because for each codeword corresponding to a non-trivial linear combination of rows of any generating matrix, there will be at least one nonzero coordinate for each information set. If we compute the weights of all rows of G 1 , we will determine all codewords with weight t, but not those with weight t + 1 , because the code may contain a codeword with two nonzero coordinates from T 1 . If we continue with computing the weights on all rows of G 2 , we will determine all codewords with weight t + 1 (if any), etc.
The following proposition is basic for both algorithms (Algorithm 1 and the BZ algorithm) for which all systematic sets are full. In this case, U i ( a i ) consists of the linear combinations of up to a i rows of the matrix G i .
Algorithm 1: Minimum Weight
INPUT: Linear code C with disjoint systematic sets T 1 , , T s , where
   T 1 T s = { 1 , 2 , n } , | T 1 | = = | T t | = k > | T t + 1 | | T s | ,
   G 1 , , G s —the corresponding systematic matrices.
OUTPUT: The minimum weight d ( C ) .
δ : = t 1 ;
u b : = n k + 1 ;
while  ( δ + 1 < u b ) do
δ : = δ + 1 ;
 Generate Ω δ ;
u b : = min { u b , min { wt ( v ) | v Ω δ } } ;
end while;
return  d ( C ) = u b .
Proposition 1.
Let a 1 , , a t be integers, such that 0 a i k and a 1 + + a t 1 , and G 1 , , G t be the generator matrices of C, which correspond to the sets T 1 , , T t , respectively. If all T i are full systematic sets, then the set U = U 1 ( a 1 ) U t ( a t ) contains all codewords with weight w a 1 + a 2 + + a t + t 1 .
Proof. 
Let m = a 1 + a 2 + + a t + t 1 and v C be a nonzero codeword of weight w m . Let b i = wt ( v | T i ) , where v | T i is the restriction of v on the systematic set T i , i = 1 , , t . It turns out that w = b 1 + + b t and b i > 0 for all i = 1 , , t . Suppose that b i > a i for each i { 1 , , t } . Hence, b i a i + 1 and m w a 1 + a 2 + + a t + t = m + 1 constitute a contradiction. Hence, there is at least one index i, 1 i t , such that b i a i , which means that v U i ( a i ) U .    □
We would like to mention here that a similar technique has been applied in the study of zero-divisor graph structure in [7].
Now consider the general case where not all systematic sets are full. Let { 1 , , n } = T 1 T t T t + 1 T s , where T 1 , , T t are full systematic sets for the code C; T t + 1 , , T s are reduced systematic sets; and T i T j = for 1 i < j s . Without loss of generality we can suppose that | T 1 | = = | T t | = k > | T t + 1 | | T s | , and
G 1 = ( I k | A 1 ) , , G t = ( A t | I k | A t ) ,
G t + 1 = A t + 1 | I | T t + 1 | 0 | A t + 1 0 , , G s = A s | I | T s | 0 .
Theorem 1.
Let C be a linear [ n , k ] q code with disjoint systematic sets T 1 , , T s , such that T 1 T s = { 1 , , n } . Suppose that the systematic sets T 1 , , T t are full, and the other s t sets are reduced. Let r s t and a 1 , , a t + r be nonnegative integers, such that a i k and a 1 + + a t + r 1 . Then the set U = U 1 ( a 1 ) U t + r ( a t + r ) contains all codewords with weight w a 1 + a 2 + + a t + r + t + r 1 .
Proof. 
The proof is similar to the proof of Proposition 1. Let m = a 1 + a 2 + + a t + r + t + r 1 t + r and v C be a codeword of weight w m . Let b i = wt ( v | T i ) , where v | T i is the restriction of v on the systematic set T i , i = 1 , , s . It turns out that w = b 1 + + b s and b i > 0 for all i = 1 , , t . Suppose that b i a i + 1 for all i = 1 , , t + r . Then
m w a 1 + a 2 + + a t + r + t + r + b t + r + 1 + + b s = m + 1 + b t + r + 1 + + b s m + 1 ,
which is not possible. Hence, there is at least one index i, 1 i t + r , such that b i a i , which means that v U i ( a i ) U .    □
If r i = | T i | , i = 1 , , s , then r 1 = = r t = k > r t + 1 r s 0 . For the set U i ( a i ) we have
| U i ( 0 ) | = 0 if i t q k r i 1 if i > t
If a > 0 then
| U i ( a ) | = j = 1 a ( q 1 ) j k j if i t q k r i ( 1 + j = 1 a ( q 1 ) j | T i | j ) 1 if i > t
These formulae show why we use the parameter r in Theorem 1 and then in the algorithm. Let G 1 , , G s be the generator matrices that correspond to the sets T 1 , , T s , respectively. If the matrix G i is not required in a current step of the algorithm for 1 i t , then we take a i = 0 and then U i ( a i ) = . However, if t < i s then the set U i ( 0 ) contains q k | T i | 1 q 1 codewords. Therefore, when the matrix G i is not required, we reduce the number of the considered nonnegative integers a i .

4. The Algorithm

We are looking for the minimum weight of the linear [ n , k ] q code C. Let the set of the coordinate positions { 1 , , n } for the code C is partitioned into s systematic sets T 1 , , T s , such that | T 1 | = = | T t | = k > | T t + 1 | | T s | , t s .
The algorithm uses an integer δ which increases by one from the integer t until it reaches d ( C ) 1 or d ( C ) . For a particular value of δ , we use consistently r = 0 , 1 , , s t of the reduced systematic sets. For a fixed r, let δ = a 1 + + a t + r + t + r 1 for some nonnegative integers a 1 , , a t + r . We define multisets Ω δ recursively in the following way:
  • For δ = t we set Ω δ = U 1 ( 1 ) U 2 ( 0 ) U t ( 0 ) .
  • Let δ = m t and Ω m = U 1 ( a 1 ) U 2 ( a 2 ) U t + r ( a t + r ) , where a 1 , , a t + r are nonnegative integers such that m = a 1 + + a t + r + t + r 1 , 0 r s t .
  • Take δ = m + 1 . The nonnegative integers r , a 1 , , a t + r are the same as above so that Ω m = U 1 ( a 1 ) U 2 ( a 2 ) U t + r ( a t + r ) . Let
    S m + 1 = min { | U j ( a j + 1 ) | , 1 j t + r } if t + r = s min { | U 1 ( a 1 + 1 ) | , , | U t + r ( a t + r + 1 ) | , | U t + r + 1 ( 0 ) | } , if t + r < s .
    and j = l is the smallest value of the parameter j for which the sum is minimal (is equal to S m + 1 ). If l t + r , we set
    Ω m + 1 = U 1 ( a 1 ) U l 1 ( a l 1 ) U l ( a l + 1 ) U l + 1 ( a l + 1 ) U t + r ( a t + r ) = Ω m U l ( a l + 1 ) .
    If r < s t and l = t + r + 1 , then Ω m + 1 = Ω m U t + r + 1 ( 0 ) . We write briefly
    Ω m + 1 = Ω m U l ( a l + 1 ) , if l t + r Ω m U t + r + 1 ( 0 ) , otherwise .
According to Theorem 1, all codewords in C of weight δ belong to the set Ω δ . If the code does not contain nonzero codewords of weight δ , then δ increases by one, and this value is taken as a lower bound l b for the minimum weight of the code. The lightest codeword in Ω δ defines an upper bound for the minimum weight of C. The exact value of d ( C ) is obtained when l b + 1 = u b , or during the generation process of Ω δ , a codeword of weight l b = δ is obtained.
The reason we take Ω δ this way is to generate as few codewords as possible, while making sure we get a codeword with a minimum weight. The summands a 1 , , a t + r in the expression δ = a 1 + + a t + r + t + r 1 were chosen so that the number of the codewords in the set Ω δ should be as small as possible.
The pseudocode is presented as Algorithm 1.
The correctness of the algorithm follows from Theorem 1. If all considered systematic sets are full ( s = t ), our algorithm is similar to the other variants of the Brouwer–Zimmermann algorithm [4]. The number of elementary operations performed by the algorithm depends on k, d, and the sizes of the systematic sets. For given n, k, q, and sizes of the disjoint systematic sets, it is theoretically possible to determine both the minimum and maximum numbers of codewords to be generated to prove that the minimum weight of the corresponding code is equal to d. If Ω d 1 = U 1 ( a 1 ) U t + r ( a t + r ) , then the minimum number of the generated codewords is
1 q 1 i = 1 t + r j = 0 a i | U j ( j ) | ,
and it is attained when there is a codeword v Ω d 1 of weight d. If all vectors in Ω d 1 have weights larger than d, then the algorithm generates the set Ω d . The experimental results show that the upper bound u b reaches the minimum weight at an early stage of the algorithm, and this can be used to solve some problems faster, for example, when we want to prove that the minimum weight is d for a given integer d.
In the while-loop, to construct Ω δ we use its subset Ω δ 1 because its codewords have already been generated. To get each vector in Ω δ with only one vector addition, we generate some codewords more than once and the formula (1) actually gives the number of these additions. More details on this process are given in [8] for prime fields and in [9] for composite fields. Moreover, instead of the sets U i ( a ) we take U ^ i ( a ) U i ( a ) , where U ^ i ( a ) consists of nonproportional vectors and any vector from U i ( a ) is proportional to a vector in U ^ i ( a ) (therefore we divide by q 1 in the formula (1)). Then we generate the multiset Ω δ as a multiset sum of U ^ i ( a i ) in the same way, as is explained in the beginning of this section.
The whole algorithm consists of several subproblems. The time complexity for finding an optimal solution for constructing systematic sets is given in detail in [5]. The complexity of the rest is difficult to be estimated because it depends on two parameters that are not known at the beginning. One of them includes the number and cardinality of the systematic sets, which depend on the structure of the code. The second one is the minimum weight we are looking for. While the problem with the second parameter can be solved by considering the corresponding decision problem [5], the first parameter is difficult to estimate. The time complexity of the algorithm for generating the codewords in a set U i ( a ) is given in [8].
The same approach can also be used to obtain the set of codewords with minimum weight, and the set of codewords with a given weight w > d . This is necessary, for example, in equivalence tests and finding automorphism groups of linear code. This approach is more effective than the one given in [8]. The procedure is the following:
  • Finding the nonnegative integers r, a 1 , , a t + r , for which Ω w = U 1 ( a 1 ) U t + r ( a t + r ) .
  • Generating the set U 1 ( a 1 ) and save its vectors with weight w.
  • For 2 i t + r , generating the set U i ( a i ) and save the codewords v U i ( a i ) with weight w, for which wt ( v | T j ) < a j for j = 1 , , i 1 .
With this procedure we obtain all codewords of weight w without repetitions. If we want to have a maximal set of nonproportional codewords of weight w, we apply the same procedure, but using the sets U ^ i ( a i ) for i = 1 , , s .
The following example illustrates Algorithm 1. In fact, the code itself is not important to see how the algorithm works; the parameters and the sizes of the systematic sets are sufficient.
Example 1.
Let C be a [ 20 , 8 , 7 ] binary code with three systematic sets T 1 , T 2 , T 3 such that | T 1 | = | T 2 | = 8 , | T 3 | = 4 . Obviously, t = 2 d ( C ) n k + 1 = 13 , and so in the beginning l b = δ = 2 and u b = 13 . Next we follow the steps of the algorithm:
  • δ = 2 ) We take Ω 2 = U 1 ( 1 ) U 2 ( 0 ) and u b = min { wt ( v ) | v Ω 2 } 7 > δ .
  • δ = 3 ) Since min { | U 1 ( 2 ) | , | U 2 ( 1 ) | , | U 3 ( 0 ) | } = | U 2 ( 1 ) | = 8 , we get Ω 3 = U 1 ( 1 ) U 2 ( 1 ) and u b = min { u b , min { wt ( v ) | v Ω 3 } } 7 > δ .
  • δ = 4 ) In this case min { | U 1 ( 2 ) | , | U 2 ( 2 ) | , | U 3 ( 0 ) | } = | U 3 ( 0 ) | = 15 ; hence, r = 1 and Ω 4 = U 1 ( 1 ) U 2 ( 1 ) U 3 ( 0 ) .
  • δ = 5 ) In this case Ω 5 = U 1 ( 2 ) U 2 ( 1 ) U 3 ( 0 ) , | Ω 5 | = 60 .
  • δ = 6 ) Now Ω 6 = U 1 ( 2 ) U 2 ( 2 ) U 3 ( 0 ) , | Ω 6 | = 88 , u b 7 . If u b = 7 , after this step the algorithm returns the answer d ( C ) = 7 . Otherwise we need also the next step δ = 7 .
  • δ = 7 ) Then Ω 7 = U 1 ( 3 ) U 2 ( 2 ) U 3 ( 0 ) , | Ω 7 | = 144 , and u b = 7 , and so d ( C ) = 7 .

5. Computational Results

For a given [ n , k , d ] q linear code C, we computed the number of codewords that have to be generated, required to prove that wt ( C ) = d by the BZ algorithm, and by our algorithm. For the partitioning of the set of coordinate positions { 1 , , n } we used the same strategy as the BZ algorithm. The difference is that the BZ algorithm uses overlapping information sets. As is described in [4], for a general linear code with systematic generator matrix G 1 = ( I | A 1 ) , the rank of the matrix A 1 can be less than k, which implies that there is no information set T 2 with T 1 T 2 = . In this situation, we can obtain a reduced systematic set T 2 of size | T 2 | = rank A 1 (this reduced systematic set is called a partial information set in [4]). Our algorithm uses this reduced systematic set, unlike the BZ algorithm, which uses an information set I 2 T 2 obtained from T 2 and k r 2 elements of T 1 .
We performed experiments with some [ n , k , d ] q codes with Magma, and our program included in the package QextNewEdition. We have used Magma V2.25-2 via online Magma Calculator run in a virtual machine on an Intel Xeon Processor E3-1220, 3.10 GHz. Our implementation was executed on Intel Core i7-6700hq 2.60 GHz processor. We present the number of the enumerated vectors with both programs in Table 1. Moreover, we give the amounts of time for computing the minimum weights of the corresponding codes with Magma and QextNewEdition. To compare the algorithms, only the numbers of codewords generated are important, because we ran the programs on different computers.
In fact, in the case when C has disjoint full systematic sets and n = t k , our algorithm and the BZ algorithm are similar. Therefore, in this case the numbers of codewords generated were almost the same, but there was a difference when n = ( t 1 ) k + r for 1 r < k . Take, for example, the [ 115 , 60 , 13 ] 2 code in Table 1. To calculate the minimum weight of this code, Magma uses two overlapping information sets I 1 and I 2 , their corresponding generator matrices G I 1 and G I 2 , and generates 2 i = 1 8 60 i = 6,001,753,644 codewords. Our algorithm operates with two systematic sets T 1 and T 2 , | T 1 | = 60 , and | T 2 | = 55 , so Ω 12 = U 1 ( 6 ) U 2 ( 5 ) . The program generated only i = 1 6 | U 1 ( i ) | + i = 0 5 | U 2 ( i ) | = i = 1 6 ( 7 i ) 60 i + 2 5 i = 1 5 ( 6 i ) 55 i + 6 ( 2 5 1 ) = 198,461,377 codewords. Actually, as we see in this example, when we know the minimum distance in advance, we can compute the number of the codewords to be generated by a formula independently before running the algorithm.

6. Conclusions

In conclusion, we would like to add that Algorithm 1 is a competitive version of the classical Brouwer–Zimmermann algorithm. This approach can be further developed for special types of codes, such as cyclic, quasi-cyclic, and divisible codes. The algorithm is implemented in the software package QextNewEdition [10].
At the time of preparing this paper, three modules of QextNewEdition are publicly available and can be freely downloaded. These are the programs Generation for classifying linear codes over small finite fields; LCequivalence, designed to obtain the inequivalent codes in a set of linear codes over a finite field with q < 65 elements and compute their automorphism groups; and WDHV, which calculates the weight distribution of linear code. As a stand-alone program, the implementation of the presented algorithm is not finalized. The current Linux or Windows version will be sent upon request by the authors.
We would like to mention some open problems related to the algorithms for computing the minimum weight of linear code. The standard way to find the minimum distance is through the weight spectrum of the code. In practice, the Brouwer–Zimmermann type algorithms are effective for codes with small numbers of disjoint systematic sets. One of the open questions is to determine for which parameters each of the two approaches is more effective.
Our experimental results show that when a matrix with a reduced systematic set is used, the proposed algorithm is more efficient than the one implemented in Magma. The question arises as to whether this is true for all such cases.
A parallel implementation of the Brouwer–Zimmermann algorithm is presented in [11]. The codes that the authors considered are very suitable for our algorithm. Therefore, the natural question arises about the parallel implementation of Algorithm 1.

Author Contributions

Conceptualization, I.B.; methodology, I.B.; software, I.B.; validation, I.B. and S.B.; formal analysis, S.B.; resources, I.B. and S.B; data curation, I.B.; writing—original draft preparation, S.B.; project administration, I.B. and S.B.; funding acquisition, I.B. and S.B. Both authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by Bulgarian National Science Fund grant number KP-06-N32/2-2019, and the Bulgarian Ministry of Education and Science, Grant No. D01-387/18.12.2020 for NCHDC, a part of the Bulgarian National Roadmap on RIs.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The current Linux or Windows version of the software will be sent upon request by the authors.

Acknowledgments

We are greatly indebted to the unknown referees for their useful suggestions.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Vardy, A. The intractability of Computing the Minimum distance of a Code. IEEE Trans. Inform. Theory 1997, 43, 1757–1766. [Google Scholar] [CrossRef] [Green Version]
  2. Betten, A.; Braun, M.; Fripertinger, H.; Kerber, A.; Kohnert, A.; Wassermann, A. Error-Correcting Linear Codes: Classification by Isometry and Applications; Springer: Berlin/Heidelberg, Germany, 2006. [Google Scholar]
  3. Canteaut, A.; Chabaud, F. A New Algorithm for Finding Minimum-Weight Words in a Linear Code: Application to McEliece’s Cryptosystem and to Narrow-Sense BCH Codes of Length 511. IEEE Trans. Inform. Theory 1998, 44, 367–378. [Google Scholar] [CrossRef]
  4. Grassl, M. Searching for linear codes with large minimum distance. In Discovering Mathematics with Magma. Algorithms and Computation in Mathematics; Bosma, W., Cannon, J., Eds.; Springer: Berlin/Heidelberg, Germany, 2006; Volume 19, pp. 287–313. [Google Scholar]
  5. Lisoněk, P.; Trummer, L. Algorithms for the Minimum Weight Of Linear Codes. Adv. Math. Commun. 2016, 10, 195–207. [Google Scholar] [CrossRef] [Green Version]
  6. Bosma, W.; Cannon, J.; Playoust, C. The Magma algebra system I: The user language. J. Symb. Comput. 1997, 24, 235–265. [Google Scholar] [CrossRef] [Green Version]
  7. Rather, B.A.; Pirzada, S.; Naikoo, T.A.; Shang, Y. On Laplacian Eigenvalues of the Zero-Divisor Graph Associated to the Ring of Integers Modulo n. Mathematics 2021, 9, 482. [Google Scholar] [CrossRef]
  8. Bouyukliev, I.; Bakoev, V. A method for efficiently computing the number of codewords of fixed weights in linear codes. Discret. Appl. Math. 2008, 156, 2986–3004. [Google Scholar] [CrossRef] [Green Version]
  9. Gulliver, T.; Bhargava, V.; Stein, J. Q-ary gray codes and weight distribution. Appl. Math. Comput. 1999, 103, 97–109. [Google Scholar]
  10. Bouyukliev, I. QextNewEdition-GENERATION Module. Available online: http://www.moi.math.bas.bg/moiuser/~data/Software/QextNewEdition.html (accessed on 26 August 2021).
  11. Hernando, F.; Igual, F.D.; Quintana-Ortí, G. Algorithm 994: Fast Implementations of the Brouwer-Zimmermann Algorithm for the Computation of the Minimum Distance of a Random Linear Code. ACM Trans. Math. Softw. 2019, 45, 28. [Google Scholar] [CrossRef]
Table 1. Minimum weights of [ n , k , d ] q linear codes.
Table 1. Minimum weights of [ n , k , d ] q linear codes.
Random CodesMAGMA
# Codewords
s QextNewEdition
# Codewords
s
[ 114 , 60 , 13 ] 2 20,784,896,304100.91310,623,0092.62
[ 115 , 60 , 13 ] 2 6,001,753,64428.56198,461,3771.52
[ 116 , 60 , 14 ] 2 6,001,753,64428.46579,155,8824.69
[ 117 , 60 , 14 ] 2 3,443,132,79916.26430,378,7762.80
[ 118 , 60 , 14 ] 2 884,511,9543.98266,773,6481.84
[ 119 , 60 , 14 ] 2 498,305,0342.31175,745,0241.05
[ 145 , 50 , 25 ] 2 9,481,372,15561.531,943,266,92321.11
[ 45 , 15 , 16 ] 5 1,053,9930.0301,173,5630.026
[ 44 , 15 , 16 ] 5 1,822,7610.0371,454,6280.020
[ 43 , 15 , 16 ] 5 2,591,5290.0472,065,1650.024
[ 42 , 15 , 15 ] 5 2,591,5290.0541,580,9470.015
[ 41 , 15 , 14 ] 5 2,591,5290.0402,152,7290.025
[ 40 , 15 , 14 ] 5 7,716,6490.1241,697,6660.017
[ 39 , 15 , 12 ] 5 1,727,7010.030354,9170.009
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Bouyuklieva, S.; Bouyukliev, I. An Extension of the Brouwer–Zimmermann Algorithm for Calculating the Minimum Weight of a Linear Code. Mathematics 2021, 9, 2354. https://doi.org/10.3390/math9192354

AMA Style

Bouyuklieva S, Bouyukliev I. An Extension of the Brouwer–Zimmermann Algorithm for Calculating the Minimum Weight of a Linear Code. Mathematics. 2021; 9(19):2354. https://doi.org/10.3390/math9192354

Chicago/Turabian Style

Bouyuklieva, Stefka, and Iliya Bouyukliev. 2021. "An Extension of the Brouwer–Zimmermann Algorithm for Calculating the Minimum Weight of a Linear Code" Mathematics 9, no. 19: 2354. https://doi.org/10.3390/math9192354

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop