Estoy buscando información sobre la complejidad computacional de la multiplicación de matrices de matrices rectangulares. Wikipedia afirma que la complejidad de multiplicar por B ∈ R n × p es O ( m n p ) (multiplicación del libro escolar).
Tengo un caso en el que y n son mucho menores que p , y esperaba conseguir mejor la complejidad de lineal en p , en la costa de hacer la dependencia de m y n peor que lineal.
¿Algunas ideas?
Gracias.
Nota: la razón por la que espero que sea posible es por el resultado bien conocido de una dependencia menor que la cúbica en si m = n = p (cuando las matrices son todos cuadrados).
Respuestas:
El trabajo clásico de Coppersmith muestra que para algunos , uno puede multiplicar una matriz n × n α con una matriz n α × n en ˜ O ( n 2 ) operaciones aritméticas. Este es un ingrediente crucial del reciente resultado celebrado de Ryan Williams.α>0 n×nα nα×n O~(n2)
François le Gall mejoró recientemente el trabajo de Coppersmith, y su artículo acaba de ser aceptado en FOCS 2012. Para comprender este trabajo, necesitará algunos conocimientos de la teoría de la complejidad algebraica. El artículo de Virginia Williams contiene algunos consejos relevantes. En particular, el trabajo de Coppersmith se describe completamente en la teoría de la complejidad algebraica , el libro.
Una línea diferente de trabajo se concentra en multiplicar matrices aproximadamente . Puedes consultar este trabajo de Magen y Zouzias. Esto es útil para manejar matrices realmente grandes, por ejemplo, multiplicando una matriz y una matriz N × n , donde N ≫ n .n×N N×n N≫n
El enfoque básico es muestrear las matrices (esto corresponde a una reducción aleatoria de la dimensionalidad) y multiplicar las matrices muestreadas mucho más pequeñas. El truco es descubrir cuándo y en qué sentido esto da una buena aproximación. A diferencia de la línea de trabajo anterior que es completamente poco práctica, los algoritmos de muestreo son prácticos e incluso necesarios para manejar grandes cantidades de datos.
fuente