In coding theory, expander codes form a class of error-correcting codes that are constructed from bipartite expander graphs. Along with Justesen codes, expander codes are of particular interest since they have a constant positive rate, a constant positive relative distance, and a constant alphabet size. In fact, the alphabet contains only two elements, so expander codes belong to the class of binary codes. Furthermore, expander codes can be both encoded and decoded in time proportional to the block length of the code.

Expander codes
bipartite expander graph
Classification
TypeLinear block code
Block length
Message length
Rate
Distance
Alphabet size
Notation-code

Expander codes edit

In coding theory, an expander code is a   linear block code whose parity check matrix is the adjacency matrix of a bipartite expander graph. These codes have good relative distance  , where   and   are properties of the expander graph as defined later), rate  , and decodability (algorithms of running time   exist).

Definition edit

Let   be a  -biregular graph between a set of   nodes  , called variables, and a set of   nodes  , called constraints.

Let   be a function designed so that, for each constraint  , the variables neighboring   are  .

Let   be an error-correcting code of block length  . The expander code   is the code of block length   whose codewords are the words   such 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 of   is its dimension divided by its block length. In this case, the parity check matrix has size  , and hence   has rate at least  .

Distance edit

Suppose  . Then the distance of a   expander code   is at least  .

Proof edit

Note that we can consider every codeword   in   as a subset of vertices  , by saying that vertex   if and only if the  th index of the codeword is a 1. Then   is a codeword iff every vertex   is adjacent to an even number of vertices in  . (In order to be a codeword,  , where   is the parity check matrix. Then, each vertex in   corresponds to each column of  . Matrix multiplication over   then gives the desired result.) So, if a vertex   is adjacent to a single vertex in  , we know immediately that   is not a codeword. Let   denote the neighbors in   of  , and   denote those neighbors of   which are unique, i.e., adjacent to a single vertex of  .

Lemma 1 edit

For every   of size  ,  .

Proof edit

Trivially,  , since   implies  .   follows since the degree of every vertex in   is  . By the expansion property of the graph, there must be a set of   edges which go to distinct vertices. The remaining   edges make at most   neighbors not unique, so  .

Corollary edit

Every sufficiently small   has a unique neighbor. This follows since  .

Lemma 2 edit

Every subset   with   has a unique neighbor.

Proof edit

Lemma 1 proves the case  , so suppose  . Let   such that  . By Lemma 1, we know that  . Then a vertex   is in   iff  , and we know that  , so by the first part of Lemma 1, we know  . Since  ,  , and hence   is not empty.

Corollary edit

Note that if a   has at least 1 unique neighbor, i.e.  , then the corresponding word   corresponding to   cannot be a codeword, as it will not multiply to the all zeros vector by the parity check matrix. By the previous argument,  . Since   is linear, we conclude that   has 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 in   time.[3]

Decoding edit

Decoding of expander codes is possible in   time when   using the following algorithm.

Let   be the vertex of   that corresponds to the  th index in the codewords of  . Let   be a received word, and  . Let   be  , and   be  . 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 in   be  . The following lemma will prove useful.

Lemma 3 edit

If  , then there is a   with  .

Proof edit

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

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 reach   at any point in the algorithm.

Proof edit

When we flip a vertex  ,   and   are 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 with   errors, then by Lemma 1, there would be at least   unique neighbors, which means there would be at least   unsatisfied vertices, a contradiction.

Lemmas 3 and 4 show us that if we start with   (half the distance of  ), then we will always find a vertex   to flip. Each flip reduces the number of unsatisfied vertices in   by at least 1, and hence the algorithm terminates in at most   steps, 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 than   away 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. Let   be constant, and   be the maximum degree of any vertex in  . Note that   is also constant for known constructions.

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

This gives a total runtime of   time, where   and   are 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. ISBN 978-1-58113-495-7. S2CID 1918841.
  3. ^ Spielman, D. (1996). "Linear-time encodable and decodable error-correcting codes". IEEE Transactions on Information Theory. 42 (6): 1723–31. CiteSeerX 10.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. S2CID 17550280.