1. fejezet. Polinomok Polinomok szorzása

Hasonló dokumentumok
Alapvető polinomalgoritmusok

FFT. Második nekifutás. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék október 2.

Algoritmuselmélet gyakorlat (MMN111G)

Nagy Gábor compalg.inf.elte.hu/ nagy

Diszkrét matematika 2.

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Polinomok (előadásvázlat, október 21.) Maróti Miklós

Diszkrét matematika 2.C szakirány

Klasszikus algebra előadás. Waldhauser Tamás április 14.

Kongruenciák. Waldhauser Tamás

1. feladatsor Komplex számok

Diszkrét matematika II., 8. előadás. Vektorterek

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Polinomok (el adásvázlat, április 15.) Maróti Miklós

Nagy Gábor compalg.inf.elte.hu/ nagy

Intergrált Intenzív Matematika Érettségi

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

KOVÁCS BÉLA, MATEMATIKA I.

1.1. Definíció. Azt mondjuk, hogy a oszója b-nek, vagy más szóval, b osztható a-val, ha létezik olyan x Z, hogy b = ax. Ennek jelölése a b.

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

Klasszikus algebra előadás. Waldhauser Tamás április 28.

1. A maradékos osztás

A parciális törtekre bontás?

Hibajavító kódolás (előadásvázlat, november 14.) Maróti Miklós

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Az állítást nem bizonyítjuk, de a létezést a Paley-féle konstrukció mutatja: legyen H a

Nagy Gábor compalg.inf.elte.hu/ nagy

Diszkrét matematika II. feladatok

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Diszkrét matematika I.

Diszkrét matematika 2.C szakirány

Vektorok, mátrixok, lineáris egyenletrendszerek

FELADATOK A BEVEZETŽ FEJEZETEK A MATEMATIKÁBA TÁRGY III. FÉLÉVÉHEZ. ÖSSZEÁLLÍTOTTA: LÁNG CSABÁNÉ ELTE IK Budapest

VEKTORTEREK I. VEKTORTÉR, ALTÉR, GENERÁTORRENDSZER október 15. Irodalom. További ajánlott feladatok

Diszkrét matematika alapfogalmak

Diszkrét matematika 2. estis képzés

13.1.Állítás. Legyen " 2 C primitív n-edik egységgyök és K C olyan számtest, amelyre " =2 K, ekkor K(") az x n 1 2 K[x] polinomnak a felbontási teste

1. Diagonalizálás. A Hom(V) diagonalizálható, ha van olyan bázis, amelyben A mátrixa diagonális. A diagonalizálható van sajátvektorokból álló bázis.

Zárthelyi feladatok megoldásai tanulságokkal Csikvári Péter 1. a) Számítsuk ki a 2i + 3j + 6k kvaternió inverzét.

Hatványozás. A hatványozás azonosságai

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Diszkrét matematika 1. estis képzés. Komputeralgebra Tanszék ősz

Vizsgatematika Bevezetés a matematikába II tárgyhoz tavasz esti tagozat

5. Az Algebrai Számelmélet Elemei

1. Egész együtthatós polinomok

MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Diszkrét matematika 2. estis képzés

Számelméleti alapfogalmak

Gy ur uk aprilis 11.

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

Algebrai alapismeretek az Algebrai síkgörbék c. tárgyhoz. 1. Integritástartományok, oszthatóság

Testek március 29.

Klasszikus algebra előadás. Waldhauser Tamás március 24.

MTN714: BEVEZETÉS AZ ABSZTRAKT ALGEBRÁBA. 1. Csoportelméleti alapfogalmak

Diszkrét matematika I.

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Diszkrét matematika 2 (C) vizsgaanyag, 2012 tavasz

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Mátrixok 2017 Mátrixok

Vektorterek. Több esetben találkozhattunk olyan struktúrával, ahol az. szabadvektorok esetében, vagy a függvények körében, vagy a. vektortér fogalma.

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

1. Homogén lineáris egyenletrendszer megoldástere

Egész pontokról racionálisan

Lineáris leképezések, mátrixuk, bázistranszformáció. Képtér, magtér, dimenziótétel, rang, invertálhatóság

ELTE IK Esti képzés tavaszi félév. Tartalom

Matematika A2 vizsga mgeoldása június 4.

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

Diszkrét matematika 2.C szakirány

3. Feloldható csoportok

DISZKRÉT MATEMATIKA 2 KIDOLGOZOTT TÉTELSOR 1. RÉSZ

KOVÁCS BÉLA, MATEMATIKA I.

Integrálszámítás. a Matematika A1a-Analízis nevű tárgyhoz november

A gyakorlati jegy

Algebra es sz amelm elet 3 el oad as Nevezetes sz amelm eleti probl em ak Waldhauser Tam as 2014 oszi f el ev

Hamming-kód. Definíció. Az 1-hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F 2 fölötti vektorokkal foglalkozunk.

Direkt limesz, inverz limesz, végtelen Galois-bővítések

Lineáris leképezések (előadásvázlat, szeptember 28.) Maróti Miklós, Kátai-Urbán Kamilla

Lineáris algebra. =0 iє{1,,n}

10. Feladat. Döntse el, hogy igaz vagy hamis. Név:...

Alapfogalmak a Diszkrét matematika II. tárgyból

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

Komplex számok. Wettl Ferenc előadása alapján Wettl Ferenc előadása alapján Komplex számok / 18

f(x) a (x x 0 )-t használjuk.

Mat. A2 3. gyakorlat 2016/17, második félév

RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

1. Mondjon legalább három példát predikátumra. 4. Mikor van egy változó egy kvantor hatáskörében?

Boros Zoltán február

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

17. előadás: Vektorok a térben

Nagy Gábor compalg.inf.elte.hu/ nagy

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Feladatok a Gazdasági matematika II. tárgy gyakorlataihoz

Átírás:

1. fejezet Polinomok 1.1. Polinomok szorzása Legyen F egy test és legyenek f, g polinomok F felett. Tegyük fel, hogy f = α 0 + α 1 x + + α n x n és g = β 0 + β 1 x + + β m x m, ahol α i, β i F. Legyen h = γ 0 +γ 1 x+ +γ m+n x m+n az f és g polinomok szorzata. Ekkor, i {0,..., n+m} esetén, i γ i = α j β i j, j=0 ahol feltesszük, hogy α n+1 = = α n+m = β m+1 = = β n+m = 0. Számítsuk ki, hogy a fenti formulát használva, hány testbeli műveletre van szükség a szorzat kiszámításához. A γ i számot i + 1 szorzással és i összeadással, azaz összesen 2i + 1 testbeli művelettel határozhatjuk meg. Tehát a szorzatpolinom kiszámításához m+n i=0 2i + 1 = (2m + 2n + 2)(m + n + 1) 2 = m 2 + n 2 + 2mn + 2n + 2m + 1 (1.1) testbeli művelet szükséges. A továbbiakban az algebrai algoritmusok költségét a test- illetve gyűrűbeli műveletek számával fogjuk mérni. Az egyszerűbb összehasnlítás kedvéért bevezetjük a nagyordó jelölést. Legyen, f : N R egy függvény. Azt mondjuk, hogy f egy költégfüggvény, ha létezik N 0, úgy hogy f(n) 0 minden n N 1

2 Polinomok esetén. Azaz, egy költségfüggvény véges sok kivételtől eltekintve nem-negatív értékeket vesz fel. Legyenek ϕ, ψ : N N költségfüggvények. Azt mondjuk, hogy ϕ nagyordó ψ, ha léteznek c > 0 és N N, hogy minden n N esetén ϕ(n) cψ(n); írásban, a ϕ függvény O(ψ). Tehát ha egy ϕ függvény O(ψ), akkor, elegendően nagy értékekre, ϕ nem nagyobb mint a ψ egy alkalmas konstansszorosa. Példa 1.1.1 Legyen ϕ egy polinomfüggvény, azaz, n N esetén, legyen ϕ(n) = max{0, α 0 + α 1 n + + α k n k } ahol α k > 0 (a trükkos megadás azért szükséges mert feltesszük, hogy ϕ(n) 0). Nem nehéz belátni, hogy léteznek c R és N N melyekkel, n N esetén, ϕ(n) cn k, azaz, ebben az esetben, a ϕ függvény O(n k ). A (1.1) egyenlet szerint, két legfeljebb n-edfokú polinom hagyományos módon történő szorzásának a költsége legfeljebb 4n 2 +4n+1 tesbeli művelet. A nagyordó jelölést használva, a költség tehát O(n 2 ) testművelet. Azaz, a testbeli műveletek száma hozzávetőlegesen a fok négyzetes függvénye. A következő nehány fejezetben megvizsgáljuk, hogyan lehet ezt javítani. 1.2. A diszkrét Fourier transzformáció (DFT) Legyen F egy test, legyen n N és legyen ω egy F-beli primitív egységgyök; azaz, ω n = 1 és, minden i {1,..., n 1} esetén ω i 1. Példa 1.2.1 Ha F = C, akkor minden n esetén létezik primitív egységgyök, például exp(2iπ/n). Példa 1.2.2 Tegyük fel, hogy F = F q egy véges test és legyen ω egy n-dik primitív egységgyök, azaz ω n = 1. A nullától különböző F-beli elemek csoportot alkotnak, és ebben a csoportban az ω egy n rendű elem. Lagrange tétele miatt, n osztja a csoport rendjét, azaz n q 1. Tegyük, most fel, hogy n q 1 és legyen m = (q 1)/n. Ismert, hogy az F q \{0} egy ciklikus csoport, így létezik ν F q, melyre igaz, hogy, ν q 1 = 1, de minden

Algebrai Algoritmusok 3 i {1,...,q 1} esetén ν i 1. Azaz ν primitív (q 1)-dik egységgyök. Ekkor könnyű igazolni, hogy ω = ν m egy primitív n-dik egységgyök. A fenti két gondolatmenetet összerakva kapjuk, hogy az F q testben pontosan akkor létezik primitív n-dik egységgyök, ha n q 1. A továbbiakban feltesszük, hogy F egy test és ω egy n-dik primitív egységgyök. Legyen f = α 0 + α 1 x + + α k x k egy polinom. Az f polinom diszkrét Fourier transzformáltját a következőképpen definiáljuk: DFT ω f = ( f(1), f(ω),..., f(ω n 1 ) ). Azaz, a diszkrét Fourier transzformáció (DFT) nem más, mint az f polinom egy primitív egységgyök hatványain vett értéke. Jelölje F[x] az F test feletti polinomalgebrát és tekintsük az F n = {(α 1,...,α n ) α 1,...,α n F} vektorteret. Az F n vektortéren értelmezhetjük a pontonkénti szorzást, és ezzel az F n vektortér egy F-algebrává válik. Lemma 1.2.3 A DFT ω : F[x] F n leképezés egy szürjektív F-algebra-homomorfizmus melynek magja az x n 1 polinom által generált (x n 1) ideál. Tehát a DFT ω leképezés tekinthető egy F[x]/(x n 1) F n izomorfizmusként. BIZONYÍTÁS. Tetszőleges f, g F[x] és α, β F esetén, fg(α) = f(α)g(α), (f + g)(α) = f(α) + g(α), és (βf)(α) = β(f(α)), amiből következik, hogy DFT ω valóban egy F-algebra-homomorfizmus. Belátjuk, hogy DFT ω szürjektív. Legyen f 1 = 1 és i {1,..., n 1} esetén definiáljuk f i = (x ω 0 ) (x ω i 1 ) polinomokat. Ekkor az f 0 polinomnak nincs gyöke F-ben, i {1,..., n 1} esetén pedig az f i polinom gyökei az 1 = ω 0,...,ω i 1 elemek. Azaz, ha a DFT ω f i sorvektorokat egy mátrixba helyezzük, akkor egy felső háromszög alakú mátrixot kapunk melynek átlójában nemnulla mennyiségek találhatók. Ezért ennek a mátrixnak a sorai generálják az F n vektortetet, és mivel a DFT ω F[x] egy altér, a DFT ω leképezés szürjektív. Legyen I = (x n 1). Nyilván (ω i ) n 1 = (ω n ) i 1 = 1 1 = 0, ezért x n 1 ker DFT ω. Mivel ker DFT ω egy ideál F[x]-ben, kapjuk, hogy I F[x]. Az F[x] gyűrűben érvényes a maradékos osztás tétele, ezért minden g F[x]

4 Polinomok esetén egyértelműen léteznek u és v polinomok melyekre g = u(x n 1) + v és deg v n 1 teljesül; azaz, g + I = v + I. Ebből következik, hogy az I ideál minden mellékosztálya egyértelműen reprezentálható egy legfeljebb (n 1)- edfokú polinommal, azaz, dim F[x]/I = n. Tehát, dim F[x]/I = dim F n, amiből ker DFT ω = I = (x n 1) következik. Jelölje Q n az F[x]/(x n 1) hányadosgyűrűt. A fentiek szerint, a Q n hányadosgyűrűben minden elem egyéretelműen reprezentálható egy legfeljebb (n 1)- edfokú polinommal, ezért Q n -t azonsíthatjuk ezen polinomok halmazával. Két Q n -beli polinom összegét kiszámíthatjuk a hagyományos módon, szorzatukat pedig a x n = 1 reláció felhasználásával kapjuk. Példa 1.2.4 Legyen n = 3, f = 1 + x 2x 2, és legyen g = 2 x + x 2. Számítsuk ki Q n -ban az fg szorzatot: fg = (1 + x 2x 2 )(2 x + x 2 ) = 2 x + x 2 + 2x x 2 + x 3 4x 2 + 2x 3 2x 4 = = 2 x + x 2 + 2x x 2 + 1 4x 2 + 2 2x = 5 x 4x 2. Ha α 1,...,α n páronként különböző testbeli elemek és β 1,...,β n F akkor létezik pontosan egy n 1-edfokó polinom melyre, minden i-re, f(α i ) = β i teljesül. Azaz, egy Q-beli polinom kétféleképpen is reprezentálható: egyrészt a hagyományos módon az együtthatóvektorával, illetve az 1, ω,..., ω n 1 elemeken felvett értékeivel. A 1.2.3 lemma szerint, a két reprezentáció egyenértékű. A fejezet elején ismertetett módszer segítségével a hagyományos reprezentációban O(n 2 ) testbeli művelet szükséges két polinom szorzásához, a második reprezentációban pedig ezt meg lehet tenni n testbeli szorzás segítségével. Ha tehát gyorsan (azaz kevesebb mint O(n 2 ) testművelet elvégzésével) váltani tudunk a reprezentációk között, akkor az eddiginél gyorsabban tudunk polinomokat szorozni.

Algebrai Algoritmusok 5 Mivel a DFT ω : Q n F n egy lineáris transformáció, reprezentálható egy mátrixsszal. Valóban, 1 1 1 1 1 ω ω 2 ω n 1 DFT ω (α 0 + α 1 x + + α n 1 x n 1 ) = (α 0,...,α n 1 ) 1 ω 2 ω 4 ω 2(n 1)........ 1 ω n 1 ω 2(n 1) ω (n 1)2 Jelölje V ω a fenti egyenlőségben szereplő mátrixot. A mértani sorozat összegképletét alkalmazva kapjuk, hogy ha n k, akkor n 1 ω ki = 0, i=0 amiből adódik, hogy V ω V ω 1 = ni, ahol I az egységmátrix. Más szóval, (V ω ) 1 = (1/n)V ω 1. Tehát a Fourier transzformáció inverze is egy Fourier transzformáció, és mindkettő megkapható egy mátrixszorzással, azaz O(n 2 ) testbeli művelettel. 1.3. A gyors Fourier transformáció (FFT) Legyen n egy páros szám, ω egy primitív n-dik egységgyök egy F testben, f = α 0 +α 1 x+ +α n 1 x n 1 pedig egy legfeljebb (n 1)-edfokú F[x]-beli polinom. Szeretnénk meghatározni, az f polinom diszkrét Fourier transzformáltját, azaz ki szeretnénk számítani az f(1), f(ω),..., f(ω n 1 ) értékeket. Az előző fejezet végén lévő észrevétel miatt, ez O(n 2 ) testbeli művelettel lehetséges. Ebben a fejezetben megmutatjuk, hogy ehhez valójában csak O(n log n) testbeli műveletet kell elvégezni. Először határozzuk meg az f polinom x n/2 1 és x n/2 +1 polinomokkal vett r 0 és r 1 maradékait. Ehhez alapesetben egy maradékos osztást kellene elvégezni, de a jelen szituációban a maradékok egyszerűbben is megkaphatók. Az x n/2 1 polinommal vett maradékot kiszámíthatjuk ugyanis úgy, hogy az f polinomban elvégezzük az x n/2 = 1 helyettesítést. Az f = α 0 + α 1 x + α 2 x 2 + + α n/2 x n/2 + α n/2+1 x n/2+1 + + α n 1 x n 1

6 Polinomok polinomban az x n/2 = 1 helyettesítést végrehajtva kapjuk, hogy r 0 = α 0 + α 1 x + α 2 x 2 + + α n/2 + α n/2+1 x + + α n 1 x n/2 1 = = (α 0 + α n/2 ) + (α 1 + α n/2+1 )x + + (α n/2 1 + α n 1 )x n/2 1. Hasonlóan, r 1 = (α 0 α n/2 ) + (α 1 α n/2+1 )x + + (α n/2 1 α n 1 )x n/2 1. Ekkor léteznek olyan q 0 és q 1 polinomok melyekkel f = q 0 (x n/2 1) + r 0 és f = q 1 (x n/2 + 1) + r 1 teljesül. Ezért, mivel ω n/2 = 1, i 0 esetén azt kapjuk, hogy f(ω 2i ) = q 0 (ω 2i )(ω ni 1) + r 0 (ω 2i ) = r 0 (ω 2i ) és f(ω 2i+1 ) = q 1 (ω 2i+1 )(ω ni ω n/2 + 1) + r 1 (ω 2i+1 ) = r 1 (ω 2i+1 ) Nyilván, r 1 (ω 2i+1 ) = r1(ω 2i ), ahol r1(x) = r 1 (ωx). Tehát az r 0 (1), r 0 (ω 2 ),...,r 0 (ω n 2 ) mennyiségek meghatározhatók az r 0, az r 1 (ω), r 1 (ω 3 ),...,r 1 (ω n 1 ) mennyiségek pedig az r1 polinom ω 2 szerint vett Fourier transzformáltának segítségével. Mivel ez egy kisebbrendő Fourier transzformált, a feladatot így két egyszerűbb feladatra redukáltuk. Tétel 1.3.1 Az 1. algoritmus helyesen számítja ki az f polinom diszkrét Fourier transzformáltját. Az algoritmus végrehajtása O(n log n) testbeli műveletet igényel. BIZONYÍTÁS. A fenti gondolatmenet igazolja, hogy az algoritmus helyes. Számítsuk ki az algoritmus költségét. Jelölje S(n) az algoritmus végrehajtásához szükséges műveletek számát. Az első if utasításban nincs testművelet. Az első két set utasítás műveletigénye legfeljebb (3/2)n testművelet, a második két set utasítás műveletigénye pedig legfeljebb 2S(n/2) testművelet. Tehát, S(1) = 0 és S(n) 2S(n/2) + (3/2)n. Indukcióval igazolható, hogy S(n) (3/2)n log 2 n = O(n log n). Ezek után kiszámíthatjuk két polinom szorzatát.

Algebrai Algoritmusok 7 1. algoritmus: FFT Input: n = 2 k, f = α 0 + α 1 x + + α n 1 x n 1, ω, ω 2,...,ω n 1 Output: f(1), f(ω),..., f(ω n 1 ) if n = 1 then return α 0 end if set r 0 = (α 0 + α n/2 ) + (α 1 + α n/2+1 )x + + (α n/2 1 + α n 1 )x n/2 1 set r 1 = (α 0 α n/2 ) + ω(α 1 α n/2+1 )x + + ω n/2 1 (α n/2 1 + α n 1 )x n/2 1 set (β 0,...,β n/2 1 ) = FFT(n/2, r 0, 1, ω 2, ω 4...,ω n ) set (γ 0,..., γ n/2 1 ) = FFT(n/2, r 1, 1, ω 2, ω 4...,ω n ) return (β 0, γ 0, β 1, γ 1,...,β n/2 1, γ n/2 1 ) Algoritmus 1: Gyors Fourier Transzformációü (FFT) 2. algoritmus: FASTMULTIPLICATION Input: f, g F[x] melyekre deg f + deg g 2 k 1 ω primitív 2 k -dik egységgyök. Output: fg F[x] számítsuk ki ω 2,..., ω 2k 1 mennyiségeket return (DFT ω ) 1 (DFT ω f DFT ω g) Algoritmus 2: Gyors polinomszorzás

8 Polinomok Tétel 1.3.2 Legyen F egy test, ω F egy 2 k -dik primitív egységgyök és legyenek f, g F[x] polinomok melyekre deg f +deg g 2 k. Ekkor az 2. algoritmus helyesen számítja ki az f, g polinomok szorzatát. Az algoritmus végrehajtása O(n log n) testbeli műveletet igényel. BIZONYÍTÁS. Az eddig elmondottak igazolják, hogy az algoritmus helyes. Az ω 2,...,ω n 1 mennyiségeket kiszámíthatók n 1 szorzás segítségével. A DFT ω költésge O(n log n) testművelet, a return utasításban lévő pontonkénti vektorszorzás költsége n testművelet. Így az algoritmus költsége O(n log n) testművelet. Abban az esetben, ha tetszőleges gyűrű felett akarunk polinomokat szorozni, a Schönhage-Strassen algoritmus alkalmazható. Az algoritmust itt nem tárgyaljuk, de kimondjuk a következő tételt. Tétel 1.3.3 (Schönhage-Strassen) Legyen R egy kommutatív gyűrű, és legyenek f, g F[x] polinomok melyre deg f + deg g n 1. Ekkor az fg szorzat meghatározható legfeljebb O(n(log n)(log log n)) gyűrűbeli művelet segítségével. 1.4. Példa Lássunk egy példát az előző fejezetben tárgyalt algoritmusokra. Tekintsük az f = 1 + x + x 2 + 2x 3 és a g = 2 + x + 2x 2 + x 4 polinomokat az F 3 test felett. Mivel deg f + deg g = 7, az 1. algoritmusban n = 8 választás szükséges. A gond az, hogy F 3 -ban minden nem-nulla α elemre α 2 = 1 teljesül, tehát F 3 -ban nincs primitív 8-dik egységgyük. Az 1.2.2 példa szerint azonban az F 9 testben van ilyen egységgyök, tehát az fg polinom szorzatát FFT segítségével F 9 felett számíthatjuk ki (a szorzat nyilván változatlan marad, ha egy testbővítésben határozzuk meg). Az F 9 testhez szükségünk van egy irredicibilis F 3 feletti polinomra. Könnyű számolás mutatja, hogy az t 2 t 1 polinomnak nincs gyöke F 3 -ban, ezért irreducibilis. Az F 9 test tehát megkapható mint az F 3 [t]/(t 2 t 1) faktorgyűrű. A faktorgyűrű elemei az α + βt alakú polinomok. Ezen polinomok összeadása a hagyományos módon történik, szorzáskor pedig felhasználjuk az t 2 = 1 + t

Algebrai Algoritmusok 9 összefüggést. Például, (1 +t)(2 + t) = 2 +3t +t 2 = 2 +1+t = t. Az alábbi táblázat a F 9 nem-nulla elemei közötti szorzótáblát tartalmazza. 1 2 t 1 + t 2 + t 2t 1 + 2t 2 + 2t 1 1 2 t 1 + t 2 + t 2t 1 + 2t 2 + 2t 2 2 1 2t 2 + 2t 1 + 2t t 2 + t 1 + t t t 2t 1 + t 1 + 2t 1 2 + 2t 2 2 + t 1 + t 1 + t 2 + 2t 1 + 2t 2 t 2 + t 2t 1 2 + t 2 + t 1 + 2t 1 t 2 + 2t 2 1 + t 2t 2t 2t t 2 + 2t 2 + t 2 1 + t 1 1 + 2t 1 + 2t 1 + 2t 2 + t 2 2t 1 + t 1 2 + 2t t 2 + 2t 2 + 2t 1 + t 2 + t 1 2t 1 + 2t t 2 A fenti szorzótáblából leolvasható, hogy ω = t egy primitív 8. egységgyök. Valóban, t 1 = t, t 2 = 1 + t, t 3 = 1 + 2t, t 4 = 2, t 5 = 2t, t 6 = 2 + 2t, t 7 = 2 + t, t 8 = 1. Számítsuk ki az f = 1+x+x 2 +2x 3 polinom diszkrét Fourier transzformáltját az FFT algoritmus szerint. Az első rekurzióban r 0 = f = 1 + x + x 2 + 2x 3, illetve r1 = 1 + tx + t 2 x 2 + 2t 3 x 3 = 1 + tx + (1 + t)x 2 + (2 + t)x 3. Az FFT kiszámításához a rekurziót harmadik mélységig kell meghívni, a számítás részleteit az 1.4 táblázat tartalmazza. Az algoritmus helyességének igazolása során alkalmazott gondolatmenetet használva, a táblázatban szereplő polinomok diszkrét Fourier transzformáltjai az utólsó sortól kezdődően leolvashatók. Így kapjuk, hogy DFT ω f = (2, 1, 2 + 2t, 1, 2, 2t, 1 + t, 2 + t), és hasonlóan, DFT ω g = (0, 0, 2 + t, 0, 1, t, 2t, 2t + 1), tehát DFT ω f DFT ω g = (0, 0, 2t, 0, 2, 2 + 2t, 2 + t, 1 + t). A szorzat kiszámításához, most a h = 2tx 2 + 2x 4 + (2 + 2t)x 5 + (2 + t)x 6 + (1 + t)x 7 polinom Fourier transzformáltját kell meghatározni a ω 1 szerint: DFT ω 1h = (1, 0, 1, 2, 1, 1, 2, 1). Jegyezzük meg, hogy F 3 -ban 1/8 = 2, tehát a szorzatpolinom fg = 2(1 + x 2 + 2x 3 + x 4 + x 5 + 2x 6 + x 7 ) = 2 + 2x 2 + x 3 + 2x 4 + 2x 5 + x 6 + 2x 7.

10 Polinomok f = 1 + x + x 2 + 2x 3 (2, 1, 2 + 2t, 1, 2, 2t, 1 + t, 2 + t) r 0 = 1 + x+ +x 2 + 2x 3 (2, 2 + 2t, 2, 1 + t) r 1 = 1 + tx + (1 + t)x 2 + +(2 + t)x 3 (1, 1, 2t, 2 + t) r 0 = 2 (2, 2) r 1 = (2 + 2t)x (2 + 2t, 1 + t) r 0 = 2 + t+ +(2 + 2t)x (1, 2t) r 1 = 2t+ +(1 + t)x (1, 2 + t) 2 2 2 + 2t 1 + t 1 2t 1 2 + t 1.1. táblázat. Az f = 1 + x + x 2 + 2x 3 polinom diszkrét Fourier transzformáltja FFT segítségével g = 2 + x + 2x 2 + x 4 (0, 0, 2 + t, 0, 1, t, 2t, 1 + 2t) r 0 = x + 2x 2 (0, 2 + t, 1, 2t) r 1 = 1 + tx + (2 + 2t)x 2 (0, 0, t, 1 + 2t) r 0 = 2 + x (0, 1) r 1 = 1 + (1 + t)x (2 + t, 2t) r 0 = 2t + tx (0, t) r 1 = (2 + t)+ +(1 + 2t)x (0, 1 + 2t) 0 1 2 + t 2t 0 t 0 1 + 2t 1.2. táblázat. Az g = 2 + x + 2x 2 + x 4 polinom diszkrét Fourier transzformáltja FFT segítségével

Algebrai Algoritmusok 11 2tx 2 + 2x 4 + (2 + 2t)x 5 + (2 + t)x 6 + (1 + t)x 7 (1, 0, 1, 2, 1, 1, 2, 1) r 0 = 2 + (2 + 2t)x+ +2x 2 + (1 + t)x 3 (1, 1, 1, 2) r 1 = 1 + tx + x 2 + +(1 + 2t)x 3 (0, 2, 1, 1) r 0 = 2 (1, 1) r 1 = x (1, 2) r 0 = 2 + x (0, 1) r 1 = 2x (2, 1) 1 1 1 2 0 1 2 1 1.3. táblázat. Az 2tx 2 + 2x 4 + (2 + 2t)x 5 + (2 + t)x 6 + (1 + t)x 7 polinom diszkrét Fourier transzformáltja FFT segítségével 1.5. Polinomok faktorizálása A továbbiakban F egy test, általában véges. Legyen f F[x]. Célunk, hogy meghatározzuk f irreducibilis felbontását: f = f α 1 1 f α n n, (1.2) ahol az f i -k páronként nem asszociált irreducibilis polinomok. Célunk, hogy a feladatot kevés testbeli művelet segítségével végezzük el. Mivel egy legfeljebb (n 1)-edfokú polinom megadható az α 1,..., α n 1 együtthatók segítségével, egy ilyen polinom bitmérete legfeljebb log 2 α 1 + + log 2 α n + n ami O(n log q), ha F = F q. Tehát az a célunk, hogy az algoritmus műveletszáma polinomiális legyen n-ben és log q-ban. Az első lépés az itt ismertetett faktorizációs eljárásban, hogy a problémát visszavezetjük a négyzetmentes polinomok esetére. Egy polinomot négyzetmentesnek nevezünk, ha az 1.2 felbontásban α 1 = = α n = 1. Az f többszörös tényezőit a derivált segítségével izoláljuk. Legyen f = α 0 + + α k x k, ekkor f = α 1 + 2α 2 x + + kα k x k 1. Lemma 1.5.1 Legyen f F[x].

12 Polinomok (1) Ha f = u k v, ahol u, v F[x], akkor f = u k 1 (ku v + u k v ). Azaz, u k 1 f. (2) Ha f = uv, ahol u és v relatív prímek és u 0, akkor u f. (3) Ha f = 0, akkor vagy f konstans, vagy char F = p és f = g p ahol g F[x]. BIZONYÍTÁS. A Leibniz szabály szerint, fg = f g + fg. Ezt alkalmazva az állítás következik. A (3) állítás bizonyításához, emlékezzünk, hogy ha char F = p akkor (α 0 + α 1 x + + α n x n ) p = α p 0 + αp 1 xp + + αnx p np. Első eset: f = 0. Ha f = 0, és f nem konstans polinom, akkor char F = p és f = g p, ahol g F[x]. Legyen F = F q ahol q = p d. Ekkor α F q esetén, (α pd 1 ) p = α pd = α. Tehát, egy α elem p-dig gyöke α pd 1. A fentiek miatt f = α 0 + α p x p + α mp x mp. és f = g p ahol g = α pd 1 0 + αp pd 1 x + + αmp pd 1 x m. Tehát ebben az esetben a g polinom O(n log q) aritmetikai művelettel meghatározható, az f felbontását pedig visszavezettük az alacsonyabb fokú g polinom felbontására. Második eset: f 0. Ha f 0, akkor a f/ gcd(f, f ) polinom négyzetmentes, így azt az alábbiakban közölt módon faktorizáljuk. Ezután gcd(f, f ) polinomra a fenti eljárást ismételten végrehajtjuk. Ettől a ponttól F = F q és legyen f egy négyzetmentes polinom. Felírjuk f-et f = f 1 f n alakba, ahol f i az f polinom i-edfokú tényezőinek szorzata. A következő lemmát nem bizonyítjuk. Lemma 1.5.2 Az x qd x polinom azon 1 főegyütthatós irreducibilis polinomok szorzata melyek foka osztója d-nek.

Algebrai Algoritmusok 13 Tehát a fenti különböző fokú felbontásban, f 1 = gcd(f, x q x). Aztán f 2 = gcd(f/f 1, x q2 x), stb. Azt is jegyezzük meg, hogy ezzel az algoritmussal hatékonyan tesztelhető, hogy f irreducibilis-e, ugyanis f akkor és csakis akkor irreducibilis, ha f = f k ahol k = deg f. A továbbiakban feltesszük, hogy f négyzetmentes polinom mely azonos fokú tényezők szorzata. Az előző fejezetekben ismertetett eljárások segítségével a felbontási probléma visszavezethető erre az esetre. Lemma 1.5.3 Ha q páratlan, akkor { } α F q α (q 1)/2 q 1 = 1 = 2. BIZONYÍTÁS. Emlékezzünk, hogy F q = F q \ {0} egy ciklikus csoport, melyben { van pontosan egy (q } 1)/2 rendű részcsoport; jelölje H. Ugyanakkor a J = α F q α (q 1)/2 = 1 halmaz is egy részcsoportja F q-nak és nyilván H J < F q teljesül. Mivel F q : H = 2, az állítás következik. Lemma 1.5.4 Legyen q páratlan és legyen f egy n-edfokú négyzetmentes polinom mely d-edfokú irreducibilisek szorzata. Ha u egy egyenletes eloszlású legfeljebb (n 1)-edfokú véletlen polinom, akkor, legalább (q 2d 1)/(2q 2d ) 4/9 valószínűséggel, gcd(u (qd 1)/2 1, f) valódi osztója f-nek. BIZONYÍTÁS. Legyen f = f 1 f n az f polinom különböző fokú felbontása. Mivel f i irreducibilis, F[x]/(f i ) egy test, nevezetesen F[x]/(f i ) = F q n. Jelölje ui az u polinom f i szerint vett maradékát és tekintsük u i -t, az F[x]/(f i ) test elemeként. Ekkor, u i egyenletes eloszlású véletlen eleme F[x]/(f i )-nek. Továbbá, a kínai maradéktétel szerint, az u i elemek, mint valószínűségi változók, függetlenek. A fenti lemma szerint, azon {u i u (qd 1)/2 1 = 0} = (q d 1)/2, tehát annak valószínűsége, hogy a u (qd 1)/2 1 1 és u (qd 1)/2 2 1 közül pontosan az egyik 0 (q d 1)/(2q 2d ). Állítjuk, hogy ebben az esetben gcd(u (qd 1)/2 1, f) valódi osztója az f-nek. Valóban, ha például u (qd 1)/2 1 1 = 0, de u (qd 1)/2 2 1 0 akkor f 1 u (qd 1)/2 1 de f 2 u (qd 1)/2 1, tehát f 1 gcd(f, u (qd 1)/2 1).

14 Polinomok Könnyű látni, hogy q 2d 1 2q 2d = 1 2 1 2q 2d, azaz a fenti mennyiség monoton növekvő függvénye a q d -nek. Tehát akkor lesz legkisebb, ha q d legkisebb, azaz q d = 3. Következésképp, (q 2d 1)/(2q 2d ) 4/9 A Cantor-Zassenhaus algoritmus úgy működik, hogy egy véletlen u polinomra kiszámítja a h = gcd(u (qd 1)/2 1, f) polinomot. Ha ez valódi osztója f-nek, akkor a műveletet megismétli a h és f/h polinomokkal. Világos, hogy a h és az f/h polinomok mindketten d-edfokú irreducibilisek szorzata. 1.6. Példa Tekintsük a következő F 5 [x]-beli polinomot és határozzuk meg az irreducibilis felbontását: f = 3 + 2x + x 2 + 2x 3 + x 4 + x 5 + 4x 8 + 2x 9 + x 10 + x 11 + 3x 12 + 4x 13 + 2x 14 + 2x 16 + x 17. Az első lépésben kiszámítjuk a f 1 = f/ gcd(f, f ) = 1 + 3x + 3x 2 + 3x 3 + x 4 + x 5 polinomot, mely az előző fejezetben tárgyaltak miatt négyzetmentes. Az f 1 polinom első-, másod-, és harmadfokú irreducibilis tényezőinek szorzata rendre h 1 = gcd(x 5 x, f 1 ) = 1, h 2 = gcd(x 25 x, f 1 ) = 1 + x + x 2, h 3 = gcd(x 125 x, f 1 ) = 1 + 2x + x 3. A fentiekből látszik, hogy a h 1 és a h 2 polinomok irreducibilisek, ezért a 1 + 3x + 3x 2 + 3x 3 + x 4 + x 5 polinom irreducibilis felbontása: 1 + 3x + 3x 2 + 3x 3 + x 4 + x 5 = (1 + x + x 2 )(1 + 2x + x 3 ). Tekintsük most az f/f 1 = 3 + 3x + 3x 2 + x 5 + x 6 + x 7 + x 10 + x 11 + x 12

Algebrai Algoritmusok 15 hányadost és jelölje f most ezt a polinomot. Ismét számítsuk ki a f 1 = f/ gcd(f, f ) = 1 + x + x 2 négyzetmentes polinomot. A fentiek miatt, f 1 irreducibilis. Legyen most f := f/f 1 = 3 + x 5 + x 10. Mivel f = 0, az f polinom egy másik polinom 5-dik hatványa: f = 3 + x 5 + x 10 = (3 + x + x 2 ) 5. Faktorizáljuk most az f := 3 + x + x 2 polinomot. Mivel gcd(f, f ) = 1, f négyzetmentes. Határozzuk, meg az elsőfokú tényezőinek szorzatát: h 1 = gcd(x 5 x, f) = 3 + x + x 2. Tehát f két elsőfokú irreducibilis szorzata. Használjuk a Cantor-Zassenhaus algoritmust az f polinom felbontására. Válasszunk egy random u polinomot, mondjuk u = 4x, és legyen h = gcd(u (5 1)/2 1, f) = gcd(u 2 1, f) = 4 + x, tehát elsőre szerencsénk volt. Egyszerű osztás után kapjuk, hogy f/h = 2 + x, tehát f = (4 + x)(2 + x). Tehát 3 + 2x + x 2 + 2x 3 + x 4 + x 5 + 4x 8 + 2x 9 + x 10 + x 11 + 3x 12 + 4x 13 + 2x 14 + 2x 16 + x 17 = = (4 + x) 5 (2 + x) 5 (1 + x + x 2 ) 2 (1 + 2x + x 3 ). Vizsgáljuk meg, mekkora szerencsére van szükség az utólsó lépésben, azaz az elsőfokú polinomok közül hány ad irreducibilis faktort. Valamilyen komputer-algebrai rendszerrel könnyen láthatjuk, hogy az u polinom 25 lehetséges választása közül pontosan 12 esetén lesz a gcd(u 2 1, f) polinom elsőfokú. Tehát a Las Vegas módszer ebben az esetben közel 1/2 valószínűséggel működik.

16 Polinomok 1.7. A faktorizációs algoritmus költsége Becsüljük meg a 1.5 fejezetben ismertetett faktorizációs algoritmus költségét. Ehhez először idézzük fel a gyors hatványozás algoritmusát. Legyen a egy multiplikatív algebrai struktúra egy eleme, és legyen n egy természetes szám. Az a n mennyiség kiszámításához a hagyományos eljárást alkalmazva n 1 szorzásra van szükség. Ha azonban az alábbi eljárást alkalmazzuk, akkor az a n hatvány legfeljebb 2 log 2 n szorzással meghatározható: (i) ha n = 1 akkor a n = a. (ii) ha n 2 és n páros akkor a n = a n/2 a n/2 (rekurzív hívás); (iii) ha n 2 és n páratlan akkor a n = a a (n 1)/2 a (n 1)/2 (rekurzív hívás); A fenti eljárás költségére vonatkozó állítás igazolásához jelölje S(n) az a n kiszámításához szükséges műveletek számát. Ekkor S(1) = 0, S(2n) = S(n) + 1, és S(2n + 1) = S(n) + 2 teljesül, és az állítás teljes indukcióval igazolható. Ez a gondolatmenet adja a következő lemmát. Lemma 1.7.1 Egy multiplikatív struktúrában a n kiszámítható O(logn) szorzás felhasználásával. Legyen f F[x], és számítsuk ki hány művelet szükséges az első redukció elvégzéséhez. Ha f 0, akkor az f/ gcd(f, f ) kiszámításánál a következő költségek lépnek fel: (i) f kiszámítása: O(n) aritmetikai művelet; (ii) gcd(f, f ) kiszámítása: O(n 3 ) aritmetikai művelet; (iii) f/ gcd(f, f ) kiszámítása: O(n 2 ) aritmetikai művelet. Tehát a négyzetmentes f/ gcd(f, f ) polinom kiszámításának költsége O(n 3 ) aritmetikai művelet. Ha f = 0, akkor létezik g F[x] melyre f = g p és a g polinom meghatározásának költsége n darab, p d 1 -ik hatványra emelés, ahol q = p d és p prím. A gyors hatványozás algoritmusát használva ez elvégezhető O(n log q) aritmetikai művelet segítségével. Tehát az első redukció költsége O(n 3 log q) aritmetikai művelet.

Algebrai Algoritmusok 17 Tegyük fel most, hogy az f polinom négyzetmentes és deg f = n. Ekkor ki kell számítani a gcd(x q x, f), gcd(x q2 x, f),..., gcd(x qn x, f) legnagyobb közös osztókat. Az eukildeszi algoritmust közvetlenül alkalmazva gcd(x qi x, f) kiszámításához O(q 3i ) aritmetikai műveletre van szükség, ezért ez nem járható út. Határozzuk meg a x qi x polinom f szerinti maradékát okosabban. Az x qi polinom f szerinti maradékát meghatározhatjuk gyors hatványozással O(i log q) = O(n log q) műveletet végrehajtva F[x]/(f)-ben. Mivel egy F[x]/(f)-beli szorzás költsége O(n 2 ) testművelet, az x qi és az x qi x polinomok f szerinti maradékai meghatározhatók O(n 3 log q) aritmetikai művelettel. Ezután a gcd(x qi x, f) kiszámítható legfeljebb O(n 3 ) aritmetikai művelet felhasználásával. Tehát az n darab gcd kiszámításának költsége O(n 4 log q). Lássuk végül a harmadik fázist. Ebben feltesszük, hogy f négyzetmentes és d-edfokú irreducibilisek szorzata. Egy faktor meghatározásához venni kell egy legfeljebb (n 1)-edfokú random polinomot, ahol deg f = n, és tekinteni kell a gcd(u (qd 1)/2 1, f) legnagyobb közös osztót. A fenti gondolatok felhasználásával a gcd meghatározható O(n 3 log q) művelettel. A fenti számítás eredménye az alábbi tétel. Tétel 1.7.2 Legyen f F q [x] és legyen n = deg f. A 1.5 fejezetben vázolt eljárás O(n 4 log q) művelet elvégzése után legalább 4/9 valószínűséggel az f polinom egy valódi osztóját adja. Azaz az f polinom irreducibilis tényezőkre bontásának várható költsége O(n 5 log q) aritmetikai művelet. BIZONYÍTÁS. A tétel első állításának igazolása a tétel előtti gondolatmenet, a második állítás igazolásához lényegében azt kell észrevenni, hogy az deg f = n ezért az eljárást legfeljebb n-szer kell sikeresen végrehajtani. Mivel, egy sikeres végrehajtás valószínűsége legalább 4/9, n sikerhez O(n) végrehajtás szükséges. A bizonyítás részleteit itt nem közöljük. 1.8. Alkalmazás: BCH kódok konstrukciója A következőkben a polinomfaktorizációs algoritmus alkalmazását tárgyaljuk a hibajavító kódok elméletében.

18 Polinomok Legyen F q egy véges test és tekintsünk egy V vektorteret az F q test felett. A V vektortér egy C alterét lineáris kódnak nevezzük. A kód hossza dim V, a kód dimenziója dim C, a dim C/ dimv mennyiség neve pedig jelsebesség, vagy kódolási sebesség. Példa 1.8.1 Legyen V = F 3 2 és legyen C = {(0, 0, 0), (1, 1, 1)}. Nyilván C egy lineáris kód V -ben, melynek hossza 3, dimenziója 1, jelsebessége pedig 1/3. A C kód neve ismétléses kód. A C elemeit kódszavaknak nevezzük. Két kódszó a = (α 1,...,α n ) és b = (β 1,...,β n ) Hamming távolsága a δ(a, b) = {i α i β i } mennyiség. Könnyű látni, hogy a Hamming távolság egy metrika a kódszavak között, és az is azonnal adódik, hogy a Hamming távolság eltolás invariáns, azaz d(a, b) = d(a + x, b + x) teljesül minden a, b, x V esetén. A fenti a szó Hamming súlya az a 0-tól való Hamming távolsága, jele pedig w(a). Egy kód minimális távolsága a következő: d(c) = min{δ(a, b) a b C}. Ha egy kód minimális távolsága d, akkor d/2 hibát tudunk vele javítani. A fenti ismétléses kóddal például egy hiba javítható. Lemma 1.8.2 Egy lineáris kód esetén d(c) = min {w(a) a C \ {0}}. BIZONYÍTÁS. Legyen d a jobboldali kifejezés. Nyilván d(c) d. Legyen u, v C melyekre d(u, v) = d(c) teljesül. Ekkor nyilván d(u, v) = d(u u, v u) = d(0, v) = w(v). Tehát d d(c). Legyen F q egy véges test, és legyen β egy F q m-beli elem. A β minimálpolinomja F q felett az az F q [x]-beli minimális fokszámú g főpolinom, melyre

Algebrai Algoritmusok 19 g(β) = 0 teljesül. A minimálpolinom létezik és egyéretelmű, nevezetesen, a minimálpolinom nem más mint azon polinomok gcd-je melyeknek a β elem gyöke. Következésképp, ha g a minimálpolinomja egy β elemnek, és f F q [x] polinom melynek β gyöke, akkor g f. A minimálpolinom szügségképpen irreducibilis. Az ismétléses kód nem túlságosan hatékony kód, ezért az alábbiakban egy másik kódot ismertetünk, az úgynevezett BCH kódot. Legyen F q egy véges test, legyen β egy primitív n-dik egységgyök F m q -ben és legyen g az az 1 főegyütthatós polinom mely a β, β 2,..., β δ 1 elemek minimálpolinomjainak a legkisebb közös többszöröse. A legyen C a g képe által generált ideál az F q [x]/(x n 1) faktorgyűrűben. Ekkor C-t egy BCH kódnak nevezzük, jele pedig BCH(q, n, δ). A g polinomot a kód generátorpolinomjának nevezzük. Példa 1.8.3 Alkossunk BCH(3, 26, δ) kódokat. Keresni kell egy F m q testet melyben van 26-ik egységgyök, illetve meg kell keresni az adott egységyök minimálpolinomját. A 26-ik egységgyököt a F 27 testben keressük. Ha β egy ilyen egységgyök, akkor β kielégíti a f = x 26 1 polinomot, tehát a β minimálpolinomját meghatározhatjuk az f polinom irreducibilis felbontásából. Mivel f = 2x 25, gcd(f, f ) = 1, ezért f négyzetmentes. Határozzuk meg az f azonos fokú irreducibilis tényezőinek a szorzatát. Számítás mutatja, hogy gcd(f, x 3 x) = x 2 1, tehát x 2 1 = (x 1)(x + 1) tényezője az f-nek. Legyen f 1 = f/(x 2 1) = x 24 + x 22 + x 20 + x 18 + x 16 + x 14 + x 12 + x 10 + x 8 + x 6 + x 4 + x 2 + 1. Ekkor gcd(f 1, x 9 x) = 1, és gcd(f 1, x 27 x) = f 1, tehát f 1 harmadfokú irreducibilisek szorzata. A Cantor-Zassenhaus algoritmus segítségével meghatározhatjuk az f 1 felbontását, amiből az f felbontása adódik: f = (x 1)(x + 1)(x 3 x + 1)(x 3 x 1)(x 3 + x 2 1)(x 3 + x 2 + x 1) (x 3 + x 2 x + 1)(x 3 x 2 + 1)(x 3 x 2 + x + 1)(x 3 x 2 x 1).

20 Polinomok Legyenek g 1,...,g 10 az f fenti faktorai. Legyen F 27 = F 3 [x]/(g 3 ) = F[x]/(x 3 x + 1) és legyen β = x F 27. Nyilván β 26 = 1, de kis számolás azt is mutatja, hogy β 2 1, és hogy β 13 1, tehát β egy 26-ik primitív egységgyök. Továbbá a β F 27 minimálpolinomja F 3 felett g 3 = x 3 x + 1. A g 3 további gyökei β 3 és β 9. Az alábbi táblázat tartalmazza, hogy a β különböző hatványainak mi a minimálpolinomja: hatvány minimálpolinom β 0 g 1 β 13 g 2 β, β 3, β 9 g 3 β 14, β 16, β 22 g 4 β 4, β 10, β 12 g 5 β 2, β 6, β 18 g 6 β 7, β 11, β 21 g 7 β 17, β 23, β 25 g 8 β 5, β 15, β 19 g 9 β 8, β 20, β 24 g 10 A fentiek figyelembevételével a β egységgyök segítségével az alábbi BCH(3, 26, δ)

Algebrai Algoritmusok 21 kódokat képezhetjük: δ a β hatványai generátorpolinom δ = 2 β, β 3, β 9 g 3 δ = 4 β, β 2, β 3, β 6, β 9, β 18 g 3 g 6 δ = 5 β, β 2, β 3, β 4, β 6, β 9, β 10, β 12, β 18 g 3 g 5 g 6 δ = 7 β, β 2, β 3, β 4, β 5, β 6, β 9, β 10, β 12, β 15, β 18, β 19 g 3 g 5 g 6 g 9 δ = 8 δ = 13 δ = 14 δ = 17 δ = 26 β, β 2, β 3, β 4, β 5, β 6, β 7, β 9, β 10, β 11, β 12, β 15, β 18, β 19, β 21 g 3 g 5 g 6 g 7 g 9 β, β 2, β 3, β 4, β 5, β 6, β 7, β 8, β 9, β 10, β 11, β 12, β 15, β 18, β 19, β 20, β 21, β 24 g 3 g 5 g 6 g 7 g 9 g 10 β, β 2, β 3, β 4, β 5, β 6, β 7, β 8, β 9, β 10, β 11, β 12, β 13, β 15, β 18, β 19, β 20, β 21, β 24 g 2 g 3 g 5 g 6 g 7 g 9 g 10 β, β 2, β 3, β 4, β 5, β 6, β 7, β 8, β 9, β 10, β 11, β 12, β 13, β 14, β 15, β 16, β 18, β 19, β 20, β 21, β 22, β 24 g 2 g 3 g 4 g 5 g 6 g 7 g 9 g 10 β, β 2, β 3, β 4, β 5, β 6, β 7, β 8, β 9, β 10, β 11, β 12, β 13, β 14, β 15, β 16, β 17, β 18, β 19, β 20, β 21, β 22, β 23, β 24, β 25 g 2 g 3 g 4 g 5 g 6 g 7 g 8 g 9 g 10 Tekintsük a továbbiakban a δ = 13 értékhez tartozó kódot, melynek generátorpolinomja g = g 3 g 5 g 6 g 7 g 9 g 10 = x 18 + x 17 x 14 x 13 + x 12 x 11 + x 9 x 7 x 6 x 5 + x 4 + x 1. Legyen V = F 3 [x]/(x 26 1) = F 26 3. A g képe által generált ideált megkapjuk mint a g, gx, gx 2,...,gx 7 polinomok által generált alteret. Tehát a kód dimenziója 8. Kis számolás mutatja, hogy a minimális távolság pedig 13. Tehát a kód 6 hibát javít. Tétel 1.8.4 Legyen C egy BCH(q, n, δ) kód melynek generátorpolinomja g. Ekkor (i) C hossza n, dimenziója n deg g;

22 Polinomok (ii) egy h legfeljebb (n 1)-edfokú polinom esetén h C akkor és csakis akkor ha g h; (ii) C minimális távolsága legalább δ. BIZONYÍTÁS. (i) A kód konstrukciójából következik, hogy a kód dimenziója n. Legyen g a kód generátorpolinomja, és legyen k = deg g. Mivel a g a β,...,b δ 1 elemek minimálpolinomjainak a legkisebb közös többszörose, az x n 1 polinomnak pedig mindegyik β i gyöke, azt kapjuk, hogy g x n 1. A C kód nem más, mint a (g, x n 1)/(x n 1) = (g)/(x n 1) altér. Az izomorfizmus tételek szerint azonban, (g)/(x n 1) = F q[x]/(g) F q [x]/(x n 1) ezért dim C = dim F q [x]/(x n 1) F q [x]/(g) = n k. (ii) Legyen h C. Ekkor létezik u, q F q [x] melyre gu = q(x n 1) + h teljesül, azaz h = gu q(x n 1). Mivel g x n 1, g h. Tegyük fel most, hogy g h. Ekkor h = ug és mivel deg h, deg g n 1, h = ug fennált F q [x]-ben is. Tehát, h C. (iii) Az előző lemmából következik, hogy a V = F[x]/(x n 1) esetén a C akkor és csakis akkor, ha a(β) = = a(β δ 1 ) = 0. Legyenek (a 0,...,a n 1 ) az a koordinátái a standard bázisban. A fentiek miatt, a C akkor és csakis akkor, ha (a 0,...,a n 1 ) 1 1 1 β β 2 β δ 1 β 2 β 4 β 2(δ 1) = (0,..., 0).... β n 1 β 2(n 1) β (d 1)(n 1) Vegyük észre, hogy a fenti mátrixban tetszőleges (δ 1) (δ 1) almátrix egy Vandermonde matrix, tehát tetszőleges ilyen almátrix invertálható. Legyen a C és legyenek i 1,...,i w {1,...,n} azok az i j indexek melyre a ij 0. Ekkor w(a) = w. Legyen b az a vektor i 1,...,i w poziciójú elemeiből álló vektor és legyen M a fenti mátrix i 1,...,i w indexű sorokból álló almátrixa. Ekkor bm = 0, és mivel b 0, M szinguláris. Mivel Ebből következik, hogy az M sorainak száma legalább δ, azaz w δ. Tehát minden kódszó Hamming súlya legalább δ.

Algebrai Algoritmusok 23 1.9. Ideálok sokváltozós polinomgyűrűben Az alábbi fejezetben többváltozós polinokkal kapcsolatos kérdésekkel foglalkozunk. Példa 1.9.1 Tekintsünk egy kétkarú robotot melynek egyik karja, mely egyik végén csuklóval rögzítve van, 5 centi hosszú, masik pedig, mely egy csuklóval csatlakozik az elsőhöz 3 centi hosszú. Mindkét csukló tetszőleges szögben elfordulhat. Tekintsük robotunkat egy olyan koordináta rendszerben melynek origója az első kar rögzítéséhez esik. Az első kar (x, y, z) végpontja kielégíti a x 2 + y 2 + z 2 = 25 egyenletet. A kar (u, v, w) végpontja pedig kielégíti a (u x) 2 + (v y) 2 + (w z) 2 = 9 egyenletet. Tehát azon pontok melyeket a robot karja elér a fenti két egyenlet megoldásaiból kaphatók. A továbbiakban F egy test és R = F[x 1,..., x n ]. Ha f 1,...,f s R, akkor f 1,...,f s jelöli az f i -k által generált ideált. Nyilván { s } f 1,...,f s = q i f i q i R. i=1 A fenti {f 1,...,f s } generátorrendszert az ideál bázisának nevezzük. Legyen I = f 1,...,f s. Ekkor V (I) jelöli az I által meghatározott algebrai sokaságot: V (I) = {α F n f(α) = 0 minden f I esetén} = = {α F n f 1 (α) = = f s (α) = 0}. A fenti egyenlőség bizonyítását az olvasóra bízom. Más szóval az algebrai sokaság nem más, mint az I ideálban lévő polinomok közös gyökeinek a halmaza. Az ideálokkal és a sokaságokkal kapcsolatban az alábbi kérdések merülnek fel:

24 Polinomok (i) mekkora V (I)? (ii) V (I) =? (iii) I = R? (iv) f R esetén f I? A fenti kérdések eldöntésében a Gröbner bázosok fognak segíteni. Példa 1.9.2 Legyen F = R és legyen f = x 2 + y 2 = 9. Ekkor V ( f ) elemei egy origó körüli, 3 sugarú kört alkotnak. Tehát a V (I)-ben végtelen sok pont van. Az R gyűrű x α 1 1 xα n n alakú elemeit monomoknak mondjuk. Mindegyik monom azonosítható a α = (α 1,...,α n ) együtthatóvektor segítségével. Ebben az esetben a fenti monom jele x α. A továbbiakban jelölje M az R-beli monomok halmazát. Az M elemeinek egy teljes rendezését monomiális rendezésnek nevezzük, ha (i) egy jól rendezés (azaz minden nemüres halmazban van legkisebb elem); (i) ha x, y, z M és x y, akkor yz xz. Ha α = (α 1,...,α n ), akkor az x α monom foka deg x α = α 1 + + α n. Példa 1.9.3 Az alábbiakban bemutatjuk a gyakorlatban leggyakrabban használt monomiális rendezéseket. Könnyen látható, hogy a lenti példák valóban monomiális rendezéseket adnak, ennek igazolását az olvasóra hagyom. Legyenek α, β N n együtthatóvektorok. Lexikografikus vagy szótári rendezés: x α lex x β akkor és csakis akkor, ha az első nemnulla elem az α β vektorban negatív. Például n = 3 esetén x 4 2 lex x 1 x 2 x 2 3 lex x 1 x 2 2x 3 lex x 3 1. Fokszám szerinti, aztán szótári rendezés: x α dlex x β akkor és csakis akkor, ha deg x < deg y vagy deg x = deg y és x lex y. Itt x 3 1 dlex x 4 2 dlex x 1 x 2 x 2 3 dlex x 1 x 2 2x 3. Fokszám szerinti aztán fordított lexikografikus rendezés: x α drlex x β akkor és csakis akkor, ha deg x < deg y vagy deg x = deg y és y lex x. x 3 1 drlex x 1 x 2 2x 3 drlex x 1 x 2 x 2 3 lex x 4 2. Itt

Algebrai Algoritmusok 25 Legyen f = c α x α R egy polinom és legyen egy monomiális rendezés. Ekkor a következő fogalmakat használjuk: (i) minden c α x α egy tag; multifoka α = (α 1,...,α n ); (ii) a polinom multifoka a legmagasabb multifokú tag multifoka; jele mdeg f. (iii) a polinom főegyütthatója a legmagasabb multifokú tag együtthatója; (iv) a polinom főtagja a legmagasabb multifokú tag; (v) a polinom főmonomja a legmagasabb multifokú tagban lévő monom. Példa 1.9.4 Legyen f = 2x 3 + 3xy 2 z + 4xz 3. Ekkor az f polinom főtagja a fenti három rendezést tekintve a kovetkező. Lexikografikus: 2x 3 ; fokszám szerinti aztán lexikografikus 3xy 2 z; fokszám szerinti aztán fordított lexikografikus: 4xz 3. Többváltozós polinomgyűrűben is lehetséges a maradékos osztáshoz hasonló eljárást definiálni. Lemma 1.9.5 Legyenek f, f 1,...,f s R. Ekkor léteznek q 1,...,q s, r R polinomok melyekkel f = q 1 f 1 + + q s f s + r teljesül, és vagy r = 0, vagy az r polinom egyetlen tagja sem osztható az f 1,...,f s polinomok főtagjainak egyikével sem. A bizonyítás előtt egy példát mutatunk. Példa 1.9.6 Legyenek f = x 2 y + xy 2 + y 2, f 1 = xy 1, f 2 = y 2 1. Redukáljuk az f polinomot az f 1 és f 2 polinomok szerint. Dolgozzunk a lexikografikus rendezés szerint. Vegyük észre, hogy az f 1 főtagja (xy) osztja az f főtagját (x 2 y), nevezetesen x 2 y = x xy. Tehát a g = f xf 1 = xy 2 + xy 2 polinom alacsonyabb multifokú. Ekkor f = g 1 + xf 1 teljesül. Az f 1 polinom főtagja (xy) most a g polinom főtagját (xy 2 ) osztja, nevezetesen xy 2 = y xy. Tehát, g 2 = g 1 yf 1 = x + y 2 + y és f = g 1 + xf 1 = g 2 + (x + y)f 1 teljesül. A g 2 polinom főtagja x mely nem osztható sem az f 1 sem az f 2 polinom főtagjával. Mentsük át tehát ezt a főtagot a maradékba, és legyen r 1 = x. Legyen g 3 = g 2 r 1 = y 2 + y. Ekkor a g 3 főtagja y 2 osztható az f 2 főtagjával (y 2 ), és g 3 f 2 = y + 1 egy alacsonyabb multifokú polinom. Ebből kapjuk, hogy f = (y + 1) + (x + y)f 1 + f 2 + x. Most

26 Polinomok sem az y, sem az 1 nem osztható sem az f 1, sem az f 2 főtagjával, tehát azt a maradékhoz csapjuk. Tehát az f polinom redukciója során az f = (x + y)f 1 + f 2 + (x + y + 1) felírást kapjuk. A q 1 = x+y és az q 2 = 1 polinomok játszák a hányados szerepét, az r = x+y+1 polinom pedig a maradék. Valóban, az r egyik tagja sem osztható sem az f 1, sem az f 2 főtagjával. A 1.9.5 lemma bizonyítása. Legyenek f, f 1,..., f s a tétel feltételeinek eleget tevő polinomok. Ekkor az alábbi eljárással kaphatjut meg a q 1,...,q s, r polinomokat. 1. Legyen r = 0, p = f, és q 1 = = q s = 0. 2. Ha létezik i index melyre ltf i ltp, akkor legyen q i = q i + ltp/lt f i, p = p (ltp/lt f i )f i. 3. Ha ilyen index nem létezik, akkor legyen r = r + lt p, p = p ltp. 4. Ha p 0 akkor vissza 1.-re. 5. Output q 1,...,q s, r. Könnyen látszik, hogy a fenti eljárás véges sok lépés után véget ér, és hogy az eljárás outputja helyes. Példa 1.9.7 Sajnos a fenti eljárás nem olyan hatékony mint az egyváltozós polinomgyűrűben ismert hasonló eljárás. Ha ugyanis az algoritmus outputjában r = 0 akkor tudjuk, hogy f f 1,...,f s. Ha azonban r 0, abból nem következik, hogy f f 1,...,f s. Legyen például f = xy 2 x, f 1 = xy + 1, f 2 = y 2 1. Ekkor f = yf 1 +0f 2 +( x y), ugyanakkor f = xf 2, amiből f f 1, f 2 következik. Tehát a fenti eljárás nem alkalmas arra, hogy eldöntsük, hogy egy elem benne van-e egy ideálban. Később definiáljuk a Gröbner bázis fogalmát, amely ezt a problémát orvosolja majd. 1.10. Monomiális ideálok és Hilbert bázistétele Az R gyűrű egy ideálját monomiális ideálnak nevezzük, ha monomok generálják.

Algebrai Algoritmusok 27 Lemma 1.10.1 Legyen A N n és legyen I = x α : α A egy monomiális ideál. Ekkor f R esetén a következők ekvivalensek: (i) f I; (ii) f minden tagja eleme I-nek. BIZONYÍTÁS. Tegyük fel, hogy f I. Ekkor létezik B A véges részhalmaz melyre f = x α q α α B teljesül, ahol α B esetén q α R. Vegyük észre, hogy a fenti egyenlőség baloldalán szereplő f polinom minden monomja szerepel a jobboldalon is. A jobboldalon viszont minden tag osztható x α -val, ahol α A. Tehát, ha x β az f egy monomja, akkor valóban létezik α A, melyre x α x β teljesül. A másik irány nyilvánvaló. A fenti lemmából kovetkezik az alábbi eredmény. Lemma 1.10.2 Két monomiális ideál akkor és csakis akkor egyenlő, ha ugyanazokat a monomokat tartalmazzák. Tétel 1.10.3 (Dickson lemmája) Legyen A N n és legyen I = x α α A. Ekkor létezik B A véges részhalmaz, melyre I = x α α A. Következésképp, minden monomiális ideál végesen generált. BIZONYÍTÁS. Legyen α = (α 1,...,α n ) és β = (β 1,...,β n ). Ekkor α β, ha minden i esetén, α i β i. Legyen B az A minimális elemeinek a részhalmaza. Azaz, B = {α A β A, β < α}. Világos, hogy minden α A esetén csak véges sok β A létezik melyre β α teljesül. Tehát, ha α A B, akkor, a fentiek miatt, létezik egy α > α 1 > > α k lánc, mely nem bővíthető, azaz α k B. Tehát minden α A esetén létezik β B melyre β α tejlesül. Vegyük észre, hogy ekkor x β x α. Ebből az is következik, hogy csak azt kell már igazolni, hogy B véges. A B halmaz végességét n-szerinti indukcióval igazoljuk. Ha n = 1 akkor a monomok jól rendezett halmazt alkotnak, és minden részhalmazban létezik pontosan egy minimális, nevezetesen a legkisebb fokszámú.

28 Polinomok Tegyük fel, hogy n 2, legyen A = {(α 1,...,α n 1 ) (α 1,...,α n 1, α n ) A valamely α n esetén}, és legyen B az A minimális elemeinek a halmaza. Az indukciós feltevés szerint B véges. Minden β = (β 1,...,β n 1 ) B esetén válasszunk γ β elemet melyre (β 1,...,β n 1, γ β ) A és legyen γ ezen γ β elemek maximuma. Állítjuk, hogy minden (α 1,...,α n ) B esetén α n γ. Valóban, ha (α 1,..., α n ) B, akkor létezik egy (β 1,...,β n 1 ) B elem melyre (β 1,..., β n 1 ) (α 1,...,α n 1 ). Ha α n > γ, akkor (β 1,...,β n 1, γ β ) (β 1,...,β n 1, γ) < (α 1,...,α n ), és így (α 1,...,α n ) nem minimális, ami ellentmondás. A fenti gondolatmenet eredménye, hogy a B halmaz elemeinek utólsó koordinátái korlátosak. Hasonló gondolatmenet mutatja azonban, hogy a B halmaz elemeinek bármely pozícióban lévő koordinátái korlátosak, tehát B egy valóban egy véges halmaz. Ha f egy polinom, akkor lt f jelöli az f főtagját. Ha G az R egy részhalmaza, akkor ltg = {ltf f G}. Következmény 1.10.4 (Hilbert bázistétele) Legyen I R egy ideál és legyen G egy véges részhalmaz, melyre lt G = lt I. Ekkor G = I. Következésképp minden R-beli ideál végesen generált. BIZONYÍTÁS. Nyilván G I, így csak az I G tartalmazást kell igazolni. Legyen G = {g 1,..., g s } és legyen f I. Ekkor léteznek, q 1,...,q s, r polinomok, melyekkel f = q 1 g 1 + + q s g s + r ahol vagy r = 0 vagy az r egyik tagja sem osztható a g i polinomok főtagjainak egyikével sem. Ha r 0, akkor r = f q 1 g 1 q s g s I, azaz lt f lti = ltg. Ebből az következik, hogy az f főtagja osztható egy G-beli polinom főtagjával, ami ellentmondás. Tehát r = 0 következik, és így f G. Egy gyűrűt Noether-félének nevezünk, ha balideálok nem-csökkenő lánca mindig stabilizálódik. Következmény 1.10.5 Ha F egy test akkor F[x 1,...,x n ] egy Noether-féle gyűrű.

Algebrai Algoritmusok 29 BIZONYÍTÁS. Legyen I 1 I 2 I k ideálok egy nem csökkenő lánca. Ekkor I = I k is egy ideál, és I, az előző eredmény értelmében, végesen generált: I = f 1,...,f s. Ekkor létezik m melyre f 1,...,f 2 I m teljesül, azaz, I = I m. Ekkor, I m = I m+1 =, azaz a lánc valóban stabilizálódik. 1.11. Gröbner bázisok Legyen I R egy ideál. A G I véges halmazt az I ideál Gröbner bázisának nevezzük, ha lt G = lti. Nyilván a Gröbner bázis definíciója függ a monomiális rendezéstől. Lemma 1.11.1 Egy ideál Gröbner bázisa gyűrűelmleti értelemben is bázisa az ideálnak. Továbbá, minden ideálnak van Gröbner bázisa. BIZONYÍTÁS. Az első állítás az 1.10.4 következményből adódik, míg a második állítás a 1.10.3 lemmából következik. Ígértük, hogy a korábban ismertetett maradékos osztás algoritmus Gröbner bázisokkal hatékony lesz. Lemma 1.11.2 Legyen G egy I ideál Gröbner bázisa, és legyen f R. Ekkor egyértelműen létezik olyan r polinom melyre f r I és az r egyetlen tagja sem osztható egyetlen lt G-beli monommal sem. BIZONYÍTÁS. A létezés az 1.9.5 lemma következménye. Tegyük fel, hogy f = h 1 +r 1 = h 2 +r 2 ahol h 1, h 2 I és r 1, r 2 R és az r 1, r 2 polinomok egyetlen tagja sem osztható egyetlen ltg-beli monommal sem. Ekkor r 1 r 2 = h 2 h 1 I, és lt (r 1 r 2 ) lt I. Mivel lt I = lt G, lt (r 1 r 2 ) osztható valamely lt g-vel, ahol g G. Mivel az r 1 r 2 polinom minden tagja vagy az r 1 vagy az r 2 polinomnak is tagja, kapjuk, hogy r 1 = r 2 = 0, azaz r 1 = r 2. Ha G egy ideál Gröbner bázisa, akkor, f R esetén f rem G jelöli az előző lemmában szereplő r maradékot. Következmény 1.11.3 Legyen G egy I ideál Gröbner bázisa, és legyen f I. Ekkor f I akkor és csakis akkor, ha f rem G = 0.

30 Polinomok Legyenek g, h R \ {0}, legyen α = (α 1,..., α n ) = mdeg g, legyen β = (β 1,...,β n ) = mdeg h, és legyen γ = (max(α 1, β 1 ),..., max(α n, β n )). Ekkor a g és h polinomok S-polinomja az S(g, h) = xγ ltg g xγ lt h h polinom. A következő lemma bizonyítása gyakorlat. Lemma 1.11.4 Ha g, h R \ {0}, akkor S(g, h) = S(h, g) és S(g, h) g, h. A következő állítás segítségével eldönthető, hogy egy véges halmaz Gröbner bázis vagy sem. Tétel 1.11.5 Egy véges halmaz G = {g 1,...,g s } R Gröbner bázisa az G ideálnak akkor és csakis akkor, ha S(g i, g j ) rem(g 1,..., g s ) = 0 minden 1 i < j s esetén. Példa 1.11.6 Tekintsük az I = f 1 = xy 2 + x, f 2 = x 2 y 1 ideált. Számítsuk ki az I ideál egy Gröbner bázisát. Legyen G = {f 1, f 2 } és határozzuk meg az S(f 1, f 2 ) polinomot: α = mdeg f 1 = (1, 2), β = mdeg f 2 = (2, 1), ezért γ = (max(α 1, β 1 ), max(α 2, β 2 )) = (2, 2). Ezért S(f 1, f 2 ) = xγ lt f 1 f 1 xγ ltf 2 f 2 = x2 y 2 xy 2 (xy2 + x) x2 y 2 x 2 y (x2 y 1) = x 2 + y. Látható, hogy az f 3 nem redukálható f 1 és f 2 szerint. Egy lehetséges mód a probléma feloldására, hogy a fenti S-polinomot elnevezzük f 3 -nak, és hozzáadjuk a G generátorrendszerhez: a továbbiakban legyen tehát G = {f 1, f 2, f 3 }. Az új G szerint az S(f 1, f 2 ) polinom a nulla polinommá redukálható. Határozzuk meg most a S(f 1, f 3 ) polinomot, majd redukáljuk G szerint: S(f 1, f 3 ) = x2 y 2 xy 2 (xy2 1) x2 y 2 x 2 = x 2 y 3 x 2 y 3 x 2 y = y 3 y. Az előző lépéshez hasonlóan, legyen f 4 = y 3 + y és legyen G = {f 1, f 2, f 3, f 4 }. Számítsuk most ki az S(f 3, f 4 ) polinomot majd redukáljuk G szerint: S(f 3, f 4 ) = x2 y 3 x 2 (x2 + y) x2 y 3 y 3 (y3 + y) = = y 4 x 2 y y 4 x 2 y yy 3 y 2 = x 2 y y 2 x 2 y y 2 + x 2 y 1 = y 2 1.

Algebrai Algoritmusok 31 Ha f 5 = y 2 + 1, akkor könnyű számolás mutatja, hogy a G = {f 1,...,f 5 } = {xy 2 + x, x 2 y 1, x 2 + y, y 3 + y, y 2 + 1} rendszerben minden S(f i, f j ) polinom a nulla polinommá redukálható. Tehát ekkor G a fenti ideál Gröbner bázisa. A fenti eljárás általánosítható, és az alábbi algoritmus segítségével egy ideál Gröbner bázisa meghatározható. Legyen X R egy véges részhalmaz és legyen I = X. 1.) Legyen G = X. 2.) Legyen S = {S(f i, f j ) remg ahol f i, f j G}. 3.) Ha S {0} akkor G = G S és vissza 2.)-re. 4.) Output G. Tétel 1.11.7 A fenti eljárás véges sok lépés után véget ér outputja pedig az I ideál egy Gröbner bázisa. BIZONYÍTÁS. Gyakorlat. Példa 1.11.8 A Gröbner bázis segítségével eldönthetjük, hogy egy adott polinom eleme-e egy ideálnak. Legyen I az előző példában szereplő ideál, és legyenek f = x 4 + x 2 y xy 3 xy és g = x 4 + x 2 y xy 3 xy. Redukáljuk először az f polinomot G szerint: f xy 3 xy 0. Tehát f I. Redukáljuk most a g polinomot: g 2x 2 y xy 3 xy xy 3 xy + 2 2xy + 2. Tehát, ebben az esetben g rem G 0, és a 1.11.3 következmény miatt, g I. Tekintsük a 1.11.6 példát, legyen G = {xy 2 + x, x 2 y 1, x 2 + y, y 3 + y, y 2 + 1} és I = G. Mivel G egy Gröbner bázis, kaljuk, hogy G = I and lt I = lt G = xy 2, x 2 y, x 2, y 3, y 2. Vegyük észre azonban, hogy a fenti generátorrendszer nem minimális generátorrendszere a lt I monomiális ideálnak, ugyanis például y 3 y 2, tehát y 3 elhagyható a lt I generátorai közül, és igy y 2 +1 is elhagyható a Gröbner bázisból. Hasonlóan megmutatható, hogy az x 2 y 1 és az xy 2 + x

32 Polinomok polinomok is elhagyhatók. Tehát, a {x 2 + y, y 2 + 1} halmaz is Gröbner bázisa I-nek. Egy ideál G Gröbner bázisát minimálisnak nevezünk, ha tetszőleges g G esetén ltg lt G \ {ltg}. Lemma 1.11.9 Minden ideálnak létezik minimális Gröbner bázisa. BIZONYÍTÁS. A lemma előtti gondolatmenetet kell alkalmazni. Egy ideál G Gröbner bázisát redukáltnak nevezzük, ha g G esetén g egyik tagja sem eleme a ltg \ {lt g}. Tekintsük a fenti I ideált. Ekkor x 2 +y 2 +y+1 I és a Gröbner bázis definíciójából következik, hogy G = {x 2 + y 2 + y + 1, y 2 + 1} is Gröbner bázisa I-nek. Mivel a G első elemének y 2 tagja osztható a második elem főtagjával, G nem redukált. Az x 2 +y 2 +y+1 polinom azonban redukálható az y 2 + 1 polinommal: x 2 + y 2 + y + 1 x 2 + y. A G ideál redukált. Tétel 1.11.10 Minden I R ideálnak van pontosan egy redukált Gröbner bázisa (egy fix monomiális rendezésre nézve). 1.12. Gröbner bázisok alkalmazásai A Gröbner bázisok egyik legfontosabb alkalmazását a polimomiális egyenletrendszerek megoldásánál találjuk. Példa 1.12.1 Tekintsük az f = (y 2 + 6)(x 1) y(x 2 + 1) és g = (x 2 + 6)(y 1) x(y 2 + 1) feletti polinomokat a Q test felett. Az f és g egyenletek meghatároznak két görbét: V (f) = {(x, y) f(x, y) = 0} and V (g) = {(x, y) g(x, y) = 0}. Határozzuk meg az V (f) V (g) metszetet. Először meghatározzuk az I = f, g Gröbner bázisát. A Gröbner bázis 3 polinomból áll: G = {x 2 5x+y 2 5y+12, y 2 x 5xy+6x+y 3 6y 2 +11y 6, y 4 6y 3 +15y 2 26y+24}.