Complejidad computacional de las operaciones matemáticas.
Requisitos de tiempo de ejecución algorítmico para procedimientos matemáticos comunes
Gráficos de funciones comúnmente utilizadas en el análisis de algoritmos, que muestran el número de operaciones versus el tamaño de entrada para cada función.
Aquí consideramos operaciones sobre polinomios y n denota su grado; para los coeficientes utilizamos un modelo de costo unitario , ignorando la cantidad de bits en un número. En la práctica, esto significa que los asumimos como números enteros de máquina.
Funciones especiales
Muchos de los métodos de esta sección se proporcionan en Borwein & Borwein. [7]
Funciones elementales
Las funciones elementales se construyen componiendo operaciones aritméticas, la función exponencial ( ), el logaritmo natural ( ), funciones trigonométricas ( ) y sus inversas. La complejidad de una función elemental es equivalente a la de su inversa, ya que todas las funciones elementales son analíticas y por tanto invertibles mediante el método de Newton. En particular, si uno o en el dominio complejo se puede calcular con cierta complejidad, entonces esa complejidad es alcanzable para todas las demás funciones elementales.
A continuación, el tamaño se refiere al número de dígitos de precisión con los que se evaluará la función.
No se sabe si cuál es la complejidad óptima para funciones elementales. El límite inferior más conocido es el límite trivial .
Funciones no elementales
Constantes matemáticas
Esta tabla muestra la complejidad de calcular aproximaciones a las constantes dadas para corregir los dígitos.
Las siguientes cifras de complejidad suponen que la aritmética con elementos individuales tiene una complejidad O (1), como es el caso de la aritmética de coma flotante de precisión fija o las operaciones en un campo finito .
^ Esta forma de tiempo subexponencial es válida para todos . Una forma más precisa de la complejidad se puede dar como
Referencias
^ ab Schönhage, A.; Grotefeld, AFW; Vetter, E. (1994). "Algoritmos rápidos: una implementación de la máquina de Turing multicinta" . BI Wissenschafts-Verlag. ISBN 978-3-411-16891-0. OCLC 897602049.
^ Knuth 1997
^ Harvey, D.; Van Der Hoeven, J. (2021). «Multiplicación de enteros en el tiempo O (n log n)» (PDF) . Anales de Matemáticas . 193 (2): 563–617. doi : 10.4007/anales.2021.193.2.4. S2CID 109934776.
^ Klarreich, Erica (diciembre de 2019). "La multiplicación alcanza el límite de velocidad". Comunitario. ACM . 63 (1): 11-13. doi :10.1145/3371387. S2CID 209450552.
^ Schönhage, Arnold (1980). "Máquinas de modificación de almacenamiento". Revista SIAM de Computación . 9 (3): 490–508. doi :10.1137/0209036.
^ Borwein, J.; Borwein, P. (1987). Pi y AGM: un estudio sobre teoría analítica de números y complejidad computacional . Wiley. ISBN978-0-471-83138-9. OCLC 755165897.
^ Chudnovsky, David; Chudnovsky, Gregorio (1988). "Aproximaciones y multiplicación compleja según Ramanujan". Ramanujan revisitado: Actas de la Conferencia del Centenario . Prensa académica. págs. 375–472. ISBN978-0-01-205856-5.
^ Brent, Richard P. (2014) [1975]. "Métodos de búsqueda de ceros de precisión múltiple y la complejidad de la evaluación de funciones elementales". En Traub, JF (ed.). Complejidad Computacional Analítica . Elsevier. págs. 151-176. arXiv : 1004.3412 . ISBN978-1-4832-5789-1.
^ ab Richard P. Brent (2020), Los hermanos Borwein, Pi y la AGM , Springer Proceedings in Mathematics & Statistics, vol. 313, arXiv : 1802.07558 , doi : 10.1007/978-3-030-36568-4, ISBN978-3-030-36567-7, S2CID 214742997
^ Sorenson, J. (1994). "Dos algoritmos GCD rápidos". Revista de algoritmos . 16 (1): 110-144. doi :10.1006/jagm.1994.1006.
^ Möller N (2008). "Sobre el algoritmo de Schönhage y el cálculo del mcd de enteros subcuadráticos" (PDF) . Matemáticas de la Computación . 77 (261): 589–607. Código Bib : 2008MaCom..77..589M. doi : 10.1090/S0025-5718-07-02017-0 .
^ Bernstein, DJ "Algoritmos más rápidos para encontrar enteros en el peor de los casos en módulo no cuadrado".
^ Brent, Richard P.; Zimmerman, Paul (2010). "Un algoritmo O ( M ( n ) log n ) {\displaystyle O(M(n)\log n)} para el símbolo de Jacobi". Simposio internacional de teoría algorítmica de números . Saltador. págs. 83–95. arXiv : 1004.2091 . doi :10.1007/978-3-642-14518-6_10. ISBN978-3-642-14518-6. S2CID 7632655.
^ Borwein, P. (1985). "Sobre la complejidad del cálculo de factoriales". Revista de algoritmos . 6 (3): 376–380. doi :10.1016/0196-6774(85)90006-9.
^ Tao, Terence (2010). "1.11 La prueba de primalidad de AKS". Una épsilon de habitación, II: Páginas del tercer año de un blog matemático . Estudios de Posgrado en Matemáticas. vol. 117. Sociedad Matemática Estadounidense. págs. 82–86. doi :10.1090/gsm/117. ISBN978-0-8218-5280-4. SEÑOR 2780010.
^ Morain, F. (2007). "Implementación de la versión asintóticamente rápida del algoritmo de prueba de primalidad de la curva elíptica". Matemáticas de la Computación . 76 (257): 493–505. arXiv : matemáticas/0502097 . Código Bib : 2007MaCom..76..493M. doi :10.1090/S0025-5718-06-01890-4. SEÑOR 2261033. S2CID 133193.
^ Baillie, Robert; Wagstaff, Jr., Samuel S. (octubre de 1980). «Lucas Pseudoprimos» (PDF) . Matemáticas de la Computación . 35 (152): 1391-1417. doi : 10.1090/S0025-5718-1980-0583518-6 . JSTOR 2006406. SEÑOR 0583518.
^ ab Monier, Louis (1980). "Evaluación y comparación de dos algoritmos eficientes de prueba de primalidad probabilística". Informática Teórica . 12 (1): 97-108. doi : 10.1016/0304-3975(80)90007-9 . SEÑOR 0582244.
^ Alma, Josh; Williams, Virginia Vassilevska (2020), "Un método láser refinado y una multiplicación de matrices más rápida", 32.º Simposio anual ACM-SIAM sobre algoritmos discretos (SODA 2021), arXiv : 2010.05846 , doi : 10.1137/1.9781611976465.32, S2CID 222290442
^ Davie, soy; Stothers, AJ (2013), "Límite mejorado para la complejidad de la multiplicación de matrices", Actas de la Royal Society of Edinburgh , 143A (2): 351–370, doi :10.1017/S0308210511001648, S2CID 113401430
^ Vassilevska Williams, Virginia (2014), Rompiendo la barrera calderero-Winograd: multiplicación de matrices en tiempo O (n2.373)
^ ab Le Gall, François; Urrutia, Floren (2018). "Multiplicación de matrices rectangulares mejorada utilizando potencias del tensor de calderero-Winograd". En Czumaj, Artur (ed.). Actas del vigésimo noveno simposio anual ACM-SIAM sobre algoritmos discretos . Sociedad de Matemática Industrial y Aplicada. doi :10.1137/1.9781611975031.67. ISBN978-1-61197-503-1. S2CID 33396059.
^ Knight, Philip A. (mayo de 1995). "Multiplicación rápida de matrices rectangulares y descomposición QR". Álgebra lineal y sus aplicaciones . 221 : 69–81. doi : 10.1016/0024-3795(93)00230-w . ISSN 0024-3795.
^ De memoria, G. (2001). "Algoritmos sin división para el determinante y el pfaffiano: enfoques algebraicos y combinatorios" (PDF) . Matemáticas discretas computacionales . Saltador. págs. 119-135. ISBN3-540-45506-X.
^ Cohn, Enrique; Kleinberg, Robert; Szegedy, Balazs; Umans, Chris (2005). "Algoritmos de teoría de grupos para la multiplicación de matrices". Actas del 46º Simposio Anual sobre Fundamentos de la Informática . IEEE. págs. 379–388. arXiv : math.GR/0511460 . doi :10.1109/SFCS.2005.39. ISBN0-7695-2468-0. S2CID 6429088.