Dixonův algoritmus

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 28. května 2021; kontroly vyžadují 4 úpravy .

Dixonův  algoritmus je faktorizační algoritmus , který v zásadě využívá Legendrovu myšlenku , která spočívá v nalezení dvojice celých čísel a takových ,

Dixonova metoda je zobecněním Fermatovy metody .

Historie [1]

Ve 20. letech 20. století Maurice Krajczyk (1882-1957), zobecňující Fermatovu větu, navrhl namísto dvojic čísel vyhovujících rovnici hledat dvojice čísel vyhovující obecnější rovnici . Krajczyk si všiml několika skutečností užitečných k řešení. V roce 1981 publikoval John Dickson metodu faktorizace, kterou vyvinul pomocí Kraitzikových myšlenek a vypočítal její výpočetní složitost. [2]

Popis algoritmu [3]

  1. Vytvořte základ faktoru sestávající ze všech prvočísel , kde .
  2. Vyberte náhodně
  3. Vypočítejte .
  4. Zkontrolujte hladkost čísla zkušebními děleními. Pokud je -smooth number , to znamená , měli byste si zapamatovat vektory a : .
  5. Opakujte postup generování čísel, dokud nenajdete hladká čísla .
  6. Pomocí Gaussovy metody najděte lineární vztah mezi vektory : a dát: .
  7. Zkontrolujte . Pokud ano, opakujte postup generování. Pokud ne, pak je nalezen netriviální rozklad:
Důkaz správnosti [4]
  1. Aby byl vzorec správný, musí být součet sudý. Pojďme to dokázat:
  2. vyplývá z toho, že:

Příklad

Rozložme číslo na faktor .

Všechna nalezená čísla s odpovídajícími vektory jsou zapsána do tabulky.

337 23814 jeden 5 0 2 0 0
430 5390 jeden 0 jeden 2 jeden 0
519 96 5 jeden 0 0 0 0
600 980 2 0 jeden 2 0 0
670 125 0 0 3 0 0 0
817 39204 2 čtyři 0 0 2 0
860 21560 3 0 jeden 2 jeden 0

Řešením lineárního systému rovnic získáme, že . Pak

Tudíž,

.

Ukázalo se, že rozklad

Výpočetní složitost [5]

Označte počtem celých čísel tak, že a je -hladké číslo, kde . Z de Bruijn-Erdősovy věty , kde . To znamená, že každé -hladké číslo v průměru narazí na pokusy. Chcete-li zkontrolovat, zda je číslo -hladké, musíte provést dělení . Podle algoritmu je nutné najít -hladké číslo. Tedy výpočetní náročnost hledání čísel

.

Výpočtová složitost Gaussovy metody z rovnic

.

Proto celková složitost Dixonova algoritmu

.

Vezmeme-li v úvahu, že počet prvočísel je menší, než odhaduje vzorec , a že po zjednodušení dostaneme

.

je zvolena tak, aby byla minimální. Pak nahrazením dostaneme

.

Odhad provedený Pomeranzem na základě přísnější věty, než uvádí de Bruijn-Erdösova věta [6] , zatímco Dixonův původní odhad složitosti dává .

Další strategie [7]

Zvažte další strategie, které urychlí činnost algoritmu.

LP strategie

Strategie LP (Large Prime Variation) používá velká prvočísla k urychlení procesu generování čísel .

Algoritmus

Nechť číslo nalezené v položce 4 není hladké. Pak může být reprezentován tam, kde není dělitelné čísly z faktorové základny. Je zřejmé, že . Pokud navíc , pak s je prvočíslo a zahrneme ho do faktorové báze. To vám umožní najít další -hladká čísla, ale zvýší počet požadovaných hladkých čísel o 1. Chcete-li se vrátit k původní základně faktoru po kroku 5, proveďte následující. Pokud je nalezeno pouze jedno číslo, jehož expanze je zahrnuta v lichém stupni, musí být toto číslo vymazáno ze seznamu a odstraněno z faktorové základny. Pokud jsou například dvě taková čísla a , pak je třeba je přeškrtnout a přidat číslo . Indikátor bude vstupovat do expanze v sudé míře a bude chybět v systému lineárních rovnic.

Variace strategie

Je možné použít strategii LP s několika prvočísly, která nejsou obsažena ve faktorové bázi. V tomto případě se k vyloučení dalších prvočísel používá teorie grafů .

Výpočetní složitost

Teoretický odhad složitosti algoritmu pomocí strategie LP, který provedl Pomerants, se neliší od odhadu původní verze Dixonova algoritmu:

.

Strategie EAS

Strategie EAS (early break) eliminuje některé úvahy tím, že nedokončí test plynulosti .

Algoritmus

volí se pevné . V Dixonově algoritmu je faktorizován zkušebním dělením podle . Ve strategii se zvolí EAS a číslo se nejprve rozloží zkušebními děleními a pokud po rozkladu zůstane nerozložená část větší než , pak se daná zahodí.

Variace strategie

Je možné použít strategii EAS s více přestávkami, tedy s nějakou vzestupnou sekvencí a sestupnou sekvencí .

Výpočetní složitost

Odhaduje se Dixonův algoritmus využívající strategii EAS pro

.

PS strategie

Strategie PS používá algoritmus Pollard-Strassen , který pro a najde minimálního prvočíselného dělitele počtu gcd v . [osm]

Algoritmus

Je vybráno pevné . V Dixonově algoritmu je faktorizován zkušebním dělením podle . Ve strategii PS, . věříme . Aplikujeme Pollard-Strassenův algoritmus, vybereme pro nerozloženou část, získáme expanzi .

Výpočetní složitost

Složitost Dixonova algoritmu se strategickým PS je minimální a rovná se

.

Poznámky

  1. Ishmukhametov, 2011 , str. 115.
  2. Dixon, J.D.Asymptoticky rychlá faktorizace celých čísel  // Math . Comp. : deník. - 1981. - Sv. 36 , č. 153 . - S. 255-260 . - doi : 10.1090/S0025-5718-1981-0595059-1 . — .
  3. Cheryomushkin, 2001 , str. 77-79.
  4. Vasilenko, 2003 , s. 79.
  5. Cheryomushkin, 2001 , str. 79-80.
  6. C. Pomerance. Analýza a srovnání některých algoritmů faktoringu celočíselných  //  HW Lenstra a R. Tijdeman, Eds., Computational Methods in Number Theory, Math Center Tracts — Část 1. Math Centrum, Amsterdam: Článek. - 1982. - S. 89-139 . Archivováno z originálu 6. listopadu 2021.
  7. Vasilenko, 2003 , s. 81-83.
  8. Cheryomushkin, 2001 , str. 74-75.

Literatura