<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">IJCNS</journal-id><journal-title-group><journal-title>International Journal of Communications, Network and System Sciences</journal-title></journal-title-group><issn pub-type="epub">1913-3715</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/ijcns.2015.89034</article-id><article-id pub-id-type="publisher-id">IJCNS-59831</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Serial Genetic Algorithm Decoder for Low Density Parity Check Codes
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>asna</surname><given-names>Chaibi</given-names></name><xref ref-type="aff" rid="aff1"><sub>1</sub></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><label>1</label><addr-line>SIME Lab., ENSIAS, Mohammed V University, Rabat, Morocco</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>has.chaibi@gmail.com</email></corresp></author-notes><pub-date pub-type="epub"><day>02</day><month>09</month><year>2015</year></pub-date><volume>08</volume><issue>09</issue><fpage>358</fpage><lpage>366</lpage><history><date date-type="received"><day>19</day>	<month>August</month>	<year>2015</year></date><date date-type="rev-recd"><day>accepted</day>	<month>20</month>	<year>September</year>	</date><date date-type="accepted"><day>23</day>	<month>September</month>	<year>2015</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  Genetic algorithms are successfully used for decoding some classes of error correcting codes, and offer very good performances for solving large optimization problems. This article proposes a new decoder based on Serial Genetic Algorithm Decoder (SGAD) for decoding Low Density Parity Check (LDPC) codes. The results show that the proposed algorithm gives large gains over sum-product decoder, which proves its efficiency.
 
</p></abstract><kwd-group><kwd>Serial Genetic Algorithm</kwd><kwd> Sum-Product Decoder</kwd><kwd> Sigmoidal Function</kwd><kwd> LDPC Code</kwd><kwd> Error Correcting Codes</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The current large development and deployment of wireless and digital communication encourage the research activities in the domain of error correcting codes. The latter is used to improve the reliability of data transmitted over communication channels susceptible to noise. Coding techniques create codewords by adding redundant information to the user information vectors. Decoding algorithms try to find the most likely transmitted codewords related to the received one as depicted in <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p><p>Decoding algorithms are classified into two categories: hard decision and soft decision algorithms. Hard decision algorithms work on a binary form of the received information. In contrast, soft decision algorithms work directly on the received symbols [<xref ref-type="bibr" rid="scirp.59831-ref1">1</xref>] . Soft-decision decoding is a NP-hard problem and has been approached in different ways. Recently artificial intelligence techniques were introduced to solve this problem. Among the related works, the decoding of linear block codes uses algorithm A* [<xref ref-type="bibr" rid="scirp.59831-ref2">2</xref>] , genetic algorithms [<xref ref-type="bibr" rid="scirp.59831-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.59831-ref3">3</xref>] and neural networks [<xref ref-type="bibr" rid="scirp.59831-ref4">4</xref>] .</p><p>LDPC codes were invented by Gallager [<xref ref-type="bibr" rid="scirp.59831-ref5">5</xref>] in his PhD thesis. Soon after their invention, they were largely</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Communication system model</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-9702015x5.png"/></fig><p>forgotten, and reinvented several times for the next 30 years. Their comeback is one of the most intriguing aspects of their history, since two different communities’ reinvented codes are similar to Gallager’s LDPC codes at roughly the same time, but for entirely different reasons.</p><p>Low Density Parity Check (LDPC) codes are a class of linear block codes. The name comes from the characteristic of their parity-check matrix which contains only a few 1’s in comparison to the amount of 0’s. Their main advantage is that they provide a performance which is very close to the capacity for a lot of different channels and linear time complex algorithms for decoding. Furthermore, they are suited for implementations that make heavy use of parallelism [<xref ref-type="bibr" rid="scirp.59831-ref6">6</xref>] .</p><p>LDPC codes have emerged as the best error correcting codes close to the theoretical Shannon limit performance. When these codes are decoded using Gallager’s iterative probabilistic decoding method, also known as the sum-product algorithm or belief propagation algorithm, their empirical BER performance is found to be excellent [<xref ref-type="bibr" rid="scirp.59831-ref7">7</xref>] - [<xref ref-type="bibr" rid="scirp.59831-ref9">9</xref>] . This is true when the length of the code vector is large enough.</p><p>The LDPC sum-product decoding algorithm [<xref ref-type="bibr" rid="scirp.59831-ref5">5</xref>] [<xref ref-type="bibr" rid="scirp.59831-ref10">10</xref>] makes an estimation of the A Posteriori Probability (APP) of each symbol as a function of the received symbol and the properties of the channel. In this sense, the decoding algorithm is required to know the signal-to-noise ratio in the channel.</p><p>In this article we introduce a new Serial Genetic Algorithm Decoder (SGAD) LDPC codes. In effect, a comparison with sum-product decoder, which is currently the most successful algorithm for LDPC, shows its efficiency, and gives the higher performances.</p><p>This paper is organized as follows. In Section II, we introduce Genetic algorithm; in Section III, we present SGAD (our decoder) and analyze the performances. Finally, Section IV presents the conclusion and future trends.</p></sec><sec id="s2"><title>2. Genetic Algorithm</title><p>Genetic algorithms are heuristic search algorithms premised on the natural selection and genetic [<xref ref-type="bibr" rid="scirp.59831-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.59831-ref11">11</xref>] [<xref ref-type="bibr" rid="scirp.59831-ref12">12</xref>] . It is a non-mathematical, non-deterministic, but stochastic process or algorithm for solving optimization problems. The concept of genetic algorithm was introduced by Holland [<xref ref-type="bibr" rid="scirp.59831-ref13">13</xref>] in 1975, it is defined by:</p><p>・ Individual or chromosome: a potential solution of the problem, it’s a sequence of genes.</p><p>・ Population: a set of points of the research space.</p><p>・ Environment: the space of research.</p><p>・ Fitness function: the function to maximise/minimise.</p><p>・ Encoding of chromosomes: it depends on the treated problem, the famous known schemes of coding are: binary encoding, permutation encoding, value encoding and tree encoding.</p><p>・ Operators of evolution:</p><p>Selection: It permits to select the best individuals to insert in the intermediate generation.</p><p>Crossover: For a pair of parents (p1; p2) it permits to create two children (ch1; ch2), with a crossover probability Pc.</p><p>Mutation: The genes of the individual are muted according to the mutation rate m<sub>r</sub> and the mutation probability Pm. The typical steps in the design of genetic algorithm are described below and illustrated in <xref ref-type="fig" rid="fig2">Figure 2</xref>:</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> A simplified model of a genetic algorithm</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-9702015x6.png"/></fig></sec><sec id="s3"><title>3. Serial Genetic Algorithm Decoder (SGAD)</title><p>This work is a serialization of the genetic algorithm, the decoder computes the syndrome of the received vector, so if the syndrome is null, the decoder returns the decoded vector equal to the binary decision of received one, else the decoder turn the first execution of GA with an initial population randomly generated (PoP), in the second execution of GA, the decoder inserts a subpopulation (SubPoP) (a some elites of the last generation for first GA execution) in the initial population (PoP). Then the decoder returns the best individuals as a decoded word. The pseudo code of SGAD is shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>. The parameters are the population size (N<sub>i</sub>); the subpopulation size (p), the number of generation (N<sub>g</sub>).</p><sec id="s3_1"><title>3.1. The SGAD Decoder</title><p>Let C a Low Density Parity Check (LDPC) code, and let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x7.png" xlink:type="simple"/></inline-formula> be the received sequence over a communication channel with noise variance<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x8.png" xlink:type="simple"/></inline-formula>, where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x9.png" xlink:type="simple"/></inline-formula> is noise power spectral density.</p><p>Let<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x10.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x11.png" xlink:type="simple"/></inline-formula>and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x12.png" xlink:type="simple"/></inline-formula> respectively, the population size, the number of elite members, the number of generations</p><p>Let P the size of the subpopulation.</p><p>Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x13.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x14.png" xlink:type="simple"/></inline-formula> be the crossover and the mutation rates.</p><p>Let U = [0,1] and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x15.png" xlink:type="simple"/></inline-formula> is the received vector transformed into [0,1] using the hyperbolic tangent sigmoidal function (Equation (3)).</p><disp-formula id="scirp.59831-formula1054"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/3-9702015x16.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.59831-formula1055"><label>(2)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/3-9702015x17.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.59831-formula1056"><label>(3)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/3-9702015x18.png"  xlink:type="simple"/></disp-formula><p>The decoding-based on serial genetic algorithm is depicted in <xref ref-type="fig" rid="fig3">Figure 3</xref>. The steps of the decoder based on SGA are as follows:</p><p>Step 1. The decoder calculates de syndrome of de received vector (Equation (4)).</p><disp-formula id="scirp.59831-formula1057"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/3-9702015x19.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x20.png" xlink:type="simple"/></inline-formula> is the hard decision of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x20.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x21.png" xlink:type="simple"/></inline-formula> (Equation (5)), and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x20.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x21.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x22.png" xlink:type="simple"/></inline-formula> is the transpose of the matrix<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x20.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x21.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x22.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x23.png" xlink:type="simple"/></inline-formula>.</p><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Pseudo code of SGAD</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-9702015x24.png"/></fig><disp-formula id="scirp.59831-formula1058"><label>(5)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/3-9702015x25.png"  xlink:type="simple"/></disp-formula><p>If<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x26.png" xlink:type="simple"/></inline-formula>, then a valid code vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x26.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x27.png" xlink:type="simple"/></inline-formula> is obtained by<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x26.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x27.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x28.png" xlink:type="simple"/></inline-formula>. Otherwise we apply the steps of GA:</p><p>Step 2. Generate an initial random subpopulation (SubPoP) of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x29.png" xlink:type="simple"/></inline-formula> soft vectors <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x30.png" xlink:type="simple"/></inline-formula> of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x30.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x31.png" xlink:type="simple"/></inline-formula> components (<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x30.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x31.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x32.png" xlink:type="simple"/></inline-formula>).</p><p>Step 3. For i from 1 to 2.</p><p>Substep 3.1. Generate an initial random population (PoP) of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x33.png" xlink:type="simple"/></inline-formula> soft vectors <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x33.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x34.png" xlink:type="simple"/></inline-formula> of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x33.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x34.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x35.png" xlink:type="simple"/></inline-formula> components (<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x33.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x34.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x35.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x36.png" xlink:type="simple"/></inline-formula>).</p><p>Substep 3.2. Insert the subpopulation (SubPoP) in the initial population (PoP).</p><p>Substep 3.3. Compute the fitness of each individual in the population:</p><p>The fitness function is the syndrome weight of de candidate, and the distance between the candidate vector and the received one (Equation (2)).</p><disp-formula id="scirp.59831-formula1059"><label>(6)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/3-9702015x37.png"  xlink:type="simple"/></disp-formula><p>where</p><disp-formula id="scirp.59831-formula1060"><label>(7)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/3-9702015x38.png"  xlink:type="simple"/></disp-formula><p>and</p><disp-formula id="scirp.59831-formula1061"><label>(8)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/3-9702015x39.png"  xlink:type="simple"/></disp-formula><p>z is the solution provided by GA.</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x40.png" xlink:type="simple"/></inline-formula>and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x41.png" xlink:type="simple"/></inline-formula>, denote, respectively, the number of rows of the parity check matrix<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x41.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x42.png" xlink:type="simple"/></inline-formula>, the code vector length.</p><p>Substep 3.4. The population is sorted in ascending order of member’s fitness defined by (6).</p><p>Substep 3.5. The best two members (<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x43.png" xlink:type="simple"/></inline-formula>) of each generation are inserted in the next one.</p><p>Substep 3.6. The other <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x44.png" xlink:type="simple"/></inline-formula> members of the next generation are generated as follows:</p><p>Subsubstep 3.6.1. Selection operation: a selection operation that uses the tournament selection method is applied in order to identify the best parents<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x45.png" xlink:type="simple"/></inline-formula>, on which the reproduction operators are applied.</p><p>Subsubstep 3.6.2. Crossover operation: Create new vectors <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x46.png" xlink:type="simple"/></inline-formula> “children”, with a given probability rate<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x46.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x47.png" xlink:type="simple"/></inline-formula>. We use Ring Crossover (RC) [<xref ref-type="bibr" rid="scirp.59831-ref14">14</xref>] .</p><p>Subsubstep 3.6.3. Mutation operator: To complete the new generation, children are mutated by introducing random changes with a given probability rate <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x48.png" xlink:type="simple"/></inline-formula> to single parent.</p><p>The P best member from the last generation for the first execution of GA are inserted in the subpopulation (SupPoP).</p><p>Step 4. The decoder decision is z the best member from the last generation after two GA runs.</p></sec><sec id="s3_2"><title>3.2. Simulation Results and Discussions Related to SGAD</title><p>In order to prove the effectiveness of SGAD, we do intensive simulations.</p><p>The simulations where made with default parameters outlined in <xref ref-type="table" rid="table1">Table 1</xref>. The performances are given in terms of BER (bit error rate) as a function of SNR (Signal to Noise Ratio Eb/N0).</p><sec id="s3_2_1"><title>3.2.1. Effect of the Subpopulation Size on the Performance</title><p>The number of size of the subpopulation (the number of the elites members of the last generation inserted in the initial population for second execution of GA) used in our decoder has an effect in the performances quality. <xref ref-type="fig" rid="fig4">Figure 4</xref> shows this effect.</p><p><xref ref-type="fig" rid="fig4">Figure 4</xref> shows that the performance improves by increasing the number of size of the subpopulation until 20, after, the performance decrease by increasing this number. So the number of size of the subpopulation must be chosen carefully to give good impact into the performances of our decoder.</p></sec><sec id="s3_2_2"><title>3.2.2. Comparison with Sum-Product Decoder</title><p>Our new decoder has been compared with the Sum-Product Decoder for regular LDPC (63,37), LDPC (73,45) and</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Default parameters</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Simulation parameter</th><th align="center" valign="middle" >Parameter value</th></tr></thead><tr><td align="center" valign="middle" >Pc (crossover rate)</td><td align="center" valign="middle" >0.97</td></tr><tr><td align="center" valign="middle" >Pm (mutation rate)</td><td align="center" valign="middle" >0.01</td></tr><tr><td align="center" valign="middle" >Ng (generation number)</td><td align="center" valign="middle" >30</td></tr><tr><td align="center" valign="middle" >Ni (population size)</td><td align="center" valign="middle" >300</td></tr><tr><td align="center" valign="middle" >Ne (elite number)</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >P (subpopulation size)</td><td align="center" valign="middle" >20</td></tr><tr><td align="center" valign="middle" >Channel</td><td align="center" valign="middle" >AWGN</td></tr><tr><td align="center" valign="middle" >Modulation</td><td align="center" valign="middle" >BPSK</td></tr><tr><td align="center" valign="middle" >Minimum number of bit errors</td><td align="center" valign="middle" >100</td></tr><tr><td align="center" valign="middle" >Minimum number of bloc</td><td align="center" valign="middle" >1000</td></tr><tr><td align="center" valign="middle" >Default code</td><td align="center" valign="middle" >LDPC (63,37)</td></tr><tr><td align="center" valign="middle" >Type of crossover</td><td align="center" valign="middle" >Ring Crossover (RC)</td></tr><tr><td align="center" valign="middle" >Type of selection</td><td align="center" valign="middle" >Tournament</td></tr></tbody></table></table-wrap><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Performance of our decoder for different size of the subpopulation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-9702015x49.png"/></fig><p>LDPC (96,48) codes. The results are given in Figures 5-7:</p><p><xref ref-type="fig" rid="fig5">Figure 5</xref> shows that the SGAD provides good performances compared to sum-product decoder for regular LDPC (63,37) code. The gain between the SGAD and sum-product decoder is 1.5 dB at 10<sup>−4</sup>.</p><p><xref ref-type="fig" rid="fig6">Figure 6</xref> compares the performances of SGAD with sum-product decoder for regular LDPC (73,45) code. We remark that the SGAD is better than sum-product decoder. The gain between the SGAD and sum-product decoder is 1.5 dB at 10<sup>−4</sup>.</p><p><xref ref-type="fig" rid="fig7">Figure 7</xref> compares the performances of SGAD with sum-product decoder. We remark that the SGAD is better than sum-product decoder for regular LDPC (96,48) code. The gain between the SGAD and sum-product decoder is 1 dB at 10<sup>−3</sup>.</p></sec><sec id="s3_2_3"><title>3.2.3. Study of Hyperbolic Tangent Sigmoidal Function</title><p>We have used the hyperbolic tangent function (Equation (3)) in our decoder based on serial genetic algorithm for transform the values of the received vector (r) in domain [0,1]. We have taken the value of the received word r in the interval [−4,4], and we have plotted the transformation using the hyperbolic tangent function (<xref ref-type="fig" rid="fig8">Figure 8</xref>).</p><p>From this figure we can say that the tangent hyperbolic function, applied component wise, is to map the components of the received vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x50.png" xlink:type="simple"/></inline-formula> into [0,1] Also, shows that for one r lower than zero, when we increase the factor<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x50.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x51.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x50.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x51.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x52.png" xlink:type="simple"/></inline-formula>close to zero, and for one r is greater than 0, when we increase the factor<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x50.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x51.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x52.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x53.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x50.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x51.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x52.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x53.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x54.png" xlink:type="simple"/></inline-formula>close to one. we can conclude that, by reducing the value of the factor <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x50.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x51.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x52.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x53.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x54.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x55.png" xlink:type="simple"/></inline-formula> we increase the diversity of the received sequence component. For this, we have study the influence of the factor <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x50.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x51.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x52.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x53.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x54.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x55.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x56.png" xlink:type="simple"/></inline-formula> (Equation (9)) on the performances. <xref ref-type="fig" rid="fig9">Figure 9</xref> shows this influence on the performances.</p><disp-formula id="scirp.59831-formula1062"><label>(9)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/3-9702015x57.png"  xlink:type="simple"/></disp-formula><p><xref ref-type="fig" rid="fig9">Figure 9</xref> emphasizes the influence of values factor of the hyperbolic tangent function on the performance of SGAD. Decreasing this factor from 1 to 0.5, we can gain 1.5 dB at 10<sup>−4</sup>.</p></sec></sec></sec><sec id="s4"><title>4. Conclusion</title><p>In this paper, we have proposed a new decoder based on serial GA for LDPC codes. The simulations applied on some LDPC code show that the proposed algorithm is an efficient algorithm. The comparison between our SGAD and sum-product decoder shows that our decoder is better in terms of performances. We have shown that the performances must be improved by the factor of the sigmoidal function. The obtained results will open new</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Performance of SGAD compared to sum-product decoder for a regular LDPC (63,37) code</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-9702015x58.png"/></fig><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Performance of SGAD compared to sum-product decoder for a regular LDPC (73,45) code</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-9702015x59.png"/></fig><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Performance of SGAD compared to sum-product decoder for a regular LDPC (96,48) code</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-9702015x60.png"/></fig><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/3-9702015x62.png" xlink:type="simple"/></inline-formula>according to r , by varying the factor ω</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-9702015x61.png"/></fig><fig id="fig9"  position="float"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> Performance of SDAG decoder varying the factor values ω in the hyperbolic tangent function for LDPC (63,37) code</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-9702015x63.png"/></fig><p>horizons for the artificial intelligence algorithms in the coding theory field.</p></sec><sec id="s5"><title>Cite this paper</title><p>HasnaChaibi, (2015) Serial Genetic Algorithm Decoder for Low Density Parity Check Codes. International Journal of Communications, Network and System Sciences,08,358-366. doi: 10.4236/ijcns.2015.89034</p></sec></body><back><ref-list><title>References</title><ref id="scirp.59831-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Maini, H.S., Mehrotra, K.G., Mohan, C. and Ranka, S. (1994) Genetic Algorithms for Soft Decision Decoding of Linear Block Codes. Journal of Evolutionary Computation, 2, 145-164. http://dx.doi.org/10.1162/evco.1994.2.2.145</mixed-citation></ref><ref id="scirp.59831-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Han, Y.S., Hartmann, C.R.P. and Chen, C.-C. (1991) Efficient Maximum Likelihood Soft Decision Decoding of Linear Block Codes Using Algorithm A*. Technical Report SUCIS-91-42, School of Com-puter and Information Science, Syracuse University, Syracuse, NY 13244.</mixed-citation></ref><ref id="scirp.59831-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Azouaoui, A., Belkasmi, M. and Farchane, A. (2012) Efficient Dual Domain Decoding of Linear Block Codes Using Genetic Algorithms. Journal of Electrical and Computer Engineering, 2012, Article ID 503834, 12 p.</mixed-citation></ref><ref id="scirp.59831-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Wu, J.-L., Tseng, Y.-H. and Huang, Y.-M. (2002) Neural Networks Decoders for Linear Block Codes. International Journal of Computational Engineering Science, 3, 235-255. http://dx.doi.org/10.1142/S1465876302000629</mixed-citation></ref><ref id="scirp.59831-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Gallager, R.G. (1963) Low-Density Parity-Check Codes. The MIT Press, Cambridge.</mixed-citation></ref><ref id="scirp.59831-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Khalifa, O.O., Khan, S., Zaid, M. and Nawawi, M. (2008) Performance Evaluation of Low Density Parity Check Codes. International Journal of Computer Science and Engineering, 2, 67-70.</mixed-citation></ref><ref id="scirp.59831-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Richardson, T., Shokrollahi, A. and Urbanke, R. (2001) Design of Capacity Approaching Irregular Low-Density Parity-Check Codes. IEEE Transactions on Information Theory, 47, 619-637. http://dx.doi.org/10.1109/18.910578</mixed-citation></ref><ref id="scirp.59831-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Richardson, T. and Urbanke, R. (2001) The Capacity of Low-Density Parity-Check Codes under Message-Passing Decoding. IEEE Transactions on Information Theory, 47, 599-618. http://dx.doi.org/10.1109/18.910577</mixed-citation></ref><ref id="scirp.59831-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">MacKay, D.J.C. (1999) Good Error-Correcting Codes Based on Very Sparse Matrices. IEEE Transactions on Information Theory, 45, 399-431. http://dx.doi.org/10.1109/18.748992</mixed-citation></ref><ref id="scirp.59831-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">MacKay, D.J.C. and Neal, R.M. (1997) Near Shannon Limit Performance of Low-Density Parity-Check Codes. Electronics Letters, 33, 457-458. http://dx.doi.org/10.1049/el:19970362</mixed-citation></ref><ref id="scirp.59831-ref11"><label>11</label><mixed-citation publication-type="book" xlink:type="simple">Gordon, V.S. and Whitley, D. (1993) Serial and Parallel Genetic Algorithms as Function Optimizers. In: Forrest, S., Ed., Proceedings of the Fifth International Conference on Genetic Algorithms, San Mateo, 177-183.</mixed-citation></ref><ref id="scirp.59831-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Janikow, C.Z. and Michalewicz, Z. (1991) An Experimental Comparison of Binary and Floating Point Representations in Genetic Algorithms. Proc. 4th Int. Conf. Genetic Algorithms, July 1991, 31-36.</mixed-citation></ref><ref id="scirp.59831-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Holland, J. (1975) Adaptation in Natural and Artificial Systems. The University of Michigan Press, Ann Arbor.</mixed-citation></ref><ref id="scirp.59831-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Kaya, Y., Uyar, M. and Tekin, R. (2011) A Novel Crossover Operator for Genetic Algorithms: Ring Crossover. Presented at CoRR.</mixed-citation></ref></ref-list></back></article>