
En teoría de números , el algoritmo de búsqueda de raíces de Berlekamp , también llamado algoritmo de Berlekamp-Rabin , es el método probabilístico para encontrar raíces de polinomios sobre un cuerpo con elementos. El método fue descubierto por Elwyn Berlekamp en 1970 [1] como un 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 polinómica sobre cuerpos finitos. Su trabajo original carecía de una prueba de corrección formal [2] y luego 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 en . [5] En 2000, el método de Peralta se generalizó para ecuaciones cúbicas . [6]
Planteamiento del problema
Sea un número primo impar. Consideremos el polinomio sobre el cuerpo de residuos módulo . El algoritmo debería encontrar todos los en tales que en . [2] [7]
Algoritmo
Aleatorización
Sea . Encontrar todas las raíces de este polinomio es equivalente a encontrar su factorización en factores lineales. Para encontrar dicha factorización es suficiente dividir el polinomio en dos divisores no triviales y factorizarlos recursivamente. Para ello, considere el polinomio donde es algún elemento de . Si uno puede representar este polinomio como el producto , entonces en términos del polinomio inicial significa que , lo que proporciona la factorización necesaria de . [1] [7]
Clasificación deelementos
Debido al criterio de Euler , para cada monomio se cumple exactamente una de las siguientes propiedades: [1]
- El monomio es igual a si ,
- El monomio se divide si es residuo cuadrático módulo ,
- El monomio se divide si es cuadrático no residual módulo .
Por lo tanto, si no es divisible por , lo que se puede comprobar por separado, entonces es igual al producto de los máximos comunes divisores y . [7]
El método de Berlekamp
La propiedad anterior conduce al siguiente algoritmo: [1]
- Calcular explícitamente los coeficientes de ,
- Calcular los residuos del módulo elevando al cuadrado el polinomio actual y tomando el residuo módulo ,
- Usando la exponenciación por cuadrado y los polinomios calculados en los pasos anteriores, calcule el resto del módulo ,
- Si a continuación se menciona una factorización no trivial de ,
- De lo contrario, todas las raíces de son residuos o no residuos simultáneamente y uno tiene que elegir otro .
Si es divisible por algún polinomio primitivo no lineal sobre entonces al calcular con y se obtendrá una factorización no trivial de , por lo que el algoritmo permite encontrar todas las raíces de polinomios arbitrarios sobre .
Raíz cuadrada modular
Consideremos una ecuación que tiene como raíces los elementos y . La solución de esta ecuación es equivalente a la factorización del polinomio sobre . En este caso particular, basta con calcular solo . Para este polinomio se cumplirá exactamente una de las siguientes propiedades:
- MCD es igual a lo que significa que y son ambos residuos cuadráticos no válidos.
- MCD es igual a lo que significa que ambos números son residuos cuadráticos,
- MCD es igual a lo que significa que exactamente uno de estos números es residuo cuadrático.
En el tercer caso, el MCD es igual a o . Esto permite escribir la solución como . [1]
Ejemplo
Supongamos que necesitamos resolver la ecuación . Para ello, necesitamos factorizar . Consideremos algunos valores posibles de :
- Sea . Entonces , por lo tanto . Ambos números son residuos cuadráticos no válidos, por lo que necesitamos tomar algún otro .
- Sea . Entonces , por lo tanto . De esto se sigue , por lo que y .
Una comprobación manual muestra que, efectivamente, y .
Prueba de corrección
El algoritmo encuentra la factorización de en todos los casos excepto en aquellos en los que todos los números 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 el que son todos los residuos o no residuos simultáneamente (es decir, cuando fallaría) puede estimarse como donde es el número de valores distintos en . [1] De esta manera, incluso para el peor caso de y , la probabilidad de error puede estimarse como y para el caso de raíz cuadrada modular la probabilidad de error es como máximo .
Complejidad
Sea un polinomio de grado . Derivamos la complejidad del algoritmo de la siguiente manera:
- Debido al teorema binomial , podemos realizar la transición de a en el tiempo.
- La multiplicación de polinomios y la toma del resto de un polinomio módulo otro se puede hacer en , por lo tanto, el cálculo de se realiza en .
- La exponenciación binaria funciona en .
- Tomando el de dos polinomios a través del algoritmo euclidiano funciona en .
Por lo tanto, todo el procedimiento puede realizarse en . Utilizando la transformada rápida de Fourier y el algoritmo Half-GCD, [9] la complejidad del algoritmo puede mejorarse a . Para el caso de raíz cuadrada modular, el grado es , por lo que la complejidad total del algoritmo en tal caso está limitada por por iteración. [7]
Referencias
- ^ abcdefg Berlekamp, ER (1970). "Factorización de polinomios sobre grandes cuerpos finitos". Matemáticas de la computación . 24 (111): 713–735. doi : 10.1090/S0025-5718-1970-0276200-X . ISSN 0025-5718.
- ^ abcd M. Rabin (1980). "Algoritmos probabilísticos en campos finitos". Revista SIAM de informática . 9 (2): 273–280. CiteSeerX 10.1.1.17.5653 . doi :10.1137/0209024. ISSN 0097-5397.
- ^ Donald E Knuth (1998). El arte de la programación informática. Vol. 2 Vol. 2 . ISBN 978-0201896848.OCLC 900627019 .
- ^ Tsz-Wo Sze (2011). "Sobre la toma de raíces cuadradas sin residuos cuadráticos no válidos 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.
- ^ 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.
- ^ C Padró, G Sáez (agosto de 2002). "Tomando raíces cúbicas en Zm". Applied Mathematics Letters . 15 (6): 703–708. doi :10.1016/s0893-9659(02)00031-9. ISSN 0893-9659.
- ^ abcd Alfred J. Menezes, Ian F. Blake, XuHong Gao, Ronald C. Mullin, Scott A. Vanstone (1993). Aplicaciones de campos finitos. Serie internacional de Springer en ingeniería y ciencias de la computación. Springer US. ISBN 9780792392828.
{{cite book}}: CS1 maint: multiple names: authors list (link) - ^ Marshall Hall (1998). Teoría combinatoria. John Wiley & Sons. ISBN 9780471315186.
- ^ Aho, Alfred V. (1974). El diseño y análisis de algoritmos informáticos . Addison-Wesley Pub. Co. ISBN 0201000296.