A számítási számelméletben és a számítási algebrában a Pollard-féle kenguru-algoritmus (és a Pollard-féle lambda-algoritmus is , lásd a címet alább) a diszkrét logaritmus -probléma megoldására szolgáló algoritmus . Az algoritmust 1978-ban J. M. Pollard javasolta ugyanabban a cikkben [1] , mint az ő ismertebb ρ-algoritmusát ugyanazon probléma megoldására. Bár Pollard leírja ennek az algoritmusnak az alkalmazását a diszkrét logaritmus-problémára egy modulo a pr prím multiplikatív csoportban , valójában ez egy általános diszkrét logaritmus-algoritmus – minden ciklikus véges csoporton működik.
Legyen egy elem által generált véges ciklikus rendű csoport , és keressük az elem diszkrét logaritmusát az alaphoz képest . Más szóval, olyat keresünk , hogy . A lambda-algoritmus lehetővé teszi, hogy a -nak valamely részhalmazában keressünk . Megkereshetjük a lehetséges logaritmusok teljes halmazát és feltételezésével , bár a ρ-algoritmus ebben az esetben hatékonyabb lesz. A következőképpen járunk el:
1. Válassza ki az egész számok halmazát, és határozzon meg egy pszeudo-véletlen leképezést .
2. Válasszon egy egész számot , és számítsa ki a csoportelemek sorrendjét a képletek alapján:
3. Számítsa ki
.vegye észre, az
4. A képletek segítségével elkezdjük kiszámítani a csoportelemek második sorozatát
és a megfelelő egész számsorozat a képlet szerint
.vegye észre, az
számára5. Ha az egyik feltétel teljesül, állítsa le a számítást
A) egyesek számára . Ha a sorozatok és a szekvenciák ilyen módon "ütköznek", akkor: így megtaláltuk, amit akartunk. B) . Ha ez megtörténik, az algoritmus nem találta meg a . Egy másik kísérlet a halmaz és/vagy a leképezés megváltoztatásával tehető .Pollard a valószínűségi okoskodáson alapuló időbonyolultságot adott meg az algoritmus számára , ami abból a feltevésből következik, hogy f álvéletlenszerűen működik. Megjegyzendő, hogy abban az esetben, ha az { a , …, b } halmaz méretét bitben mérjük , ami a komplexitáselméletben szokásos , akkor a halmaz log( b − a ) mérettel rendelkezik, így az algoritmikus komplexitás egyenlő : amely a probléma méretének kitevője . Emiatt a Pollard-féle lambda-algoritmus egy exponenciális összetettségű algoritmusnak tekinthető . Egy idő-szubexponenciális algoritmus példáját a Számítási algoritmus sorrendje című témakörben találja .
Az algoritmust két néven ismerjük.
Az első név Pollard "kenguru" algoritmusa . A név a cikkben használt analógiára utal, ahol az algoritmust javasolták. A cikk elmagyarázza az algoritmust egy szelíd kenguru használatával egy vad kenguru elfogására . Amint Pollard [2] kifejtette , ezt az analógiát egy "bájos" cikk ihlette, amely a Scientific American ugyanabban a számában jelent meg, mint az RSA nyilvános kulcsú kriptorendszer kiadása . A [3] cikk egy kísérletet ír le, amelyben "egy kenguru mozgatásának energiaköltségét, amelyet az oxigénfogyasztásban mértek különböző sebességeknél, úgy határozták meg, hogy egy kengurut egy futópadra helyeztek " .
A második név Pollard lambda algoritmusa . Nagyon hasonlít Pollard másik diszkrét logaritmus algoritmusának nevéhez, a ρ-algoritmushoz , és ez a név az algoritmus vizualizációs hasonlóságának köszönhető a görög lambda ( ) betűhöz. A lambda betű rövid sora a sorozatnak felel meg . Ennek megfelelően a hosszú sor annak a sorozatnak felel meg, amely "ütközik" az első sorozattal (hasonlóan egy betű rövid és hosszú sorainak találkozásához).
Pollard szívesebben használja a "kenguru algoritmus" [4] nevet , hogy elkerülje a ρ-algoritmus néhány párhuzamos változatával való összetévesztést, amelyeket "lambda-algoritmusnak" is neveznek.
Számelméleti algoritmusok | |
---|---|
Egyszerűség tesztek | |
Prímszámok keresése | |
Faktorizáció | |
Diszkrét logaritmus | |
GCD keresése | |
Modulo aritmetika | |
Számok szorzása és osztása | |
A négyzetgyök kiszámítása |