Algoritmo de Fürer

De testwiki
Revisión del 00:38 10 oct 2023 de imported>MetroBot (Bot: ajustando referencias al Manual de estilo. Retirando espacio antes de las referencias.)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

El algoritmo de Fürer es un algoritmo de multiplicación de enteros para enteros extremadamente grandes con muy baja complejidad asintótica . Fue publicado en 2007 por el matemático suizo Martin Fürer de la Universidad Estatal de Pensilvania[1] como un algoritmo asintóticamente más rápido que su predecesor (algoritmo Schönhage-Strassen) al ser analizado en una máquina Turing multicinta.[2]

Contexto

El algoritmo Schönhage – Strassen utiliza la transformación rápida de Fourier (FFT) para calcular productos enteros en tiempo O(nlognloglogn) y sus autores, Arnold Schönhage y Volker Strassen, conjeturan un límite inferior de Plantilla:Nowrap El algoritmo de Fürer reduce la brecha entre estos dos límites. Se puede usar para multiplicar enteros de longitud n a tiempo O(nlogn 2O(log*n)) donde log* n es el logaritmo iterado. La diferencia entre los términos loglogn y 2log*n, desde el punto de vista de la complejidad, es la ventaja asintótica en el algoritmo de Fürer para enteros mayores que 2264. Sin embargo, la diferencia entre estos términos para valores realistas de n es muy pequeño.[1]

Algoritmos mejorados

En 2008, Lüders et al dieron un algoritmo similar que se basa en la aritmética modular en lugar de la aritmética compleja para lograr, de hecho, el mismo tiempo de ejecución.[3] Se ha estimado que se vuelve más rápido que Schönhage-Strassen para entradas que exceden una longitud de 10104796.[4]

En 2015, Harvey, van der Hoeven y Lecerf[5] dieron un nuevo algoritmo que logra un tiempo de ejecución de O(nlogn23log*n) haciendo explícita la constante implícita en el exponente de O(log*n). También propusieron una variante de su algoritmo que logra O(nlogn22log*n) pero cuya validez se basa en conjeturas estándar sobre la distribución de primos de Mersenne.

En 2015, Covanov y Thomé proporcionaron otra modificación del algoritmo de Fürer que logra el mismo tiempo de ejecución.[6] Sin embargo, sigue siendo tan poco práctico como todas las demás implementaciones de este algoritmo.[7][8]

En 2016, Covanov y Thomé propusieron un algoritmo de multiplicación de enteros basado en una generalización de números primos de Fermat que conjeturalmente logra un límite de complejidad de O(nlogn22log*n). Esto coincide con el resultado condicional de 2015 de Harvey, van der Hoeven y Lecerf pero utiliza un algoritmo diferente y se basa en una conjetura diferente.[9]

En 2018, Harvey y van der Hoeven utilizaron un enfoque basado en la existencia de vectores short lattice garantizados por el teorema de Minkowski para demostrar un límite de complejidad incondicional de O(nlogn22log*n).[10]

En marzo de 2019, Harvey y van der Hoeven publicaron un muy buscado algoritmo O(nlogn) de multiplicación de enteros que se supone que es asintóticamente óptimo.[11][12] Porque Schönhage y Strassen predijeron que n log (n) es el "mejor resultado posible", dijo Harvey: "... se espera que nuestro trabajo sea el final del camino para este problema, aunque todavía no sabemos cómo demostrarlo rigurosamente".[13]

Referencias

Plantilla:Listaref Plantilla:Control de autoridades

  1. 1,0 1,1 M. Fürer (2007). "Faster Integer Multiplication" Proceedings of the 39th annual ACM Symposium on Theory of Computing (STOC), 55–67, San Diego, CA, June 11–13, 2007, and SIAM Journal on Computing, Vol. 39 Issue 3, 979–1005, 2009.
  2. Plantilla:Cita publicación
  3. A. De, C. Saha, P. Kurur and R. Saptharishi (2008). "Fast integer multiplication using modular arithmetic" Proceedings of the 40th annual ACM Symposium on Theory of Computing (STOC), 499–506, New York, NY, 2008, and SIAM Journal on Computing, Vol. 42 Issue 2, 685–699, 2013. Plantilla:Arxiv
  4. Plantilla:Cita conferencia
  5. D. Harvey, J. van der Hoeven and G. Lecerf (2015). "Even faster integer multiplication", February 2015. Plantilla:Arxiv
  6. Plantilla:Cita publicación Published asPlantilla:Harvtxt.
  7. S. Covanov and E. Thomé (2014). "Efficient implementation of an algorithm multiplying big numbers", Internal research report, Polytechnics School, France, July 2014.
  8. S. Covanov and M. Moreno Mazza (2015). "Putting Fürer algorithm into practice", Master research report, Polytechnics School, France, January 2015.
  9. Plantilla:Cita publicación
  10. D. Harvey and J. van der Hoeven (2018). "Faster integer multiplication using short lattice vectors", February 2018. Plantilla:Arxiv
  11. Plantilla:Cita libro
  12. Plantilla:Cita noticia
  13. Plantilla:Cita noticia