Szybki splot nad małymi skończonymi polami

17

Jakie są najbardziej znane metody cyklicznego splotu długości na małym polu, tj. Kiedy | F | « N ? Szczególnie interesują mnie pola o stałej wielkości, a nawet F = F 2 . Doceniane są ogólne stwierdzenia i referencje dotyczące skuteczności asymptotycznej.n|F|nF=F2

Tło: Niech będzie polem, a n > 0 . Uważamy, że wektory u F n mają współrzędne indeksowane przez Z n .Fn>0uFnZn

(Cyklicznego) splot o długości nad F jest transformacja przy u , v M n i wyprowadzania u * v f n , określone przez ( u * v ) ı : = Σ J Z n v j U ı - j , z arytmetyką indeksu ponad Z n .nFu,vFnuvFn

(uv)i:=jZnvjuij,
Zn

Aby przeprowadzić cykliczne splatanie na dużych polach, popularną metodą jest użycie twierdzenia o konwolucji, aby zredukować nasz problem do wykonywania dyskretnych transformacji Fouriera (DFT) i przy użyciu algorytmu FFT.

W przypadku małych pól skończonych DFT jest niezdefiniowany, ponieważ nie ma prymitywnego pierwiastka jedności. Można obejść ten problem poprzez osadzenie * problem w większym zakresie skończonej, ale nie jest jasne, że jest to najlepszy sposób, aby kontynuować. Nawet gdybyśmy wybrali tę trasę, dobrze byłoby wiedzieć, czy ktoś już opracował szczegóły (na przykład wybierając większe pole do zastosowania i który algorytm FFT zastosować).n

Dodany:

„Osadzając” nasz splot, mam na myśli jedną z dwóch rzeczy. Pierwsza opcja: można przejść do pola rozszerzenia, w którym sąsiadują pożądane prymitywne pierwiastki jedności, i dokonać tam splotu.

Druga opcja: jeśli nasze pole początkowe jest cykliczne, można przejść do pola cyklicznego o większej charakterystyce - wystarczająco dużej, że jeśli weźmiemy pod uwagę nasze wektory leżące w F p , nie występuje „zawinięcie”. (Jestem nieformalny, ale pomyślcie tylko, jak obliczyć splot nad F 2 , możemy oczywiście zrobić to samo splot nad Z , a następnie wziąć odpowiedzi mod 2.)FpFp
F2Z

Dodano również:

Wiele algorytmów dla FFT i powiązanych problemów działa szczególnie dobrze dla „ładnych” wartości (i chciałbym lepiej zrozumieć sytuację). n

Ale jeśli nie spróbuje się skorzystać ze specjalnych wartości , problem cyklicznego splotu jest w zasadzie równoważny (dzięki łatwym redukcjom obejmującym liniowe powiększenie w n ) do zwykłego splotu; To z kolei jest równa mnożenia wielomianów współczynnikach ponad F p . nnFp

Dzięki tej równoważności można wykorzystać wyniki np. W pracy von Zura Gathena i Gerharda (bazując na pracy Cantora), którzy stosują podejście pola rozszerzenia, aby uzyskać granicę złożoności obwodu . Nie podają swoich granic w szczególnie jasny sposób IMO, ale granica jest gorsza niż n log 2 n nawet dla F 2 . Czy można zrobić lepiej?O~p(n)nlog2nF2

Andy Drucker
źródło
2
Może znajdziesz coś przydatnego w pracy Todda Mateera .
jp.
1
Zadałem bardzo podobne pytanie na temat MathOverflow dotyczące obliczania DFT na dowolnych skończonych polach; możesz znaleźć odpowiednie odpowiedzi.
Bill Bradley,

Odpowiedzi:

8

Ostatni artykuł Aleksieja Pospelowa wydaje się przedstawiać najnowszy stan wiedzy. (Nie jest to pierwszy, który osiąga granice, które zacytuję, ale osiąga je w ujednolicony sposób dla dowolnych pól, i co równie ważne, wyraźnie określa granice, patrz str. 3.)

Możemy pomnożyć dwawielomiany stopnia n przez dowolne pole F, używając OnF mnożenia w F i O ( n log n log log n ) dodatków w F . Jest to pierwotnie spowodowane Schonhage-Strassen (dla char.2 ) i Schonhage dla char. 2. Jak wspomniałem, oznacza to takie same granice dla cyklicznego splotu. Pospelov stwierdza również: „Obecnie nie znamy żadnych algorytmów z górną granicą [powyższego], które nie są oparte na kolejnych aplikacjach DFT ...”O(nlogn)FO(nlognloglogn)F2

Jeśli F obsługuje dyskretną transformatę Fouriera odpowiedniej kolejności, to znaczy, jeśli F ma prymitywne NFFNNN=O(n)NO(n)O(nlogn)

Todd Mateer jest teza wydaje się również jak doskonałe źródło do zrozumienia literatury FFT oraz aplikacje do mnożenia wielomianu (dzięki Jug!); ale musisz kopać więcej, aby znaleźć to, czego szukasz.

Andy Drucker
źródło
1
Myślę, że masz rację co do Furera i De. De nie używa złożonej wersji FFT i wydaje się łatwiejszy technicznie, chociaż oba algorytmy są podobne koncepcyjnie.
vs
1
Jeśli obawiasz się czynników logarytmicznych, musisz zachować ostrożność przy modelowaniu maszyny. Ostatnie ulepszenie Furera dotyczy w szczególności maszyn Turinga. W przypadku modelu pamięci RAM o koszcie jednostkowym (nawet bez mnożenia, ale ze stałym wyszukiwaniem czasu) otrzymujesz czas O (n) na pomnożenie dwóch liczb bitów n i odpowiednio mniejszą złożoność czasu na pomnożenie przez F_2 itp. Przy użyciu pakowania bitów i klasycznych technik.
Raphael