Jump to content

Expander code

From Wikipedia, the free encyclopedia
Expander codes
bipartite expander graph
Classification
TypeLinear block code
Block length
Message length
Rate
Distance
Alphabet size
Notation-code

Incoding theory,expander codesform a class oferror-correcting codesthat are constructed frombipartiteexpander graphs. Along withJustesen codes,expander codes are of particular interest since they have a constant positiverate,a constant positive relativedistance,and a constantalphabet size. In fact, the alphabet contains only two elements, so expander codes belong to the class ofbinary codes. Furthermore, expander codes can be both encoded and decoded in time proportional to the block length of the code.

Expander codes[edit]

Incoding theory,an expander code is alinear block codewhose parity check matrix is the adjacency matrix of a bipartiteexpander graph.These codes have good relativedistance,whereandare properties of the expander graph as defined later),rate,and decodability (algorithms of running timeexist).

Definition[edit]

Letbe a-biregular graphbetween a set ofnodes,calledvariables,and a set ofnodes,calledconstraints.

Letbe a function designed so that, for each constraint,the variables neighboringare.

Letbe an error-correcting code of block length.Theexpander codeis the code of block lengthwhose codewords are the wordssuch that, for,is a codeword of.[1]

It has been shown that nontrivial lossless expander graphs exist. Moreover, we can explicitly construct them.[2]

Rate[edit]

The rate ofis its dimension divided by its block length. In this case, the parity check matrix has size,and hencehas rate at least.

Distance[edit]

Suppose.Then the distance of aexpander codeis at least.

Proof[edit]

Note that we can consider every codewordinas a subset of vertices,by saying that vertexif and only if theth index of the codeword is a 1. Thenis a codeword iff every vertexis adjacent to an even number of vertices in.(In order to be a codeword,,whereis the parity check matrix. Then, each vertex incorresponds to each column of.Matrix multiplication overthen gives the desired result.) So, if a vertexis adjacent to a single vertex in,we know immediately thatis not a codeword. Letdenote the neighbors inof,anddenote those neighbors ofwhich are unique, i.e., adjacent to a single vertex of.

Lemma 1[edit]

For everyof size,.

Proof[edit]

Trivially,,sinceimplies.follows since the degree of every vertex inis.By the expansion property of the graph, there must be a set ofedges which go to distinct vertices. The remainingedges make at mostneighbors not unique, so.

Corollary[edit]

Every sufficiently smallhas a unique neighbor. This follows since.

Lemma 2[edit]

Every subsetwithhas a unique neighbor.

Proof[edit]

Lemma 1 proves the case,so suppose.Letsuch that.By Lemma 1, we know that.Then a vertexis iniff,and we know that,so by the first part of Lemma 1, we know.Since,,and henceis not empty.

Corollary[edit]

Note that if ahas at least 1 unique neighbor, i.e.,then the corresponding wordcorresponding tocannot be a codeword, as it will not multiply to the all zeros vector by the parity check matrix. By the previous argument,.Sinceis linear, we conclude thathas distance at least.

Encoding[edit]

The encoding time for an expander code is upper bounded by that of a general linear code -by matrix multiplication. A result due to Spielman shows that encoding is possible intime.[3]

Decoding[edit]

Decoding of expander codes is possible intime whenusing the following algorithm.

Letbe the vertex ofthat corresponds to theth index in the codewords of.Letbe a received word, and.Letbe,andbe.Then consider the greedy algorithm:


Input:received word.

initialize y' to y
while there is a v in R adjacent to an odd number of vertices in V(y')
if there is an i such that o(i) > e(i)
flip entry i in y'
else
fail

Output:fail, or modified codeword.


Proof[edit]

We show first the correctness of the algorithm, and then examine its running time.

Correctness[edit]

We must show that the algorithm terminates with the correct codeword when the received codeword is within half the code's distance of the original codeword. Let the set of corrupt variables be,,and the set of unsatisfied (adjacent to an odd number of vertices) vertices inbe.The following lemma will prove useful.

Lemma 3[edit]

If,then there is awith.

Proof[edit]

By Lemma 1, we know that.So an average vertex has at leastunique neighbors (recall unique neighbors are unsatisfied and hence contribute to), since,and thus there is a vertexwith.

So, if we have not yet reached a codeword, then there will always be some vertex to flip. Next, we show that the number of errors can never increase beyond.

Lemma 4[edit]

If we start with,then we never reachat any point in the algorithm.

Proof[edit]

When we flip a vertex,andare interchanged, and since we had,this means the number of unsatisfied vertices on the right decreases by at least one after each flip. Since,the initial number of unsatisfied vertices is at most,by the graph's-regularity. If we reached a string witherrors, then by Lemma 1, there would be at leastunique neighbors, which means there would be at leastunsatisfied vertices, a contradiction.

Lemmas 3 and 4 show us that if we start with(half the distance of), then we will always find a vertexto flip. Each flip reduces the number of unsatisfied vertices inby at least 1, and hence the algorithm terminates in at moststeps, and it terminates at some codeword, by Lemma 3. (Were it not at a codeword, there would be some vertex to flip). Lemma 4 shows us that we can never be farther thanaway from the correct codeword. Since the code has distance(since), the codeword it terminates on must be the correct codeword, since the number of bit flips is less than half the distance (so we couldn't have traveled far enough to reach any other codeword).

Complexity[edit]

We now show that the algorithm can achieve linear time decoding. Letbe constant, andbe the maximum degree of any vertex in.Note thatis also constant for known constructions.

  1. Pre-processing: It takestime to compute whether each vertex inhas an odd or even number of neighbors.
  2. Pre-processing 2: We taketime to compute a list of verticesinwhich have.
  3. Each Iteration: We simply remove the first list element. To update the list of odd / even vertices in,we need only updateentries, inserting / removing as necessary. We then updateentries in the list of vertices inwith more odd than even neighbors, inserting / removing as necessary. Thus each iteration takestime.
  4. As argued above, the total number of iterations is at most.

This gives a total runtime oftime, whereandare constants.

See also[edit]

Notes[edit]

This article is based on Dr. Venkatesan Guruswami's course notes.[4]

References[edit]

  1. ^Sipser, M.; Spielman, D.A. (1996). "Expander codes".IEEE Transactions on Information Theory.42(6): 1710–1722.doi:10.1109/18.556667.
  2. ^Capalbo, M.; Reingold, O.; Vadhan, S.; Wigderson, A. (2002)."Randomness conductors and constant-degree lossless expanders".STOC '02 Proceedings of the thirty-fourth annual ACM symposium on Theory of computing.ACM. pp. 659–668.doi:10.1145/509907.510003.ISBN978-1-58113-495-7.S2CID1918841.
  3. ^Spielman, D. (1996). "Linear-time encodable and decodable error-correcting codes".IEEE Transactions on Information Theory.42(6): 1723–31.CiteSeerX10.1.1.47.2736.doi:10.1109/18.556668.
  4. ^Guruswami, V. (15 November 2006)."Lecture 13: Expander Codes"(PDF).CSE 533: Error-Correcting.University of Washington.
    Guruswami, V. (March 2010)."Notes 8: Expander Codes and their decoding"(PDF).Introduction to Coding Theory.Carnegie Mellon University.
    Guruswami, V. (September 2004)."Guest column: error-correcting codes and expander graphs".ACM SIGACT News.35(3): 25–41.doi:10.1145/1027914.1027924.S2CID17550280.