Konvolusi cepat pada bidang terbatas yang kecil

17

Apa metode yang paling dikenal untuk konvolusi siklik dengan panjang atas bidang kecil, yaitu ketika | F | n ? Saya sangat tertarik pada bidang berukuran konstan, atau bahkan F = F 2 . Pernyataan dan referensi efisiensi asimptotik umum sangat dihargai.n|F|nF=F2

Latar Belakang: Biarkan menjadi bidang, dan n > 0 . Kami menganggap vektor u F n memiliki koordinat yang diindeks oleh Z n .Fn>0uFnZn

The (siklik) konvolusi panjang lebih F adalah transformasi mengambil u , v F n dan keluaran u * v F n , didefinisikan oleh ( u * v ) i : = Σ j Z n v j u i - j , dengan indeks hitung lebih dari Z n .nFu,vFnuvFn

(uv)i:=jZnvjuij,
Zn

Untuk melakukan konvolusi siklik pada bidang besar, metode yang populer adalah dengan menggunakan Teorema Konvolusi untuk mengurangi masalah kita dalam melakukan Discrete Fourier Transforms (DFTs), dan menggunakan algoritma FFT.

Untuk bidang terbatas kecil, DFT tidak terdefinisi karena tidak ada akar persatuan ke- primitif . Seseorang dapat mengatasi ini dengan menanamkan masalah dalam bidang terbatas yang lebih besar, tetapi tidak jelas bahwa ini adalah cara terbaik untuk melanjutkan. Bahkan jika kita mengambil rute ini, akan lebih baik untuk mengetahui apakah seseorang telah mengerjakan perinciannya (misalnya, memilih bidang mana yang lebih besar untuk digunakan dan algoritma FFT mana yang akan diterapkan).n

Ditambahkan:

Dengan 'menanamkan' lilitan kami ke dalam, maksud saya satu dari dua hal. Opsi pertama: seseorang dapat beralih ke bidang ekstensi di mana akar persatuan primitif yang diinginkan disatukan, dan melakukan konvolusi di sana.

Pilihan kedua: jika bidang kita mulai adalah siklik, salah satu bisa lolos ke medan siklik dari karakteristik yang lebih besar - cukup besar bahwa jika kita mempertimbangkan vektor kita sebagai berbaring di F p ' , tidak ada "sampul" terjadi. (Saya menjadi informal, tetapi hanya berpikir tentang bagaimana, untuk menghitung konvolusi atas F 2 , kita dapat dengan jelas melakukan konvolusi yang sama pada Z , dan kemudian mengambil jawaban mod 2.)FpFp
F2Z

Juga ditambahkan:

Banyak algoritma untuk FFT dan masalah terkait bekerja dengan baik untuk nilai 'bagus' dari (dan saya ingin memahami situasi dengan ini lebih baik). n

Tetapi jika seseorang tidak berusaha untuk mengambil keuntungan dari nilai-nilai khusus , masalah konvolusi siklik pada dasarnya setara (dengan pengurangan mudah yang melibatkan linear blow-up di n ) ke konvolusi biasa; ini pada gilirannya setara dengan perkalian polinomial dengan koefisien lebih F p . nnFp

Dengan kesetaraan ini, satu dapat menggunakan hasil dalam, misalnya, makalah ini dari von zur Gathen dan Gerhard (membangun karya penyanyi), yang menggunakan pendekatan ekstensi-lapangan untuk mendapatkan kompleksitas sirkuit terikat . Mereka tidak menyatakan batas mereka dengan cara IMO yang sangat jelas, tetapi batasnya lebih buruk daripada n log 2 n bahkan untuk F 2 . Bisakah seseorang berbuat lebih baik?O~p(n)nlog2nF2

Andy Drucker
sumber
2
Mungkin Anda menemukan sesuatu yang berguna dalam tesis Todd Mateer .
jp
1
Saya mengajukan pertanyaan yang sangat mirip pada MathOverflow untuk menghitung DFT melalui bidang terbatas yang sewenang-wenang; Anda mungkin menemukan jawaban yang relevan.
Bill Bradley

Jawaban:

8

Sebuah makalah baru-baru ini oleh Alexey Pospelov muncul untuk memberikan keadaan seni. (Ini bukan yang pertama untuk mencapai batas yang akan saya kutip, tetapi mencapai mereka dengan cara yang seragam untuk bidang yang sewenang-wenang, dan yang sama pentingnya, itu menyatakan batas dengan jelas, lihat hal. 3.)

Kita bisa kalikan dua degree- n polinomial lebih medan yang sewenang-wenang F menggunakan O ( n log n ) perkalian di F dan O ( n log n log log n ) penambahan di F . Ini pada awalnya disebabkan oleh Schonhage-Strassen (untuk char.2 ) dan Schonhage untuk char. 2. Seperti yang saya sebutkan, ini menyiratkan batas yang sama untuk konvolusi siklik. Pospelov juga menyatakan, "Kami saat ini tidak mengetahui adanya algoritma dengan batas atas [di atas] yang tidak didasarkan pada aplikasi DFT berturut-turut ..."nFHAI(ncatatann)FHAI(ncatatanncatatancatatann)F2

FFNNN=HAI(n)NHAI(n)HAI(ncatatann)

Todd Mateer ini tesis juga tampaknya seperti sumber yang bagus untuk memahami literatur FFT dan aplikasi untuk perkalian polinomial (terima kasih Jug!); tetapi Anda harus menggali lebih banyak untuk menemukan apa yang Anda cari.

Andy Drucker
sumber
1
Saya pikir Anda benar tentang Furer dan De. De tidak menggunakan versi kompleks FFT dan tampaknya lebih mudah secara teknis meskipun kedua algoritma tersebut secara konseptual serupa.
vs
1
Jika Anda khawatir tentang faktor log, Anda harus berhati-hati dengan model mesin. Peningkatan Furer baru-baru ini khusus untuk mesin Turing. Untuk model RAM unit cost (bahkan tanpa multiplikasi tetapi dengan pencarian waktu konstan) Anda mendapatkan O (n) waktu untuk mengalikan dua n bit dan juga kompleksitas waktu yang lebih rendah untuk perkalian lebih dari F_2 dll. Menggunakan pengemasan bit dan teknik klasik.
Raphael