Schnelle Faltung über kleine endliche Felder


17

Was sind die bekanntesten Methoden für die zyklische Faltung der Länge n über ein kleines Feld, dh wenn |F|n ? Ich interessiere mich besonders für Felder mit konstanter Größe oder sogar F=F2 . Allgemeine Aussagen und Referenzen zur asymptotischen Effizienz werden sehr geschätzt.

Hintergrund: Sei F ein Feld und n>0 . Wir denken an Vektoren uFn mit durch indizierten Koordinaten Zn.

Die (zyklische) Faltung der Länge über F ist die Transformation, die u , v F n nimmt und u v F n ausgibt , definiert durch mit über .nFu,vFnuvFnZ n

(uv)i:=jZnvjuij,
Zn

Um eine zyklische Faltung über große Felder durchzuführen, besteht eine beliebte Methode darin, den Faltungssatz zu verwenden, um unser Problem auf die Durchführung diskreter Fouriertransformationen (DFTs) und die Verwendung eines FFT-Algorithmus zu reduzieren.

Für kleine endliche Felder ist die DFT undefiniert, weil es keine primitive te Einheitswurzel gibt. Man kann dies durch die Einbettung zu umgehen * das Problem in einem größeren endlichen Körper, aber es ist nicht klar , dass dies der beste Weg ist , um fortzufahren. Selbst wenn wir diesen Weg einschlagen, wäre es schön zu wissen, ob jemand die Details bereits ausgearbeitet hat (zum Beispiel, welches größere Feld verwendet und welcher FFT-Algorithmus angewendet werden soll).n

Hinzugefügt:

Mit "Einbetten" unserer Faltung meine ich eines von zwei Dingen. Erste Option: Man könnte zu einem Erweiterungsfeld übergehen, in dem sich die gewünschten primitiven Wurzeln der Einheit anschließen, und dort die Faltung durchführen.

Zweite Option: Wenn unser Startfeld zyklisch ist, könnte man zu einem zyklischen Feld größerer Charakteristik übergehen - groß genug, wenn wir unsere Vektoren als in liegend betrachten. tritt kein "Wraparound" auf. (Ich bin informell, aber denke nur darüber nach, wie wir, um eine Faltung über zu berechnen , dieselbe Faltung über , und nehme dann die Antworten Mod 2.) F p ' F 2 ZFpFp
F2Z

Auch hinzugefügt:

Viele Algorithmen für FFT und verwandte Probleme funktionieren besonders gut für 'nette' Werte von (und ich möchte die Situation damit besser verstehen). n

Wenn man aber nicht versucht, spezielle Werte von auszunutzen , ist das Problem der zyklischen Faltung im Grunde genommen (durch einfache Verkleinerung mit linearer Aufblähung in ) gleichbedeutend mit der normalen Faltung; Dies entspricht wiederum der Multiplikation von Polynomen mit Koeffizienten über . n F pnnFp

Durch diese Äquivalenz kann man Ergebnisse zB in dieser Arbeit von zur Gathen und Gerhard (basierend auf Cantor) verwenden, die einen Extension-Field-Ansatz verwenden, um eine Schaltungskomplexität zu erhalten, die von . Sie geben ihre Grenzen nicht besonders deutlich an, IMO, aber die Grenze ist schlimmer als selbst für . Kann man es besser machen?nlog2nF2O~p(n)nlog2nF2


2
Vielleicht finden Sie etwas Nützliches in der These von Todd Mateer .
jp

1
Ich habe eine sehr ähnliche Frage zu MathOverflow gestellt, um die DFT über beliebige endliche Felder zu berechnen. Möglicherweise finden Sie die Antworten relevant.
Bill Bradley

Antworten:


8

Ein kürzlich veröffentlichter Artikel von Alexey Pospelov scheint den neuesten Stand der Technik zu vermitteln. (Es ist nicht der erste, der die Grenzen erreicht, die ich zitiere, aber es erreicht sie auf einheitliche Weise für beliebige Felder, und ebenso wichtig ist, dass es die Grenzen klar angibt, siehe S. 3.)

Wir können zwei Multiplizier Grad- n Polynome über einen beliebigen Bereich F unter Verwendung von O ( n log n ) Multiplikationen in F und O ( n log n log log n ) Additionen in F . Dies liegt ursprünglich an Schönhage-Strassen (für char.2 ) und Schönhage für char. 2. Wie ich bereits erwähnte, impliziert dies die gleichen Grenzen für die zyklische Faltung. Pospelov erklärt außerdem: "Derzeit sind uns keine Algorithmen mit einer Obergrenze von [den oben genannten] bekannt, die nicht auf aufeinanderfolgenden DFT-Anwendungen basieren ..."nFO(nlogn)FO(nlognloglogn)F2

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

Todd Mateers These scheint auch eine hervorragende Quelle zu sein, um die FFT-Literatur und Anwendungen für die Polynom-Multiplikation zu verstehen (danke Jug!). Aber Sie müssen mehr graben, um das zu finden, wonach Sie suchen.


1
Ich denke, du hast recht mit Furer und De. De verwendet keine komplexe Version von FFT und scheint technisch einfacher zu sein, obwohl beide Algorithmen konzeptionell ähnlich sind.
vs

1
Wenn Sie sich Sorgen über Protokollfaktoren machen, müssen Sie das Maschinenmodell berücksichtigen. Die jüngste Verbesserung von Furer betrifft speziell Turing-Maschinen. Für ein Stückkosten-RAM-Modell (auch ohne Multiplikation, aber mit konstanter Zeitsuche) erhalten Sie O (n) Zeit für die Multiplikation von zwei n Bit-Zahlen und entsprechend geringere Zeitkomplexitäten für die Multiplikation über F_2 usw. unter Verwendung von Bit-Packing und klassischen Techniken.
Raphael
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.