Agrawala-Kayala-Saxene test

Agrawal-Kayal-Saxena-testet ( AKS-testet ) är det enda för närvarande kända universella (det vill säga tillämpligt på alla tal) polynom , deterministiskt och ovillkorligt (det vill säga inte beroende av obevisade hypoteser) test av talens primatitet, baserat på en generalisering av Fermats lilla sats om polynom.

Formulering

Om det finns ett sådant och för någon från 1 till , är det antingen ett primtal eller en potens av ett primtal.

Här och nedan , betecknar exponenten modulo ,  är den binära logaritmen och  är Euler-funktionen [1] .

Jämförelse med två moduler av formuläret

för polynom betyder att det finns så att alla koefficienter av polynomet är multipler av , där  är ringen av polynom från över heltal [1] .

Historik

AKS-testet föreslogs av den indiska forskaren Manindra Agrawal och hans två elever Niraj Kayal och Nitin Saxena från Indian Institute of Technology Kanpur och publicerades först den 6 augusti , 2002 [2] . Före denna publikation var det ett öppet problem att problemet med erkännande av primäritet tillhörde klassen P.

Beräkningskomplexiteten för den ursprungliga algoritmen uppskattas till . Förutsatt att Artins gissningar är sanna förbättras körtiden till . Om man antar att Sophie Germains hypotes är korrekt , tenderar tiden också att [2] .

2005 publicerade Lenstra och Pomerance en förbättrad version av algoritmen med beräkningskomplexitet , där  är numret som ska kontrolleras av testet [3] [4] .

Enligt Agrawals gissning finns det en variant av algoritmen med runtime , men Lenstra och Pomerans presenterade ett heuristiskt argument som bekräftar falskheten i denna hypotes [2] .

Denna algoritm är av stor teoretisk betydelse, men används inte i praktiken, eftersom dess beräkningskomplexitet är mycket högre än den för de bästa probabilistiska algoritmerna [5] . För sin upptäckt fick författarna Gödelpriset och Fulkersonpriset 2006 [ 6] .

Grundläggande egenskaper

Algoritmens huvudsakliga egenskap är att den samtidigt är universell , polynomisk , deterministisk och ovillkorlig [5] , tidigare algoritmer hade maximalt endast tre av dessa fyra egenskaper.

Testets universalitet innebär att det kan användas för att testa primaaliteten av vilket nummer som helst. Många snabba tester är utformade för att testa siffror från en begränsad uppsättning. Till exempel fungerar Lucas-Lehmer-testet bara för Mersenne-nummer , medan Pepins test bara fungerar för Fermat-nummer [6] .

Polynom betyder att den maximala körtiden för algoritmen begränsas av ett polynom i antalet siffror i numret som kontrolleras. Samtidigt kan tester som det elliptiska kurvtestet (ECPP) och Adlemann-Pomerance-Rumeli-testet (APR) bevisa eller motbevisa enkelheten hos ett tal, men de har inte bevisats att körtiden kommer att vara polynom för valfritt inmatat nummer [6] .

Determinism garanterar ett unikt fördefinierat resultat. Probabilistiska tester , som Miller-Rabin-testet och Bailey-Pomeranz-Selfridge-Wagstaff-testet , kan testa om ett tal är primtal i polynomtid, men ger bara ett probabilistiskt svar [6] .

Ovillkorlighet är egenskapen att riktigheten av en algoritm inte beror på några obevisade hypoteser. Till exempel har Miller-testet inte den här egenskapen , som även om den är deterministisk och fungerar i polynomtid för alla inmatade tal, beror dess korrekthet på den obevisade generaliserade Riemann-hypotesen [6] .

Huvudidé

Huvudidén med algoritmen är en generalisering av Fermats lilla sats till polynom, som säger att för alla (där ringen tas utan inverser av multiplikation och nollelement) och ,  är enkel om och bara om [2] [7] [8] :

 

 

 

 

ett

Med andra ord, if , , och gcd , då är prime om och endast om villkor (1) är uppfyllt .

Detta uttryck tar tid att testa, uppskattat till , eftersom i värsta fall bör koefficienterna på vänster sida utvärderas. För att minska antalet koefficienter och komplexiteten i beräkningar valdes det att använda uttrycket [2] som ett test för enkelheten :

som erhålls genom att dividera båda delarna av det ursprungliga uttrycket med [7] .

Här är antalet värden som ska kontrolleras och värdet redan begränsat av polynomet från [8] .

I det här fallet, istället för en kvotring , betraktar vi fältet , där  är en irreducibel divisor över ett ändligt fält , annorlunda än . Antalet polynom i detta fält som jämförelse utförs för uppskattas:

Algoritm och dess modifiering

Inmatning: heltal .
  1. Om för heltal och , returnera "composite" .
  2. Hitta den minsta så att .
  3. Om gcd är för vissa , returnera "composite" .
  4. Om , returnera "enkel" .
  5. Om för alla från 1 till det är sant att , returnera "enkel" .
  6. Annars returnerar du "komposit" .

Agrawal, Kayal och Saxena bevisade att algoritmen kommer att returnera ett "primtal" om och bara om  är ett primtal.

Lenstra och Pomerance publicerade en förbättrad version av algoritmen [8] [4] :

Inmatning: ,
  1. Om för och heltal , returnera "composite" .
  2. Låt oss hitta den minsta sådan att .
  3. Om gcd är för någon , returnera "composite" .
  4. Om för alla från 1 till det är sant att , returnera "enkel" .
  5. Annars returnerar du "komposit" .

Här är funktionen  densamma, det  är ett polynom av grad större än , så att under vissa ytterligare villkor [1] [8] .

Beräkningskomplexiteten för denna algoritm är .

Motivering

Motiveringen använder en grupp  — en grupp av alla tal som är modulo-rester för tal från mängden [9] :

Den här undergruppen, låt oss kalla den gruppen , innehåller redan . Gruppen genereras modulo , och sedan dess .

Den andra gruppen som används i beviset, , är mängden av alla polynomrester i (primtal) modulo och . Denna grupp genereras av element i fältet och är en undergrupp till fältets multiplikativa grupp [9] .

De viktigaste mellanliggande lemman och definitioner som används i motiveringen av algoritmen [2] :

Praktisk tillämpning

Vid utvärdering av en parameter kräver algoritmen 1 000 000 000 GB ( gigabyte ) minne för antal på 1 024 bitar. För moderna operativsystem är detta för mycket information. Om man antar att Artins hypotes och Sophie Germains hypotes om tätheten av uppsättningen av primtal är korrekt, kommer värdet på parametern uppskattad till att vara tillräckligt för algoritmen . I det här fallet räcker det med 1 GB minne. Men tills riktigheten av dessa hypoteser är bevisad, tillämpas inte algoritmen på grund av den komplexa exekveringen. Donald Knuth , som placerade algoritmen i andra volymen av The Art of Programming (Vol. 3), noterade i privat korrespondens dess rent teoretiska karaktär [6] .

Anteckningar

  1. 1 2 3 Agafonova, 2009 .
  2. 1 2 3 4 5 6 Agrawal, Kayal, Saxena, 2004 .
  3. H. W. Lenstra Jr. och Carl Pomerance, " Primality Testing with Gaussian Periods Archived April 28, 2021 at the Wayback Machine ", preliminär version 20 juli 2005.
  4. 1 2 H. W. Lenstra Jr. och Carl Pomerance, " Primality testing with Gaussian periods Archived 25 February 2012 at the Wayback Machine ", version av 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 , sid. 5.

Litteratur

på engelska

Länkar