En 1979, Freivalds demostró que la verificación de los productos matriciales en cualquier campo se puede hacer en un tiempo aleatorizado de . Más formalmente, dadas tres matrices A, B y C, con entradas de un campo F, el problema de verificar si AB = C tiene un algoritmo de tiempo O ( n 2 ) aleatorio .
Esto es interesante porque el algoritmo más rápido conocido para multiplicar matrices es más lento que esto, por lo que verificar si AB = C es más rápido que calcular C.
Quiero saber cuál es la estructura algebraica más general sobre la cual la verificación de productos de matriz todavía tiene un algoritmo de tiempo (aleatorio). Dado que el algoritmo original funciona en todos los campos, creo que también funciona en todos los dominios integrales.
La mejor respuesta que pude encontrar a esta pregunta fue en Equivalencias subcúbicas entre problemas de trayectoria, matriz y triángulo , donde dicen que "la verificación del producto matricial sobre los anillos se puede hacer en tiempo aleatorio [BK95]". ([BK95]: M. Blum y S. Kannan. Diseño de programas que verifican su trabajo. J. ACM, 42 (1): 269–291, 1995.)
Primero, ¿son los anillos la estructura más general sobre la cual este problema tiene un algoritmo aleatorio ? En segundo lugar, no pude ver cómo los resultados de [BK95] muestran un algoritmo de tiempo O ( n 2 ) en todos los anillos. ¿Alguien puede explicar cómo funciona?
fuente
Respuestas:
Aquí hay un argumento rápido de por qué funciona sobre anillos. Dadas las matrices , B , C , verificamos A B = C seleccionando un vector de bits aleatorio v , luego verificando si A B v = C v . Esto pasa claramente si A B = C .A B C AB=C v ABv=Cv AB=C
Suponga que y A B v = C v . Deje D = A B - C . D es una matriz distinta de cero para la cual D v = 0 . ¿Cuál es la probabilidad de que esto ocurra? Sea D [ i ′ , j ′ ] una entrada distinta de cero. Por supuesto, ∑ j D [ i ′ , j ] v [ j ] = 0AB≠C ABv=Cv D=AB−C D Dv=0 D[i′,j′] ∑jD[i′,j]v[j]=0 . Con probabilidad , v [ j ' ] = 1 , por lo que tenemos1/2 v[j′]=1
.D[i′,j′]+∑j≠j′D[i′,j]v[j]=0
Cualquier anillo bajo su operación de suma es un grupo aditivo, por lo que hay un inverso único de , es decir, - D [ i ′ , j ′ ] . Ahora, la probabilidad de que el evento malo - D [ i ' , j ' ] = Σ j ≠ j ' D [ i ' , j ] v [ j ] es como máximo de 1 / 2D[i′,j′] −D[i′,j′] −D[i′,j′]=∑j≠j′D[i′,j]v[j] 1/2 . (Una forma de ver esto es el "principio de decisiones diferidas": para que la suma sea igual a , al menos otra D [ i ′ , j ] debe ser distinta de cero. v [ j ] corresponde a estas otras entradas distintas de cero. Incluso si establecemos todas estas v [ j ] a excepción de una de ellas de manera óptima , todavía existe la misma probabilidad de que la última sea 0 o 1−D[i′,j′] D[i′,j] v[j] v[j] 0 1 , Pero sólo uno de estos valores podrían hacer que la suma final igual a .) Así que con una probabilidad de al menos 1 / 4 , encontramos que el éxito D V ≠ 0 , cuando D es distinto de cero. (Nota v [ j ] y v [ j ′ ] se eligen independientemente para j ≠ j ′ .)−D[i′,j′] 1/4 Dv≠0 D v[j] v[j′] j≠j′
Como puede ver, el argumento anterior depende de la resta. Por lo tanto, no funcionará (por ejemplo) en semirreferencias conmutativas arbitrarias. ¿Quizás podría relajar las propiedades multiplicativas de la estructura algebraica y aún así obtener el resultado?
fuente