Chien search

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In abstract algebra, the Chien search, named after Robert Tienwen Chien, is a fast algorithm for determining roots of polynomials defined over a finite field. Chien search is commonly used to find the roots of error-locator polynomials encountered in decoding Reed-Solomon codes and BCH codes.

Algorithm

The problem is to find the roots of the polynomial Λ(x)Script error: No such module "Check for unknown parameters". (over the finite field GF(q)Script error: No such module "Check for unknown parameters".): Λ(x)=λ0+λ1x+λ2x2++λtxt

The roots may be found using brute force: there are a finite number of Template:Mvar, so the polynomial can be evaluated for each element xiScript error: No such module "Check for unknown parameters".. If the polynomial evaluates to zero, then that element is a root.

For the trivial case x = 0Script error: No such module "Check for unknown parameters"., only the coefficient λ0Script error: No such module "Check for unknown parameters". need be tested for zero. Below, the only concern will be for non-zero xiScript error: No such module "Check for unknown parameters"..

A straightforward evaluation of the polynomial involves O(t2)Script error: No such module "Check for unknown parameters". general multiplications and O(t)Script error: No such module "Check for unknown parameters". additions. A more efficient scheme would use Horner's method for O(t)Script error: No such module "Check for unknown parameters". general multiplications and O(t)Script error: No such module "Check for unknown parameters". additions. Both of these approaches may evaluate the elements of the finite field in any order.

Chien search improves upon the above by selecting a specific order for the non-zero elements. In particular, the finite field has a (constant) generator element αScript error: No such module "Check for unknown parameters".. Chien tests the elements in the generator's order α1, α2, α3, ....Script error: No such module "Check for unknown parameters".. Consequently, Chien search needs only O(t)Script error: No such module "Check for unknown parameters". multiplications by constants and O(t)Script error: No such module "Check for unknown parameters". additions. The multiplications by constants are less complex than general multiplications.

The Chien search is based on two observations:

  • Each non-zero β may be expressed as αiβ for some iβ, where α is a primitive element of GF(q), iβ is the power number of primitive element α. Thus the powers αi for 0i<(q1) cover the entire field (excluding the zero element).
  • The following relationship exists:Λ(αi)=λ0+λ1(αi)+λ2(αi)2++λt(αi)tγ0,i+γ1,i+γ2,i++γt,iΛ(αi+1)=λ0+λ1(αi+1)+λ2(αi+1)2++λt(αi+1)t=λ0+λ1(αi)α+λ2(αi)2α2++λt(αi)tαt=γ0,i+γ1,iα+γ2,iα2++γt,iαtγ0,i+1+γ1,i+1+γ2,i+1++γt,i+1

In other words, we may define each Λ(αi) as the sum of a set of terms {γj,i0jt}, from which the next set of coefficients may be derived thus: γj,i+1=γj,iαj

In this way, we may start at i=0 with γj,0=λj, and iterate through each value of i up to (q1). If at any stage the resultant summation is zero, i.e. j=0tγj,i=0, then Λ(αi)=0 also, so αi is a root. In this way, we check every element in the field.

When implemented in hardware, this approach significantly reduces the complexity, as all multiplications consist of one variable and one constant, rather than two variables as in the brute-force approach.

References

  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".