Berlekampsův algoritmus - Berlekamps algorithm - Wikipedia
v matematika, zejména výpočetní algebra, Berlekampův algoritmus je dobře známá metoda pro faktoring polynomů nad konečnými poli (také známý jako Galoisova pole). Algoritmus se skládá hlavně z matice redukce a polynom GCD výpočty. To bylo vynalezeno Elwyn Berlekamp v roce 1967. Byl to dominantní algoritmus pro řešení problému až do Algoritmus Cantor – Zassenhaus z roku 1981. V současné době je implementován v mnoha známých systémy počítačové algebry.
Přehled
Berlekampův algoritmus bere jako vstup a polynom bez čtverců (tj. bez opakujících se faktorů) stupně s koeficienty v konečném poli a dává jako výstup polynom s koeficienty ve stejné oblasti tak, že rozděluje . Algoritmus lze poté použít rekurzivně na tyto a následující dělitele, dokud nenajdeme rozklad do pravomocí neredukovatelné polynomy (připomínáme, že prsten polynomů nad konečným polem je a jedinečná faktorizační doména ).
Všechny možné faktory jsou obsaženy v faktorový prsten
Algoritmus se zaměřuje na polynomy které uspokojují shodu:
Tyto polynomy tvoří a subalgebra z R (což lze považovat za -dimenzionální vektorový prostor přes ), nazvaný Berlekamp subalgebra. Berlekampova subalgebra je zajímavá, protože polynomy obsahuje uspokojení
Obecně platí, že ne každý GCD ve výše uvedeném produktu bude netriviálním faktorem , ale některé poskytují faktory, které hledáme.
Berlekampův algoritmus najde polynomy vhodné pro použití s výše uvedeným výsledkem výpočtem základu pro Berlekampovu subalgebru. Toho je dosaženo pozorováním, že Berlekampova subalgebra je ve skutečnosti jádro jisté matice skončila , který je odvozen z takzvané Berlekampovy matice polynomu, označený . Li pak je koeficient -tý mocninový termín při snižování modulo , tj.:
S určitým polynomem , řekněme:
můžeme spojit vektor řádků:
Je relativně jednoduché vidět, že vektor řádků stejným způsobem odpovídá snížení o modulo . V důsledku toho polynom je v subalgebře Berlekamp právě tehdy (kde je matice identity ), tj. právě tehdy, pokud je v prázdném prostoru .
Výpočtem matice a redukovat to na snížená řada echelon forma a potom snadno odečteme základ pro prázdný prostor, můžeme najít základ pro Berlekampovu subalgebru, a tedy konstruovat polynomy v tom. Poté musíme postupně vypočítat GCD výše uvedené formy, dokud nenajdeme netriviální faktor. Protože kruh polynomů nad polem je a Euklidovská doména, můžeme tyto GCD vypočítat pomocí Euklidovský algoritmus.
Konceptuální algebraické vysvětlení
S nějakou abstraktní algebrou se koncept Berlkemapova algoritmu stává koncepčně jasný. Představujeme konečné pole , kde pro některé prime p, as . Můžeme to předpokládat je čtverec volný, přičemž vezmeme všechny možné pth kořeny a poté vypočítáme gcd s jeho derivací.
Předpokládejme to je faktorizace na neredukovatelné. Pak máme prstenový izomorfismus, , daný čínskou větou o zbytku. Zásadní pozorování je, že Frobenius automorfismus dojíždí s , takže pokud označíme , pak omezuje na izomorfismus . Podle teorie konečných polí, je vždy hlavním podpolem tohoto rozšíření pole. Tím pádem, má prvky právě tehdy je neredukovatelný.
Navíc můžeme použít skutečnost, že Frobeniova automorfismus je -lineární pro výpočet pevné sady. To znamená, že si toho všimneme je -prostor a jeho explicitní základ lze vypočítat v polynomiálním kruhu výpočtem a stanovení lineárních rovnic na koeficientech polynomy, které jsou splněny, pokud je opraven Frobeniem. Poznamenáváme, že v tomto okamžiku máme efektivně vypočítatelné kritérium neredukovatelnosti a zbývající analýza ukazuje, jak to použít k nalezení faktorů.
Algoritmus se nyní dělí na dva případy:
- V případě malých můžeme postavit libovolné , a pak to u některých pozorujte existují aby a . Takový má netriviální faktor společný s , které lze vypočítat pomocí gcd. Tak jako je malý, můžeme procházet všemi možnými způsoby .
- V případě velkých prvočísel, která jsou nutně zvláštní, lze využít skutečnosti, že náhodný nenulový prvek je čtverec s pravděpodobností , a to mapa mapuje sadu nenulových čtverců na a sada non-square na . Pokud tedy vezmeme náhodný prvek , pak s velkou pravděpodobností bude mít společný netriviální faktor .
Další podrobnosti najdete na.[1]
Aplikace
Jednou z důležitých aplikací Berlekampova algoritmu je výpočetní technika diskrétní logaritmy přes konečná pole , kde je hlavní a . Výpočet diskrétních logaritmů je důležitým problémem kryptografie veřejného klíče a kódování kontroly chyb. Pro konečné pole je nejrychlejší známá metoda metoda indexového počtu, což zahrnuje faktorizaci prvků pole. Pokud reprezentujeme pole obvyklým způsobem - tedy jako polynomy nad základním polem , snížený modulo, neredukovatelný polynom stupně - pak se jedná pouze o polynomiální faktorizaci, kterou poskytuje Berlekampův algoritmus.
Implementace v systémech počítačové algebry
Berlekampův algoritmus je přístupný v balíčku PARI / GP pomocí faktormod velení a WolframAlpha [1] webová stránka.
Viz také
- Polynomiální faktorizace
- Faktorizace polynomů přes konečné pole a testy neredukovatelnosti
- Algoritmus Cantor – Zassenhaus
Reference
- ^ „Theory of Computation - Dexter Kozen“. Springer. Citováno 2020-09-19.
- Berlekamp, Elwyn R. (1967). "Faktorování polynomů přes konečná pole". Technický deník Bell System. 46: 1853–1859. doi:10.1002 / j.1538-7305.1967.tb03174.x. PAN 0219231. BSTJ Později publikováno v: Berlekamp, Elwyn R. (1968). Algebraická teorie kódování. McGraw Hill. ISBN 0-89412-063-8.
- Knuth, Donald E. (1997). "4.6.2 Faktorizace polynomů". Seminumerické algoritmy. Umění počítačového programování. 2 (Třetí vydání.). Reading, Massachusetts: Addison-Wesley. 439–461, 678–691. ISBN 0-201-89684-2.