Quali sono i metodi più noti per la convoluzione ciclica della lunghezza su un piccolo campo, cioè quando ? Sono particolarmente interessato ai campi di dimensioni costanti, o anche . Dichiarazioni e riferimenti generali sull'efficienza asintotica sono molto apprezzati.
Sfondo: Sia un campo e . Pensiamo ai vettori come coordinate indicizzate da .
La convoluzione (ciclica) della lunghezza sopra è la trasformazione che prende e produce , definita da con indice aritmetico su Z n .
Per eseguire la convoluzione ciclica su campi di grandi dimensioni, un metodo popolare è utilizzare il teorema di convoluzione per ridurre il nostro problema eseguendo trasformazioni discrete di Fourier (DFT) e usando un algoritmo FFT.
Per i piccoli campi finiti, il DFT è indefinito perché non c'è primitiva radice -esimo di unità. Si può aggirare questo problema incorporando ∗ il problema in un campo finito più ampio, ma non è chiaro che questo sia il modo migliore per procedere. Anche se prendiamo questa strada, sarebbe bello sapere se qualcuno ha già elaborato i dettagli (ad esempio, scegliendo quale campo più grande usare e quale algoritmo FFT applicare).
Inserito il:
"Incorporando" la nostra convoluzione, intendo una delle due cose. Prima opzione: si potrebbe passare a un campo di estensione in cui le radici primitive desiderate dell'unità sono adiacenti, e fare lì la convoluzione.
Seconda opzione: se il nostro campo iniziale è ciclico, si potrebbe passare a un campo ciclico di caratteristica più ampia - abbastanza grande che se consideriamo i nostri vettori come situati in F p ′ , non si verifica alcun "avvolgimento".
(Sono informale, ma pensa solo a come, per calcolare una convoluzione su F 2 , possiamo chiaramente fare semplicemente la stessa convoluzione su Z , e quindi prendere le risposte mod 2.)
Aggiunto anche:
Molti algoritmi per FFT e problemi correlati funzionano particolarmente bene per i valori "carini" di (e vorrei capire meglio la situazione).
Ma se non si tenta di sfruttare i valori speciali di , il problema della convoluzione ciclica è sostanzialmente equivalente (mediante facili riduzioni che coinvolgono l'esplosione lineare in n ) alla convoluzione ordinaria; questo a sua volta equivale alla moltiplicazione dei polinomi con coefficienti superiori a F p .
Per questa equivalenza, si possono usare i risultati, ad esempio, in questo documento di von zur Gathen e Gerhard (basato sul lavoro di Cantor), che usano un approccio di estensione del campo per ottenere un limite di complessità del circuito di . Non indicano i loro limiti in modo particolarmente chiaro IMO, ma il limite è peggiore di n ⋅ log 2 n anche per F 2 . Si può fare di meglio?