Dixon algoritmusa

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. május 28-án felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek .

Dixon  algoritmusa egy faktorizációs algoritmus, amely alapvetően Legendre ötletét használja, amely abból áll , hogy találunk egy pár egész számot , és

A Dixon-módszer a Fermat-módszer általánosítása .

Előzmények [1]

Az 1920-as években Maurice Krajczyk (1882-1957) Fermat tételét általánosítva azt javasolta, hogy az egyenletet kielégítő számpárok helyett keressenek olyan számpárokat, amelyek kielégítik egy általánosabb egyenletet . Krajczyk több, a megoldáshoz hasznos tényt is észrevett. 1981-ben John Dickson közzétett egy faktorizációs módszert, amelyet Kraitzik ötletei alapján fejlesztett ki, és kiszámította a számítási bonyolultságát. [2]

Az algoritmus leírása [3]

  1. Készíts egy faktorbázist az összes prímszámból , ahol .
  2. Válassz véletlenszerű lehetőséget
  3. Számolja ki .
  4. Ellenőrizze a szám simaságát próbaosztásonként. Ha egy -sima szám , azaz , akkor emlékeznie kell a vektorokra és a : .
  5. Ismételje meg a számgenerálási eljárást , amíg -sima számokat nem talál .
  6. A Gauss-módszerrel keressen lineáris összefüggést a vektorok között : és tedd: .
  7. Ellenőrizze . Ha igen, ismételje meg a generálási eljárást. Ha nem, akkor egy nem triviális dekompozíciót találunk:
A helyesség igazolása [4]
  1. Ahhoz, hogy a képlet helyes legyen, az összegnek párosnak kell lennie. Bizonyítsuk be:
  2. abból következik, hogy:

Példa

Tényezőzzük a számot .

Az összes talált szám a megfelelő vektorokkal együtt be van írva a táblázatba.

337 23814 egy 5 0 2 0 0
430 5390 egy 0 egy 2 egy 0
519 96 5 egy 0 0 0 0
600 980 2 0 egy 2 0 0
670 125 0 0 3 0 0 0
817 39204 2 négy 0 0 2 0
860 21560 3 0 egy 2 egy 0

Lineáris egyenletrendszert megoldva azt kapjuk, hogy . Akkor

Következésképpen,

.

Kiderült, bomlás

Számítási összetettség [5]

Jelölje az egész számok számát úgy, hogy és egy -sima szám, ahol . A de Bruijn-Erdős tételből , ahol . Ez azt jelenti, hogy minden -sima szám átlagosan próbálkozásból származik. Annak ellenőrzéséhez, hogy egy szám -sima-e, osztásokat kell végrehajtani . Az algoritmus szerint egy -sima számot kell találni. Tehát a számok megtalálásának számítási bonyolultsága

.

A Gauss-módszer számítási összetettsége egyenletekből

.

Ezért a Dixon-algoritmus teljes összetettsége

.

Figyelembe véve, hogy a prímszámok száma kisebb a képlet által becsültnél , és egyszerűsítés után azt kapjuk, hogy

.

úgy van megválasztva, hogy az minimális legyen. Aztán kicserélve kapjuk

.

Pomeranz becslése a de Bruijn-Erdös tételnél szigorúbb tétel alapján [6] ad , míg Dixon eredeti komplexitásbecslése .

További stratégiák [7]

Fontolja meg a további stratégiákat, amelyek felgyorsítják az algoritmus működését.

LP stratégia

Az LP (Large Prime Variation) stratégia nagy prímszámokat használ a számgenerálási eljárás felgyorsítására .

Algoritmus

Legyen a 4. pontban talált szám ne -sima. Ekkor ábrázolható ahol nem osztható számokkal a faktoralapból. Nyilvánvaló, hogy . Ha járulékosan , akkor s prím, és bevesszük a faktorbázisba. Ez lehetővé teszi további -sima számok megtalálását, de 1-gyel növeli a szükséges sima számok számát. Az 5. lépés után az eredeti faktoralaphoz való visszatéréshez tegye a következőket. Ha csak egy szám található, melynek bővítése páratlan mértékben szerepel, akkor ezt a számot törölni kell a listából és törölni kell a faktorbázisból. Ha például két ilyen szám van és , akkor ezeket át kell húzni, és a számot hozzá kell adni . A mutató egyenletes mértékben lép be a bővülésbe , és hiányzik a lineáris egyenletrendszerből.

A stratégia variációja

Az LP stratégia több, a faktorbázisban nem szereplő prímszámmal is használható. Ebben az esetben a gráfelméletet a további prímszámok kizárására használják .

Számítási összetettség

Az LP stratégiát használó algoritmus bonyolultságának Pomerants által készített elméleti becslése nem tér el a Dixon algoritmus eredeti verziójának becslésétől:

.

EAS stratégia

Az EAS (korai szünet) stratégia kiküszöböl néhány szempontot azáltal, hogy nem tölti ki a simasági tesztet .

Algoritmus

fixeket választanak . A Dixon-algoritmusban próbaosztással faktorizálják a -val . A stratégiában az EAS-t választjuk , és a számot először próbaosztással faktorizáljuk -vel , és ha a felbontatlan rész nagyobb marad, mint , akkor az adott eldobásra kerül.

A stratégia variációja

Lehetőség van több töréses EAS-stratégia használatára, azaz bizonyos növekvő és csökkenő sorozatokkal .

Számítási összetettség

Megbecsülik a Dixon-féle algoritmust az EAS stratégiát használva

.

PS stratégia

A PS-stratégia a Pollard-Strassen algoritmust használja , amely megkeresi a gcd - k számának minimális prímosztóját . [nyolc]

Algoritmus

A Fix ki van választva . A Dixon-algoritmusban próbaosztással faktorizálják a -val . A PS stratégiában . hiszünk . Alkalmazzuk a Pollard-Strassen algoritmust, a fel nem bontott részre választva a kiterjesztést kapjuk .

Számítási összetettség

A Dixon-algoritmus összetettsége PS stratégiával minimális és egyenlő

.

Jegyzetek

  1. Ismukhametov, 2011 , p. 115.
  2. Dixon, J.D.Egész számok aszimptotikusan gyors faktorizálása  // Math . Összeg. : folyóirat. - 1981. - 1. évf. 36 , sz. 153 . - P. 255-260 . - doi : 10.1090/S0025-5718-1981-0595059-1 . — .
  3. Cserjomuskin, 2001 , p. 77-79.
  4. Vasilenko, 2003 , p. 79.
  5. Cserjomuskin, 2001 , p. 79-80.
  6. C. Pomerance. Néhány egészszámú faktorálási algoritmus elemzése és összehasonlítása  //  HW Lenstra és R. Tijdeman, szerk., Computational Methods in Number Theory, Math Center Tracts – Part 1. Math Centrum, Amsterdam: Cikk. - 1982. - S. 89-139 . Archiválva az eredetiből 2021. november 6-án.
  7. Vasilenko, 2003 , p. 81-83.
  8. Cserjomuskin, 2001 , p. 74-75.

Irodalom