Agravala-Kayala-Saxene test

Test Agrawal-Kayal-Saxena ( AKS test ) je jediným v současnosti známým univerzálním (tj. aplikovatelným na všechna čísla) polynomiálním , deterministickým a nepodmíněným (tj. nezávislým na neprokázaných hypotézách) testem primality čísel, založeným na zobecnění Fermatovy malé věty o polynomech.

Formulace

Pokud existuje takové, že a pro libovolné od 1 do , pak je buď prvočíslo, nebo mocnina prvočísla.

Zde a níže , označuje exponent modulo ,  je binární logaritmus a  je Eulerova funkce [1] .

Porovnání pomocí dvou modulů formuláře

pro polynomy znamená, že existuje takové, že všechny koeficienty polynomu jsou násobky , kde  je kruh polynomů z více než celých čísel [1] .

Historie

Test AKS navrhl indický vědec Manindra Agrawal a jeho dva studenti Niraj Kayal a Nitin Saxena z Indian Institute of Technology Kanpur a byl poprvé publikován 6. srpna. , 2002 [2] . Před touto publikací byla příslušnost problému rozpoznání primality ke třídě P otevřeným problémem .

Výpočetní složitost původního algoritmu je odhadnuta jako . Za předpokladu , že Artinova domněnka je pravdivá , se doba běhu zlepší na . Za předpokladu správnosti hypotézy Sophie Germainové má čas také tendenci [2] .

V roce 2005 Lenstra a Pomerance publikovali vylepšenou verzi algoritmu s výpočetní složitostí , kde  je číslo, které má být zkontrolováno testem [3] [4] .

Podle Agrawalova dohadu existuje varianta algoritmu s runtime , ale Lenstra a Pomerans předložili heuristický argument potvrzující nepravdivost této hypotézy [2] .

Tento algoritmus má velký teoretický význam, ale v praxi se nepoužívá, protože jeho výpočetní náročnost je mnohem vyšší než u nejlepších pravděpodobnostních algoritmů [5] . Za svůj objev obdrželi autoři v roce 2006 Gödelovu cenu a Fulkersonovu cenu [6] .

Základní vlastnosti

Hlavní vlastností algoritmu je, že je současně univerzální , polynomiální , deterministický a nepodmíněný [5] , předchozí algoritmy měly maximálně pouze tři z těchto čtyř vlastností.

Univerzálnost testu znamená, že jej lze použít k testování primálnosti libovolného čísla. Mnoho rychlých testů je navrženo k testování čísel z omezené sady. Například Lucas-Lehmerův test funguje pouze pro Mersennova čísla , zatímco Pepinův test funguje pouze pro Fermatova čísla [6] .

Polynom znamená, že maximální doba běhu algoritmu je omezena polynomem v počtu číslic v kontrolovaném čísle. Zároveň testy jako test eliptické křivky (ECPP) a Adlemann-Pomerance-Rumeliho test (APR) mohou prokázat nebo vyvrátit jednoduchost čísla, ale nebylo prokázáno, že doba běhu bude polynomiální pro libovolné vstupní číslo [6] .

Determinismus zaručuje jedinečný předem definovaný výsledek. Pravděpodobnostní testy , jako je Miller-Rabinův test a Bailey-Pomeranz-Selfridge-Wagstaffův test , mohou testovat, zda je číslo prvočíslo v polynomiálním čase, ale dávají pouze pravděpodobnostní odpověď [6] .

Bezpodmínečnost je vlastnost, že správnost algoritmu nezávisí na žádných neprokázaných hypotézách. Tuto vlastnost nemá například Millerův test , který je sice deterministický a pracuje v polynomiálním čase pro libovolné vstupní číslo, ale jeho správnost závisí na neprokázané zobecněné Riemannově hypotéze [6] .

Hlavní myšlenka

Hlavní myšlenkou algoritmu je zobecnění Fermatovy Malé věty na polynomy, které uvádí, že pro všechny (kde kruh je brán bez inverzí násobením a nulovým prvkem) a ,  je jednoduchý tehdy a jen tehdy, když [2] [7] [8] :

 

 

 

 

jeden

Jinými slovy, jestliže , , a gcd , potom je prvočíslo právě tehdy, když je splněna podmínka (1) .

Testování tohoto výrazu vyžaduje čas, odhadovaný na , protože v nejhorším případě by měly být vyhodnoceny koeficienty na levé straně. Pro snížení počtu koeficientů a složitosti výpočtů bylo zvoleno použití výrazu [2] jako testu pro jednoduchost :

který získáme vydělením obou částí původního výrazu [7] .

Zde je počet hodnot ke kontrole a hodnota již omezena polynomem z [8] .

V tomto případě místo kvocientového kruhu uvažujeme pole , kde  je ireducibilní dělitel nad konečným polem , odlišné od . Počet polynomů tohoto pole, pro které se provádí srovnání, se odhaduje:

Algoritmus a jeho modifikace

Vstup: celé číslo .
  1. Pokud pro celá čísla a , vraťte "složený" .
  2. Najděte nejmenší takový, že .
  3. Pokud je gcd pro některé , vraťte "složený" .
  4. Pokud , vraťte "jednoduché" .
  5. Pokud pro všechny od 1 do platí, že , vraťte "simple" .
  6. Jinak vraťte "složený" .

Agrawal, Kayal a Saxena dokázali, že algoritmus vrátí "prvočíslo" tehdy a jen tehdy, když  je prvočíslo.

Lenstra a Pomerance zveřejnili vylepšenou verzi algoritmu [8] [4] :

Vstup: ,
  1. Pokud for a integer , vraťte "složený" .
  2. Pojďme najít nejmenší takový, že .
  3. Pokud je gcd pro any , vraťte "složený" .
  4. Pokud pro všechny od 1 do platí, že , vraťte "simple" .
  5. Jinak vraťte "složený" .

Zde je funkce  stejná, jedná  se o polynom stupně většího než , takže za určitých dalších podmínek [1] [8] .

Výpočetní složitost tohoto algoritmu je .

Odůvodnění

Odůvodnění používá skupinu  — skupinu všech čísel, která jsou modulo zbytky pro čísla z množiny [9] :

Tato podskupina, nazvěme ji skupina , již obsahuje . Skupina je generována modulo a od té doby .

Druhá skupina použitá v důkazu, , je množina všech polynomických zbytků v (prvoprostoru) modulo a . Tato skupina je generována prvky v poli a je podskupinou multiplikativní skupiny pole [9] .

Hlavní přechodná lemmata a definice použité při zdůvodnění algoritmu [2] :

Praktická aplikace

Při vyhodnocování parametru vyžaduje algoritmus 1 000 000 000 GB ( gigabajtů ) paměti pro čísla 1024 bitů. Pro moderní operační systémy je to příliš mnoho informací. Za předpokladu správnosti Artinovy ​​hypotézy a hypotézy Sophie Germainové o hustotě množiny prvočísel bude pro algoritmus dostatečná hodnota parametru odhadnutá na . V tomto případě bude stačit 1 GB paměti. Ale dokud není správnost těchto hypotéz prokázána, algoritmus není aplikován kvůli složitému provádění. Donald Knuth , který umístil algoritmus do druhého dílu The Art of Programming (Vol. 3), zaznamenal v soukromé korespondenci jeho čistě teoretický charakter [6] .

Poznámky

  1. 1 2 3 Agafonova, 2009 .
  2. 1 2 3 4 5 6 Agrawal, Kayal, Saxena, 2004 .
  3. H. W. Lenstra Jr. a Carl Pomerance, " Primality Testing with Gaussian Periods Archived 28. dubna 2021 na Wayback Machine ", předběžná verze 20. července 2005.
  4. 1 2 H. W. Lenstra Jr. a Carl Pomerance, „ Testování primality s gaussovskými periodami , archivováno 25. února 2012 na Wayback Machine “, verze z 12. dubna 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 , str. 5.

Literatura

v angličtině

Odkazy