Genetic Optimization of LDPC Codes to Improve the Correction of Burst Errors

. Error correction plays a crucial role when transmitting data from the source to the destination through a noisy channel. It has found many applications in television broadcasting services, data transmission in radiation harsh environment (e. g. space probes or physical experiments) or memory storages inﬂuenced by Single Event E ﬀ ects (SEE). Low Density Parity Check (LDPC) codes provide an important technique to correct these errors. The parameters of error correction depend both on the decoding algorithm and on the LDPC code given by the parity-check matrix. Therefore, a particular design of the parity-check matrix is necessary. Moreover, with the development of high performance comput-ing, the application of genetic optimization algorithms to design the parity-check matrices has been enabled. In this article, we present the application of the genetic optimization algorithm to produce error correcting codes with special properties, especially the burst types of errors. The results show the bounds of correction capabilities for various code lengths and various redundancies of LDPC codes. This is particularly useful when designing systems under the inﬂuence of noise combined with the application of the error correction codes.


Introduction
Error correction plays a crucial role in the data transmission chain from a source to a destination through a noisy channel. The noisy channel represents the addition of errors to the transmitted data stream. Such errors are usually caused by an unexpected interference, electronics failure, etc. Radiation harsh environment is one of the most common applications of error correction due to the Single Event Effects ocurring in electronics system. The error correction is also neccessary for obtaining correct results in physical experiments.
The Low Density Parity-Check (LDPC) codes [1], [2] are linear block codes defined by a low density parity-check matrix. The codeword is obtained by c = mG, where m is an information vector (message), c is a codeword, and G is the generator matrix associated with the code. The condition cH = 0 is satisfied if and only if c is a codeword.
The correction performance is given either by the structure of H and decoding algorithm used. A particular design of the parity-check matrix is necessary [1]. In the next sections, we present selected results from the design of the parity-check matrix H to correct the burst type of errors.
In this work, we show the results obtained by the application of the optimization algorithm proposed in [3]. The optimization algorithm is based on producing pseudo-random parity-check matrices using so called mutations. SP algorithm for LDPC decoding was chosen due to its generality without any simplifications [4].

Modeling of multiple burst errors
Usually not only one single bit in the data stream is affected by the failure, but also some of its neighbors. Suppose the communication from the source to the destination in terms of binary vector transmission. The codeword c is transmitted through a noisy channel and affected by the error vector e. Then, the receiver gets a corrupted codeword c = c + e.
The burst error is a type of error when the vector e contains a cluster of 1's surrounded by all 0's. The multiple burst error is an error when the vector e contains more than one such cluster. The multiple bursts are very common errors in real environment. Here we present a method how to design parity-check matrices associated with LDPC codes in order to provide the best correction capabilities for this type of errors. We show that the genetic optimization is a highly convenient method to this purpose and show a number of selected results.
The burst error pattern E P , used as an optimization parameter, is given by Here x i denote the lengths of error bursts in the codeword and |E P | is the number of burst errors. The total number of corrupted bits is then k i=1 E P (i). For an LDPC decoder [4], we define the initial probabilities p j (a) = p(c j = a|y j ) as the amount of belief that the j-th symbol is equal to a, where y j is the information received from the channel. Considering the vector e, we define the average probability of the error p e (a) = N e /n, where N e is the number of 1's in the vector e and n is the length of codeword. Then, This model is used during the genetic optimization for the calculation of the fitness function.

Application of the genetic optimization algorithm
The main optimization task consists of several steps: Producing the initial population, evaluation using the fitness function, selection of the best results, and producing the next generation. After producing the next generation, the algorithm continues the evaluation and selection in the loop. It terminates after a given time period or a number of generations. The next generations are produced using mutations of the parity-check matrix H, described in [3]. The Sum-Product (SP) algorithm is used for decoding [4]. For code evaluation, we use the fitness function defined below. The fitness function checks all combinations of error bursts given by burst lengths as elements of the tuple E P and calculates the number of corrupted codewords after the correction. The fitness function f is expressed as the total number of corrupted codeword after decoding for a given burst error pattern. This type of evaluation is deterministic.
In the this section, we present selected results from the genetic optimization. The correction performance for double burst error correction measured for different codes and different burst lengths are given in Tables 1-2. The code rate R is equal to R = k/n, where k is the information message length and n is the codeword length. The optimization tasks were held for 100 generations and the sharing period [3] was 10 generations. Fig. 1 plots the dependency of best fitness values on the generation number for selected optimization task. The tasks were run on HybriLIT and Govorun supercomputing clusters [7].  Figure 1. Sample optimization tasks. The LDPC code (128,72) has been selected for the optimization. The convergence of the best fitness value (the best value in the population produced in the particular generation) to the optimal solution can be seen.

Conclusions
In this article, we presented the application of genetic optimization algorithms for improving the performance correction capability of LDPC codes for a specific type of errors, namely error bursts. Such errors are very common in a data transmission influenced by any type of interference. The results show the bounds of correction capabilities for various code lengths and various redundancies. A very important group of the codes are codes with 50 % redundancy. From the tested cases, the code (128,64) is able to correct all bursts of length (3,2), the code (256,128) is able to correct all bursts of length (7,5), and the code (512,256) is able to correct all bursts of length (9,7). When longer bursts occur, the error correction cannot be guaranteed. The results are particularly useful in the generation of new codes for specific applications and to know the properties of electronic systems under the influence of noise.