Articulo de referencia

Complejidad computacional de la multiplicación de matrices

Problema sin resolver en informática ¿Cuál es el algoritmo más rápido para la multiplicación de matrices? Más problemas sin resolver en informática En informática teórica , la c...

Problema sin resolver en informática
¿Cuál es el algoritmo más rápido para la multiplicación de matrices?

En informática teórica , la complejidad computacional de la multiplicación de matrices determina la rapidez con la que se puede realizar dicha operación . Los algoritmos de multiplicación de matrices son una subrutina fundamental en los algoritmos teóricos y numéricos para el álgebra lineal numérica y la optimización , por lo que encontrar el algoritmo más rápido para la multiplicación de matrices tiene una gran relevancia práctica.

La aplicación directa de la definición matemática de multiplicación de matrices da como resultado un algoritmo que requiere n 3 operaciones de campo para multiplicar dos matrices n × n sobre ese campo ( Θ( n 3 ) en notación O grande ). Sorprendentemente, existen algoritmos que proporcionan mejores tiempos de ejecución que este sencillo "algoritmo de libro de texto". El primero en ser descubierto fue el algoritmo de Strassen , ideado por Volker Strassen en 1969 y a menudo denominado "multiplicación rápida de matrices". [ 1 ] El número óptimo de operaciones de campo necesarias para multiplicar dos matrices cuadradas n × n con factores constantes aún se desconoce. Esta es una importante cuestión abierta en la ciencia de la computación teórica .

A partir de enero de 2024 , la mejor cota para la complejidad asintótica de un algoritmo de multiplicación de matrices es O( n 2.371339 ) . [ 2 ] Sin embargo, esta y otras mejoras similares a Strassen no se utilizan en la práctica, porque son algoritmos galácticos : el coeficiente constante oculto por la notación O grande es tan grande que solo valen la pena para matrices demasiado grandes para manejar en las computadoras actuales. [ 3 ] [ 4 ]

Algoritmos simples

Si A y B son dos matrices n × n sobre un cuerpo, entonces su producto AB también es una matriz n × n sobre ese cuerpo, definida elemento a elemento como (AB)ij=k=1norteAikBkj.{\displaystyle (AB)_{ij}=\sum _ {k=1}^{n}A_{ik}B_{kj}.}

Algoritmo de libro escolar

El método más sencillo para calcular el producto de dos matrices n × n , A y B, consiste en calcular las expresiones aritméticas derivadas de la definición de multiplicación de matrices. En pseudocódigo :

Entrada A y B , ambas matrices n x n. Inicializa C como una matriz n x n de ceros. Para i desde 1 hasta n : Para j desde 1 hasta n : Para k desde 1 hasta n : C [ i ][ j ] = C [ i ][ j ] + A [ i ][ k ] * B [ k ][ j ] Salida C (como A * B)

Este algoritmo requierenorte3{\displaystyle n^{3}}multiplicaciones ynorte3norte2{\displaystyle n^{3}-n^{2}} sumas de escalares para calcular el producto de dos matrices cuadradas n × n . Por lo tanto, su complejidad computacional esO(norte3){\displaystyle O(n^{3})} , en un modelo de computación donde las operaciones de campo (suma y multiplicación) toman un tiempo constante (en la práctica, este es el caso para los números de punto flotante , pero no necesariamente para los enteros).

El algoritmo de Strassen

El algoritmo de Strassen mejora la multiplicación ingenua de matrices mediante un enfoque de divide y vencerás . La observación clave es que multiplicar dos matrices de 2 × 2 se puede hacer con solo siete multiplicaciones, en lugar de las ocho habituales (a costa de 11 operaciones adicionales de suma y resta). Esto significa que, al tratar las matrices de entrada n × n como matrices de bloques de 2 × 2 , la tarea de multiplicar dos matrices n × n se puede reducir a siete subproblemas de multiplicación de dos matrices n /2× n /2 . Aplicando esto recursivamente se obtiene un algoritmo que requiereO(norteregistro27)O(norte2.807){\displaystyle O(n^{\log _{2}7})\approx O(n^{2.807})}operaciones de campo.

A diferencia de los algoritmos con una complejidad asintótica más rápida, el algoritmo de Strassen se utiliza en la práctica. La estabilidad numérica se reduce en comparación con el algoritmo ingenuo, [ 5 ] pero es más rápido en casos donde n > 100 aproximadamente [ 6 ] y aparece en varias bibliotecas, como BLAS . [ 7 ] Los algoritmos rápidos de multiplicación de matrices no pueden lograr estabilidad por componentes , pero se puede demostrar que algunos exhiben estabilidad por normas . [ 8 ] Es muy útil para matrices grandes sobre dominios exactos como campos finitos , donde la estabilidad numérica no es un problema.

exponente de la multiplicación de matrices

Mejora de las estimaciones del exponente ω a lo largo del tiempo para la complejidad computacional de la multiplicación de matrices.O(norteω){\displaystyle O(n^{\omega })}
Primer plano del periodo 1990-2024

El exponente de la multiplicación de matrices , generalmente denotado por ω , es el número real más pequeño para el cual cualesquiera dosnorte×norte{\displaystyle n\times n}Las matrices sobre un campo se pueden multiplicar entre sí utilizandonorteω+o(1){\displaystyle n^{\omega +o(1)}}operaciones de campo. Esta notación se usa comúnmente en la investigación de algoritmos , de modo que los algoritmos que usan la multiplicación de matrices como subrutina tienen límites en el tiempo de ejecución que se pueden actualizar a medida que mejoran los límites de ω .

Utilizando una cota inferior ingenua y la multiplicación de matrices estándar para la cota superior, se puede concluir directamente que 2 ≤ ω ≤ 3. Si ω = 2 es una cuestión abierta importante en la informática teórica , y existe una línea de investigación que desarrolla algoritmos de multiplicación de matrices para obtener mejores cotas para ω .

Todos los algoritmos recientes en esta línea de investigación utilizan el método láser , una generalización del algoritmo Coppersmith-Winograd, que fue dado por Don Coppersmith y Shmuel Winograd en 1990 y fue el mejor algoritmo de multiplicación de matrices hasta 2010. [ 24 ] La idea conceptual de estos algoritmos es similar al algoritmo de Strassen: se diseña un método para multiplicar dos matrices k × k con menos de k 3 multiplicaciones, y esta técnica se aplica recursivamente. El método láser tiene limitaciones en su potencia: Ambainis , Filmus y François Le Gall [ a ] ​​demuestran que no se puede utilizar para demostrar que ω < 2,3725 analizando potencias tensoriales cada vez mayores de una cierta identidad de Coppersmith y Winograd y tampoco ω < 2,3078 para una amplia clase de variantes de este enfoque. [ 25 ] En 2022, Duan, Wu y Zhou idearon una variante que rompe la primera de las dos barreras con ω < 2,37188 , [ 22 ] lo hacen identificando una fuente de optimización potencial en el método láser denominada pérdida de combinación que compensan utilizando una versión asimétrica del método de hash en el algoritmo Coppersmith-Winograd.

No obstante, los anteriores son ejemplos clásicos de algoritmos galácticos . Por el contrario, el algoritmo de Strassen de 1969 y el algoritmo de Pan de 1978, cuyos exponentes respectivos están ligeramente por encima y por debajo de 2,8, tienen coeficientes constantes que los hacen factibles. [ 26 ]

Reformulación de algoritmos de multiplicación de matrices mediante la teoría de grupos.

Henry Cohn , Robert Kleinberg , Balázs Szegedy y Chris Umans colocaron métodos como los algoritmos de Strassen y Coppersmith-Winograd en un contexto de teoría de grupos completamente diferente, al utilizar tríos de subconjuntos de grupos finitos que satisfacen una propiedad de disyunción llamada propiedad del producto triple (TPP) . También presentan conjeturas que, de ser ciertas, implicarían que existen algoritmos de multiplicación de matrices con complejidad esencialmente cuadrática. Esto implica que el exponente óptimo de la multiplicación de matrices es 2, lo cual la mayoría de los investigadores cree que es cierto. [ 4 ] Una de estas conjeturas es que las familias de productos de coronas de grupos abelianos con grupos simétricos realizan familias de tríos de subconjuntos con una versión simultánea de la TPP. [ 27 ] [ 28 ] Varias de sus conjeturas han sido posteriormente refutadas por Blasiak, Cohn, Church, Grochow, Naslund, Sawin y Umans utilizando el método Slice Rank. [ 29 ] Además, Alon, Shpilka y Chris Umans han demostrado recientemente que algunas de estas conjeturas que implican una multiplicación rápida de matrices son incompatibles con otra conjetura plausible, la conjetura del girasol , [ 30 ] que a su vez está relacionada con el problema del conjunto de tapas. [ 29 ]

Límites inferiores para ω

Existe un límite inferior trivial de ω2{\displaystyle \omega \geq 2}Dado que cualquier algoritmo para multiplicar dos matrices n × n tiene que procesar todas las 2 n 2 entradas, existe una cota inferior asintótica trivial de Ω( n 2 ) operaciones para cualquier algoritmo de multiplicación de matrices. Por lo tanto ,2ω<2.37188{\displaystyle 2\leq \omega <2.37188}Se desconoce siω>2{\displaystyle \omega >2} . La cota inferior más conocida para la complejidad de la multiplicación de matrices es Ω( n 2 log( n )) , para circuitos aritméticos de coeficientes acotados sobre los números reales o complejos, y se debe a Ran Raz . [ 31 ]

Se sabe que, bajo el modelo de computación típicamente estudiado, no existe ningún algoritmo de multiplicación de matrices que utilice precisamente O ( n ω ) operaciones; debe haber un factor adicional de n o(1) . [ 13 ]

Multiplicación de matrices rectangulares

Técnicas similares también se aplican a la multiplicación de matrices rectangulares. El objeto central de estudio esω(k){\displaystyle \omega (k)}, que es el más pequeñodo{\displaystyle c}de tal manera que se pueda multiplicar una matriz de tamañonorte×nortek{\displaystyle n\times \lceil n^{k}\rceil }con una matriz de tamañonortek×norte{\displaystyle \lceil n^{k}\rceil \times n}conO(nortedo+o(1)){\displaystyle O(n^{c+o(1)})}operaciones aritméticas. Un resultado en complejidad algebraica establece que multiplicar matrices de tamañonorte×nortek{\displaystyle n\times \lceil n^{k}\rceil }ynortek×norte{\displaystyle \lceil n^{k}\rceil \times n}requiere el mismo número de operaciones aritméticas que multiplicar matrices de tamañonorte×nortek{\displaystyle n\times \lceil n^{k}\rceil }ynorte×norte{\displaystyle n\times n}y de tamañonorte×norte{\displaystyle n\times n}ynorte×nortek{\displaystyle n\times \lceil n^{k}\rceil }, por lo que esto abarca la complejidad de la multiplicación de matrices rectangulares. [ 32 ] Esto generaliza el exponente de la multiplicación de matrices cuadradas , ya queω(1)=ω{\displaystyle \omega (1)=\omega}.

Dado que la salida del problema de multiplicación de matrices es de tamañonorte2{\displaystyle n^{2}}, tenemosω(k)2{\displaystyle \omega (k)\geq 2}para todos los valores dek{\displaystyle k}. Si se puede demostrar para algunos valores dek{\displaystyle k}entre 0 y 1 queω(k)2{\displaystyle \omega (k)\leq 2}, entonces tal resultado demuestra queω(k)=2{\displaystyle \omega (k)=2}para aquellosk{\displaystyle k}. El k más grande tal queω(k)=2{\displaystyle \omega (k)=2}se conoce como el exponente de multiplicación de matrices dual , generalmente denotado α . α se denomina " dual " porque muestra queα=1{\displaystyle \alpha =1}es equivalente a demostrar queω=2{\displaystyle \omega =2}. Al igual que el exponente de la multiplicación de matrices, el exponente de la multiplicación de matrices dual aparece a veces en la complejidad de los algoritmos en álgebra lineal numérica y optimización. [ 33 ]

La primera cota para α la estableció Coppersmith en 1982, quien demostró queα>0,17227{\displaystyle \alpha >0.17227}. [ 34 ] El mejor límite revisado por pares actual para α esα0,321334{\displaystyle \alpha \geq 0.321334}, dado por Williams, Xu, Xu y Zhou. [ 23 ]

Complejidad de bits de la multiplicación de matrices

El modelo algebraico detallado anteriormente supone que cada operación de campo, como la suma o la multiplicación, tiene un coste uniforme .O(1){\displaystyle O(1)} . Esta es una suposición realista para la aritmética exacta en campos finitos o la aritmética aproximada de números de punto flotante.

En distintos dominios aritméticos, como la aritmética exacta sobre los enteros, esta suposición ya no se justifica y se tiene en cuenta que los costes computacionales de las operaciones aritméticas dependen de la longitud en bits de los argumentos. Esto se denomina complejidad de bits .

Harvey y van der Hoeven [ 35 ] registran el límite general deO(dωMETRO(norte+lg(d)){\displaystyle O(d^{\omega }{\text{M}}(n+\lg(d))}operaciones en el modelo de máquina de Turing multitape donded{\displaystyle d}es la dimensión de las dos matrices cuadradas,norte{\displaystyle n}es el tamaño máximo de bits de los coeficientes de la matriz entera,ω{\displaystyle \omega }denota el exponente de multiplicación de matrices en el modelo algebraico introducido anteriormente,METRO(incógnita)=O(incógnitaregistro(incógnita)){\displaystyle {\text{M}}(x)=O(x\log(x))}denota la complejidad de multiplicar dos enteros de longitud de x bits ylg(d)=registro2(d){\displaystyle \lg(d)=\lceil \log _{2}(d)\rceil }es una elección particular de logaritmo. También proporcionan cotas mejoradas condicionadas a que la dimensión de la matriz no sea demasiado grande en comparación con la longitud en bits de los coeficientes, por ejemplo, silg(d)<donorte{\displaystyle \lg(d)<Cn}por alguna constantedo>1{\displaystyle C>1}.

El ejemplo anterior de campos finitos frente a los enteros demuestra que la complejidad de bits de la multiplicación de matrices depende del dominio aritmético del coeficiente de la matriz. Para campos finitos, la longitud de bits de los coeficientes puede estar limitada por una constante y no puede ocurrir un crecimiento intermedio del coeficiente . Para los enteros, este fenómeno lleva a la inclusión del términolg(d){\displaystyle \lg(d)}en el factorMETRO(norte+lg(d)){\displaystyle {\text{M}}(n+\lg(d))}reflejando la multiplicación de enteros con una longitud de bits potencialmente cada vez mayor durante el transcurso del algoritmo de multiplicación de matrices.

Los problemas que tienen la misma complejidad asintótica que la multiplicación de matrices incluyen determinante , inversión de matrices , eliminación gaussiana (ver la siguiente sección). Problemas con complejidad que se puede expresar en términos deω{\displaystyle \omega }incluyen el polinomio característico , los valores propios (pero no los vectores propios), la forma normal de Hermite y la forma normal de Smith .

Inversión de matrices, determinante y eliminación gaussiana

En su artículo de 1969, donde demostró la complejidadO(norteregistro27)O(norte2.807){\displaystyle O(n^{\log _{2}7})\approx O(n^{2.807})}Para el cálculo de matrices, Strassen también demostró que la inversión de matrices , el determinante y la eliminación gaussiana tienen, salvo una constante multiplicativa, la misma complejidad computacional que la multiplicación de matrices. La demostración no hace ninguna suposición sobre la multiplicación de matrices que se utiliza, excepto que su complejidad esO(norteω){\displaystyle O(n^{\omega })}para algunosω2{\displaystyle \omega \geq 2}.

El punto de partida de la demostración de Strassen es el uso de la multiplicación de matrices por bloques . Específicamente, una matriz de dimensión par 2n × 2n puede particionarse en cuatro bloques de n × n .[ABdoD].{\displaystyle {\begin{bmatrix}{A}&{B}\\{C}&{D}\end{bmatrix}}.} Bajo esta forma, su inversa es [ABdoD]1=[A1+A1B(DdoA1B)1doA1A1B(DdoA1B)1(DdoA1B)1doA1(DdoA1B)1],{\displaystyle {\begin{bmatrix}{A}&{B}\\{C}&{D}\end{bmatrix}}^{-1}={\begin{bmatrix}{A}^{-1}+{A}^{-1}{B}({D}-{CA}^{-1}{B})^{-1}{CA}^{-1}&-{A}^{-1}{B}({D}-{CA}^{-1}{B})^{-1}\\-({D}-{CA}^{-1}{B})^{-1}{CA}^{-1}&({D}-{CA}^{-1}{B})^{-1}\end{bmatrix}},} siempre que A yDdoA1B{\displaystyle {D}-{CA}^{-1}{B}}son invertibles.

Así, la inversa de una matriz de 2n × 2n se puede calcular con dos inversiones, seis multiplicaciones y cuatro sumas o inversas aditivas de matrices de n × n . De ello se deduce que, denotando respectivamente por I ( n ) , M ( n ) y A ( n ) = el número de operaciones necesarias para invertir, multiplicar y sumar matrices de n × n , se tiene I(2norte)2I(norte)+6METRO(norte)+4A(norte).{\displaystyle I(2n)\leq 2I(n)+6M(n)+4A(n).} Sinorte=2k,{\displaystyle n=2^{k},}Esta fórmula puede aplicarse de forma recursiva: I(2k)2I(2k1)+6METRO(2k1)+4A(2k1)22I(2k2)+6(METRO(2k1)+2METRO(2k2))+4(A(2k1)+2A(2k2)){\displaystyle {\begin{aligned}I(2^{k})&\leq 2I(2^{k-1})+6M(2^{k-1})+4A(2^{k-1})\\&\leq 2^{2}I(2^{k-2})+6(M(2^{k-1})+2M(2^{k-2}))+4(A(2^{k-1})+2A(2^{k-2}))\\&\,\,\,\vdots \end{aligned}}} SiMETRO(norte)donorteω,{\displaystyle M(n)\leq cn^{\omega },}yα=2ω4,{\displaystyle \alpha =2^{\omega }\geq 4,}uno finalmente lo consigue I(2k)2kI(1)+6do(αk1+2αk2++2k1α0)+k2k+12k+6doαk2kα2+k2k+1d(2k)ω{\displaystyle {\begin{aligned}I(2^{k})&\leq 2^{k}I(1)+6c(\alpha ^{k-1}+2\alpha ^{k-2}+\cdots +2^{k-1}\alpha ^{0})+k2^{k+1}\\&\leq 2^{k}+6c{\frac {\alpha ^{k}-2^{k}}{\alpha -2}}+k2^{k+1}\\&\leq d(2^{k})^{\omega }\end{aligned}}} para alguna constante d .

Para matrices cuya dimensión no es una potencia de dos, se alcanza la misma complejidad aumentando la dimensión de la matriz a una potencia de dos, rellenando la matriz con filas y columnas cuyos valores sean 1 en la diagonal y 0 en el resto.

Esto demuestra la complejidad afirmada para matrices tales que todas las submatrices que deben invertirse son, en efecto, invertibles. Por lo tanto, esta complejidad queda demostrada para casi todas las matrices, ya que una matriz con entradas elegidas al azar es invertible con probabilidad uno.

El mismo argumento se aplica a la descomposición LU , ya que, si la matriz A es invertible, la igualdad [ABdoD]=[I0doA1I][AB0DdoA1B]{\displaystyle {\begin{bmatrix}{A}&{B}\\{C}&{D}\end{bmatrix}}={\begin{bmatrix}I&0\\CA^{-1}&I\end{bmatrix}}\,{\begin{bmatrix}A&B\\0&D-CA^{-1}B\end{bmatrix}}} define una descomposición LU en bloques que puede aplicarse recursivamente aA{\displaystyle A}yDdoA1B,{\displaystyle D-CA^{-1}B,}para obtener finalmente una verdadera descomposición LU de la matriz original.

El argumento también se aplica al determinante, ya que resulta de la descomposición LU por bloques que det[ABdoD]=det(A)det(DdoA1B).{\displaystyle \det {\begin{bmatrix}{A}&{B}\\{C}&{D}\end{bmatrix}}=\det(A)\det(D-CA^{-1}B).}

Minimizar el número de multiplicaciones

Relacionado con el problema de minimizar el número de operaciones aritméticas está minimizar el número de multiplicaciones, que suele ser una operación más costosa que la suma.O(norteω){\displaystyle O(n^{\omega })}El algoritmo para la multiplicación de matrices debe necesariamente utilizar únicamenteO(norteω){\displaystyle O(n^{\omega })}operaciones de multiplicación, pero estos algoritmos no son prácticos. Mejorando desde el ingenuonorte3{\displaystyle n^{3}}multiplicaciones para la multiplicación del libro de texto escolar,4×4{\displaystyle 4\times 4}matrices enZ/2Z{\displaystyle \mathbb {Z} /2\mathbb {Z} }se puede hacer con 47 multiplicaciones, [ 36 ]3×3{\displaystyle 3\times 3}La multiplicación de matrices sobre un anillo conmutativo se puede realizar en 21 multiplicaciones [ 37 ] [ 38 ] (23 si no es conmutativo [ 39 ] ). El límite inferior de multiplicaciones necesarias es 2 mn +2 nm −2 (multiplicación de matrices n × m con matrices m × n usando el método de sustitución,metronorte3{\displaystyle m\geq n\geq 3}), lo que significa que el caso n=3 requiere al menos 19 multiplicaciones y el caso n=4 al menos 34. [ 40 ] Para n=2, el mínimo óptimo son siete multiplicaciones y 15 sumas, en comparación con solo cuatro sumas para ocho multiplicaciones. [ 41 ] [ 42 ]

Véase también

Notas

Referencias

  1. ^ Volker Strassen (agosto de 1969). "La eliminación gaussiana no es óptima" . Matemática numérica . 13 (4): 354– 356. doi : 10.1007/BF02165411 . S2CID 121656251 . 
  2. 1 2 Almán, Josh; Duan, Ran; Williams, Virginia Vassilevska; Xu, Yinzhan; Xu, Zixuan; Zhou, Renfei (2024). "Más asimetría produce una multiplicación de matrices más rápida". arXiv : 2404.16349 [ cs.DS ].
  3. Iliopoulos, Costas S. (1989). "Límites de complejidad en el peor de los casos para algoritmos que calculan la estructura canónica de grupos abelianos finitos y las formas normales de Hermite y Smith de una matriz entera" (PDF) . SIAM Journal on Computing . 18 (4): 658– 669. CiteSeerX 10.1.1.531.9309 . doi : 10.1137/0218045 . MR 1004789. Archivado del original (PDF) el 5 de marzo de 2014. Recuperado el 16 de enero de 2015. El algoritmo de Coppersmith-Winograd no es práctico debido a la constante oculta muy grande en el límite superior del número de multiplicaciones requeridas.  
  4. 1 2 Robinson, Sara (noviembre de 2005). "Hacia un algoritmo óptimo para la multiplicación de matrices" (PDF) . SIAM News . 38 (9). Incluso si alguien logra demostrar una de las conjeturas —demostrando así que ω = 2— es improbable que el enfoque del producto de corona sea aplicable a los grandes problemas de matrices que surgen en la práctica. [...] las matrices de entrada deben ser astronómicamente grandes para que la diferencia de tiempo sea evidente.
  5. Miller, Webb (1975). "Complejidad computacional y estabilidad numérica". SIAM News . 4 (2): 97– 107. CiteSeerX 10.1.1.148.9947 . doi : 10.1137/0204009 . 
  6. Skiena, Steven (2012). "Clasificación y búsqueda". Manual de diseño de algoritmos . Springer. págs. 45-46 , 401-403 . doi : 10.1007/978-1-84800-070-4_4 . ISBN  978-1-84800-069-8.
  7. Press, William H.; Flannery, Brian P.; Teukolsky, Saul A .; Vetterling, William T. (2007). Numerical Recipes: The Art of Scientific Computing (3.ª ed.). Cambridge University Press . p . 108. ISBN   978-0-521-88068-8.
  8. Ballard, Grey; Benson, Austin R.; Druinsky, Alex; Lipshitz, Benjamin; Schwartz, Oded (2016). "Mejora de la estabilidad numérica de la multiplicación rápida de matrices". SIAM Journal on Matrix Analysis and Applications . 37 (4): 1382– 1418. arXiv : 1507.00687 . doi : 10.1137/15M1032168 . S2CID 2853388 . 
  9. Victor Yakovlevich Pan (octubre de 1978). "El algoritmo de Strassen no es óptimo: técnica trilineal de agregación, unión y cancelación para la construcción de algoritmos rápidos para operaciones matriciales". Actas del 19.º FOCS . págs. 166–176 . doi : 10.1109/SFCS.1978.34 . S2CID 14348408 .  
  10. Darío Andrea Bini; Milvio Capovani; Francisco Romaní; Grazia Lotti (junio de 1979). "O(norte2.7799){\displaystyle O(n^{2.7799})}complejidad paranorte×norte{\displaystyle n\times n}multiplicación aproximada de matrices" . Information Processing Letters . 8 (5): 234– 235. doi : 10.1016/0020-0190(79)90113-3 .
  11. A. Schönhage (1981). "Multiplicación parcial y total de matrices". SIAM Journal on Computing . 10 (3): 434– 455. doi : 10.1137/0210032 .
  12. Francesco Romani (1982). "Algunas propiedades de sumas disjuntas de tensores relacionadas con la multiplicación de matrices". SIAM Journal on Computing . 11 (2): 263– 267. doi : 10.1137/0211020 .
  13. 1 2 D. Coppersmith; S. Winograd (1981). "Sobre la complejidad asintótica de la multiplicación de matrices". Actas del 22.º Simposio Anual sobre Fundamentos de la Informática (FOCS) . págs. 82–90 . doi : 10.1109/SFCS.1981.27 . S2CID 206558664 .  
  14. Volker Strassen (octubre de 1986). «El espectro asintótico de tensores y el exponente de la multiplicación de matrices». Actas del 27.º Simposio Anual sobre Fundamentos de la Informática (FOCS) . págs. 49-54 . doi : 10.1109/SFCS.1986.52 . ISBN  0-8186-0740-8. S2CID 15077423 . 
  15. D. Coppersmith; S. Winograd (marzo de 1990). "Multiplicación de matrices mediante progresiones aritméticas" . Journal of Symbolic Computation . 9 (3): 251– 280. doi : 10.1016/S0747-7171(08)80013-2 .
  16. Stothers, Andrew James (2010). Sobre la complejidad de la multiplicación de matrices (tesis doctoral). Universidad de Edimburgo.
  17. Virginia Vassilevska Williams (2012). "Multiplicación de matrices más rápida que Coppersmith-Winograd". En Howard J. Karloff; Toniann Pitassi (eds.). Actas del 44.º Simposio sobre Teoría de la Computación (STOC) . ACM. págs. 887–898 . doi : 10.1145/2213977.2214056 . ISBN  978-1-4503-1245-5. S2CID 14350287 . 
  18. Williams, Virginia Vassilevska . Multiplicación de matrices enO(norte2.373){\displaystyle O(n^{2.373})}tiempo (PDF) (Informe técnico). Universidad de Stanford.
  19. Le Gall, François (2014). «Teoría de la complejidad algebraica y multiplicación de matrices». En Katsusuke Nabeshima (ed.). Actas del 39.º Simposio Internacional sobre Computación Simbólica y Algebraica - ISSAC '14 . págs. 296–303 . arXiv : 1401.7714 . Bibcode : 2014arXiv1401.7714L . doi : 10.1145/2608628.2627493 . ISBN  978-1-4503-2501-1. S2CID 2597483 . 
  20. Alman, Josh; Williams, Virginia Vassilevska (2024). "Un método láser refinado y una multiplicación de matrices más rápida". Theoretics 11261. arXiv : 2010.05846 . doi : 10.46298/theoretics.24.21 .
  21. Hartnett, Kevin (23 de marzo de 2021). "La multiplicación de matrices se acerca cada vez más a su meta mítica" . Quanta Magazine . Consultado el 1 de abril de 2021 .
  22. 1 2 Duan, Ran; Wu, Hongxun; Zhou, Renfei (2022). "Multiplicación de matrices más rápida mediante hash asimétrico". arXiv : 2210.10173 [ cs.DS ].
  23. 1 2 Vassilevska Williams, Virginia; Xu, Yinzhan; Xu, Zixuan; Zhou, Renfei. Nuevos límites para la multiplicación de matrices: de alfa a omega . Actas del Simposio Anual ACM-SIAM de 2024 sobre Algoritmos Discretos (SODA). págs. 3792–3835 . arXiv : 2307.07970 . doi : 10.1137/1.9781611977912.134 . 
  24. Coppersmith, Don; Winograd, Shmuel (1990). "Multiplicación de matrices mediante progresiones aritméticas" (PDF) . Journal of Symbolic Computation . 9 (3): 251. doi : 10.1016/S0747-7171(08)80013-2 .
  25. Ambainis, Andris; Filmus, Yuval; Le Gall, François (14 de junio de 2015). «Multiplicación rápida de matrices» . Actas del cuadragésimo séptimo simposio anual de la ACM sobre Teoría de la Computación . STOC '15. Portland, Oregón, EE. UU.: Association for Computing Machinery. págs. 585–593 . arXiv : 1411.5414 . doi : 10.1145/2746539.2746554 . ISBN  978-1-4503-3536-2. S2CID 8332797 . 
  26. Laderman, Julian; Pan, Victor; Sha, Xuan-He (1992). "Sobre algoritmos prácticos para la multiplicación acelerada de matrices". Álgebra lineal y sus aplicaciones . 162–164 : 557–588 . doi : 10.1016/0024-3795(92)90393-O .
  27. Cohn, H.; Kleinberg, R.; Szegedy, B.; Umans, C. (2005). «Algoritmos de teoría de grupos para la multiplicación de matrices». 46.º Simposio Anual IEEE sobre Fundamentos de la Informática (FOCS'05) . p. 379. arXiv : math/0511460 . doi : 10.1109/SFCS.2005.39 . ISBN  0-7695-2468-0. S2CID 41278294 . 
  28. Cohn, Henry; Umans, Chris (2003). «Un enfoque de teoría de grupos para la multiplicación rápida de matrices». Actas del 44.º Simposio Anual del IEEE sobre Fundamentos de la Informática, 11-14 de octubre de 2003. IEEE Computer Society. págs. 438-449 . arXiv : math.GR/0307321 . doi : 10.1109/SFCS.2003.1238217 . ISBN  0-7695-2040-5. S2CID 5890100 . 
  29. 1 2 Blasiak, J.; Cohn, H.; Church, T.; Grochow, J.; Naslund, E.; Sawin, W.; Umans, C. (2017). "Sobre conjuntos de tapas y el enfoque de teoría de grupos para la multiplicación de matrices". Análisis Discreto . pág. 1245. doi : 10.19086/da.1245 . S2CID 9687868 .  
  30. Alon, N .; Shpilka, A.; Umans, C. (abril de 2011). "Sobre girasoles y multiplicación de matrices" . Coloquio electrónico sobre complejidad computacional . TR11-067.
  31. Raz, Ran (2002). "Sobre la complejidad del producto matricial". Actas del trigésimo cuarto simposio anual de la ACM sobre Teoría de la Computación . págs. 144–151 . doi : 10.1145/509907.509932 . ISBN  1581134959. S2CID 9582328 . 
  32. Gall, Francois Le; Urrutia, Florent (2018). "Multiplicación mejorada de matrices rectangulares mediante potencias del tensor de Coppersmith-Winograd". En Czumaj, Artur (ed.). Actas del Vigésimo Noveno Simposio Anual ACM-SIAM sobre Algoritmos Discretos, SODA 2018, Nueva Orleans, LA, EE. UU., 7-10 de enero de 2018. Sociedad de Matemáticas Industriales y Aplicadas. pp. 1029-1046 . arXiv : 1708.05622 . doi : 10.1137 /1.9781611975031.67 . ISBN  978-1-61197-503-1.
  33. Cohen, Michael B.; Lee, Yin Tat; Song, Zhao (2021-01-05). "Resolución de programas lineales en el tiempo de multiplicación de matrices actual" . Journal of the ACM . 68 (1): 3:1–3:39. arXiv : 1810.07896 . doi : 10.1145/3424305 . ISSN 0004-5411 . S2CID 231955576 .  
  34. Coppersmith, D. (1982-08-01). "Multiplicación rápida de matrices rectangulares" . SIAM Journal on Computing . 11 (3): 467– 471. doi : 10.1137/0211037 . ISSN 0097-5397 . 
  35. Harvey, D.; van der Hoeven, J. (2018). "Sobre la complejidad de la multiplicación de matrices enteras" . Journal of Symbolic Computation . 89 (1): 1– 8. doi : 10.1016/j.jsc.2017.11.001 . ISSN 0747-7171 . 
  36. Ver datos extendidos Fig. 1: Algoritmo para multiplicar matrices de 4 × 4 en aritmética modular (Z2{\displaystyle \mathbb {Z} _{2}})) con 47 multiplicaciones en Fawzi, A.; Balog, M.; Huang, A.; Hubert, T.; Romera-Paredes, B.; Barekatain, M.; Novikov, A.; r Ruiz, FJ; Schrittwieser, J.; Swirszcz, G.; Silver, D.; Hassabis, D.; Kohli, P. (2022). "Descubriendo algoritmos de multiplicación de matrices más rápidos con aprendizaje por refuerzo" . Nature . 610 ( 7930): 47– 53. Bibcode : 2022Natur.610...47F . doi : 10.1038/s41586-022-05172-4 . PMC 9534758. PMID 36198780 .  
  37. Rosowski, Andreas (2023). "Algoritmos de matrices conmutativas rápidas". Journal of Symbolic Computation . 114 : 302–321 . arXiv : 1904.07683 . doi : 10.1016/j.jsc.2022.05.002 . MR 4433063 . 
  38. ^ Makárov, OM (1986). "Un algoritmo para multiplicar matrices de 3 × 3" . Zhurnal Vychislitel'noi Matematiki I Matematicheskoi Fiziki . 26 (2) : 293–294 . Consultado el 5 de octubre de 2022 .
    También en Makarov, OM (1986). "Un algoritmo para multiplicar matrices de 3×3". Matemáticas Computacionales y Física Matemática de la URSS . 26 : 179–180 . doi : 10.1016/0041-5553(86)90203-X .
  39. Laderman, Julian D. (1976). "Un algoritmo no conmutativo para multiplicar matrices de 3×3 usando 23 multiplicaciones" . Boletín de la Sociedad Matemática Americana . 82 (1): 126– 128. doi : 10.1090/S0002-9904-1976-13988-2 . ISSN 0002-9904 . 
  40. Bläser, Markus (febrero de 2003). "Sobre la complejidad de la multiplicación de matrices de pequeño formato" . Journal of Complexity . 19 (1): 43– 60. doi : 10.1016/S0885-064X(02)00007-9 .
  41. Winograd, S. (1971-10-01). "Sobre la multiplicación de matrices de 2 × 2" . Álgebra lineal y sus aplicaciones . 4 (4): 381– 388. doi : 10.1016/0024-3795(71)90009-7 . ISSN 0024-3795 . 
  42. L., Probert, R. (1973). Sobre la complejidad de la multiplicación de matrices . Universidad de Waterloo. OCLC 1124200063 . {{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  • Otro catálogo más de algoritmos rápidos de multiplicación de matrices.
  • Fawzi, A.; Balog, M.; Huang, A.; Hubert, T.; Romera-Paredes, B.; Barekatain, M.; Novikov, A.; Ruiz, FJR; Schrittwieser, J.; Swirszcz, G.; Silver, D.; Hassabis, D.; Kohli, P. (2022). "Descubriendo algoritmos de multiplicación de matrices más rápidos con aprendizaje por refuerzo" . Nature . 610 (7930): 47– 53. Bibcode : 2022Natur.610...47F . doi : 10.1038/ s41586-022-05172-4 . PMC 9534758. PMID 36198780 .