Procedimento de Chien

Na álgebra abstrata, o procedimento de Chien, cujo nome advém de R. T. Chien, é um algoritmo rápido para determinar a raiz de um polinómio definido sobre um corpo finito. O caso mais típico para a utilização do procedimento de Chien é no cálculo das raízes de polinómios error-locator encontrados na descodificação do código de Reed-Solomon e código de BCH.

Algoritmo

Denotando o polinómio (sobre o corpo finito GF( q {\displaystyle q} )) cujas raízes queremos determinar como:

  Λ ( x ) = λ 0 + λ 1 x + λ 2 x 2 + + λ t x t {\displaystyle \ \Lambda (x)=\lambda _{0}+\lambda _{1}x+\lambda _{2}x^{2}+\cdots +\lambda _{t}x^{t}}

Conceptualmente, podemos avaliar Λ ( β ) {\displaystyle \Lambda (\beta )} por cada não-zero β {\displaystyle \beta } em GF( q {\displaystyle q} ). Aqueles que resultarem em 0 são raízes do polinómio.

O procedimento de Chien é baseado em duas observações:

  • Cada não-zero β {\displaystyle \beta } pode ser expresso como α i β {\displaystyle \alpha ^{i_{\beta }}} para alguns i β {\displaystyle i_{\beta }} , onde α {\displaystyle \alpha } é um elemento primitivo (sugerido do inglês, primitive element) de G F ( q ) {\displaystyle \mathrm {GF} (q)} , i β {\displaystyle i_{\beta }} é a potência do elemento primitivo α {\displaystyle \alpha } . Assim as potências α i {\displaystyle \alpha ^{i}} por cada 0 i < ( q 1 ) {\displaystyle 0\leq i<(q-1)} cobrem o espectro inteiro (excluindo o elemento zero).
  • A seguinte relação existe:
Λ ( α i ) = λ 0 + λ 1 ( α i ) + λ 2 ( α i ) 2 + + λ t ( α i ) t γ 0 , i + γ 1 , i + γ 2 , i + + γ t , i {\displaystyle {\begin{array}{lllllllllll}\Lambda (\alpha ^{i})&=&\lambda _{0}&+&\lambda _{1}(\alpha ^{i})&+&\lambda _{2}(\alpha ^{i})^{2}&+&\cdots &+&\lambda _{t}(\alpha ^{i})^{t}\\&\triangleq &\gamma _{0,i}&+&\gamma _{1,i}&+&\gamma _{2,i}&+&\cdots &+&\gamma _{t,i}\end{array}}}
Λ ( α 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 {\displaystyle {\begin{array}{lllllllllll}\Lambda (\alpha ^{i+1})&=&\lambda _{0}&+&\lambda _{1}(\alpha ^{i+1})&+&\lambda _{2}(\alpha ^{i+1})^{2}&+&\cdots &+&\lambda _{t}(\alpha ^{i+1})^{t}\\&=&\lambda _{0}&+&\lambda _{1}(\alpha ^{i})\,\alpha &+&\lambda _{2}(\alpha ^{i})^{2}\,\alpha ^{2}&+&\cdots &+&\lambda _{t}(\alpha ^{i})^{t}\,\alpha ^{t}\\&=&\gamma _{0,i}&+&\gamma _{1,i}\,\alpha &+&\gamma _{2,i}\,\alpha ^{2}&+&\cdots &+&\gamma _{t,i}\,\alpha ^{t}\\&\triangleq &\gamma _{0,i+1}&+&\gamma _{1,i+1}&+&\gamma _{2,i+1}&+&\cdots &+&\gamma _{t,i+1}\end{array}}}

Por outras palavras podemos definir cada Λ ( α i ) {\displaystyle \Lambda (\alpha ^{i})} como a soma de um conjunto de termos { γ j , i | 0 j t } {\displaystyle \{\gamma _{j,i}|0\leq j\leq t\}} , dos quais o próximo conjunto de coeficiente pode ser derivado, e assim:

  γ j , i + 1 = γ j , i α j {\displaystyle \ \gamma _{j,i+1}=\gamma _{j,i}\,\alpha ^{j}}

Desta maneira podemos começar em i = 0 {\displaystyle i=0} com γ j , 0 = λ j {\displaystyle \gamma _{j,0}=\lambda _{j}} , e iterar através de cada valor de i {\displaystyle i} até ( q 1 ) {\displaystyle (q-1)} . Se em qualquer altura a soma resultante é zero, temos:

  j = 0 t γ j , i = 0 , {\displaystyle \ \sum _{j=0}^{t}\gamma _{j,i}=0,}

assim Λ ( α i ) = 0 {\displaystyle \Lambda (\alpha ^{i})=0} também, logo α i {\displaystyle \alpha _{i}} é uma raiz. Desta maneira confirmamos todos os elementos no espectro.

Quando implementado em hardware esta aproximação reduz significativamente a complexidade, dado que todas as multiplicações consistem numa variável e uma constante, ao invés de duas variáveis como num aproximação bruta.

Referências

  • Chien, R. T. (outubro 1964), «Cyclic Decoding Procedures for the Bose-Chaudhuri-Hocquenghem Codes», IEEE Transactions on Information Theory, ISSN 0018-9448, IT-10 (4): 357–363 
  • Lin, S.; Costello, D. (2004), Error Control Coding: Fundamentals and Applications, Englewood Cliffs, NJ: Prentice-Hall 
  • Gill, John, EE387 Notes #7, Handout #28 (PDF), Stanford University, pp. 42–45, consultado em 21 de abril de 2010