Convolución rápida sobre campos finitos pequeños

17

¿Cuáles son los métodos más conocidos para la convolución cíclica de longitud sobre un campo pequeño, es decir, cuando ? Estoy particularmente interesado en campos de tamaño constante, o incluso . Las declaraciones y referencias generales de eficiencia asintótica son muy apreciadas.| F | n F = F 2n|F|nF=F2

Antecedentes: Sea un campo . Pensamos que los vectores tienen coordenadas indexadas por . n > 0 u F n Z nFn>0uFnZn

La convolución (cíclica) de longitud sobre es la transformación que toma produce , definida por con índice aritmético sobre .F u , v F n u v F n ( u v ) i : = j Z n v j u i - j , Z nnFu,vFnuvFn

(uv)i:=jZnvjuij,
Zn

Para realizar una convolución cíclica en campos grandes, un método popular es usar el Teorema de la convolución para reducir nuestro problema de realizar Transformaciones discretas de Fourier (DFT) y usar un algoritmo FFT.

Para campos finitos pequeños, el DFT no está definido porque no hay una raíz -ésima de unidad primitiva . Uno puede evitar esto incrustando el problema en un campo finito más grande, pero no está claro que esta sea la mejor manera de proceder. Incluso si tomamos esta ruta, sería bueno saber si alguien ya ha resuelto los detalles (por ejemplo, elegir qué campo más grande usar y qué algoritmo FFT aplicar).n

Adicional:

Al "incrustar" nuestra convolución en, me refiero a una de dos cosas. Primera opción: se podría pasar a un campo de extensión en el que se unan las raíces primitivas deseadas de la unidad, y hacer la convolución allí.

Segunda opción: si nuestro campo de inicio es cíclico, uno podría pasar a un campo cíclico de característica más grande, lo suficientemente grande como para que consideremos que nuestros vectores se encuentran en , no se produce "envoltura". (Estoy siendo informal, pero solo pienso en cómo, para calcular una convolución sobre , claramente podemos hacer la misma convolución sobre , y luego tomar las respuestas mod 2.) F p F 2 ZFpFp
F2Z

También agregado:

Muchos algoritmos para FFT y problemas relacionados funcionan especialmente bien para valores "agradables" de (y me gustaría entender mejor la situación con esto). n

Pero si uno no intenta aprovechar los valores especiales de , el problema de convolución cíclica es básicamente equivalente (por reducciones fáciles que implican una explosión lineal en ) a la convolución ordinaria; esto a su vez es equivalente a la multiplicación de polinomios con coeficientes sobre . nortenorteFpag

Por esta equivalencia, uno puede usar resultados en, por ejemplo, este documento de von zur Gathen y Gerhard (basándose en el trabajo de Cantor), quienes usan un enfoque de campo de extensión para obtener una complejidad de circuito limitada de . No establecen sus límites de una manera especialmente clara en la OMI, pero el límite es peor que incluso para . ¿Se puede hacer mejor?O~pag(norte)norteIniciar sesión2norteF2

Andy Drucker
fuente
2
Quizás encuentres algo útil en la tesis de Todd Mateer .
jp
1
Hice una pregunta muy similar sobre MathOverflow para calcular el DFT sobre campos finitos arbitrarios; Puede encontrar las respuestas relevantes.
Bill Bradley

Respuestas:

8

Un artículo reciente de Alexey Pospelov parece dar el estado del arte. (No es el primero en alcanzar los límites que citaré, pero los logra de manera unificada para campos arbitrarios, e igualmente importante, establece los límites claramente, ver p. 3.)

podemos multiplicar dos Grado- n polinomios sobre un campo arbitrario F utilizando O ( n log n ) multiplicaciones en F y O ( n log n log log n ) adiciones en F . Esto se debe originalmente a Schonhage-Strassen (para char.2 ) y Schonhage para char. 2. Como mencioné, esto implica los mismos límites para la convolución cíclica. Pospelov también afirma: "Actualmente no conocemos ningún algoritmo con un límite superior de [lo anterior] que no esté basado en aplicaciones DFT consecutivas ..."nFO(nlogn)FO(nlognloglogn)F2

FFNNN=O(n)NO(n)O(nlogn)

La tesis de Todd Mateer también parece un excelente recurso para comprender la literatura y las aplicaciones de FFT a la multiplicación polinómica (¡gracias, Jug!); pero tienes que cavar más para encontrar lo que estás buscando.

Andy Drucker
fuente
1
Creo que tienes razón en Furer y De. De no usa una versión compleja de FFT y parece ser más fácil técnicamente, aunque ambos algoritmos son conceptualmente similares.
vs
1
Si le preocupan los factores de registro, debe tener cuidado con el modelo de máquina. La mejora reciente de Furer es específicamente para las máquinas de Turing. Para un modelo de RAM de costo unitario (incluso sin multiplicación pero con búsqueda de tiempo constante) se obtiene el tiempo O (n) para multiplicar dos números de n bits y las complejidades de tiempo correspondientemente más bajas para la multiplicación sobre F_2, etc., utilizando el empaquetado de bits y las técnicas clásicas.
Raphael