User:Harikine/sandbox

From Wikipedia, the free encyclopedia

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 aexpander, 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 (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "http://localhost:6011/en.wikipedia.org/v1/":): {\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