Processing math: 100%

We will see a (non-local) efficient decoding algorithm for Reed-Solomon codes.

Let F be the q-element field and let f:FF be a function (a corrupted evaluation of a degree-d polynomial). The goal is to find a degree-d polynomial PF[x]d that agrees with f as often as possible.

Theorem: If less than (qd)/2 positions are corrupted, we can decode P in time poly(q).

Proof:

First, suppose that there exists a degree-d polynomial P that perfectly agrees with f. How can we find such a polynomial? One way to find P is to set up the following linear system (in the coefficients of P) and solve it using Gaussian elimination, P(α1)=f(α1), P(αq)=f(αq). (Here, α1,,αq is an enumeration of the elements of F.)

Next, suppose that f is corrupted in τ positions. We will try to reduce to the case without errors! For sake of analysis, let EF[x]τ be the degree-τ polynomial that vanishes on the corrupted positions, i.e., E=α:f(α)P(α)(xα).

Now, the polynomials N=FE and E satisfy the equation N(α)=f(α)E(α) for every αF. (We zeroed out the errors!)

Via Gaussian elimination, we can find non-zero polynomials NF[x]τ+d and EF[x]τ that satisfy the following linear constraints (on their coefficients), N(α1)=f(α1)E(α1), N(αq)=f(αq)E(αq),

Finally, we want to show that P=N/E (in that case, we can compute P easily from N and E). In other words, we want to show that PEN is the zero polynomial. On the one hand, the degree of this polynomial is at most τ+d. On the other hand, the polynomial has at least qτ roots (on for each uncorrupted position of f). Hence, if qτ>τ+d, the polynomial is indeed the zero polynomial

End of Proof.