Definición de exponente de multiplicación matricial

15

Coloquialmente, la definición del exponente de multiplicación de matrices es el valor más pequeño para el cual existe un algoritmo de multiplicación de matrices conocido . Esto no es aceptable como una definición matemática formal, por lo que supongo que la definición técnica es algo así como el infimum sobre todo tal que existe un algoritmo de multiplicación de matrices en .ωnorteωtnortet

En este caso, no podemos decir que hay un algoritmo para la multiplicación de matrices en o incluso , simplemente que para todo existe un algoritmo en . Sin embargo, a menudo, los documentos y resultados que utilizan la multiplicación de matrices informarán su costo simplemente como .norteωnorteω+o(1)ϵ>0 0norteω+ϵO(norteω)

¿Existe alguna definición alternativa de que permita este uso? ¿Hay resultados que garanticen que debe existir un algoritmo de tiempo o ? ¿O es el uso simplemente descuidado?ωnorteωnorteω+o(1)O(norteω)

David Harris
fuente
2
Si solo quiere usar la multiplicación de matrices como un recuadro negro, la forma más fácil es decir "Sea ω tal que podamos multiplicar n×n -matrices con operaciones aritméticas O(norteω) ". Por supuesto, ω no es el exponente de la multiplicación de matrices entonces, pero puede ser arbitrariamente cercano. Si desea establecer el exponente de su ejecución final en representación decimal, actualmente debe redondear de todos modos, ya que todas las estimaciones no triviales para ω que conozco son números irracionales o secuencias infinitas.
Markus Bläser
2
ω se define típicamente como el infimum sobre todos los realesk paran yendo a tal manera que haya unalgoritmo de tiempoO(nk) que multiplique dosmatricesn×n (donde el tiempo es el número de sumas, multiplicaciones y divisiones en el campo subyacente). Esto también significa que técnicamente siempre deberíamos escribirnω+o(1) pero eso se vuelve desordenado, por lo que cuando veasO(nω) deberías pensar donde M ( n ) es el tiempo de ejecución de un algoritmo de multiplicación de matrices. O(M(n))M(n)
virgi

Respuestas:

20

El exponente de multiplicación matricial siendo no garantiza que haya un algoritmo que se ejecute en el tiempo O ( n ω ) , sino que solo para cada ϵ > 0 , hay un algoritmo que se ejecuta en O ( n ω + ϵ ) . De hecho, si puede encontrar un algoritmo que se ejecute en el tiempo O ( n 2 p o l y l o g ( n ) ) , esto muestra que ω = 2 .ωO(nω)ϵ>0O(nω+ϵ)O(n2polylog(n))ω=2

Puede encontrar la definición formal en el libro Teoría de la complejidad algebraica de Peter Bürgisser, Michael Clausen, Amin Shokrollahi.

MCH
fuente
7

Un comentario menor que es demasiado largo para ser un comentario:

A veces, cuando tiene un problema para el cual hay un algoritmo con tiempo de ejecución para cada ϵ > 0 , hay un algoritmo con tiempo de ejecución n k + o ( 1 ) .O(nk+ϵ)ϵ>0nk+o(1)

Por ejemplo, a veces obtienes algoritmos que van como para alguna función de crecimiento rápido f (como 2 2 1 / ϵ ). Si establece f ( 1 / ϵ ) en (digamos) log n , entonces ϵ será o (1). En el ejemplo con f ( 1 / ϵ ) siendo 2 2 1 / ϵ , puede elegir 1 / ϵf(1/ϵ)nk+ϵf221/ϵf(1/ϵ)lognϵf(1/ϵ)221/ϵ1/ϵser , que da ϵ = 1 / ( log log log n ) , que es o (1). Entonces, el tiempo de ejecución final de este algoritmo será n k + o ( 1 ) , ya que log n también es n o ( 1 ) .logloglognorteϵ=1/ /(Iniciar sesiónIniciar sesiónIniciar sesiónnorte)nk+o(1)lognno(1)

Robin Kothari
fuente
Me imagino que el algoritmo Coppersmith-Winograd entra en esta categoría.
David Harris
2
@DavidHarris: No sé sobre eso. Quizás alguien que entienda el algoritmo pueda arrojar algo de luz sobre eso. Solo quería decir que a menudo no es tan malo como parece. O(nk+ϵ)
Robin Kothari
5

Es bien sabido el resultado de Coppersmith y Winograd que el tiempo no puede ser realizado por un solo algoritmo. Pero he leído que se restringieron a algoritmos basados ​​en identidades bilineales similares a Strassen, por lo que no estoy seguro ya que el documento está detrás de un muro de pago.O(nω)

Diego de Estrada
fuente
3

No estoy de acuerdo con su afirmación en la pregunta de que no está bien definido por "el valor más pequeño para el cual existe un algoritmo de multiplicación de matriz n ω conocido ". Cuando las personas usan esta constante, es porque su algoritmo se basa en una multiplicación de matriz, y por una complejidad n ω , significan que "la complejidad óptima de nuestro algoritmo viene dada por el algoritmo óptimo para la multiplicación de matriz".ωnωnω

No digo que no sea posible definir otra manera (por ejemplo, decir que ω es la mejor complejidad posible).ωω

Por cierto, el límite superior más conocido para la multiplicación de matrices acaba de mejorar a si no me equivoco. 2.3737

Bruno
fuente
3
No veo cómo el conocimiento humano puede ser parte de una definición matemática
David Harris
2
La experiencia reciente muestra que es mucho más fácil cuantificar sobre todos los algoritmos que sobre todos los algoritmos conocidos actualmente por la humanidad ;-)
Markus Bläser