Quais são os métodos mais conhecidos para convolução cíclica de comprimento em um campo pequeno, ou seja, quando ? Estou particularmente interessado em campos de tamanho constante, ou até . As declarações e referências gerais de eficiência assintótica são muito apreciadas.
Antecedentes: Seja um campo . Pensamos nos vetores como tendo coordenadas indexadas por .
A convolução (cíclica) do comprimento sobre é a transformação que leva e gera , definida por com aritmética de índice sobre .
Para executar a convolução cíclica em campos grandes, um método popular é usar o Teorema da Convolução para reduzir nosso problema ao executar Transformações Discretas de Fourier (DFTs) e usar um algoritmo FFT.
Para pequenos campos finitos, a DFT é indefinida porque não há ésima raiz primitiva da unidade. Pode-se contornar isso incorporando o problema em um campo finito maior, mas não está claro se esta é a melhor maneira de proceder. Mesmo se seguirmos esse caminho, seria bom saber se alguém já trabalhou nos detalhes (por exemplo, escolhendo qual campo maior usar e qual algoritmo FFT aplicar).
Adicionado:
Por 'encaixar' o nosso convolução, eu uma média de duas coisas. Primeira opção: pode-se passar para um campo de extensão no qual as raízes primitivas desejadas da unidade estão unidas e fazer a convolução lá.
Segunda opção: se nosso campo inicial for cíclico, pode-se passar para um campo cíclico de característica maior - suficientemente grande que se considerarmos nossos vetores como , não ocorre "envolvente".
(Estou sendo informal, mas pense em como, para calcular uma convolução em F 2 , podemos claramente fazer a mesma convolução em Z e, em seguida, obter as respostas mod 2.)
Também adicionado:
Muitos algoritmos para FFT e problemas relacionados funcionam especialmente bem para valores "agradáveis" de (e eu gostaria de entender melhor a situação com isso).
Mas se alguém não tenta tirar proveito dos valores especiais de , o problema da convolução cíclica é basicamente equivalente (por reduções fáceis envolvendo explosão linear em n ) à convolução comum; isso, por sua vez, é equivalente à multiplicação de polinômios com coeficientes acima de .
Por essa equivalência, pode-se usar resultados em, por exemplo, este artigo de von zur Gathen e Gerhard (construindo sobre o trabalho de Cantor), que usam uma abordagem de campo de extensão para obter uma complexidade de circuito vinculada . Eles não indicam seus limites de uma maneira especialmente clara na IMO, mas o limite é pior que n ⋅ log 2 n, mesmo para F . Alguém pode fazer melhor?