Good Quasi-Cyclic Codes from Circulant Matrices Concatenation using a Heuristic Method

In this paper we present a method to search q circulant matrices; the concatenation of these circulant matrices with circulant identity matrix generates quasi-cyclic codes with high various code rate q/(q+1) (q an integer). This method searches circulant matrices in order to find the good quasi-cyclic code (QCC) having the largest minimum distance. A modified simulated annealing algorithm is used as an evaluator tool of the minimum distance of the obtained QCC codes. Based on this method we found 16 good quasi-cyclic codes with rates (1/2, 2/3 and 3/4), their estimated minimum distance reaches the lower bounds of codes considered to be the better linear block codes in Brouwer’s database. Keywords—Circulant matrix; quasi-cyclic Codes; Minimum Distance; Simulated Annealing; Linear Error Correcting codes


INTRODUCTION
In coding theory, a large side of research has been interested in design and construction of error correcting codes families which are the basis of the channel coding element in the digital communication system.This research is not an easy problem.Moreover, the sphere packing problem is equivalent to finding a linear code with largest minimum Hamming weight in a given space [1].The term good codes in this work, refers to maximizing the minimum distance for a binary linear code of a given parameters: length and dimension or variouscode rate and/or high-code rate.
The author in [2] used the canonical form based in circulant matrices to found many good codes: quadratic residue codes and high quality group codes, and the author in [3] found the best quadratic residues with the same circulant property over the field GF (3) More generally, the author in [4] proposes a quadratic double circulant codes schemes which are a generalization over any field GF(q) and for any length code, on the contrary, of the construction methods cited in [1] [2].
The design of good error correcting codes is a difficult problem, which remains open in coding theory.Recently this problem is attacked with meta-heuristic methods.Some of these works, A. El Gamal et al. [5] used simulated annealing to build good source codes, good channel codes and spherical codes. in [6] Chatonnay et al. introduced genetic algorithms for finding good linear codes.In [7] [8] the authors found good double and triple circulant codes, using the multiple pulse method and genetic algorithms.Comellas et al. [9] used genetic algorithms to design constant weight codes.Walice et al. [10] have presented a comparative study of meta-heuristic techniques applied to estimate the minimum distance of BCH Codes.
The determination of the minimum distance of linear block codes (minimum Hamming weight) by classical methods is hardly feasible; in general, this is an NP-hard problem [11].The combinatorial nature of the problem requires an enumeration of the codewords for a linear code in order to find one with the minimum weight.Unfortunately, exhaustive exploration of the search space, is not possible, especially when the length n increases [12] [13], which means that the size of the search space that is 2 k codewords, becomes prohibitively high, where k is the dimension of code.Hence, the need of a met-heuristic technique to estimate the minimum Hamming weight value or in some cases, to find its true value.
We present in this paper, a method to search a good quasicyclic codes with rate q/(q+1) (where q is an integer) based in extensive random search for circulant matrices, and we chose the heuristic simulated annealing method (SA) to find the value of the minimum distance of quasi-cyclic codes that we have constructed.
The remainder of this paper is presented in six sections.On the next section, we give an introduction on quasi-circulant codes, the minimum distance of linear block codes, encoding operations and simulated annealing method.In section III we present the method for searching the good quasi-cyclic codes.The modified Simulated Annealing method is presented in section IV.The obtained codes and experiment results are presented in section V. Finally, concluding remarks and perspectives of this work are given in section VI.

II. ERROR CORRECTING CODES AND SIMULATED ANNEALING METHOD
A. Quasi-Circulant Codes Let (n, k, d) denote the linear block code over a field GF(q) with q elements of length n, dimension k, minimum distance d and the code rate k/n.
Let r=n-k be the code redundancy.

Definition1:
A matrix M square of order r over GF(q) is called circulant if each successive row a cyclic shift of the previous one, it has the following form: A Quasi-Cyclic Code QCC(n, k), is a linear block code of length n and the rate T which satisfies the following properties: • Any cyclic shift of a code word by s symbols gives another code word of QCC.
• The smallest integer s check this, is called the index of the code.
Quasi-cyclic codes are the general case of cyclic codes.When the integer s=1 the QCC are cyclic codes The quasi-cyclic codes can be generated by parallel or serially concatenated schemes of the circulant matrices.

The case of Double Circulant Codes (DCC)
A code linear of length n=2r and dimension k=r, with generator matrix of the form G=[I M] is called a double circulant code, where M is an r x r circulant matrix and I is an r x r identity matrix over GF (2).More properties of DCC codes are given in [14].

The case of Triple circulant codes (TCC)
A code linear of length n= n=3r and dimension k=r, with generator matrix of the form G=[I | M | N] is called a triple circulant code, where M and N are two r x r circulant matrix and I is an r x r identity matrix over GF (2).
We can define the generator matrix of Triple Circulant Code TCC by two vectors headers [m 0 , m 1 ,…, m r-1 ] and [n 0 , n 1 ,…, n r-1 ] which are respectively associated with the matrices M and N as the follow .

Minimum distance of a linear code
Let C be an (n, k ,d) linear block code over a field GF(2) with 2 elements.The code C has 2 k codeword which is a kdimensional subspace of the GF( 2) n .
Let a be an element of GF( 2), the Hamming weight W H is defined as follows The encoder transforms each input information vector D into n-tuple codeword A: multiplying D by G the generator matrix of the code C with n > k, (see Figure 1)

D. Simulated Annealing Method
We can say that simulated annealing is a neighbor search technique where the principle search is deeply inspired on the Metropolis [15] algorithm and the behavior of atoms in metals annealing process.The main idea is to use iteratively the Metropolis algorithm with reduction of the temperature.The annealing concepts in combinatorial optimization problems were introduced in 1980 by Kirkpatrick [16].These concepts are equivalence to find an optimal energy of solidification in physical process by applying the Metropolis algorithm and search the feasible solutions of the cost function which converge to an optimal solution for a combinatorial optimization problem.

III. THE PROPOSED METHOD FOR SEARCH THE GOOD QUASI-CYCLIC CODES
In this section we give a method to search good quasicyclic codes with different rate q/(q+1) (where q is an integer), this method is based on the search of a header called Total Header TH of length q*(n-k); after we generate q circulant matrices over F, each matrix is defined by the header of length (n-k), the serial concatenation of these headers give the Total Header TH.
The quasi-cyclic code of the code rate q/(q+1) is generated by parallel concatenation of q circulant matrices, that will be serially concatenated with circulant identity matrix.The generator matrix G of the generated quasi-cyclic code is as the following: Where I is a circulant identity matrix over F of size (q*(nk))(q*(n-k)) and A i , 1≤i≤q is a circulant matrices over F of size (n-k)(n-k) The matrix G is of size (q*(n-k))((q+1)*(n-k)), and of code rate is q/(q+1).
Once the generator matrix G of the quasi-cyclic code is constructed, we move to determine the value of the minimum distance of this code.This is made by developing the function F(A) named Cost Function as follow: Let G be the generator matrix of the quasi-code QCC(n,k) ,with elements g ij over GF (2), whose lines form a basis of QCC.

If the information vector D= (d 1 , d 2,…, d k ) ϵ {0,1} k
Then the corresponding codeword A=( a 1 , a 2,…, a n ) can be uniquely written as follows.Then we have The minimum value of the function F(A) presents the value of minimum distance of the QCC, in other words we want to find a vector information D over {0,1} k -{0} which minimizes F(A).To determine the minimal solutions (minimum distance) of the F(A) function we use a modified simulated annealing algorithm (see section IV) .

A. The proposed search method algorithm
We implement an algorithm which uses the features of the aforementioned method.This method searches the good Total Header, so as to find a largest value of the minimum distance of the quasi-cyclic code.Where the header of A 1 is h

The algorithm is given in
The quasi-cyclic code generated has the following characteristics: • Distance minimal d=4 by algorithm 2 • Noted QCC(24, 18, 4) The use of SA method gives rise to a new SA algorithm.This algorithm is an efficient evaluator of the minimum distance for linear block codes, already has been tested on several family of linear codes in our previous work [17].
The Modiefed Simulated Annealing algorithm which is used to calculate the minimal distance of a QCC codes is given in Algorithm2: Algorithm 2: The basic algorithm of the modified simulated annealing.

Input(s):
N: number of iterations in each T i where 10≤N ≤10000 T i =1.2, T f =0.001, α=0.9:cooling factor Initial Task= Task_1 Output(s): minimum distance of the QC code Generate randomly D i a starting information vector Repeat: Repeat: If (Task== Task_1) then determine a neighbor information vector (D i+1 ) from task_1; Else determine a neighbor information vector (D i+1 ) from task_ 2; End if If (Transition criterion is satisfied==yes ) Then switch between Task_1 and Task_2; End if T α.T; Task_1: Let D i = (D i1 ,..., D ik ) be the current information vector over GF( 2) k and S i = (s i1 ,..., s ik ) a switch vector over GF(2) k , randomly generated, where 1 ≤W H (S i )≤ k.The neighborhood information vector D i+1 is defined as follows: Step1. ) 6 ( mod2 W H (D i+1 ) must be between 1 and minimum distance upper bound of the QC code

Step3. D i+1 ϵ GF(2) k -{0}
Task_2: Let Γ p be the cyclic shift of p places of elements The neighborhood information vector D i+i is produced by generate a random integer number p over [1, k-1], and we apply the cyclic shift Γ p on D i .

Criterion of transition between Task_1 and Task_2
The transition between Task-1 and Task-2 is made randomly from an uniform distribution.

V. COMPUTATIONAL EXPERIMENT RESULTS
We performed the computational experiments with: -Software: program developed in language C -Hardware: CPU CORE 2Duo 2GHz and 2GB of RAM We used the parameters in algorithm 2 for simulated annealing algorithm.
All good quasi-cyclic codes that we found by this method, using the modified simulated annealing method, have been verified and validated independently using the well known computer algebra package, MAGMA [18].
Here, the term good quasi-cyclic code refers to a binary quasi-cyclic code with the largest d min for a given length n and dimension k.In cases where there is more than one good code, only one is chosen.
The Tables I, II and III as following summarize the obtained good quasi-cyclic codes with code rate q/(q+1) where q is an integer between 1 and 3.
Note that LB and UP, respectively, denote Lower Bound and Upper Bound on the minimum distance of a linear code for a given parameters, these limits are taken from the Brouser's data base [19].d magma is the minimum distance calculated by the calculator algebraic Magma [18] and d found is the minimum distance of QCC obtained by the modified simulated annealing algorithm.The obtained QCC codes seem to be good codes because their estimated minimum distance is equal to their lower bounds.

VI. CONCLUSION
We gave a method to search good quasi-cyclic codes with different rate q/(q+1) (where q is an integer) and we presented 16 new quasi-cyclic codes with minimum distances equal to lower bounds of the good linear codes in Brouwer's database.The fact that we have integrated a modified simulated annealing in the search algorithm speeded up the extensive random search process.In the future work, we will try to search with this efficient technique others better linear block codes, and to test the obtained codes in Encoder/Decoder systems for computational complexity and BER performance.
. .......... ..........The vector of the first row (m 0 ,m 1 …, m r-1 ) is called the header of the circulant matrix M Definition2: minimum Hamming weight of the code C over GF(2) the positive integer: min{ W H (A) : AϵC, A≠0} The minimum distance d min (or the minimum Hamming distance) of the linear code C is the minimum Hamming weight of any nonzero codeword.

Algorithm 1 Algorithm 1 :
Algorithm of the proposed search method Inputs: q, n-k, nbr-test, L B : lower bound of d min Outputs: list of good quasi-cyclic codes For i=1 to nbr-test do: Step1: Generate randomly the Total Header TH of length q*(n-k) Step2: Generate q circulant matrices A i related to TH Step3: Generate the Generator matrix G of the quasi-cyclic code related to A i matrices Step4: Calculate the minimum distance d min of the generated quasi-cyclic code using simulated annealing (In Algorithm 2) Step5: If (d min >= L B ) then take the Total Header TH Let q=3, r=n-k=6, if the Total Header is TH=[

TABLE I .
GOOD QUASI-CYCLIC CODES FOUND USING ALGORITHM 1, WITH Q=1, CODE RATE T=1/2