Convolution rapide sur de petits champs finis


17

Quelles sont les méthodes les plus connues pour la convolution cyclique de longueur n sur un petit champ, c'est-à-dire quand |F|n ? 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.F=F2

Contexte: Soit un champ et . Nous pensons que les vecteurs ont des coordonnées indexées par . n > 0 u F n Z nFn>0uFnZn

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 nnFu,vFnuvFn

(uv)je: =jZnvjuje-j,
Zn

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).n

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 ZFpFp
F2Z

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). n

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 pnnFp .

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?nlog2nF2O~p(n)nJournal2nF2


2
Peut-être trouvez-vous quelque chose d'utile dans la thèse de Todd Mateer .
jp

1
J'ai posé une question très similaire sur MathOverflow pour calculer la DFT sur des champs finis arbitraires; vous pourriez trouver les réponses pertinentes.
Bill Bradley

Réponses:


8

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ère2 ) 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 ..."nFO(nlogn)FO(nlognloglogn)F2

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.FFNNN=O(n)NO(n)O(nlogn)

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.


1
Je pense que vous avez raison sur Furer et De. De n'utilise pas de version complexe de FFT et semble être plus facile techniquement bien que les deux algorithmes soient conceptuellement similaires.
vs

1
Si vous êtes préoccupé par les facteurs de journal, vous devez faire attention au modèle de machine. L'amélioration récente de Furer concerne spécifiquement les machines Turing. Pour un modèle de RAM à coût unitaire (même sans multiplication mais avec une recherche à temps constant), vous obtenez un temps O (n) pour multiplier deux nombres de n bits et des complexités de temps correspondantes plus faibles pour la multiplication sur F_2, etc. en utilisant le compactage de bits et les techniques classiques.
Raphael
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.