Posted by: atri | December 7, 2007

## Lecture 42: Achieving List Decoding Capacity

In today’s lecture we (barely) finished decoding of folded Reed-Solomon code and showed that certain rate $R$ folded RS codes can be list decoded up to a $1-R-\epsilon$ fraction of errors. Unfortunately, due to lack of time, I had to skip some proofs and derivations (for example how to choose the values of the parameters $m,s$ and $r$). Take a look at this chapter in my thesis for details.

A semester is too short a time to do justice to the numerous interesting topics in coding theory. A good place to look for such topics are the suggested project topics. Let me mention some of these topics in no particular order (that we either mentioned in passing in the class or did not mention them at all).

• Irregular LDPC codes. These codes can provably achieve the capacity of the $BEC_{\alpha}$. They also experimentally seem to achieve the capacity of the $BSC_p$. The big advantage for these codes are the linear time encoding and decoding algorithms (the dependence on $\epsilon$, the distance from capacity, is also some small polynomial). For more details see this survey by Venkat Guruswami.
• Expander codes. These are certain explicit regular LDPC codes whose factor graphs are some special graphs called expanders. These give us the only linear time encodable and decodable binary codes (in the worst-case noise model). For more details, see this survey by Venkat Guruswami.
• Algebraic Geometry codes. These codes beat the Gilbert-Varshamov bound for alphabets $q\ge 49$. See my post on the corresponding project topic for more pointers.
• Linear Programming bounds. The best known lower bound on the rate vs. distance question are achieved via the so called Linear Programming bound. See my post on the project topic for more pointers.
• Convolutional Codes. All the codes that we covered in class were block codes. That is, the block length of such codes are fixed. However, there are many applications where having a fixed block length might be too wasteful. Convolutional codes allow for variable block lengths and “on the fly” encoding and decoding.
• Applications in Complexity theory. There are numerous applications of coding theory in theoretical computer science and in partiuclar, complexity theory (and cryptography). We only had time to cover one such application: secret sharing. However, some of the biggest recent advances in complexity theory (for example the PCP theorem) have used tools from coding theory. For more details, see this survey by Luca Trevisan or the my blog posts on the following project topics: codeword testing, extractors, locally decodable codes, and hardness amplification. For applications of list decoding in complexity theory see this survey by Madhu Sudan.

I had fun teaching this course: hopefully you guys had some fun too!

ps: don’t forget the project reports and scribed notes 🙂