Motivation to ABNNR

edit

Can we build a large distance code over a large alphabet using a smaller alphabet code? This is where ABNNR and AEL codes come in.

ABNNR code addresses this using a repetition code i.e every element in original code is repeated and using this and an expander graph larger code is generated. AEL code instead of just repeating the elements uses another code to generate an intermediate code(parity code in example below), using this and an expander graph larger code is generated.

Definition of Expander graphs

edit

Consider a bipartite graph   where   is the set of left vertices,   is the set of right vertices and   is the set of edges between left and right vertices. Every vertex in   has degree  . Let   and  . The graph   is said to be   expander if   where   there will be at least   neighbors in  .

So in expander graphs small   on the left almost produces entire right vertex i.e a subset of left vertices produces entire right vertex set.

Consider a code with alphabet size  , where each letter can be represented by   bits (let us consider this alphabet to be  ). As an example, consider a repetition code   over . If we split the code word into   codewords each consisting of   consecutive bits, the subsequent code can be represented as  . Note that   and   reduce to   and   as we are encoding each of the consecutive   bits at a time. Consequently the distance reduces by a factor of  

We can represent the the above code using a bipartite graph as follows: the left hand side of the bipartite consists of ' ' vertices and right hand side consists of ' ' vertices, where each of the consecutive   vertices on the left map to a single vertex on the right. That is vertices  ,....,  map to vertex   on the right, vertices  ,.....,  map to vertex   on the right and so on.

https://wiki.cse.buffalo.edu/cse545/sites/wiki.cse.buffalo.edu.cse545/files/70/abnnr_1.jpg


Alon, Brooks, Naor, Naor, and Roth [ABNNR] Construction

edit

ABNNR construction requires: 1.   code   is a repetition code 2. Bipartite graph G i.e  -regular   expander

Step1: We encode a message of size   bits to   using code   Step2: Assign each of the   bits to the left vertices of expander graph Step3: Each of right vertex has   neighbors, assign each right vertex a  -bit string derived from its   neighbors. Step 4: The   elements on the right will be our desired codeword.

https://wiki.cse.buffalo.edu/cse545/sites/wiki.cse.buffalo.edu.cse545/files/70/abnnr.jpg

Additive codes A code   is said to be additive if its alphabet   forms a vector space over a ground field   , and   is linear over  . For an additive code weight of any non-zero codeword is at least distance of the code.

Since additive codes are linear codes.We argue that for any linear code   code  , minimum distance  = min   where   and   .

To show that   is same as minimum weight we show that   is no more than minimum weight and d is no less than minimum weight.

Consider   where   is the non-zero codeword in   with minimum weight. Its distance from   is equal to its weight.Thus we have  

Consider   such that  .Note that   (since C is a linear code). Now  .Since the non-zero symbols in   occur exactly in the positions where the two codewords differ, implies the minimum hamming weight of any non-zero codeword in   is at most  .

From the two arguments we can conclude that for an additive code weight of any non-zero codeword is atleast the hamming distance of the code.

Theorem 1 Given an  code   and a bipartite, d-regular graph   that is a expander, the encoding process above creates an   -code.

Proof: We start with   bits, which can be interpreted as   elements of  , so the new code reduces the rate by a factor of d. Assuming   is additive , we know that any code word of   has weight at least  . Since   is an expander graph, of the  - tuples obtained at least   tuples will be non-zero.Therefore the distance of the final code is  . Hence this encoding produces an   -code.

Alon, Edmonds and Luby [AEL] code

edit

Construction: In ABNNR construction, we assigned values of the edges using expander graph   using repetition code on the vertices on the left partition of the expander graph.In AEL code, we use another code   for this purpose. For AEL encoding we define a special type of expander graph.

Definition: Let   be a  -regular, bipartite graph with a set   of left vertices and a set   of right vertices satisfying   is a Failed to parse (syntax error): {\displaystyle (d,\epsilon)\-} uniform graph if  , , ,the number of edges between   and   is  .

AEL Construction

edit

The construction requires: 1.  code   . 2.  code   . 3. -uniform graph  . (  has   left and   right vertices). and 4.  .

Step1: We start with message of size   ie   elements of an alphabet of size   encoding this message gives   elements of size  . Step2: Assign each of the   elements to left vertex of   each left vertex has an element of  . This element can act as message for  . Step3: Encoding each element using   gives us   elements from an alphabet of size  .{In ABNNR all the   outgoing edges are assigned same value(repetition code) but in AEL we use   to generate each of d elements for a vertex.} Step4: We can place one of these d elements on each edge leaving the vertex. Step5: Each right vertex is assigned to  -tuple corresponding to edges incident to it.

https://wiki.cse.buffalo.edu/cse545/sites/wiki.cse.buffalo.edu.cse545/files/70/ael_1.jpg

Theorem 4 The AEL construction produces an  code

Proof:   elements of size   each are given as input to code  ,  Therefore the input message is of length   over  . Let   be relative distance of the code   i.e   Since the code outputs   tuples of   elements each we get code length as  . Now we have to establish a bound on the distance of the code and we are done.


Assuming   and   are additive codes, from the definition of   we have a codeword of length   and distance  . i.e the weight is atleast  .

In order to bound the weight of the output word, we have to bound the number of right vertices that have all their incident edges assigned to zero. Let   be the subset of the left vertices of   that are not zero, i.e   Let   be the set of right vertices of   that are assigned the value  .{All incident edges have  }

Since   has a relative distance   every element of   will have at most   of its edges set to zero.Thus the number of edges leaving   that are labelled zero is  . Since every member of   is labelled   this implies number of edges from   to   .

We also have that   is a   uniform graph which means that number of edges from   to   .

From the above two statements we get.

 {number of edges from X to Y }  .

This gives the following bound on   :

 

Minimum no. of non-zero elements are    

So, the minimum distance  

Relative distance  . Therefore AEL constructs an  code

Decoding AEL code

edit

Decoding is done in the reverse way as the encoding process .i.e from the output message (the final code word with large alphabet set) we traverse backward on the edges of the graph   and form a candidate set of codeword for each vertex on the left side vertex set of the bipartite graph.We then use the decoding algorithm for   to get the initial vertices which are of length   i.e the left vertices and then apply the decoding algorithm for   to get the original message back.

Summarizing the above:

Step:1Traverse along the edges from the right vertex to its   neighbors. Step:2Using the edge weights form the codeword for each of vertex on the left side. Step:3Apply decoding algorithm of   to get the initial left vertices. Step:4Apply decoding algorithm of   to get the initial message sent. (Assumption in step 3 and 4 is because of the fact that the decoding algorithm is to be made in linear time the decoding of the code   and   should also be linear and hence the overall decoding algorithm is linear even if one the decoding is done in nonlinear time then the overall decoding is also not linear). The theorem below tries to prove that there exists codes with   alphabets and satisfies other parameters as mentioned below such that with   fraction of errors it can be decodable in linear time.

Theorem 5:(Guruswami and Indyk) For all such values of   which satisfy the condition  , there is a   such that for all such values of   there can exist   - ary codes of rate   with relative distance   that are uniquely decodable from   fraction of errors in linear time.

Proof: As mentioned above, following the approach of reversing the method of encoding we can arrive at our messages. The following assumptions are made in the proof of the above theorem:

- Say the final output code word formed has   errors associated with it. - Say we have a constant time algorithm to decode  . - That we have a linear time algorithm to decode   if there are   errors.

Sketch: Take the bipartite graph used in the encoding process and follow the edges from the right vertices to the left vertices as there are errors in the codeword, these errors are propagated to the left vertices as we traverse along the edges. We can uniquely decode a vertex on the left side if the number of errors is or the number of edges coming into the vertex from the right vertex sets are Failed to parse (unknown function "\cdotd"): {\displaystyle \leq \dfrac{\delta\cdotd}{2}} . i.e let us consider   be the number of vertices which have errors Failed to parse (unknown function "\req"): {\displaystyle \req \dfrac{\delta\cdotn}{2}} and   the number of vertices on the right side of the bipartite graph that are uncorrupted Failed to parse (unknown function "\cdotn"): {\displaystyle (1-\tau)\cdotn} i.e Failed to parse (unknown function "\cdotn"): {\displaystyle \tau\cdotn+(1-\tau)\cdotn = n } (total number of errors + correct bits of the output =  ).

As the graph   is a   graph then it implies it has atleast  Failed to parse (unknown function "\cdotd"): {\displaystyle \dfrac{|X'|\cdot(1-\tau)}{n}-\epsilon)\cdotd\cdotn} edges between   and . But every vertex in   has atleast Failed to parse (unknown function "\cdotd"): {\displaystyle \dfrac{\delta\cdotd}{2}} errors or we can say that each vertex in   has atmost Failed to parse (unknown function "\cdotd"): {\displaystyle (1-\dfrac{\delta}{2})\cdotd} neighbors in  . We can then show that:

 Failed to parse (unknown function "\cdotd"): {\displaystyle \dfrac{|X'|\cdot(1-\tau)}{n}-\epsilon)\cdotd\cdotn \leq }   number of edges from   to     Failed to parse (unknown function "\cdotd"): {\displaystyle \leq (1-\dfrac{\delta}{2})\cdotd\cdot|X'|}} which on simplification gives: Failed to parse (unknown function "\cdotn"): {\displaystyle |X'|\leq\dfrac{\epsilon\cdotn}{\dfrac{\delta}{2}-\tau}}

choosing :   (the   elements of the left vertex set has a distance   and so we can get a correct code if the number of errors is less than   but since this is a   graph   or  ). Hence substituting for  ,

we get :  

Therefore we can decode from a fraction   of errors in linear time by choosing   appropriately.


References

edit


  1. MIT Lecture Notes on Essential Coding Theory – Dr. Madhu Sudan
  2. Carnegie Mellon University Lecture notes on Coding theory - Dr.Venkatesan Guruswami
  3. Lecture notes on Linear codes - Atri Rudra