In
coding theory
Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and data storage. Codes are stud ...
,
list decoding is an alternative to unique decoding of error-correcting codes in the presence of many errors. If a code has relative distance
, then it is possible in principle to recover an encoded message when up to
fraction of the codeword symbols are corrupted. But when error rate is greater than
, this will not in general be possible. List decoding overcomes that issue by allowing the decoder to output a short list of messages that might have been encoded. List decoding can correct more than
fraction of errors.
There are many polynomial-time algorithms for list decoding. In this article, we first present an algorithm for
Reed–Solomon (RS) codes which corrects up to
errors and is due to
Madhu Sudan
Madhu Sudan (born 12 September 1966) is an Indian-American computer scientist. He has been a Gordon McKay Professor of Computer Science at the Harvard John A. Paulson School of Engineering and Applied Sciences since 2015.
Career
He received h ...
. Subsequently, we describe the improved
Guruswami–
Sudan list decoding algorithm, which can correct up to
errors.
Here is a plot of the rate R and distance
for different algorithms.
https://wiki.cse.buffalo.edu/cse545/sites/wiki.cse.buffalo.edu.cse545/files/81/Graph.jpg
Algorithm 1 (Sudan's list decoding algorithm)
Problem statement
Input : A field
; n distinct pairs of elements
in
; and integers
and
.
Output: A list of all functions
satisfying
is a polynomial in
of degree at most
To understand Sudan's Algorithm better, one may want to first know another algorithm which can be considered as the earlier version or the fundamental version of the algorithms for list decoding RS codes - the
Berlekamp–Welch algorithm.
Welch and Berlekamp initially came with an
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
which can solve the problem in polynomial time with best threshold on
to be
.
The mechanism of Sudan's Algorithm is almost the same as the algorithm of Berlekamp–Welch Algorithm, except in the step 1, one wants to compute a bivariate polynomial of bounded
degree. Sudan's list decoding algorithm for Reed–Solomon code which is an improvement on Berlekamp and Welch algorithm, can solve the problem with
. This bound is better than the unique decoding bound
for
.
Algorithm
Definition 1 (weighted degree)
For weights
, the
– weighted degree of monomial
is
. The
– weighted degree of a polynomial
is the maximum, over the monomials with non-zero coefficients, of the
– weighted degree of the monomial.
For example,
has
-degree 7
Algorithm:
Inputs:
; /* Parameters l,m to be set later. */
Step 1: Find a non-zero bivariate polynomial
satisfying
*
has
-weighted degree at most
* For every