¿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 2
Antecedentes: Sea un campo . Pensamos que los vectores tienen coordenadas indexadas por . n > 0 u ∈ F n Z n
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 n
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).∗
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 Z
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).
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 .
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?
fuente
Respuestas:
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 ..."∙ n F O(nlogn) F O(nlognloglogn) F ≠2
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.
fuente