Küçük sonlu cisimler üzerinde hızlı evrişim


17

Küçük bir alan üzerinde uzunluk döngüsel konvolüsyonu için en iyi bilinen yöntemler nelerdir , yani | F | « N ? Özellikle sabit boyutlu alanlarla, hatta F ile ilgileniyorumn|F|n. Genel asimtotik etkinlik ifadeleri ve referansları çok takdir edilmektedir.F=F2

Arka plan: bir alan olsun ve n > 0 olsun . Vektörleri düşünüyoruz u F nFn>0uFn endeksli koordinatlara sahip.Zn

(Siklik) konvolüsyon uzunluğunun fazla F dönüşümü alıyor u , v F , n ve çıkış u * v F , n , tarafından tanımlanan ( u * v ) I : = Σ j Z , n v j u ı - j , Z n üzerinde dizin aritmetiği ile .nFu,vFnuvFn

(uv)i:=jZnvjuij,
Zn

Geniş alanlar üzerinde döngüsel konveksiyon gerçekleştirmek için popüler bir yöntem, Ayrık Fourier Dönüşümleri (DFT) ve bir FFT algoritması kullanma sorunumuzu azaltmak için Konvolüsyon Teoremini kullanmaktır.

Küçük sonlu cisimler için, DFT tanımlanmamıştır, çünkü birliğin ilkel kökü yoktur . Bir gömerek bu sorunun üstesinden gelebilirsiniz * daha büyük bir sonlu alanda sorunu, ancak bu ilerlemek için en iyi yol olduğu açık değil. Bu yolu izlesek bile, birisinin ayrıntıları zaten çalışıp çalışmadığını bilmek güzel olurdu (örneğin, hangi geniş alanın kullanılacağını ve hangi FFT algoritmasının uygulanacağını seçme).n

Katma:

İki şeyden ben ortalama birinde bizim konvolüsyonunu 'gömme' By. İlk seçenek: arzulanan ilkel birlik köklerinin birleştirildiği bir uzatma alanına geçilebilir ve orada kıvrım yapılabilir.

İkinci seçenek: başlangıç ​​alanımız döngüsel ise, daha büyük karakteristik bir döngüsel alana geçebilir - vektörlerimizi F p lying ' da yalan olarak kabul edersek , hiçbir "sarma" oluşmaz. (Gayri resmi oluyorum, ama sadece F 2 üzerinde bir evrişim hesaplamak için , Z üzerinde aynı evrimi nasıl yapabileceğimizi düşünün.FpFp
F2Z ve sonra cevap 2'yi .)

Ayrıca eklendi:

FFT ve ilgili problemler için birçok algoritma özellikle 'güzel' değerler için iyi çalışır n (ve bu durumu daha iyi anlamak istiyorum).

Ancak, özel değerlerinden yararlanmaya çalışmazsa , döngüsel evrişim problemi temelde ( n'de doğrusal üflenmeyi içeren kolay indirimlerle ) sıradan evrişime eşdeğerdir ; bu da polinomların F p üzerinde katsayılarla çarpımına eşdeğerdirnnFp .

Bu eşdeğerlikle, örneğin, ˜ O p ( n ) 'ye bağlı bir devre karmaşıklığı elde etmek için bir uzatma alanı yaklaşımı kullanan von zur Gathen ve Gerhard'ın (Cantor'un çalışması üzerine inşa edilmiş) bu makalesinde sonuçlar kullanılabilir . Onlar IMO özellikle net biçimde sınırlarını devlet yok, ama sınır daha kötüdür n log 2 n için bile F 2 . Biri daha iyisini yapabilir mi?O~p(n)nlog2nF2


2
Belki Todd Mateer'in tezinde faydalı bir şeyler bulursunuz .
jp

1
MathOverflow ile DFT'yi rasgele sonlu alanlar üzerinden hesaplamak için çok benzer bir soru sordum ; cevapları alakalı bulabilirsiniz.
Bill Bradley

Yanıtlar:


8

Son zamanlarda makaleAlexey Pospelov'un , en son teknolojiyi veriyor gibi görünüyor. (Alıntı yapacağım sınırlara ulaşan ilk kişi değil, ancak onları keyfi alanlar için birleşik bir şekilde başarıyor ve aynı derecede önemli olarak, sınırları açıkça belirtiyor, bkz. S. 3.)

Biz olabilir çoklu iki degree- n rasgele bir alan üzerinde polinomları F kullanılarak O ( n log n ) içinde çarpma F ve O ( n, log n, log günlük n ) içinde eklenen F . Bu aslında Schonhage-Strassen (karakter2 için ) ve char için Schonhage'den kaynaklanmaktadır. 2. Bahsettiğim gibi, bu döngüsel evrişim için aynı sınırları ifade eder. Pospelov ayrıca, "Üst üste [yukarıda] üst üste gelen ve ardışık DFT uygulamalarına dayanmayan algoritmaların farkında değiliz ..."nFO(nlogn)FO(nlognloglogn)F2

Cantor ve Kaltofen sınırları keyfi cebirlerin (sadece alanları) için tutun gösteren bu sonuçlar genel.

ise F Ayrık Fourier ise, uygun olması amacıyla, bir Transform destekler F ilkel sahip N birlik inci kök K yeterince büyük (I inanıyoruz , N = O ( n ) yeterli) ve N , 2 veya 3 değerinde bir gücü sonra O ( n ) çarpmaları ve O ( n log n ) ilaveleriile polinom çarpımı yapabiliriz. Diğer özel özelliklere sahip alanlar için çeşitli başka iyileştirmeler mümkündür.FFNNN=O(n)NO(n)O(nlogn)

Todd Mateer'in tezi de FFT literatürünü ve polinom çoğalmasına yönelik uygulamaları anlamak için mükemmel bir kaynak gibi görünüyor (teşekkürler Jug!); ama aradığınızı bulmak için daha fazla kazmanız gerekiyor.


1
Bence Furer ve De'de haklısın. De, FFT'nin karmaşık sürümünü kullanmaz ve her iki algoritma da kavramsal olarak benzer olsa da teknik olarak daha kolay görünüyor.
vs

1
Günlük faktörleri konusunda endişeleriniz varsa, makine modeli konusunda dikkatli olmanız gerekir. Furer'in son gelişimi özellikle Turing makineleri içindir. Bir birim maliyetli RAM modeli için (çarpma olmadan, ancak sabit zaman aramasıyla bile), iki n bit sayısını çarpmak için O (n) zamanı ve bit paketleme ve klasik teknikler kullanarak F_2 vb.
Raphael
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.