Complejidad espacial del algoritmo Coppersmith – Winograd

24

El algoritmo de Coppersmith-Winograd es el algoritmo conocido asintóticamente más rápido para multiplicar dos matrices cuadradas. El tiempo de ejecución de su algoritmo es que es el más conocido hasta ahora. ¿Cuál es la complejidad espacial de este algoritmo? ¿Está en ?n×nO(n2.376)Θ(n2)

Shiva Kintali
fuente

Respuestas:

30

Sí, todos los algoritmos que se derivan del algoritmo original de Strassen (esto incluye los algoritmos más conocidos para la multiplicación de matrices, pero no todos; vea los comentarios) tienen complejidad espacial . Si pudiera encontrar un algoritmo de tiempo con complejidad de espacio , este sería un gran avance. Una aplicación sería un algoritmo de espacio 2 ( 1 - ε ) n tiempo, p o l y ( n ) para el problema Subset-Sum.n3εΘ(n2)n3εpoly(logn)2(1ε)npoly(n)

Sin embargo, hay algunos obstáculos para tal resultado. Para algunos modelos computacionales, existen límites inferiores bastante fuertes para el producto espacio-temporal de la multiplicación de matrices. Referencias como Yesha y Abrahamson le darán más información.

Ryan Williams
fuente
Hola ryan impresionante ¿Qué pasa con los algoritmos de teoría de grupos de Cohn-Umans [FOCS2003] y Cohn-Kleinberg-Szegedy-Umans [FOCS2005]?
Shiva Kintali
1
Sí, esos también. Tengo entendido que están haciendo un tipo especial de convolución (una FFT sobre un grupo especial), pero la convolución está sobre objetos de tamaño . No se conocen algoritmos de espacio pequeño (con una complejidad de tiempo mejor que el algoritmo obvio) para las convoluciones de vectores sobre enteros, e imagino que es más difícil obtener convoluciones de espacio pequeño sobre estos grupos. Θ(n2)
Ryan Williams
¿Cómo se puede tener espacio cuando se necesitan 2 n 2 espacios para almacenar las entradas de las matrices? poly(logn)2n2
T ....
Porque de la manera habitual en que se mide la complejidad del espacio, la entrada no se cuenta hacia el límite del espacio. La entrada se trata como "solo lectura", y medimos la cantidad adicional de memoria "lectura-escritura" que se necesita para calcular la función. En este caso, solo el espacio adicional es suficiente cuando las entradas de entrada están delimitadas (por ejemplo, 0 o 1) y utiliza operaciones O ( n 3 ) . O(losolnorte)O(norte3)
Ryan Williams
1
No sé lo que tiene en mente, pero definitivamente hay algs "combinatorios" (búsqueda de tabla) para la matriz booleana mult que vencen n ^ 3 veces por factores de registro y usan mucho menos que n ^ 2 espacio ...
Ryan Williams