Quelles sont les méthodes les plus connues pour la convolution cyclique de longueur sur un petit champ, c'est-à-dire quand ? Je suis particulièrement intéressé par les champs de taille constante, ou même . Les déclarations et références générales sur l'efficacité asymptotique sont très appréciées.
Contexte: Soit un champ et . Nous pensons que les vecteurs ont des coordonnées indexées par . n > 0 u ∈ F n Z n
La convolution (cyclique) de longueur sur est la transformation prenant et produisant , définie par avec l'arithmétique d'index sur .F u , v ∈ F n u ∗ v ∈ F n ( u ∗ v ) i : = ∑ j ∈ Z n v j u i - j , Z n
Pour effectuer une convolution cyclique sur de grands champs, une méthode populaire consiste à utiliser le théorème de convolution pour réduire notre problème à l'exécution de transformées de Fourier discrètes (DFT) et à l'aide d'un algorithme FFT.
Pour les petits champs finis, la DFT n'est pas définie car il n'y a pas de racine primitive d'unité. On peut contourner cela en incorporant le problème dans un champ fini plus grand, mais il n'est pas clair que ce soit la meilleure façon de procéder. Même si nous prenons cette route, ce serait bien de savoir si quelqu'un a déjà travaillé sur les détails (par exemple, choisir quel champ plus grand utiliser et quel algorithme FFT appliquer).∗
Ajoutée:
En «intégrant» notre convolution dans, je veux dire l'une des deux choses. Première option: on pourrait passer à un champ d'extension dans lequel se rejoignent les racines primitives d'unité désirées, et y faire la convolution.
Deuxième option: si notre champ de départ est cyclique, on pourrait passer à un champ cyclique de plus grande caractéristique - suffisamment grand pour que si nous considérons nos vecteurs comme se trouvant dans , aucun "bouclage" ne se produit.
(Je suis informel, mais réfléchissez à la façon de calculer une convolution sur , nous pouvons clairement faire la même convolution sur , puis prendre les réponses mod 2.) F p ′ F 2 Z
A également ajouté:
De nombreux algorithmes pour la FFT et les problèmes associés fonctionnent particulièrement bien pour les «belles» valeurs de (et j'aimerais mieux comprendre la situation avec cela).
Mais si l'on n'essaie pas de tirer parti des valeurs spéciales de , le problème de convolution cyclique est fondamentalement équivalent (par des réductions faciles impliquant une explosion linéaire en ) à la convolution ordinaire; ceci équivaut à son tour à une multiplication de polynômes avec des coefficients surn F p .
Par cette équivalence, on peut utiliser des résultats dans, par exemple, cet article de von zur Gathen et Gerhard (s'appuyant sur les travaux de Cantor), qui utilisent une approche de champ d'extension pour obtenir une complexité de circuit liée à . Ils n'indiquent pas leurs limites d'une manière particulièrement claire OMI, mais la limite est pire que même pour . Peut-on faire mieux?n⋅log2nF2
la source
Réponses:
Un article récent d'Alexey Pospelov semble donner l'état de l'art. (Ce n'est pas le premier à atteindre les limites que je citerai, mais il les atteint de manière unifiée pour les champs arbitraires, et tout aussi important, il énonce clairement les limites, voir p. 3.)
on peut multiplier deux degrés - n polynômes sur un corps quelconque F en utilisant O ( n log n ) multiplications en F et O ( n log n log log n ) additions en F . Cela est à l'origine dû à Schonhage-Strassen (pour le caractère ≠ 2 ) et Schonhage pour le caractère. 2. Comme je l'ai mentionné, cela implique les mêmes limites pour la convolution cyclique. Pospelov déclare également: "Nous ne connaissons actuellement aucun algorithme avec une limite supérieure de [ce qui précède] qui n'est pas basé sur des applications DFT consécutives ..."∙ n F O ( n logn ) F O ( n logn journalJournaln ) F ≠ 2
Cantor et Kaltofen ont généralisé ces résultats, montrant que les limites sont valables pour les algèbres arbitraires (pas seulement les champs).∙
Si F prend en charge la transformée de Fourier discrète d'ordre approprié, c'est-à-dire si F a uneracineprimitive N d'unité où N est assez grand (je crois que N = O ( n ) suffit) et N est une puissance de 2 ou 3 , alors nous pouvons faire une multiplication polynomiale avec O ( n ) multiplications et O ( n log n ) additions. Diverses autres améliorations sont possibles pour les champs ayant d'autres propriétés spéciales.∙ F F N N N= O ( n ) N O ( n ) O ( n logn )
La thèse de Todd Mateer semble également être une excellente ressource pour comprendre la littérature FFT et ses applications à la multiplication polynomiale (merci Jug!); mais vous devez creuser davantage pour trouver ce que vous cherchez.
la source