Articulo de referencia

Algoritmo de Berlekamp-Rabin

Elwyn R. Berlekamp en la conferencia sobre Teoría de Juegos Combinatorios en la Estación Internacional de Investigación de Banff. En teoría de números , el algoritmo de Berlekam...

Elwyn R. Berlekamp en la conferencia sobre Teoría de Juegos Combinatorios en la Estación Internacional de Investigación de Banff.

En teoría de números , el algoritmo de Berlekamp para encontrar raíces , también llamado algoritmo de Berlekamp-Rabin , es el método probabilístico para encontrar raíces de polinomios sobre el campoFpag{\displaystyle \mathbb {F} _{p}}conpag{\displaystyle p}elementos. El método fue descubierto por Elwyn Berlekamp en 1970 [ 1 ] como auxiliar del algoritmo para la factorización de polinomios sobre cuerpos finitos. El algoritmo fue modificado posteriormente por Rabin para cuerpos finitos arbitrarios en 1979. [ 2 ] El método también fue descubierto independientemente antes de Berlekamp por otros investigadores. [ 3 ]

Historia

El método fue propuesto por Elwyn Berlekamp en su trabajo de 1970 [ 1 ] sobre factorización de polinomios sobre cuerpos finitos. Su trabajo original carecía de una prueba formal de corrección [ 2 ] y posteriormente fue refinado y modificado para cuerpos finitos arbitrarios por Michael Rabin . [ 2 ] En 1986, René Peralta propuso un algoritmo similar [ 4 ] para encontrar raíces cuadradas enFpag{\displaystyle \mathbb {F} _{p}}. [ 5 ] En 2000, el método de Peralta se generalizó para ecuaciones cúbicas . [ 6 ]

Planteamiento del problema

Dejarpag{\displaystyle p}sea ​​un número primo impar. Consideremos el polinomioF(incógnita)=a0+a1incógnita++anorteincógnitanorte{\textstyle f(x)=a_{0}+a_{1}x+\cdots +a_{n}x^{n}}sobre el campoFpagZ/pagZ{\displaystyle \mathbb {F} _ {p}\simeq \mathbb {Z} /p\mathbb {Z} }de restos módulopag{\displaystyle p}El algoritmo debería encontrar todosλ{\displaystyle \lambda }enFpag{\displaystyle \mathbb {F} _{p}}de tal manera queF(λ)=0{\textstyle f(\lambda )=0}enFpag{\displaystyle \mathbb {F} _{p}}. [ 2 ] [ 7 ]

Algoritmo

Aleatorización

DejarF(incógnita)=(incógnitaλ1)(incógnitaλ2)(incógnitaλnorte){\textstyle f(x)=(x-\lambda _{1})(x-\lambda _{2})\cdots (x-\lambda _{n})}Encontrar todas las raíces de este polinomio es equivalente a encontrar su factorización en factores lineales. Para encontrar dicha factorización, basta con dividir el polinomio en dos divisores no triviales cualesquiera y factorizarlos recursivamente. Para ello, consideremos el polinomioFz(incógnita)=F(incógnitaz)=(incógnitaλ1z)(incógnitaλ2z)(incógnitaλnortez){\textstyle f_{z}(x)=f(xz)=(x-\lambda _{1}-z)(x-\lambda _{2}-z)\cdots (x-\lambda _{n}-z)}dóndez{\displaystyle z} es algún elemento deFpag{\displaystyle \mathbb {F} _{p}}Si se puede representar este polinomio como el productoFz(incógnita)=pag0(incógnita)pag1(incógnita){\displaystyle f_{z}(x)=p_{0}(x)p_{1}(x)}entonces, en términos del polinomio inicial, significa queF(incógnita)=pag0(incógnita+z)pag1(incógnita+z){\displaystyle f(x)=p_{0}(x+z)p_{1}(x+z)}, que proporciona la factorización necesaria deF(incógnita){\displaystyle f(x)}. [ 1 ] [ 7 ]

Clasificación deFpag{\displaystyle \mathbb {F} _{p}}elementos

Debido al criterio de Euler , para cada monomio(incógnitaλ){\displaystyle (x-\lambda )}Se cumple exactamente una de las siguientes propiedades: [ 1 ]

  1. El monomio es igual aincógnita{\displaystyle x}siλ=0{\displaystyle \lambda =0},
  2. La división monomialgramo0(incógnita)=(incógnita(pag1)/21){\textstyle g_{0}(x)=(x^{(p-1)/2}-1)}siλ{\displaystyle \lambda } es residuo cuadrático módulopag{\displaystyle p},
  3. La división monomialgramo1(incógnita)=(incógnita(pag1)/2+1){\textstyle g_{1}(x)=(x^{(p-1)/2}+1)}siλ{\displaystyle \lambda } es cuadrático no residual módulopag{\displaystyle p}.

Por lo tanto, siFz(incógnita){\displaystyle f_{z}(x)}no es divisible porincógnita{\displaystyle x}, que puede comprobarse por separado, entoncesFz(incógnita){\displaystyle f_{z}(x)}es igual al producto de los máximos comunes divisoresmcd(Fz(incógnita);gramo0(incógnita)){\displaystyle \gcd(f_{z}(x);g_{0}(x))}ymcd(Fz(incógnita);gramo1(incógnita)){\displaystyle \gcd(f_{z}(x);g_{1}(x))}. [ 7 ]

El método de Berlekamp

La propiedad anterior conduce al siguiente algoritmo: [ 1 ]

  1. Calcular explícitamente los coeficientes deFz(incógnita)=F(incógnitaz){\displaystyle f_{z}(x)=f(xz)},
  2. Calcular los restos deincógnita,incógnita2,incógnita22,incógnita23,incógnita24,,incógnita2registro2pag{\textstyle x,x^{2},x^{2^{2}},x^{2^{3}},x^{2^{4}},\ldots ,x^{2^{\lfloor \log _{2}p\rfloor }}}móduloFz(incógnita){\displaystyle f_{z}(x)}elevando al cuadrado el polinomio actual y tomando el resto móduloFz(incógnita){\displaystyle f_{z}(x)},
  3. Utilizando la exponenciación por elevación al cuadrado y los polinomios calculados en los pasos anteriores, calcule el resto deincógnita(pag1)/2{\textstyle x^{(p-1)/2}}móduloFz(incógnita){\textstyle f_{z}(x)},
  4. Siincógnita(pag1)/2±1(modFz(incógnita)){\textstyle x^{(p-1)/2}\not \equiv \pm 1{\pmod {f_{z}(x)}}}entoncesmcd{\displaystyle \gcd }Los mencionados a continuación proporcionan una factorización no trivial deFz(incógnita){\displaystyle f_{z}(x)},
  5. De lo contrario, todas las raíces deFz(incógnita){\displaystyle f_{z}(x)}son residuos o no residuos simultáneamente y uno tiene que elegir otroz{\displaystyle z}.

SiF(incógnita){\displaystyle f(x)}es divisible por algún polinomio primitivo no linealgramo(incógnita){\displaystyle g(x)}encimaFpag{\displaystyle \mathbb {F} _{p}}luego al calcularmcd{\displaystyle \gcd }congramo0(incógnita){\displaystyle g_{0}(x)}ygramo1(incógnita){\displaystyle g_{1}(x)}se obtendrá una factorización no trivial deFz(incógnita)/gramoz(incógnita){\displaystyle f_{z}(x)/g_{z}(x)}, por lo tanto, el algoritmo permite encontrar todas las raíces de polinomios arbitrarios sobreFpag{\displaystyle \mathbb {F} _{p}}.

raíz cuadrada modular

Consideremos la ecuaciónincógnita2a(modpag){\textstyle x^{2}\equiv a{\pmod {p}}}tener elementosβ{\displaystyle \beta }yβ{\displaystyle -\beta }como sus raíces. La solución de esta ecuación es equivalente a la factorización del polinomio.F(incógnita)=incógnita2a=(incógnitaβ)(incógnita+β){\textstyle f(x)=x^{2}-a=(x-\beta )(x+\beta )}encimaFpag{\displaystyle \mathbb {F} _{p}}En este caso particular, basta con calcular solomcd(Fz(incógnita);gramo0(incógnita)){\displaystyle \gcd(f_{z}(x);g_{0}(x))}Para este polinomio se cumplirá exactamente una de las siguientes propiedades:

  1. MCD es igual a1{\displaystyle 1}lo que significa quez+β{\displaystyle z+\beta }yzβ{\displaystyle z-\beta }son ambos no residuos cuadráticos,
  2. MCD es igual aFz(incógnita){\displaystyle f_{z}(x)}lo que significa que ambos números son residuos cuadráticos,
  3. MCD es igual a(incógnitat){\displaystyle (xt)}lo que significa que exactamente uno de estos números es un residuo cuadrático.

En el tercer caso, el MCD es igual a cualquiera de los siguientes(incógnitazβ){\displaystyle (xz-\beta )}o(incógnitaz+β){\displaystyle (x-z+\beta )}. Permite escribir la solución comoβ=(tz)(modpag){\textstyle \beta =(tz){\pmod {p}}}. [ 1 ]

Ejemplo

Supongamos que necesitamos resolver la ecuación.incógnita25(mod11){\textstyle x^{2}\equiv 5{\pmod {11}}}Para ello necesitamos factorizarF(incógnita)=incógnita25=(incógnitaβ)(incógnita+β){\displaystyle f(x)=x^{2}-5=(x-\beta )(x+\beta )}. Consideremos algunos valores posibles dez{\displaystyle z}:

  1. Dejarz=3{\displaystyle z=3}. EntoncesFz(incógnita)=(incógnita3)25=incógnita26incógnita+4{\displaystyle f_{z}(x)=(x-3)^{2}-5=x^{2}-6x+4}, de este modomcd(incógnita26incógnita+4;incógnita51)=1{\displaystyle \gcd(x^{2}-6x+4;x^{5}-1)=1}Ambos números3±β{\displaystyle 3\pm \beta }son no residuos cuadráticos, por lo que necesitamos tomar algún otroz{\displaystyle z}.
  1. Dejarz=2{\displaystyle z=2}. EntoncesFz(incógnita)=(incógnita2)25=incógnita24incógnita1{\displaystyle f_{z}(x)=(x-2)^{2}-5=x^{2}-4x-1}, de este modomcd(incógnita24incógnita1;incógnita51)incógnita9(mod11){\textstyle \gcd(x^{2}-4x-1;x^{5}-1)\equiv x-9{\pmod {11}}}De esto se deduceincógnita9=incógnita2β{\textstyle x-9=x-2-\beta }, entoncesβ7(mod11){\displaystyle \beta \equiv 7{\pmod {11}}}yβ74(mod11){\textstyle -\beta \equiv -7\equiv 4{\pmod {11}}}.

Una comprobación manual demuestra que, efectivamente,72495(mod11){\textstyle 7^{2}\equiv 49\equiv 5{\pmod {11}}}y42165(mod11){\textstyle 4^{2}\equiv 16\equiv 5{\pmod {11}}}.

Prueba de corrección

El algoritmo encuentra la factorización deFz(incógnita){\displaystyle f_{z}(x)}en todos los casos excepto en aquellos en que todos los númerosz+λ1,z+λ2,,z+λnorte{\displaystyle z+\lambda _{1},z+\lambda _{2},\ldots ,z+\lambda _{n}}son residuos cuadráticos o no residuos simultáneamente. Según la teoría de la ciclotomía , [ 8 ] la probabilidad de tal evento para el caso en queλ1,,λnorte{\displaystyle \lambda _{1},\ldots ,\lambda _{n}}son todos residuos o no residuos simultáneamente (es decir, cuandoz=0{\displaystyle z=0}fallaría) puede estimarse como2k{\displaystyle 2^{-k}}dóndek{\displaystyle k} es el número de valores distintos enλ1,,λnorte{\displaystyle \lambda _{1},\ldots ,\lambda _{n}}. [ 1 ] De esta manera, incluso en el peor de los casos,k=1{\displaystyle k=1}yF(incógnita)=(incógnitaλ)norte{\displaystyle f(x)=(x-\lambda )^{n}}, la probabilidad de error puede estimarse como1/2{\displaystyle 1/2}y para el caso de raíz cuadrada modular la probabilidad de error es como máximo1/4{\displaystyle 1/4}.

Complejidad

Sea un polinomio de gradonorte{\displaystyle n}La complejidad del algoritmo se deriva de la siguiente manera:

  1. Debido al teorema del binomio(incógnitaz)k=i=0k(ki)(z)kiincógnitai{\textstyle (xz)^{k}=\sum \limits _{i=0}^{k}{\binom {k}{i}}(-z)^{ki}x^{i}}, podemos hacer la transición desdeF(incógnita){\displaystyle f(x)}aF(incógnitaz){\displaystyle f(xz)}enO(norte2){\displaystyle O(n^{2})}tiempo.
  2. La multiplicación de polinomios y el cálculo del resto de un polinomio módulo otro se puede realizar enO(norte2){\textstyle O(n^{2})}, por lo tanto, el cálculo deincógnita2kmodFz(incógnita){\textstyle x^{2^{k}}{\bmod {f}}_{z}(x)}se hace enO(norte2registropag){\textstyle O(n^{2}\log p)}.
  3. La exponenciación binaria funciona enO(norte2registropag){\displaystyle O(n^{2}\log p)}.
  4. Tomar elmcd{\displaystyle \gcd }de dos polinomios mediante el algoritmo euclidiano funciona enO(norte2){\displaystyle O(n^{2})}.

Por lo tanto, todo el procedimiento puede realizarse enO(norte2registropag){\displaystyle O(n^{2}\log p)}. Utilizando la transformada rápida de Fourier y el algoritmo Half-MCD, [ 9 ] la complejidad del algoritmo puede mejorarse aO(norteregistronorteregistropagnorte){\displaystyle O(n\log n\log pn)}. Para el caso de raíz cuadrada modular, el grado esnorte=2{\displaystyle n=2}, por lo tanto, la complejidad total del algoritmo en tal caso está limitada porO(registropag){\displaystyle O(\log p)}por iteración. [ 7 ]

Referencias

  1. 1 2 3 4 5 6 7 Berlekamp, ​​ER (1970). "Factoring polynomials over large finite fields" . Mathematics of Computation . 24 (111): 713– 735. doi : 10.1090/S0025-5718-1970-0276200-X . ISSN 0025-5718 . 
  2. ^ M. Rabin (1980 ) . "Algoritmos probabilísticos en campos finitos". Revista SIAM de Computación . 9 (2): 273– 280. CiteSeerX 10.1.1.17.5653 . doi : 10.1137/0209024 . ISSN 0097-5397 .  
  3. Donald E Knuth (1998). El arte de la programación informática. Vol. 2. Addison-Wesley. ISBN 978-0201896848OCLC 900627019 
  4. Tsz-Wo Sze (2011). "Sobre la toma de raíces cuadradas sin residuos cuadráticos sobre cuerpos finitos". Matemáticas de la Computación . 80 (275): 1797– 1811. arXiv : 0812.2591 . doi : 10.1090/s0025-5718-2011-02419-1 . ISSN 0025-5718 . S2CID 10249895 .  
  5. R. Peralta (noviembre de 1986). "Un algoritmo probabilístico simple y rápido para calcular raíces cuadradas módulo un número primo (Corresp.)". IEEE Transactions on Information Theory . 32 (6): 846– 847. doi : 10.1109/TIT.1986.1057236 . ISSN 0018-9448 . 
  6. C Padró, G Sáez (agosto de 2002). "Calculando raíces cúbicas en Zm". Applied Mathematics Letters . 15 (6): 703– 708. doi : 10.1016/s0893-9659(02)00031-9 . ISSN 0893-9659 . 
  7. 1 2 3 4 Alfred J. Menezes, Ian F. Blake, XuHong Gao, Ronald C. Mullin, Scott A. Vanstone (1993). Aplicaciones de campos finitos . The Springer International Series in Engineering and Computer Science. Springer US. ISBN 9780792392828.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  8. Marshall Hall (1998). Teoría combinatoria . John Wiley & Sons. ISBN 9780471315186.
  9. Aho, Alfred V. (1974). El diseño y análisis de algoritmos informáticos . Addison-Wesley Pub. Co. ISBN 0201000296.