Agrawala-Kayala-Saxene test

Agrawal-Kayal-Saxena-testen ( AKS-testen ) er den eneste aktuelt kendte universelle (dvs. gældende for alle tal) polynomiske , deterministiske og ubetingede (det vil sige ikke afhængige af ubeviste hypoteser) test af tallenes primalitet, baseret på en generalisering af Fermats lille sætning om polynomier.

Ordlyd

Hvis der eksisterer sådan, at og for nogen fra 1 til , så er enten et primtal eller en potens af et primtal.

Her og nedenfor , betegner eksponenten modulo ,  er den binære logaritme og  er Euler-funktionen [1] .

Sammenligning af to moduler af formularen

for polynomier betyder, at der eksisterer sådan, at alle koefficienter af polynomiet er multipla af , hvor  er ringen af ​​polynomier fra over heltal [1] .

Historie

AKS-testen blev foreslået af den indiske videnskabsmand Manindra Agrawal og hans to elever Niraj Kayal og Nitin Saxena fra Indian Institute of Technology Kanpur og blev først offentliggjort den 6. august , 2002 [2] . Før denne publikation var tilhørsforholdet mellem problemet med anerkendelse af primalitet til klassen P et åbent problem .

Beregningskompleksiteten af ​​den oprindelige algoritme estimeres til . Forudsat at Artins formodning er sand , forbedres køretiden til . Hvis man antager rigtigheden af ​​Sophie Germains hypotese , har tiden også en tendens til at [2] .

I 2005 udgav Lenstra og Pomerance en forbedret version af algoritmen med beregningsmæssig kompleksitet , hvor  er det tal, der skal kontrolleres af testen [3] [4] .

Ifølge Agrawals formodning er der en variant af algoritmen med runtime , men Lenstra og Pomerans præsenterede et heuristisk argument, der bekræfter falskheden af ​​denne hypotese [2] .

Denne algoritme er af stor teoretisk betydning, men bruges ikke i praksis, da dens beregningsmæssige kompleksitet er meget højere end den for de bedste probabilistiske algoritmer [5] . For deres opdagelse modtog forfatterne Gödel -prisen og Fulkerson-prisen i 2006 [6] .

Grundlæggende egenskaber

Algoritmens hovedegenskab er, at den på én gang er universel , polynomiel , deterministisk og ubetinget [5] , tidligere algoritmer havde maksimalt kun tre af disse fire egenskaber.

Testens universalitet betyder, at den kan bruges til at teste primaaliteten af ​​ethvert tal. Mange hurtige test er designet til at teste tal fra et begrænset sæt. For eksempel virker Lucas-Lehmer-testen kun for Mersenne-numre , mens Pepins test kun virker for Fermat-numre [6] .

Polynomium betyder, at den maksimale køretid for algoritmen er begrænset af et polynomium i antallet af cifre i det tal, der kontrolleres. Samtidig kan test som den elliptiske kurvetest (ECPP) og Adlemann-Pomerance-Rumeli-testen (APR) bevise eller modbevise et tals enkelthed, men det er ikke bevist, at køretiden vil være polynomium for ethvert inputnummer [6] .

Determinisme garanterer et unikt foruddefineret resultat. Probabilistiske test , såsom Miller-Rabin-testen og Bailey-Pomeranz-Selfridge-Wagstaff-testen , kan teste om et tal er primtal i polynomisk tid, men giver kun et sandsynlighedssvar [6] .

Ubetingelse er den egenskab, at rigtigheden af ​​en algoritme ikke afhænger af nogen ubeviste hypoteser. For eksempel har Miller-testen ikke denne egenskab , som selvom den er deterministisk og fungerer i polynomisk tid for et hvilket som helst inputtal, afhænger dens rigtighed af den ubeviste generaliserede Riemann-hypotese [6] .

Hovedidé

Hovedideen med algoritmen er en generalisering af Fermats lille sætning til polynomier, der siger, at for alle (hvor ringen tages uden invers ved multiplikation og nul-element) og ,  er enkel, hvis og kun hvis [2] [7] [8] :

 

 

 

 

en

Med andre ord, hvis , , og gcd , så er prime, hvis og kun hvis betingelse (1) er opfyldt .

Dette udtryk tager tid at teste, estimeret til , fordi i værste fald bør koefficienterne på venstre side evalueres. For at reducere antallet af koefficienter og kompleksiteten af ​​beregninger, blev det valgt at bruge udtrykket [2] som en test for enkelhed :

som opnås ved at dividere begge dele af det oprindelige udtryk med [7] .

Her er antallet af værdier, der skal kontrolleres, og værdien allerede begrænset af polynomiet fra [8] .

I dette tilfælde betragter vi i stedet for en kvotientring feltet , hvor  er en irreducerbar divisor over et endeligt felt , forskellig fra . Antallet af polynomier i dette felt, som sammenligning udføres for, er estimeret:

Algoritme og dens modifikation

Input: heltal .
  1. Hvis for heltal og , returner "sammensat" .
  2. Find den mindste sådan at .
  3. Hvis gcd er for nogle , returner "composite" .
  4. Hvis , returner "simpel" .
  5. Hvis for alle fra 1 til det er sandt, at , returnere "simpel" .
  6. Ellers returnerer "sammensat" .

Agrawal, Kayal og Saxena beviste, at algoritmen vil returnere et "primtal" , hvis og kun hvis  er et primtal.

Lenstra og Pomerance udgav en forbedret version af algoritmen [8] [4] :

Input: ,
  1. Hvis for og heltal , returner "composite" .
  2. Lad os finde den mindste sådan at .
  3. Hvis gcd er for nogen , returner "composite" .
  4. Hvis for alle fra 1 til det er sandt, at , returnere "simpel" .
  5. Ellers returnerer "sammensat" .

Her er funktionen  den samme, det  er et polynomium af grad større end , sådan at under nogle yderligere betingelser [1] [8] .

Den beregningsmæssige kompleksitet af denne algoritme er .

Begrundelse

Begrundelsen bruger en gruppe  - en gruppe af alle tal, der er modulo-rester for tal fra mængden [9] :

Denne undergruppe, lad os kalde den gruppen , indeholder allerede . Gruppen er genereret modulo , og siden da .

Den anden gruppe brugt i beviset, , er mængden af ​​alle polynomierester i (prime rum) modulo og . Denne gruppe er genereret af elementer i feltet og er en undergruppe af feltets multiplikative gruppe [9] .

De vigtigste mellemliggende lemmaer og definitioner brugt i begrundelsen af ​​algoritmen [2] :

Praktisk anvendelse

Når en parameter evalueres, kræver algoritmen 1.000.000.000 GB ( gigabyte ) hukommelse for tal på 1024 bit. For moderne operativsystemer er dette for meget information. Hvis man antager rigtigheden af ​​Artins hypotese og Sophie Germains hypotese om tætheden af ​​sættet af primtal, vil værdien af ​​parameteren estimeret til være tilstrækkelig for algoritmen . I dette tilfælde vil 1 GB hukommelse være nok. Men indtil rigtigheden af ​​disse hypoteser er bevist, anvendes algoritmen ikke på grund af den komplekse udførelse. Donald Knuth , som placerede algoritmen i andet bind af The Art of Programming (Vol. 3), bemærkede i privat korrespondance dens rent teoretiske karakter [6] .

Noter

  1. 1 2 3 Agafonova, 2009 .
  2. 1 2 3 4 5 6 Agrawal, Kayal, Saxena, 2004 .
  3. H. W. Lenstra Jr. og Carl Pomerance, " Primality Testing with Gaussian Periods Archived April 28, 2021 at the Wayback Machine ", foreløbig version 20. juli 2005.
  4. 1 2 H. W. Lenstra Jr. og Carl Pomerance, " Primality testing with Gaussian periods Archived 25 February 2012 at the Wayback Machine ", version af 12. april 2011.
  5. 1 2 Barash, 2005 .
  6. 1 2 3 4 5 6 Cao, Liu, 2014 .
  7. 12 Menon , 2007 , s. 10-11.
  8. 1 2 3 4 Salembier, Southerington, 2005 .
  9. 1 2 Agrawal, Kayal, Saxena, 2004 , s. 5.

Litteratur

på engelsk

Links