Szybka odpowiedź: nigdy, ze względów praktycznych. Obecnie nie ma praktycznego zastosowania.
Najpierw oddzielmy „praktyczne” testowanie złożoności od dowodów pierwotności. Ten pierwszy jest wystarczający do prawie wszystkich celów, chociaż istnieją różne poziomy testów, które ludzie uważają za odpowiednie. W przypadku liczb poniżej 2 ^ 64 nie więcej niż 7 testów Millera-Rabina lub jeden test BPSW jest wymagany dla odpowiedzi deterministycznej. Będzie to znacznie szybsze niż AKS i tak samo poprawne we wszystkich przypadkach. Dla liczb powyżej 2 ^ 64, BPSW jest dobrym wyborem, z kilkoma dodatkowymi losowymi testami Millera-Rabina, dodającymi pewnej pewności przy bardzo niskich kosztach. Prawie wszystkie metody sprawdzania zaczną (lub powinny) od takiego testu, ponieważ jest tani i oznacza, że wykonujemy ciężką pracę tylko na liczbach, które prawie na pewno są liczbą pierwszą.
Przechodząc do dowodów. W każdym przypadku wynikowy dowód nie wymaga żadnych przypuszczeń, więc można je funkcjonalnie porównać. „Gotcha” APR-CL polega na tym, że nie jest ona dość wielomianowa, a „gotcha” ECPP / fastECPP polega na tym, że mogą istnieć liczby, które zajmują więcej niż oczekiwano.
Na wykresie widzimy dwie implementacje AKS typu open source - pierwsza pochodzi z wersji v6, druga zawiera ulepszenia Bernsteina i Volocha oraz miłą heurystykę r / s z Bornemann. Wykorzystują one binarną segmentację w GMP dla mnożników wielomianowych, więc są dość wydajne, a użycie pamięci nie jest problemem dla rozważanych tutaj rozmiarów. Tworzą ładne proste linie o nachyleniu ~ 6,4 na wykresie log-log, co jest świetne. Ale ekstrapolacja do 1000 cyfr dociera w przybliżonym czasie w setkach tysięcy do milionów lat, w porównaniu do kilku minut dla APR-CL i ECPP. Istnieją dalsze optymalizacje, które można wykonać na podstawie pracy Bernsteina z 2002 r., Ale nie sądzę, aby to istotnie zmieniło sytuację (choć dopóki nie zostanie to wdrożone, nie zostanie to udowodnione).
Ostatecznie AKS pokonuje podział próbny. Metoda twierdzenia BLS75 5 (np. Dowód n-1) wymaga częściowego faktorowania n-1. Działa to świetnie w małych rozmiarach, a także, gdy mamy szczęście i n-1 jest łatwe do uwzględnienia, ale w końcu utkniemy, gdy musimy wziąć pod uwagę dużą półpierwszą. Istnieją bardziej wydajne implementacje, ale tak naprawdę nie skaluje się do 100 cyfr niezależnie. Widzimy, że AKS przejdzie tę metodę. Więc jeśli zadałeś to pytanie w 1975 r. (I miałeś wtedy algorytm AKS), moglibyśmy obliczyć zwrotnicę, dla której AKS był najbardziej praktycznym algorytmem. Ale pod koniec lat 80. APR-CL i inne metody cyklotomiczne były poprawnym porównaniem, a do połowy lat 90. musielibyśmy uwzględnić ECPP.
Metody APR-CL i ECPP są implementacjami typu open source. Primo (darmowy, ale nie open source ECPP) będzie szybszy dla większych cyfr i jestem pewien, że ma ładniejszą krzywą (nie przeprowadziłem jeszcze nowego testu porównawczego). APR-CL nie jest wielomianem, ale wykładnik ma współczynnik który jak ktoś żartuje „idzie w nieskończoność, ale nigdy nie zaobserwowano tego”. To prowadzi nas do przekonania, że teoretycznie linie nie przecinałyby się dla żadnej wartości n, w której AKS skończyłoby się przed wypaleniem naszego słońca. ECPP jest algorytmem Las Vegas, w którym, gdy otrzymamy odpowiedź, jest w 100% poprawna, oczekujemy wyniku w domniemanym (ECPP) lublogloglognO ( log5 + ϵ( n ) )O ( log4 + ϵ( n ) )(„fastECPP”), ale mogą istnieć liczby, które zajmują więcej czasu. Oczekujemy więc, że standardowy AKS będzie zawsze wolniejszy niż ECPP dla prawie wszystkich liczb (z pewnością się tak wykazał dla liczb do 25 000 cyfr).
AKS może mieć więcej ulepszeń czekających na odkrycie, co czyni go praktycznym. Artykuł Bernsteina Quartic omawia oparty na AKS losowy algorytm , a artykuł Morain fastECPP odwołuje się do innych niedeterministycznych metod opartych na AKS. Jest to fundamentalna zmiana, ale pokazuje, w jaki sposób AKS otworzył nowe obszary badań. Jednak prawie 10 lat później nie widziałem, aby ktokolwiek używał tej metody (ani nawet jakichkolwiek implementacji). We wstępie pisze: „Czy czas dla nowego algorytmu jest mniejszy niż czas do znalezienia eliptycznego- certyfikaty krzywej? Moje obecne wrażenie jest takie, że odpowiedź brzmi „nie”, ale dalsze wyniki [...] mogą zmienić odpowiedź. ”O ( log4 + ϵ( n ) )(lgn)4+o(1)(lgn)4+o(1)
Niektóre z tych algorytmów można łatwo zrównoleglać lub rozpowszechnić. AKS bardzo łatwo (każdy test jest niezależny). ECPP nie jest zbyt trudne. Nie jestem pewien co do APR-CL.
Metody ECPP i BLS75 tworzą certyfikaty, które można niezależnie i szybko zweryfikować. Jest to ogromna zaleta w stosunku do AKS i APR-CL, gdzie musimy tylko zaufać implementacji i komputerowi, który ją wyprodukował.
openssl pkeyparam -text
do wyodrębnienia ciągu szesnastkowego) przy użyciu PARIisprime
(APR-CL jak podano): około 80 lat na szybkim notebooku. Dla porównania, Chromium potrzebuje nieco ponad 0,25 s na każdą iterację mojej wersji demonstracyjnej JavaScript testu Frobenius (który jest znacznie silniejszy niż MR), więc APR-CL jest z pewnością paranoikiem, ale wykonalnym.jest to skomplikowane pytanie ze względu na tak zwane „duże / stałe galaktyczne” związane z odmiennością wydajności różnych algorytmów. innymi słowy, związane z każdym innym algorytmem może ukryć bardzo duże stałe, tak że bardziej wydajny stosunku do innego oparty tylko na złożoności asymptotycznej / funkcyjnej ” kopie w ”dla bardzo dużego . rozumiem, że AKS jest „bardziej wydajny” (niż konkurencyjne algorytmy) tylko dla „znacznie większego ” poza zakresem obecnego praktycznego zastosowania (i że precyzyjneO ( f ( n ) ) O ( g ( n ) ) n n nO(f(n)) O(f(n)) O(g(n)) n n n jest bardzo trudny do dokładnego obliczenia), ale teoretyczne ulepszenia implementacji algorytmu (aktywnie poszukiwane przez niektórych) mogą to zmienić w przyszłości.
widziałem ten ostatni artykuł na temat arxivu, który analizuje ten temat dogłębnie / szczegółowo, nie jestem pewien, co ludzie o nim myślą, nie słyszeli do tej pory reakcji, wydaje się być może tezą stworzoną przez studentów, ale być może jedną z najbardziej szczegółowych / kompleksowych analiz praktyczne wykorzystanie dostępnego algorytmu.
Deterministyczne testowanie pierwotności - rozumienie algorytmu AKS Vijay Menon
Potężne algorytmy zbyt złożone, aby wdrożyć tcs.se
źródło