Sunteți pe pagina 1din 212

INTRODUCERE

N ALGEBRA COMPUTAIONAL
APLICAII N GEOMETRIE, SISTEME DE ECUAII, CODURI
Horvth Alexandru
Memoriei prinilor mei
Prefa
A
ceast carte se dorete a o introducere ntr-un domeniu al
matematicii, care de abia i xeaz contururile: matematica
computaional. Pentru a risipi de la bun nceput nenelegerile,
trebuie precizat faptul, c sensul termenului "computaional" nu
se rezum aici la calcul numeric, i n nici un caz nu se refer la metode de
calcul numeric aproximativ.
Termenul "computaional" acoper n percepia autorului mai degrab
strdania de a face efective rezultatele clasice sau noi ale ntregii matema-
tici. Pentru a mai explicit, cititorul este invitat a se gndi spre exem-
plu la problema "calculului" structurii unui grup, sau chiar la problema
validrii/invalidrii unui enun, care exprim o proprietate de geometrie eu-
clidian plan, n limbaj clasic numit teorem.
Aceast strdanie de a face construciile ideatice ale matematicii ct mai
operaionale este favorizat cu succes de mijloacele de calcul din ce n ce mai
performante de care dispunem. Aceste mijloace ne permit, pe de o parte, s
implementm algoritmi din ce n ce mai sosticai, pe de alt parte, lrgesc
esenial aria experimentrilor n cercetarea fundamental matematic. Au-
torul s-a strduit ca acest impact al posibilitii calculelor efective impact
care foreaz chiar schimbarea de paradigme, i regndirea unor concepte fun-
damentale ale tiinei, cum ar o "demonstraie matematic" s transpar
ct mai pregnant n paginile acestei cri.
Algebra computaional reprezint un capitol relativ nou al matematicii,
dar sintagma simbolizeaz o direcie de dezvoltare recent deosebit de vi-
guroas a ntregii matematici. Momentul de natere evident convenional
i subiectiv poate considerat descoperirea bazei Grbner i a algoritmu-
lui de calcul al acesteia de ctre Bruno Buchberger n 1965. n clasicarea
capitolelor matematicii promovat de AMS, Societatea de Matematic Ame-
rican, se poate constata c dup versiunile din 1991, 2000, n recenta clasi-
care MSC2010 apare deja de peste 40 de ori sintagma "computaional", n
legtur cu, practic, toate capitolele majore ale matematicii, sugernd o am-
5
6
ploare deosebit a studiului aspectelor computaionale. Sintagma "algebr
computaional" se extinde generic, ntr-o oarecare msur, asupra tuturor
acestora, fapt care justic apariia n paginile unui aceluiai volum a diver-
sitilor de aplicaii, aa cum se ntmpl i n cazul volumului de fa.
Cartea conine, n afara unui capitol introductiv, trei capitole majore de-
dicate cte unui domeniu de aplicaie a algebrei computaionale.
Primul capitol vizeaz demonstrarea automat a teoremelor de geometrie
euclidian elementar, i se orienteaz oarecum ctre specializarea de "geome-
trie algebric computaional". Fundamentarea se constituie asfel din algebra
comutativ vzut dinspre geometria algebric.
Al doilea capitol trateaz subiectul mereu viu al rezolvrii sistemelor de
ecuaii polinomiale, studiu care n esen, ine tot de geometria algebric, ns
aici ne ocupm doar de cteva aspecte computaionale legate de descrierea
mulimii soluiilor, cu exemplicri preponderent pentru cazul numrului nit
de soluii.
Al treilea capitol vizeaz teoria codurilor algebrice corectoare de erori, care
se construiete pe teoria corpurilor nite, prin urmare pe ansamblu sucient
de mult algebr computaional pentru a inclus n aceast prezentare.
Capitolele sunt relativ independente, ns exist cel puin o punte de leg-
tur ntre ele: prezena efectiv i utilizarea bazei Grbner i a algoritmului de
calcul al acesteia. O caracteristic unitar a textului este prezena calculelor
efective prin prezentarea a numeroase exemple concrete. Aceste calcule sunt
efectuate n dou medii de programare folosite, pe alocuri, chiar i concomi-
tent. Este vorba de GAP i Singular, pachete de programe deosebite, accesi-
bile liber pe internet, utilizate n cercetarea matematic fundamental, rod al
efortului unor colective de matematicieni de prim rang i al unui numeros cerc
de utilizatori care contribuie i la permanenta dezvoltare a acestora. Cartea
nu conine ns nicio iniiere n folosirea acestora, documentaiile care nsoesc
aceste pachete sunt oricum accesabile de pe internet, cititorii dornici s testeze
exemplele prezentate pot oricnd s se lmureasc n privina chestiunilor de
sintax ale comenzilor, dar i de facilitile lor complete la zi. Capitolele sunt
nsoite de problemele propuse, a cror rezolvare implic i aceste programe.
n ncheierea acestei scurte prefee, datorez cititorului o mrturisire: cartea
de fa nu se nate neaprat i exclusiv din imperativul de a comunica expe-
riene acumulate, ci i din propria nevoie a autorului de a nva. Autorul
mprtete ideea c ncercarea de a-i nva pe alii este o cale de aprofun-
dare a cunotinelor proprii. Consider aadar ecare cititor al acestor pagini
drept un partener, care m nsoete n cltoria sper fascinant pe care o
propun prin rndurile de fa.
Autorul
Cuprins
Introducere 9
1 Teoreme de geometrie pe calculator 17
1.1 Concepte de baz . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.1.1 Polinoame cu mai multe variabile . . . . . . . . . . . . . 17
1.1.2 Varieti ane . . . . . . . . . . . . . . . . . . . . . . . 20
1.1.3 Ideale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.1.4 Inel factor. Inel de fracii. Localizare . . . . . . . . . . . 31
1.1.5 Legtura dintre varietile ane i ideale . . . . . . . . . 36
1.2 Construcia bazei Grbner . . . . . . . . . . . . . . . . . . . . . 41
1.2.1 mprirea polinoamelor cu o variabil . . . . . . . . . . 41
1.2.2 mprirea polinoamelor cu mai multe variabile . . . . . 45
1.2.3 Ideale monomiale . . . . . . . . . . . . . . . . . . . . . . 47
1.2.4 Baze Grbner . . . . . . . . . . . . . . . . . . . . . . . . 50
1.2.5 Algoritmul lui Buchberger . . . . . . . . . . . . . . . . . 52
1.3 Demonstraia teoremelor de geometrie . . . . . . . . . . . . . . 54
1.4 Aplicaii Exemple n Singular . . . . . . . . . . . . . . . . . . 56
1.5 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2 Rezolvarea sistemelor de ecuaii 69
2.1 Sisteme de ecuaii polinomiale . . . . . . . . . . . . . . . . . . . 69
2.1.1 Sisteme liniare . . . . . . . . . . . . . . . . . . . . . . . 70
2.1.2 Teorema lui Hilbert a zerourilor . . . . . . . . . . . . . . 71
2.1.3 Sisteme neliniare . . . . . . . . . . . . . . . . . . . . . . 74
2.1.4 Sisteme cu un numr nit de soluii . . . . . . . . . . . 75
2.2 Aplicaii Exemple in Singular . . . . . . . . . . . . . . . . . . 77
2.2.1 Sisteme de ecuaii liniare . . . . . . . . . . . . . . . . . 77
2.2.2 Sisteme de ecuaii neliniare . . . . . . . . . . . . . . . . 81
2.3 Rezolvarea numeric a unui sistem nepolinomial . . . . . . . . . 95
2.3.1 Exemplu cu aproximare Bernstein . . . . . . . . . . . . 96
7
8 CUPRINS
2.3.2 Exemplu cu aproximare spline . . . . . . . . . . . . . . 98
2.4 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3 Coduri corectoare de erori 105
3.1 Un exemplu concret . . . . . . . . . . . . . . . . . . . . . . . . 106
3.1.1 O prim utilizare a programului GAP n coduri . . . . . 109
3.2 Corpuri nite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.2.1 O problem de concurs n informatic . . . . . . . . . . 112
3.2.2 Construirea corpurilor nite . . . . . . . . . . . . . . . . 119
3.2.3 Caracteristica unui corp nit . . . . . . . . . . . . . . . 126
3.2.4 Grupul multiplicativ al unui corp nit . . . . . . . . . . 127
3.2.5 Unicitatea corpurilor nite . . . . . . . . . . . . . . . . 129
3.2.6 Automorsmele unui corp nit . . . . . . . . . . . . . . 131
3.2.7 Existena unui corp cu p
n
elemente . . . . . . . . . . . . 136
3.2.8 Polinoame ireductibile . . . . . . . . . . . . . . . . . . . 138
3.2.9 Polinomul minimal i baza Grbner . . . . . . . . . . . 143
3.3 Coduri corectoare de erori . . . . . . . . . . . . . . . . . . . . . 147
3.3.1 Concepte de baz . . . . . . . . . . . . . . . . . . . . . . 149
3.3.2 Margini pentru coduri generale . . . . . . . . . . . . . . 151
3.4 Coduri liniare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
3.4.1 Margini pentru coduri liniare . . . . . . . . . . . . . . . 159
3.4.2 Codicarea i decodicarea codurilor liniare . . . . . . . 160
3.5 Coduri liniare speciale . . . . . . . . . . . . . . . . . . . . . . . 162
3.5.1 Coduri Hamming . . . . . . . . . . . . . . . . . . . . . . 163
3.5.2 Coduri liniare ciclice . . . . . . . . . . . . . . . . . . . . 165
3.5.3 Coduri BCH . . . . . . . . . . . . . . . . . . . . . . . . 177
3.5.4 Baza Grbner i decodicarea codurilor BCH . . . . . . 182
3.5.5 Coduri Reed-Solomon . . . . . . . . . . . . . . . . . . . 185
3.6 Aplicaii exemple n GAP - GUAVA . . . . . . . . . . . . . . 186
3.6.1 Utilizarea codurilor . . . . . . . . . . . . . . . . . . . . . 201
3.7 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Bibliograe 205
List de guri 209
Glosar 210
Introducere
S
ncepem cu sfritul. Pentru a incita curiozitatea cititoru-
lui presupunem c am parcurs deja cteva zeci de pagini de
teorie i am ajuns la aplicaii. S ilustrm deci, ce tiu algorit-
mii pe care i vom cunoate n continuare, i la ce rezultate ne
vor conduce fundamentrile teoretice care urmeaz.
Prima problem pe care o considerm este problema rezolvrii sistemelor
de ecuaii algebrice. Iat i cteva exemple.
Considerm mai nti un sistem liniar.
_

_
x y z u + 2v = 3
2x + y z u 3v = 3
3x + 2y + z + 2u + v = 1
4x + y z 3u + 3v = 9
x + y + z + u + v = 2
Se tie c, metoda lui Gauss de rezolvare a unui asemenea sistem de ecuaii
const n eliminarea pe rnd a variabilelor, mai precis, se exprim o variabil
dintr-o ecuaie, apoi se nlocuiete n (se elimin din) celelalte ecuaii, i se
repet acest pas, pn cnd se termin variabilele, sau ecuaiile. n cazul
nostru se obine cam aa ceva:
_

_
x + y + z + u + v = 2
3y + 5z + 7u + v = 1
z 4u + 5v = 16
3u v = 7
v = 1
Sistemul iniial se transform astfel ntr-un sistem "triunghiular", care se
rezolv prin determinarea valorilor variabilelor exprimate, n ordine invers.
9
10 Introducere
Aceste valori sunt:
_

_
v = 1
u = 2
z = 3
y = 1
x = 1.
Frumuseea este faptul c acest rezultat a fost obinut de un algoritm
implementat ntr-un pachet de software specializat pentru algebr i geometrie
algebric computaional, Singular. Acesta este disponibil gratuit pe internet.
Programul scris n Singular pentru rezolvarea sistemului de mai sus este
urmtorul:
ring R=0,(x,y,z,u,v),lp;
poly p1=x-y-z-u+2v-3;
poly p2=2x+y-z-u-3v+3;
poly p3=3x+2y+z+2u+v-1;
poly p4=4x+y-z-3u+3v-9;
poly p5=x+y+z+u+v-2;
ideal I=p1,p2,p3,p4,p5;
groebner(I);
LIB "solve.lib";
solve(I);
Instruciunea cheie este groebner, cea care face triangularizarea sistemului.
Despre algoritmul care se a n spatele acesteia vom mai vorbi pe larg n
capitolele ce urmeaz. Instruciunea solve calculeaz soluiile n mulimea
numerelor complexe, i are n spate i metode numerice aproximative de calcul.
S lum un alt exemplu. Se dau dou (sau mai multe) polinoame de o
singur variabil. Se cere cel mai mare divizor comun al lor.
Iat un exemplu concret. S se calculeze cel mai mare divizor comun al
polinoamelor:
_

_
p
1
= x
20
1,
p
2
= x
120
1,
p
3
= x
5
+x
4
+x
3
+x
2
+x + 1.
Nimic deosebit, strvechiul algoritm al lui Euclid se descurc cu aceast
problem: am putea calcula cel mai mare divizor comun al lui p
1
i p
2
, apoi
cel mai mare divizor comun al acestuia cu p
3
, i avem rezultatul.
Noi vom folosi totui o alt metod. Scriem n Singular urmtorul program:
Introducere 11
ring R=0,x,lp;
poly p1=x^20-1;
poly p2=x^120-1;
poly p3=x^5+x^4+x^3+x^2+x+1;
ideal I=p1,p2,p3;
groebner(I);
Instruciunea cheie este tot groebner, i ne furnizeaz rezultatul:
(p1, p2, p3) = x + 1.
Partea cea mai spectaculoas ns de-abia acum ncepe. Considerm un
sistem de ecuaii polinomiale neliniar. Ne propunem spre exemplu s rezolvm
urmtorul sistem:
_

_
x
3
3xy + 3z
2
= 1
x
2
z + 3yz
2
z
2
= 3
x
2
z + 2y
2
+z
3
= 2
Poate prea chiar incredibil, dar exist algoritm de rezolvare "exact" pen-
tru astfel de sisteme! Ghilimelele la termenul exact se refer la faptul, c
rezolvarea acestui sistem se reduce la rezolvarea unei ecuaii polinomiale de o
singur variabil, de grad superior.
Se tie c formule de rezolvare implicnd pe lng operaiile de baz
i extragerea de rdcin i.e. exprimarea explicit a soluiei ecuaiei cu
ajutorul coecienilor, exist doar pentru ecuaii de ordin 4 inclusiv. Este
clar, c situaia pentru sisteme de ecuaii algebrice neliniare nu poate mai
bun dect pentru ecuaii de o singur necunoscut. Faptul ns, c rezolvarea
sistemelor cu mai multe necunoscute se reduce la rezolvarea ecuaiilor, este cu
totul remarcabil.
Iat i programul de rezolvare, scris n Singular, precum i rezultatul:
ring R=0,(x,y,z),lp;
poly p1=x3-3xy+3z2-1;
poly p2=x2z+3yz2-z2-3;
poly p3=-x2z+2y2+z3-2;
ideal I=p1,p2,p3;
groebner(I);
LIB "solve.lib";
solve(I);
12 Introducere
_

_
729z
21
+ 2916z
20
3645z
19
14094z
18
25677z
17
32400z
16
31482z
15
+ 16344z
14
+ 88686z
13
+ 42056z
12
118191z
11
199656z
10
75580z
9
+ 89238z
8
+ 151884z
7
+129122z
6
+ 48708z
5
16038z
4
41256z
3
17496z
2
+ 5832 = 0
2232410395758457512330353365018920y
+62953278157657061878263952050306z
20
+328637503773493952207748257766195z
19
62397440973359733749716933302465z
18
1771894988021516305832097520091391z
17
3282192153596917521513297834207264z
16
4853135198394541361739678228691389z
15
4781168509603021473439992260622447z
14
475503506424356564667271411785366z
13
+10895074263712307248945699738718043z
12
+10885321992788471886332698014740002z
11
10048957321797036014384419174098447z
10
29016557864084728430842957672957731z
9
20818642913693083613050943983927706z
8
+7370805159208119974747905321937016z
7
+22490449340981635887207889673569842z
6
+24423399071228492619080343470514460z
5
+11594581064876178787291365792620682z
4
1477844013372536320473869906881950z
3
7325270924681631854820377218307094z
2
6896584960128782739286342791723108z
+526517724286697003778697349660892 = 0
43182x
481824y
6
z 481824y
6
+ 1058076y
5
z
2
+1384380y
5
z + 165696y
5
240912y
4
z
4
+649494y
4
z
3
+ 1802826y
4
z
2
+ 2173528y
4
z
+1927296y
4
+ 529038y
3
z
5
+ 449790y
3
z
4
806016y
3
z
3
524802y
3
z
2
3004020y
3
z
1845048y
3
+ 445203y
2
z
6
+ 901413y
2
z
5
+1167564y
2
z
4
+ 598378y
2
z
3
2073066y
2
z
2
1286810y
2
z 4290012y
2
121200yz
7
444432yz
6
+98967yz
5
524238yz
4
+ 105078yz
3
547668yz
2
+1619640yz + 1679352y + 40400z
7
305323z
6
375117z
5
251184z
4
2051753z
3
+ 390696z
2
419288z + 2844540 = 0
Introducere 13
Am inclus aici sistemul transformat, mai mult pentru a impresiona i toto-
dat pentru a crea un sentiment de admiraie vizavi de algoritmul care poate
realiza aceast performan.
S observm c prima ecuaie conine doar necunoscuta z i este o ecuaie
algebric de gradul 21, deci are 21 de rdcini. Remarcabil este acum faptul,
c a doua ecuaie conine un singur y, i n rest numai puteri ale lui z (evident
cu exponent cel mult 20)! Aadar pentru ecare valoare a lui z, avem i cte
un y. n sfrit a treia ecuaie are un singur x, i ceilali termeni l conin
numai pe y i z.
Astfel problema rezolvrii sistemului iniial s-a transformat n problema re-
zolvrii unui sistem "triunghiular" (n sensul celor spuse mai sus) i practic s-a
redus la problema rezolvrii unei ecuaii algebrice de grad superior. n acest
moment pot intra pe scen clasicele metode de rezolvare numeric aproxi-
mativ a ecuaiilor algebrice. Pachetul Singular conine asemenea metode.
Soluiile sistemului arat cam aa:
x y z
1 0.072062 + i 0.952039 0.94443 i 0.648006 1.070608 + i 0.57375
2 0.072062 i 0.952039 0.94443 + i 0.648006 1.070608 i 0.57375
3 0.848005 + i 1.618178 0.483605 + i 0.669006 0.349704 i 1.574377
4 0.848005 i 1.618178 0.483605 i 0.669006 0.349704 + i 1.574377
5 0.721738 + i 0.179155 1.119805 + i 0.183733 0.101215 i 0.78752
6 0.721738 i 0.179155 1.119805 i 0.183733 0.101215 + i 0.78752
7 0.0229623 + i 1.663995 1.199549 i 0.368324 0.353684 i 0.663838
8 0.0229623 + i 1.663995 1.199549 + i 0.368324 0.353684 + i 0.663838
9 0.447467 + i 2.451932 1.6714 i 0.721403 0.657404 i 0.492356
10 0.447467 i 2.451932 1.6714 + i 0.721403 0.657404 + i 0.492356
11 1.418637 i 0.490479 0.733779 i 0.72217 0.781963 i 1.030973
12 1.418637 + i 0.490479 0.733779 + i 0.72217 0.781963 + i 1.030973
13 1.367663 i 1.832259 1.053835 i 1.465191 0.790929 i 0.824253
14 1.367663 + i 1.832259 1.053835 + i 1.465191 0.790929 + i 0.824253
15 0.697941 + i 0.407091 1.229042 i 0.0362325 1.107462 i 0.135097
16 0.697941 i 0.407091 1.229042 + i 0.0362325 1.107462 + i 0.135097
17 2.673561 0.393312 2.784784
18 1 1 1
19 2.03556 1.414218 0.51581
20 2.097668 1.4258 0.497463
21 4.344962 1.795171 4.458227
Remarcai soluia 18, ea este un fel de control, ntruct ea a fost de la
nceput ncorporat n sistemul de ecuaii: coecienii au fost alei astfel ca
aceasta s e una din soluii.
14 Introducere
Urmtorul exemplu pe care-l amintim aici este problema gsirii ecuaiei
implicite pentru curbe n plan i suprafee n spaiu.
Fie spre exemplu curba din plan dat prin ecuaiile parametrice
_
x =
t
2
1
t
2
+1
y =
2t
t
2
+1
Problema este gsirea ecuaiei implicite a acestei curbe. Iat soluia dat de
"calculator" prin intermediul programului de mai jos care apeleaz evident
instruciunea atotcuprinztoare groebner:
ring R=0,(t,x,y),(dp(1),dp(2));
ideal I=(t2+1)*x-t2+1,(t2+1)*x-2t;
J=groebner(I);
J[1];
Se obine conform ateptrilor ecuaia cercului: x
2
+y
2
= 1.
Pn aici nimic spectaculos. Dar dac curba este dat de ecuaiile urmtoare?
_
x =
t
4
+t
2
t1
t
4
+t
2
+1
y =
t
3
t+2
t
4
+t
2
+1
Acum ecuaia implicit este:
90701x
16
+ 447554x
15
y + 2023428x
14
y
2
+ 4503660x
13
y
3
+ 10096072x
12
y
4
+
10447462x
11
y
5
+ 17470008x
10
y
6
+ 16556976x
9
y
7
+ 20935280x
8
y
8
+
17106146x
7
y
9
+ 14775850x
6
y
10
+ 8973146x
5
y
11
+ 5150058x
4
y
12
+
2114208x
3
y
13
+774389x
2
y
14
+172476xy
15
+32361y
16
+34047x
15
288034x
14
y+
60178x
13
y
2
1200159x
12
y
3
+1927237x
11
y
4
10014527x
10
y
5
5322620x
9
y
6

18463460x
8
y
7
13965529x
7
y
8
17943051x
6
y
9
11235129x
5
y
10
7848518x
4
y
11
3443299x
3
y
12
1471855x
2
y
13
320929xy
14
76567y
15
+ 10354x
14

123155x
13
y + 629218x
12
y
2
1674363x
11
y
3
+ 3241421x
10
y
4
3527140x
9
y
5
+
1668464x
8
y
6
3208231x
7
y
7
+ 1533200x
6
y
8
+ 211816x
5
y
9
+ 1087280x
4
y
10
+
743647x
3
y
11
+ 514924x
2
y
12
+ 60620xy
13
+ 30884y
14
106x
13
+ 2650x
11
y
2

3922x
10
y
3
23956x
9
y
4
+57452x
8
y
5
+60526x
7
y
6
252068x
6
y
7
+35616x
5
y
8
+
313336x
4
y
9
107590x
3
y
10
101866x
2
y
11
+13390xy
12
+3693y
13
+106y
12
= 0.
Suprafaa dat parametric
_

_
x =
u
2
+v
u
4
+v
2
+1
y =
uv
u
4
+v
2
+1
z =
uv
2
u
4
+v
2
+1
Introducere 15
are ecuaia implicit:
3x
8
4x
7
y + 4x
6
y
2
+ 82x
5
y
3
+ 173x
4
y
4
+ 182x
3
y
5
+ 122x
2
y
6
+ 50xy
7
+ 9y
8

12x
6
yz 110x
5
y
2
z 272x
4
y
3
z 342x
3
y
4
z 248x
2
y
5
z 98xy
6
z 16y
7
z +
10x
6
z
2
+40x
5
yz
2
+112x
4
y
2
z
2
+178x
3
y
3
z
2
+160x
2
y
4
z
2
+80xy
5
z
2
+20y
6
z
2

4x
4
yz
3
34x
3
y
2
z
3
56x
2
y
3
z
3
44xy
4
z
3
16y
5
z
3
+3x
4
z
4
+12x
3
yz
4
+24x
2
y
2
z
4
+
24xy
3
z
4
+12y
4
z
4
2x
7
+6x
6
y +28x
5
y
2
+46x
4
y
3
+22x
3
y
4
18x
2
y
5
22xy
6

6y
7
2x
6
z 28x
5
yz 44x
4
y
2
z 12x
3
y
3
z +36x
2
y
4
z +40xy
5
z +16y
6
z +2x
5
z
2
+
6x
4
yz
2
22x
3
y
2
z
2
48x
2
y
3
z
2
50xy
4
z
2
24y
5
z
2
+2x
4
z
3
+8x
3
yz
3
+22x
2
y
2
z
3
+
28xy
3
z
3
+20y
4
z
3
+4x
4
y
2
+4x
3
y
3
+3x
2
y
4
+4xy
5
+3y
6
8x
3
y
2
z 12x
2
y
3
z
18xy
4
z 12y
5
z + 4x
2
y
2
z
2
+ 8xy
3
z
2
+ 11y
4
z
2
2xy
4
2y
5
+ 2y
4
z = 0.
S mai vedem o aplicaie, de data aceasta una de cu totul alt tip: demon-
straia automat a teoremelor de geometrie euclidian plan.
Iat i aici un exemplu, prezentat fr pregtirile necesare nelegerii de-
taliilor.
// Problem:
// Fie ABCD un ptrat. mprim
// latura CD n 3 pri egale:
// DE=EF=FC.
// Dreapta AE taie latura BC n punctul G.
// Fie H mijlocul segmentului AG.
// Atunci:
// DH este jumtate din diagonala ptratului.
// (Sursa: N.M.Examen Fac. Mat. Bucureti,
// 1961,enun parial)
Problema de geometrie se trensform n limbaj algebric, folosind un sistem
de coordonate. Aici am ales drept axe laturile AB i AD ale ptratului.
Programul scris n Singular arat astfel:
// u - latura ptratului
// ...aadar coordonatele vrfurilor ptratului sunt:
// A(0,0), B(u,0), C(u,u), D(0,u)
// Considerm punctele
// E(x1,u), G(u,x2), H(x3,x4)
// i transpunem condiiile geometrice:
// h1 - condiia de coliniaritate a punctelor A,E,G.
// h2 - condiia de coliniaritate a punctelor A,H,G.
// h3 - H mijlocul segmentului AG.
// h4 - DE este 1/3 din DC.
// g - concluzia: DH este jumtatea diagonalei.
16 Introducere
A u B
D C E F
G
H
Figura 1: Problema
ring R=(0,u),(x1,x2,x3,x4,y),lp;
poly h1=x1*x2-u^2;
poly h2=x2*x3-u*x4;
poly h3=x2^2-2*x2*x4-2*u*x3+u^2;
poly h4=3*x1-u;
poly g=2*x3^2+2*x4^2-4*u*x4+u^2;
ideal I=(h1,h2,h3,h4,1-y*g);
groebner(I);
Dac instruciunea-minune groebner ntoarce rezultatul 1, atunci teorema
este adevrat, n caz conrar este fals! Pentru problema noastr rezultatul
este 1, deci teorema este demonstrat!
Considerm, c aceste exemple sunt mai mult ca suciente pentru a motiva
coninutul paginilor ce urmeaz.
Capitolul 1
Teoreme de geometrie
demonstrate pe calculator
G
eometria este una din cele mai vechi ramuri ale matematicii.
Simbioza ei cu aritmetica dateaz nc din antichitate. Leg-
turile strnse i fecunde cu algebra sunt mai noi, i au la origine
coordonatizarea descoperit de Descartes.
n acest capitol va vorba de legturi descoperite mai recent, denumite astzi
geometrie algebric. Vom face o introducere n geometria algebric com-
putaional, care se bazeaz esenial pe teoria bazelor Grbner . Contextul
general va n acelai timp algebric i geometric. Din punct de vedere al-
gebric, obiectele de studiu vor idealele inelelor de polinoame cu mai multe
variabile, iar din punct de vedere geometric, varietile ane sau proiective.
1.1 Concepte de baz

n aceast seciune reamintim cteva concepte de baz ale algebrei poli-


noamelor cu mai multe variabile, precum i a noiunilor geometrice aferente
acestora, a varietilor algebrice.
1.1.1 Polinoame cu mai multe variabile
Polinoamele sunt expresii algebrice construite din variabile i numere (coe-
cieni) cu ajutorul operaiilor de adunare, scdere i nmulire.
Prin urmare aceste trei operaii se pot efectua nengrdit i ntre poli-
noame. Pentru a putea ncerca mprirea (cu rest) a polinoamelor este con-
venabil ca ntre coecienii acestora s dispunem i de mprire nengrdit,
17
18 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
n termeni tehnici mulimea coecienilor este bine s formeze un corp de
numere. Corpurile de numere cele mai familiare sunt:
corpul numerelor raionale Q
corpul numerelor reale R
corpul numerelor complexe C
corpri de numere algebrice, ex. Q(

2)
corpuri nite, ex. Z
2
, Z
3
, Z
5
.
Aceste corpuri de numere le vom avea n vedere i n realizarea computaio-
nal a polinoamelor. Ocazional, vor mai apare i corpuri de fracii raionale,
dar ele vor avea o prezentare satisfctoare n locul respectiv.
n cele ce urmeaz cititorul este invitat s gndeasc n primul rnd corpul
numerelor complexe drept corp al coecienilor.
Deniia 1.1.1. Un monom n variabilele x
1
, x
2
, . . . , x
n
este un produs de
forma
x

= x

1
1
x

2
2
x

n
n
,
unde exponenii sunt ntregi nenegativi. Suma acestora || =
1
+
2
+ +
n
se numete gradul total al monomului.
Dm acum o deniie formal pentru noiunea de polinom.
Deniia 1.1.2. Un polinom f n variabilele x
1
, x
2
, . . . , x
n
cu coecieni n
corpul k este o combinaie liniar nit de monoame, cu coecieni din k,
adic
f =

, a

k,
unde = (
1
,
2
, . . . ,
n
). Mulimea acestor polinoame se noteaz cu k[x] =
k[x
1
, x
2
, . . . , x
n
].
Urmtoarea deniie practic xeaz o terminologie.
Deniia 1.1.3. Fie f =

un polinom n k[x].
Numrul a

k se numete coecientul lui x

.
Dac a

= 0, a

se numete termen al polinomului.


Gradul polinomului, notat deg(f) este max

{||; = 0}.
1.1. CONCEPTE DE BAZ 19
Deniia 1.1.4. Se numete spaiu an n-dimensional peste corpul k
k
n
= {(a
1
, a
2
, . . . , a
n
); a
i
k, i = 1, 2, . . . , n}.
Cu ajutorul unui polinom de n variabile putem deni o funcie pe spaiul an
n-dimensional, folosind "formula" polinomului pentru calculul valorii funciei.
Mai exact polinomul f =

din k[x
1
, x
2
, . . . , x
n
] denete o funcie
f : k
n
k,
prin asocierea lui (a
1
, a
2
, . . . , a
n
) cu f(a
1
, a
2
, . . . , a
n
), valoare a polinomului ce
se obine prin nlocuirea lui x
1
cu a
1
, a lui x
2
cu a
2
, etc.
Se pune imediat ntrebarea, n ce msur polinomul i funcia polinomial
asociat se determin reciproc? ntruct diferenei polinoamelor corespunde
diferena funciilor, i polinomul nul (cu toi coecienii nuli) denete evident
funcia identic nul, ntrebarea de mai sus se reformuleaz astfel: exist oare
polinoame nenule, care s deneasc funcia polinomial identic nul?
Rspunsul la aceast ntrebare este negativ cum ne ateptm de altfel
doar n cazul corpurilor innite. Dac un corp k este nit, i spre exemplu are
n elemente, c
1
, c
2
, . . . , c
n
, atunci polinomul f(x) = (xc
1
)(xc
2
) (xc
n
)
are gradul n, deci este nenul n k[x], i evident denete funcia polinomial
nul pe k.
Are loc deci urmtoarea propoziie.
Propoziia 1.1.5. Fie k un corp innit i f k[x
1
, x
2
, . . . , x
n
] un polinom.
Atunci f = 0 n k[x
1
, x
2
, . . . , x
n
] dac i numai dac f : k
n
k, este funcia
identic nul.
Demonstraie. Dac polinomul este nul, funcia polinomial este evident nul.
Invers, raionamentul este o inducie dup numrul variabilelor n. Pentru n =
1 e polinomul de grad m,
f = c
m
x
m
+c
m1
x
m1
+ +c
1
x +c
0
.
Corpul k ind innit, putem considera m + 1 valori, a
0
, a
1
, . . . , a
m
, disticte
dou cte dou. Presupunnd, c funcia polinomial este nul, egalitile
f(a
0
) = 0, f(a
1
) = 0, . . . , f(a
m
) = 0 formeaz un sistem de ecuaii omogen,
necunoscutele ind cei m coecieni ai polinomului. Determinantul acestui
sistem este

a
m
0
a
m1
0
. . . a
0
1
a
m
1
a
m1
1
. . . a
1
1
. . . . . . . . . . . . . . .
a
m
m
a
m1
m
. . . a
m
1

i<j
(a
i
a
j
) = 0,
20 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
un determinant de tip Vandermonde, diferit de 0. Prin urmare singura soluie
a sistemului este cel nul, deci toi coecienii polinomului, n concluzie i poli-
nomul, este 0.
Pasul inductiv este simplu, i este lsat pe seama cititorului.
1.1.2 Varieti ane
Trecnd la punctul de vedere geometric, trebuie s ncepem cu o deniie
fundamental.
Deniia 1.1.6. Fie f
1
, f
2
, . . . , f
m
polinoame n variabilele x
1
, x
2
, . . . , x
n
cu
coecieni n corpul k. Se numete varietate an denit de aceste polinoame,
mulimea zerourilor comune ale lor, adic mulimea notat V (f
1
, f
2
, . . . , f
m
)
dat prin
{(a
1
, a
2
, . . . , a
n
) : f
i
(a
1
, a
2
, . . . , a
n
) = 0, pentru orice i = 1, 2, . . . , m}.
Pentru a accentua caracterul geometric al acestei noiuni s considerm
nite exemple, pentru care putem face i reprezentri grace. Va trebui deci
s considerm corpul k = R al scalarilor reali.
Iat mai nti cteva exemple de varieti plane.
Exemplul 1.1.7.
Figura 1.1: V (xy (x2 +y2 25)) i V (xy(x3 20x 15 y2))
Iat i programul Singular cu care am obinut reprezentarea grac din gura
alturat 1.1.2. n exemplele care urmeaz se schimb doar rndul n care se
denete idealul I generat de polinomul corespunztor exemplului.
LIB "surf.lib";
ring R=0,(x,y),dp;
ideal I=xy*(x2+y2-25);
plot(I);
1.1. CONCEPTE DE BAZ 21
n exemplul de mai sus, factorul xy are un dublu rol. El reprezint pe de
o parte componente ale varietii algebrice, dar are i rolul unui "truc", prin
care am inclus axele de coordonate n varietatea algebric reprezentat.
Iat acum cteva exemple de varieti n spaiu. Acestea pot puncte,
curbe, sau suprafee, respectiv reuniuni ale acestora. n general zerourile unui
polinom cu trei variabile reale este o suprafa. Programul surf apelat din
Singular este capabil s reprezinte gracul acestor suprafee chiar din ecuaia
lor implicit.
Exemplul 1.1.8.
Figura 1.2: V (x2 y2 +z2) i V (x2y z2), "Withney umbrella."
Exemplele care urmeaz prezint singulariti izolate ale unor suprafee.
Exemplul 1.1.9.
Figura 1.3: V (z3 zx2 +y2) i V (z4 zx2 +y2)
22 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
n nal cteva suprafee de interes special. Mai nti o suprafa cuartic
(ecuaie de grad 4), avnd numrul maxim de singulariti.
Apoi o serie de suprafee de interes pentru clasicarea singularitiilor
suprafeelor complexe (aici varianta lor n spaiul real). Prima este o sin-
gularitate de tip A
3
. Ecuaia implicit a unei singulariti de tipul A
k
este
A
k
= V (x
k+1
y2 z2), k >= 1. Aici k = 3.
Exemplul 1.1.10. O quartic
C = V (x4 +y4 +z4 + 1 x2 y2 z2 y2z2 z2x2 x2y2),
respectiv singularitatea de tipul
A
k
= V (x
k+1
y2 z2), k >= 1.
Figura 1.4: O quartic i A
3
= V (x
3
y2 z2).
Exemplul 1.1.11. Iat i celelalte singulariti de tip ADE.
D
k
= V (x(x
k2
+y2) +z2).
E
6
= V (x4 +y3 +z2).
E
7
= V (y(x3 +y2) +z2).
E
8
= V (x5 +y3 +z2).
Figura 1.5: D
5
= V (x(x
3
+y2) +z2) i E
6
= V (x4 +y3 +z2).
1.1. CONCEPTE DE BAZ 23
Figura 1.6: E
7
= V (y(x3 +y2) +z2) i E
8
= V (x5 +y3 +z2).
Revenind la aspecte teoretice, s ne aducem aminte de ntrebrile pe care
le punem n legtur cu problema rezolvrii unui sistem de ecuaii liniare:
Are sistemul soluii sau nu (sunt ecuaiile sistemului compatibile)? Dac are,
atunci are o singur soluie, sau mai multe (sistemul este determinat, sau
nedeterminat)?
Pentru un sistem de ecuaii polinomiale neliniar, deci n legtur cu o
varietate algebric, ntrebrile se formuleaz similar:
Sunt ecuaiile compatibile sau nu?
Dac sistemul este compatibil, are un numr nit de soluii sau nu?
Dac numrul soluiilor nu este nit, care este dimensiunea geometric
a mulimii soluiilor (numrul parametrilor liberi independeni)?
Pentru a contura rspunsuri la aceste ntrebri, mai avem nevoie de un
concept de baz, cel introdus n seciunea urmtoare.
Mai nainte ns, s vedem ce operaii putem face cu varietile algebrice?
Mai concret, este reuniunea, respectiv intersecia a dou varieti algebrice
tot o varietate algebric? Rspunsul este dat n urmtoarea propoziie.
Propoziia 1.1.12. Fie V i W varieti ane n k
n
. Atunci V W i V W
sunt varieti ane.
Demonstraie. Demonstraia acestor proprieti este una constructiv. Putem
da explicit sistemul de ecuaii polinomiale, ale cror soluii sunt reuniunea,
respectiv intersecia celor dou varieti. Fie V = V (f
1
, f
2
, . . . , f
k
) i W =
V (g
1
, g
2
, . . . , g
l
). Atunci:
V W = V (f
i
g
j
; i = 1, . . . , k, j = 1, . . . , l)
V W = V (f
1
, f
2
, . . . , f
k
, g
1
, g
2
, . . . , g
l
).
24 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Este clar c V, W V (f
i
g
j
), deci V W V (f
i
g
j
). Invers, e
(a
1
, a
2
, . . . , a
n
) V (f
i
g
j
) pentru orice i, j. Dac acest punct este n V , atunci
V (f
i
g
j
) V W. Dac ns acest punct nu se a n V , atunci pentru m-
car un indice i
0
avem f
i
0
(a
1
, a
2
, . . . , a
n
) = 0. ns f
i
0
g
j
(a
1
, a
2
, . . . , a
n
) = 0
pentru orice j, deci g
j
(a
1
, a
2
, . . . , a
n
) = 0 pentru orice j, ceea ce arat c
(a
1
, a
2
, . . . , a
n
) W. Prin urmare V (f
i
g
j
; i = 1, . . . , k, j = 1, . . . , l) V W.
Cealalt egalitate este imediat.
1.1.3 Ideale
Vom introduce n aceast seciune, corespondentul algebric al conceptului ge-
ometric de varietate an. Acesta este conceptul de ideal.
S ncepem cu deniia conceptului abstract de inel.
Deniia 1.1.13. O mulime A nzestrat cu o operaie de adunare notat

, i o operaie de nmulire compatibil cu aceasta (distributiv fa de


aceasta) notat

, pentru care (A, +) este grup comutativ, i (A, ) este semi-


grup, se numete inel .
Inelul este comutativ dac nmulirea este comutativ, i este unitar, dac
nmulirea are element unitate.
n cele ce urmeaz prin inel vom nelege un inel comutativ i unitar, fr
a mai preciza explicit aceste proprieti.
Observaia fundamental pentru contextul nostru este formulat n urm-
toarea propoziie:
Propoziia 1.1.14. Fie k un corp comutativ. Atunci k[x
1
, x
2
, . . . , x
n
] este un
inel comutativ.
Demonstraie. Vericarea proprietilor care denesc structura de inel este
imediat i este lsat pe seama cititorului.
S remarcm faptul c singura diferen n deniia unui inel fa de
deniia unui corp este c aici nu mai pretindem existena unui invers pentru
ecare element nenul. Altfel spus, un corp este un inel n care ecare element
nenul este inversabil. Rezult de aici c problemele legate de divizibilate i
gsesc ca mediu general i abstract de studiu, structura de inel.
O prim clasicare a elementelor unui inel este dat prin intermediul con-
ceptelor urmtoare:
Deniia 1.1.15. Fie A un inel comutativ i unitar. Un element f A, f = 0
se numete divizor al lui 0 dac exist g A, g = 0 astfel nct f g = 0.
1.1. CONCEPTE DE BAZ 25
Un element f A, f = 0 se numete inversabil sau unitate dac exist
g A, g = 0 astfel nct f g = 1.
Un element nenul, care nu este divizor al lui zero se numete regulat. Un
inel n care nu exist divizori ai lui zero se numete domeniu de integritate.
Evident, elementele inversabile sunt i regulate. De asemenea este uor
de vzut c ntr-un inel nit orice element regulat f, este inversabil. Pentru
aceasta este sucient s considerm aplicaia : A A dat de (g) = fg.
Din fg = fh rezult f(g h) = 0 deci g h = 0, sau g = h. Aadar
este injectiv, deci i surjectiv, de unde rezult c exist b A astfel ca
f(b) = ab = 1, ceea ce nseamn c a este inversabi.
Denim acum conceptul de ideal.
Deniia 1.1.16. O submulime nevid I A al inelului A se numete ideal
dac are proprietile
(1) Dac f, g I atunci f g I.
(2) Dac f I i h A, atunci hf I.
O prim observaie imediat este faptul c n deniie n locul condiiei
f g I, se poate lua echivalent condiia f +g I. De asemenea, se vede c
elementul 0 face parte din orice ideal.
O dat cu denirea unui concept se pune automat problema caracterizrii
obiectelor pe care aceast concept le descrie. Altfel spus, este natural s dm
exemple caracteristice de ideale. S menionm totui, c aceast abordare,
dei tipic pentru orice prezentare, ascunde ideile care au dus la cristalizarea
treptat a conceptului respectiv, i nici mcar nu se refer n mod necesar la
contextul original care a generat aceast cristalizare. n cazul de fa pentru
conceptul de ideal rolul determinant a avut efortul de a demonstra marea
teorem a lui Fermat, ns detaliile acestei istorii ne-ar duce prea departe de
ideile pe care le urmrim aici.
Revenind la exemple carecteristice de ideale, dm urmtoarea propoziie.
Propoziia 1.1.17. Fie A un inel i f
1
, f
2
, . . . , f
m
A. Atunci mulimea
< f
1
, f
2
, . . . , f
m
>= {g
1
f
1
+g
2
f
2
+ +g
m
f
m
| g
i
A, i = 1, . . . , m}
este ideal n inelul A.
Acest ideal se numete idealul generat de elementele f
1
, f
2
, . . . , f
m
. De aseme-
nea dac I =< f
1
, f
2
, . . . , f
m
>, atunci spunem c elementele f
1
, f
2
, . . . , f
m
formeaz o baz pentru I. n acest caz idealul I se numete nit generat.
Evident un ideal nit generat are mai multe baze. Dintre bazele unui ideal
aa numitele baze Grbner au proprieti speciale, despre care va vorba n
seciunile care urmeaz.
26 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Deniia 1.1.18. Un ideal de forma I =< f > se numete ideal principal .
Un inel n care orice ideal este principal se numete inel principal .
Exemple de inele principale sunt date n urmtoarea propoziie:
Propoziia 1.1.19. Inelul Z al ntregilor i inelul polinoamelor de o nedeter-
minat cu coecieni ntr-un corp sunt inele principale.
Demonstraie. Fie I un ideal n Z. Dac I = {0}, atunci I = 0 Z =< 0 >
i suntem gata. Dac I = {0}, atunci I conine att numere pozitive ct i
negative, deoarece odat cu un numr din I i opusul acestuia (multiplul cu
1) este n I. Fie n cel mai mic numr ntreg strict pozitiv din I. Atunci este
clar c n Z I. Invers, e x I arbitrar. Pe baza teoremei fundamentale a
aritmeticii, exist un ct q i un rest r unic astfel ca
x = n q +r, 0 r < n.
Din egalitatea r = x n q se citete c r I, ceea ce nu e posibil conform
alegerii lui n dect dac r = 0. Astfel x n Z, deci I n Z. Rezult deci
c I = n Z.
Pentru inelul polinoamelor cu coecieni ntr-un corp demonstraia este
identic n esen. Diferena const n faptul c se compar gradele poli-
noamelor, i se folosete teorema mpririi ntregi a polinoamelor, care asigur
ca i n cazul numerelor ntregi existena i unicitatea ctului i restului
mpririi.
Aceast propoziie este important mai ales prin consecina ei dat n
propoziia 1.1.23 de la pagina 27. Pentru pregtirea enunului acesteia trebuie
s denim conceptul abstract de cel mai mare divizor comun.
Deniia 1.1.20. Fie A un domeniu de integritate, i a, b A. Spunem c
elementul a l divide pe b, sau c a este un divizor al lui b, (notat a|b), dac
exist un element c A astfel ca a c = b.
Spunem c elementele a i b sunt asociate n divizibilitate dac se divid
reciproc, adic a|b i b|a.
Relaia de divizibilitate este evident reexiv i tranzitiv. De asemenea, se
vede imediat, c elementele a i b sunt asociate dac i numai dac a = bu,
unde u este un element inversabil. ntr-adevr, dac u este inversabil atunci
exist v astfel ca uv = 1, deci av = b, prin urmare a i b se divid reciproc.
Invers, dac a i b se divid reciproc, adic a = bu i av = b, atunci a = avu,
deci a avu = 0, adic a(1 vu) = 0, de unde rezult c 1 vu = 0, sau
uv = 1, deci u este inversabil.
1.1. CONCEPTE DE BAZ 27
Deniia 1.1.21. Fie A un domeniu de integritate, i a, b A. Un element
d A se numete cel mai mare divizor comun al elementelor a i b, i se
noteaz d = (a, b), dac
(i) d|a i d|b, adic d este divizor comun, i
(ii) dac d

|a i d

|b, atunci d

|d, adic d este cel mai mare divizor, n sensul


relaiei de divizibilitate.
S observm, c cel mai mare divizor comun a dou elemente nu este unic.
Mai precis, dac d
1
i d
2
este ecare cel mai mare divizor comun al elementelor
a i b, atunci d
1
i d
2
sunt elemente asociate, deoarece din deniia celui mai
mare divizor comun 1.1.21(ii) rezult imediat, c d
1
i d
2
se divid reciproc.
Expresia d = (a, b) conine aadar un uor abuz de notaie.
n inele principale cel mai mare divizor comun a dou elemente are o carac-
terizare aparte, exprimat cu ajutorul idealelor. Vom da aceast caracterizare
n inelul ntregilor.
S facem mai nti o observaie.
Observaia 1.1.22. ntr-un domeniu de integritate
< d >=< d

>,
dac i numai dac elementele d i d

sunt asociate.
Demonstraie. ntr-adevr, din < d >=< d

>, sau d A = d

A rezult c
d = d 1 d

A i d

= d

1 d A, adic d = d

u i d

= dv, deci elementele


d i d

se divid reciproc. Invers, dac d|d

, sau du = d

atunci d

A d A,
deci < d

>< d >. Similar, dac d

|d atunci < d >< d

>. Aadar dac d


i d

sunt asociate, atunci < d >=< d

>.
Iat i caracterizarea celui mai mare divizor comun n domenii de integri-
tate (aici Z).
Propoziia 1.1.23. Fie a, b, d Z trei numere ntregi. Numrul d este cel
mai mare divizor comun al numerelor a i b, d = (a, b), dac i numai dac
d Z = a Z +b Z.
n alt exprimare, dac d = (a, b), atunci exist dou numere ntregi x, y Z
astfel ca d = ax +by, i invers, dac d = ax +by, i d este un divizor comun
al lui a i b, atunci el este un cel mai mare divizor, d = (a, b).
n particular, numerele a i b sunt relativ prime exact atunci cnd 1 are o
reprezentare de forma 1 = ax +by, unde x, y sunt numere ntregi potrivite.
28 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Demonstraie. Fie d = (a, b). Din d|a i d|b rezult c aZ dZ i bZ dZ,
deci i a Z + b Z d Z. Dar pe baza propoziiei 1.1.19 de la pagina 26,
a Z i b Z ind ideale (principale) n Z suma lor este un ideal principal, deci
avem
a Z +b Z = d

Z,
de unde d

Z d Z. Rezult deci c d|d

. Din relaia de deniie a lui d

se
vede ns c d

este un divizor comun al lui a i b, deci avem i d

|d. Aadar d
i d

sunt asociate prin urmare < d >=< d

>. Astfel avem


a Z +b Z = d Z.
Invers, e d astfel ca a Z + b Z = d Z. Din a Z a Z + b Z = d Z
rezult c d|a, i similar d|b, deci d este un divizor comun.
Din exprimarea lui d sub forma d = ax +by, posibil deoarece d = d 1
d Z = a Z + b Z, deducem, c orice divizor comun al lui a i b este i un
divizor al lui d, deci d este un cel mai mare divizor.
Restul armaiilor din enun sunt simple consecine ale celor de mai sus.
S vedem acum ce operaii putem efectua cu ideale. Intersecia a dou
ideale este ideal, ntruct proprieti care se denesc numai cu ajutorul cuan-
ticatorului universal ("pentru orice"), se motenesc la intersecia mulimilor.
Este uor de vzut ns, c reuniunea idealelor nu este n general ideal.
Deniia 1.1.24. Fie I i J ideale n A. Denim suma, produsul , intersecia
i ctul celor dou ideale, respectiv radicalul unui ideal, precum urmeaz:
I +J = {f +g| f I, g J} este suma idealelor,
IJ =< fg| f I, g J >= {f
1
g
1
+f
2
g
2
+ +f
m
g
m
| f
i
I, g
i
J, i =
1, . . . , m}, adic idealul generat de produsele elementelor din cele dou
ideale, este produsul idealelor,
I J = {f| f I, i f J} este intersecia idealelor,
I : J = {f| f A astfel ca pentru orice g J, fg I} este ctul ide-
alelor,

I = {f| f A, i exist n > 0, astfel nct f


n
I} este radicalul
idealului I.
Se arat uor, c suma, produsul, intersecia i ctul a dou ideale, conform
deniiei de mai sus, este tot un ideal. Deasemenea i radicalul unui ideal este
tot un ideal.
Proprieti simple ale acestora sunt date n observaiile care urmeaz.
1.1. CONCEPTE DE BAZ 29
Observaiile 1.1.25. Fie I i J dou ideale.
I +J este cel mai mic ideal care conine idealul I i J.
I J este cel mai mare ideal care este coninut n idealul I i J.
I J este ideal dac i numai dac I J sau J I.
Dac I =< f
1
, f
2
, . . . , f
k
> i J =< g
1
, g
2
, . . . , g
l
>, atunci I + J =
< f
1
, f
2
, . . . , f
k
, g
1
, g
2
, . . . , g
l
> .
Dac I =< f
1
, f
2
, . . . , f
k
> i J =< g
1
, g
2
, . . . , g
l
>, atunci IJ =
< f
i
g
j
| i = 1, . . . , k, j = 1, . . . , l > .
Demonstraiile acestor proprieti sunt simple, i sunt lsate pe seama
cititorului.
Alte proprieti sunt date n propoziiile care urmeaz.
Propoziia 1.1.26. Fie I, J, K ideale n A. Atunci
(a) I : I = A.
(b) I : A = I.
(c) IJ K dac i numai dac I K : J.
(d) J I dac i numai dac I : J = A.
Demonstraie.
Punctul (a): Pentru orice f I i pentru orice g A avem fg I, deci
A I : I. Pe de alt parte I : I A este clar din deniia unui ideal. Deci
I : I = A.
Punctul (b): I I : A este clar din deniia unui ideal. Pe de alt parte
e f I. Atunci f = f 1 arat c f I : A. Prin urmare A \ I A \ I : A,
deci I : A I. Rezult c I : A = I.
Punctul (c): Fie f I. Dac pentru g J arbitrar fg K, (deoarece
IJ K), atunci f K : J, deci I K : J. Invers, e f I i g J arbitrar.
Din I K : J rezult c fg K, deci i IJ K.
Punctul (d): J A J I, implic I : J A, deci I : J = A. Invers
rezult din 1 A.
Propoziia 1.1.27. Fie I, J, K, I
1
, I
2
, J
1
, J
2
ideale n A. Atunci
(a) (I
1
I
2
) : J = (I
1
: J) (I
2
: J).
(b) I : (J
1
+J
2
) = (I : J
1
) (I : J
2
).
30 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
(c) (I : J) : K = I : (JK).
Demonstraie.
Punctul (a): Din I
1
I
2
I
1
, I
2
rezult c I
1
I
2
: J I
1
: J, I
2
: J, deci
I
1
I
2
: J I
1
: J I
2
: J. Invers, e f I
1
: J I
2
: J. Atunci f I
1
: J, I
2
: J,
deci fg I
1
, I
2
, pentru orice g J. Rezult c fg I
1
I
2
pentru orice g J,
prin urmare f (I
1
I
2
) : J, deci I
1
I
2
: J I
1
: J I
2
: J. Aadar
I
1
I
2
: J = I
1
: J I
2
: J.
Punctul (b): Din J
1
+J
2
J
1
, J
2
rezult c I : (J
1
+J
2
) (I : J
1
), (I : J
2
),
deci I : (J
1
+ J
2
) (I : J
1
) (I : J
2
). Invers, e f (I : J
1
) (I : J
2
), deci
f (I : J
1
) i f (I : J
2
). Rezult c fg I i fh I pentru orice g J
1
i h J
2
, de unde fg + fh = f(g + h) I, deci f I : (J
1
+ J
2
). Avem deci
I : (J
1
+J
2
) (I : J
1
) (I : J
2
), deci i I : (J
1
+J
2
) = (I : J
1
) (I : J
2
).
Punctul (c): ncepem cu o observaie: Fie I i J =< g
1
, g
2
, . . . , g
k
>
ideale n A. Atunci I : J = {f A| fg
i
I, i = 1, 2, . . . , k}. ntr-adevr,
I : J {f A| fg
i
I, i = 1, 2, . . . , k}, din cauza incluziunii bazei n idealul
generat de aceasta. Pe de alt parte ns dac fg
i
I, i = 1, 2, . . . , k atunci i
fg I pentru orice g = h
1
g
1
+h
2
g
2
+ +h
k
g
k
J, deci I : J {f A| fg
i

I, i = 1, 2, . . . , k}. Acest raionament se extinde neschimbat pentru cazul cnd
J =< g
j
| j I
J
> este un ideal generat de orice familie de polinoame.
S introducem acum o notaie: J K = {gh| g J, h K}.
Trecnd la demonstraia propriu zis, e f (I : J) : K. Aceasta aparte-
nen este echivalent cu fK I : J, care este echivalent cu (fK J) I,
echivalent cu f(K J) I, echivalent conform observaiei de mai nainte
cu f(KJ) I, echivalent cu f I : (KJ) sau f I : (JK). Prin urmare
(I : J) : K = I : (JK).
Propoziia 1.1.28. Fie I, J ideale n A. Atunci
(a) I

I.
(b) Dac I J atunci

I

J.
(c)

IJ =

I J =

J.
(d)

I +J =

I +

J.
(e)

I =

I.
Demonstraie.
Punctul (a): f
1
= f I pentru orice f I, deci I

I.
Punctul (b): Dac f

I atunci exist n 1 astfel ca f


n
I deci f
n
J,
de unde f

J. Aadar

I

J.
1.1. CONCEPTE DE BAZ 31
Punctul (c): S observm c IJ I, J deci IJ I J de unde pe baza
punctului precedent

IJ =

I J.
Similar, I J I, J, deci

I J

I,

J, deci

I J

J.
Pentru a ncheia demonstraia, e f

J, deci f

I,

J. Prin
urmare exist k i l, astfel nct f
k
I i f
l
J, de unde f
k+l
= f
k
f
l
IJ
deci f

IJ. De aici avem



I

IJ.
Toate acestea arat c

IJ =

I J =

J.
Punctul (d): Avem I

I i J

J, pe baza punctului (a). Este clar atunci


c I +J

I +

J. Pe baza punctului (b) avem de aici

I +J =

I +

J.
Punctul (d): Pe baza punctului (a) e clar c

I. Invers, e f

I. Atunci f
k

I deci (f
k
)
l
I, pentru k i l ntregi pozitivi, potrivit
alei. Aadar f
kl
I, deci f

I ceea ce nseamn

I. n concluzie

I =

I.
1.1.4 Inel factor. Inel de fracii. Localizare
Un procedeu de construcie de inele din inele deja construite este considerarea
inelelor factor. Pe analogia situaiei de la grupuri unde un subgrup normal
denete o relaie de congruen compatibil cu operaia din grup un ideal
va deni o relaie de congruen compatibil cu cele dou operaii din inel.
Clasele de echivalen fa de aceast relaie de echivalen vor deni inelul
factor.
Exemplul caracteristic care trebuie avut n vedere este aritmetica claselor
de resturi ale numerelor ntregi.
Propoziia 1.1.29. Fie I A un ideal. Relaia notat f g, i denit
prin
f g dac f g I,
este o relaie de echivalen pe A compatibil cu operaiile de adunare i n-
mulire din A.
Demonstraie. Relaia este o relaie de echivalen dac este
reexiv, adic f f pentru orice f A,
simetric, adic dac f g atunci g f, pentru orice f, g A i
tranzitiv, dac f g i g h atunci f h, pentru orice f, g, h A.
Compatibilitatea cu operaiile de adunare i nmulire nseamn
dac f h i g k, atunci f +g h +k pentru orice f, g, h, k A i
32 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
dac f h i g k, atunci fg hk pentru orice f, g, h, k A.
Toate aceste proprieti sunt imediate folosind deniia noiunii de ideal.
Propoziia de mai sus st la baza deniiei care urmeaz. S notm clasa de
echivalen a polinomului f cu

f = {g | g f; g A} = f +I.
n concluzie propoziia anterioar se reformuleaz astfel: mulimea claselor de
echivalen are structura unui inel.
Deniia 1.1.30. Mulimea claselor de echivalen date de relaia de
echivalen denit de idealul I se noteaz cu A/I, i se numete inelul factor
denit de idealul I.
S observm totui c aceast deniie, ca i propoziia precedent nu se
refer n mod specic la inele de polinoame, ele sunt valabile n contextul
general al teoriei inelelor.
Deniia 1.1.31. Fie I un ideal n A. Idealul I se numete maximal , dac
este element maximal n muimea ordonat de incluziune a idealelor proprii
ale inelului A, adic dac avem pentru orice ideal J al lui A, I J A
implic J = I sau J = A.
Din lema lui Zorn rezult c orice ideal I este inclus ntr-un ideal maximal.
Acest fapt rezult din observaia c reuniunea idealelor unui ir ascendent de
ideale este un ideal, care include (este mai mare dect) toate idealele irului.
S vedem acum cum se caracterizeaz idealele maximale cu ajutorul inelu-
lui factor, denit de acetia. Avem urmtoarea propoziie:
Propoziia 1.1.32. Un ideal M al lui A este maximal dac i numai dac
inelul factor A/M este corp.
Demonstraie. Fie M ideal maximal n A. Fie

f = f +M un element nenul al
inelului factor A/M, adic f M. Idealul I generat de f i M, este deci strict
mai mare dect M. Acesta ind maximal, rezult c I = A, deci rezult c
1 A are o reprezentare de forma 1 = gf + h unde h M. Trecnd la clase
de echivalene, avem

1 = g

f, deci

f = f +M este inversabil, deci inelul factor
este corp.
Invers, presupunem c A/M este corp. Fie I un ideal astfel ca M I A.
Presupunem c exist un element f I care f M, adic M = I. Avem
atunci

f =

0 deci exist g astfel ca g

f =

1 sau 1gf M I. Din egalitatea
1 = (1 gf) +gf rezult c 1 I adic I = A. Rezult deci c M este ideal
maximal.
1.1. CONCEPTE DE BAZ 33
Deniia 1.1.33. Un inel care are un singur ideal maximal se numete inel
local .
Introducerea conceptului de inel local are o justicare geometric: este legat
de studiul proprietilor varietilor ane n jurul unui punct al lor.
O caracterizare a inelelor locale este dat n urmtoarea propoziie:
Propoziia 1.1.34. Un inel este local dac i numai dac elementele nein-
versabile ale inelului formeaz un ideal.
Demonstraie. Dac un ideal conine un element inversabil, atunci l conine i
pe 1, deci conine orice element al inelului, aadar coincide cu acesta. Rezult
c dac elementele neinversabile formeaz un ideal, atunci acesta este cel
mai mare, deci i maximal. Menionm, c orice inel conine elemente nein-
versabile, ntruct 0 este neinversabil (inelul trebuie s aib totui cel puin 2
elemente).
Invers, Fie A un inel local i M singurul su ideal maximal. S notm
mulimea elementelor neinversabile ale inelului cu N. Atunci evident M N.
Fie f N. Atunci Af este un ideal propriu (in caz contrar f ar inversabil)
al lui A. Cum orice ideal este inclus ntr-un ideal maximal, avem Af M,
deci i f = f 1 Af M, prin urmare N M. n concluzie M = N, deci
elementele neinversabile formeaz un ideal (maximal).
n cele ce urmeaz denim inelul de fracii, ntr-un context mai general,
deci inelul considerat nu este neaprat un inel de polinoame. Aceast con-
strucie extinde ideea construciei numerelor raionale din numere ntregi: mai
nti se denesc fraciile, apoi operaiile cu acestea, iar n nal conceptul de
numr raional apare cu ajutorul echivalenei ntre fracii, dat de posibilitatea
de simplicare i amplicare.
Deniia 1.1.35. Fie A un inel comutativ i unitar. O submulime S a lui
A care este sub-semigrup multiplicativ, se numete sistem multiplicativ sau
sistem multiplicativ nchis al lui A.
Fie acum S un sistem multiplicativ nchis al inelului A. Presupunem c
elementele lui S sunt regulate. Denim o relaie notat pe mulimea AS
prin
(a
1
, s
1
) (a
2
, s
2
) dac a
1
s
2
= a
2
s
1
.
Propoziia 1.1.36. Relaia este o relaie de echivalen, compatibil cu
operaia de nmulire din inelul A.
Demonstraie. Relaia este o relaie de echivalen pentru c
34 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
reexiv, adic (a, s) (a, s) pentru orice (a, s) AS,
simetric, adic dac (a
1
, s
1
) (a
2
, s
2
) atunci (a
2
, s
2
) (a
1
, s
1
), pentru
orice (a
1
, s
1
), (a
2
, s
2
) AS i
tranzitiv adic dac (a
1
, s
1
) (a
2
, s
2
) i (a
2
, s
2
) (a
3
, s
3
) atunci
(a
1
, s
1
) (a
3
, s
3
), pentru orice (a
1
, s
1
), (a
2
, s
2
), (a
3
, s
3
) AS.
Compatibilitatea cu operaia de nmulire nseamn
dac (a
1
, s
1
) (a

1
, s

1
) i (a
2
, s
2
) (a

2
, s

2
), atunci (a
1
a
2
, s
1
s
2
)
(a

1
a

2
, s

1
s

2
) pentru orice (a
1
, s
1
), (a

1
, s

1
), (a
2
, s
2
), (a

2
, s

2
) AS.
Toate aceste proprieti sunt imediate folosind deniia relaiei .
S observm, c (s, s) (p, p) pentru orice s, p S, i de asemenea (a, s)
(ap, sp), pentru orice (a, s) AS, i p S.
Vom nota clasele de resturi n raport cu relaia de echivalen prin
a/s = (a, s) = {(a

, s

) AS | (a

, s

) (a, s)}.
S observm, c aceast construcie imit denirea unei mpriri, prin
introducerea unui raport formal ntre elemente, numitorul acestui raport -
ind considerat dintr-un sistem multiplicativ, pentru a permite apoi denirea
produsului a dou asemenea rapoarte.
La adunarea fraciilor ns numitorii se nmulesc ntre ei, aadar se poate
bnui c adunarea din inel se extinde i pentru aceste "fracii". O formulare
precis a acestor idei este dat n urmtoarea propoziie:
Propoziia 1.1.37. Fie A un inel comutativ i unitar, i S un sistem multi-
plicativ format din elemente regulate (nondivizori ai lui 0). Atunci mulimea
claselor de resturi notat
A
S
= {(a, s) | (a, s) AS}
formeaz un monoid n raport cu nmulirea denit pe componente ale
reprezentanilor claselor de echivalen.
Mai mult, aplicaia
i
S
: A A
S
, denit prin i
S
(a) = (as, s), s S
este injectiv, prin ea adunarea din A se extinde n mod unic, astfel ca A
S
s devin un inel, n care A este scufundat prin homomorsmul injectiv i
S
.
Elementul s S n deniia lui i
S
este arbitrar xat, el poate ales i 1, n
cazul n care 1 S.
1.1. CONCEPTE DE BAZ 35
Demonstraie. n primul rnd s observm, c nmulirea denit pe com-
ponente ale reprezentanilor claselor este o nmulire bine denit a claselor:
rezultatul nmulirii nu depinde de reprezentantul ales. Acest fapt este o con-
secin a ultimei proprieti a relaiei de echivalen prezentat mai sus.
Dac i
S
(a) = i
S
(b), deci (as, s) (bp, p) atunci asp = bps deci a = b, de
unde rezult injectivitatea aplicaiei i
S
.
Pentru a extinde adunarea din A prin intermediul injeciei i
S
, pe care
dorim s-l facem homomorsm de inele, calculm n felul urmtor:
(a
1
, s
1
) (a
1
s
2
, s
1
s
2
) = (a
1
s
2
s, s)(s, s
1
s
2
s),
(a
2
, s
2
) (a
2
s
1
, s
1
s
2
) = (a
2
s
1
s, s)(s, s
1
s
2
s).
Pentru a pstra distributivitatea nmulirii fa de adunare n A
S
va trebui
s denim suma reprezentanilor celor dou clase de echivalen astfel
(a
1
, s
1
) + (a
2
, s
2
) (a
1
s
2
s, s)(s, s
1
s
2
s) + (a
2
s
1
s, s)(s, s
1
s
2
s)
= ((a
1
s
2
s, s) + (a
2
s
1
s, s))(s, s
1
s
2
s)
= (i
S
(a
1
s
2
) +i
S
(a
2
s
1
))(s, s
1
s
2
s)
= i
S
(a
1
s
2
+a
2
s
1
)(s, s
1
s
2
s)
= ((a
1
s
2
+a
2
s
1
)s, s)(s, s
1
s
2
s)
= (a
1
s
2
+a
2
s
1
, s
1
s
2
).
De aici rezult i deniia compatibil cu relaia a adunrii claselor, pe de
alt parte rezult i unicitatea acestei sume:
(a
1
, s
1
) + (a
2
, s
2
) = (a
1
s
2
+a
2
s
1
, s
1
s
2
).
Se arat acum prin simpla vericare a proprietilor c adunarea este bine
denit (rezultatul unei adunri nu depinde de reprezentanii alei), este aso-
ciativ, comutativ, are element nul, i anume (0, s), respectiv ecare element
are un opus, (a, s) = (a, s). Deasemenea prin vericare direct se arat c
nmulirea este distributiv fa de adunarea astfel denit i n nal tot prin
vericare direct rezult i faptul c i
S
este homomorsm de inele.
Deniia 1.1.38. Inelul A
S
cu operaiile de adunare i nmulire denite mai
sus se numete inelul de fracii asociat sistemului multiplicativ S, i se mai
noteaz S
1
A.
Dac A este un domeniu de integritate (nu are divizori ai lui 0) atunci
elementele nenule A

formeaz evident un sistem S multiplicativ (maximal).


n acest caz S
1
A este un corp comutativ. Acest corp este numit corpul de
fracii al inelului A.
36 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Exemplele 1.1.39. S dm i cteva exemple.
Z
Z
= Q, corpul numerelor raionale este corpul de fracii al inelului
ntregilor.
Corpul de fracii al inelului polinoamelor cu n necunoscute este corpul
de fracii raionale, notat
K(x
1
, x
2
, . . . , x
n
) = {f/g | f, g k[x
1
, x
2
, . . . , x
n
]}.
1.1.5 Legtura dintre varietile ane i ideale
n aceast seciune vom investiga legtura dintre cele dou concepte funda-
mentale introduse pn acum: conceptul cu caracter geometric de varietate
an, i conceptul algebric de ideal.
O varietate an este denit ca mulimea zerourilor unui set de ecuaii
algebrice, vezi deniia 1.1.6 de pe pagina 20. Ne intereseaz n ce mod putem
schimba setul de ecuaii, fr ca mulimea zerourilor comune acestora s se
schimbe? Evident, nlocuirea unei ecuaii cu ecuaia obinut din suma aces-
teia cu o alt ecuaie nu va schimba mulimea zerourilor comune acestora.
Putem ns descrie toate seturile de ecuaii echivalente cu un set de ecuaii
dat?
Conceptul de ideal ne va da rspunsul la aceast ntrebare. Practic urm-
toarea propoziie constituie un rspuns satisfctor.
Propoziia 1.1.40. Fie f
1
, f
2
, . . . , f
k
k[x
1
, x
2
, . . . , x
n
] i g
1
, g
2
, . . . , g
l

k[x
1
, x
2
, . . . , x
n
] dou seturi de polinoame. Dac ele genereaz acelai ideal,
atunci mulimea zerourilor comune celor dou seturi de polinoame coincid.
Reformulat puin mai formal: dac
< f
1
, f
2
, . . . , f
k
>=< g
1
, g
2
, . . . , g
l
>
atunci
V (f
1
, f
2
, . . . , f
k
) = V (g
1
, g
2
, . . . , g
l
).
Pentru idealul generat de un set de polinoame vezi propoziia 1.1.17 de pe
pagina 25 i comentariul care urmeaz dup ea.
Demonstraie. O prim observaie este faptul c pe baza acestei propoziii o
varietate an trebuie asociat practic unui ideal: dat un ideal, alegem o baz
a acestuia, i avem un set de ecuaii care determin varietatea dat.
Fie V = V (f
1
, f
2
, . . . , f
k
) i e I =< f
1
, f
2
, . . . , f
k
>. Atunci V este
mulimea zerourilor comune ale tuturor polinoamelor din I, adic V =
{(a
1
, a
2
, . . . , a
n
) k
n
| f(a
1
, a
2
, . . . , a
n
) = 0, pentru orice f I}.
1.1. CONCEPTE DE BAZ 37
ntr-adevr, dac notm W = {(a
1
, a
2
, . . . , a
n
) k
n
| f(a
1
, a
2
, . . . , a
n
) =
0, pentru orice f I}, avem evident W V . Fie acum (a
1
, a
2
, . . . , a
n
) V ,
adic f
i
(a
1
, a
2
, . . . , a
n
) = 0 pentru orice i = 1, 2, . . . , k, i e f I arbitrar.
Avem f = g
1
f
1
+ g
2
f
2
+ + g
k
f
k
, pentru anumite polinoame g
1
, g
2
, . . . , g
k
potrivit alese, deci f(a
1
, a
2
, . . . , a
n
) = 0, de unde rezult V W, deci in
denitiv V = W.
Vom vedea n seciunile care urmeaz, c orice ideal de polinoame cu mai
multe variabile admite o baz nit, deci numrul ecuaiilor care denesc o
varietate poate ntr-adevr limitat la un numr nit de ecuaii.
Demonstraia anterioar sugereaz urmtoarele deniii:
Deniia 1.1.41. Fie I un ideal n k[x
1
, x
2
, . . . , x
n
] i e V o varietate an.
Vom deni i vom nota varietatea denit de idealul I
V (I) = {(a
1
, a
2
, . . . , a
n
) k
n
| f(a
1
, a
2
, . . . , a
n
) = 0, pentru orice f I},
respectiv idealul denit de varietatea an V
I(V ) = {f k[x
1
, x
2
, . . . , x
n
] | f(a
)
= 0, pentru orice a V },
unde am notat a = (a
1
, a
2
, . . . , a
n
).
Cu aceste notaii ncepem investigaia proprietilor asocierilor V
I(V ) respectiv I V (I). Primele proprieti ale acestora sunt date n
urmtoarea propoziie:
Propoziia 1.1.42. Fie V o varietate an. Atunci I(V ) este un ideal n
k[x
1
, x
2
, . . . , x
n
].
Demonstraie. Evident, dac dou polinoame f i g se anuleaz pe punctele
lui V atunci i suma lor f + g se va anula pe V . De asemenea dac f se
anuleaz pe punctele lui V atunci pentru orice polinom g k[x
1
, x
2
, . . . , x
n
]
produsul gf se va anula pe punctele lui V .
Se pune acum ntrebarea analoag: Dat un ideal de polinoame I n ine-
lul k[x
1
, x
2
, . . . , x
n
], este V (I) o varietate an? Rspunsul este armativ,
i se bazeaz pe teorema lui Hilbert a bazei, care arm c orice ideal n
k[x
1
, x
2
, . . . , x
n
] este nit generat. S trecem la detaliile acestui crucial rezul-
tat. ncepem cu o deniie care se refer natural la proprietatea aat n
discuie, i pe care o plasm iari ntr-un context abstract general:
Deniia 1.1.43. Fie A un inel comutativ. Spunem c A este Noetherian,
dac orice ideal al su este nit generat.
38 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
O caracterizare a inelelor Noetheriene este dat n urmtoarea propoziie:
Propoziia 1.1.44. Un inel A este Noetherian dac i numai dac orice ir
ascendent de ideale ale sale este staionar, adic dac I
k
, k N sunt ideale
ale lui A astfel ca
I
1
I
2
I
3
. . .
atunci exist un indice l astfel ca
I
l
= I
l+1
= I
l+2
= . . .
sau altfel spus, nu exist n inelul A iruri innite de ideale strict cresctoare.
Demonstraie. Fie A un inel Noetherian. Considerm un ir ascendent innit
de ideale
I
1
I
2
I
3
. . .
ale lui A. Fie idealul I =

i=1
I
k
(o astfel de reuniune de ideale este ideal). El
este nit generat, deci
I =< f
1
, f
2
, . . . , f
k
> .
Acum ecare element f
1
, f
2
, . . . , f
k
se a n cte unul din idealele irului
ascendent de ideale, deci toate se a n cel cu indicele cel mai mare dintre
acestea. Astfel i I este inclus n acesta, i este clar c irul de ideale devine
deci staionar.
Invers, e I un ideal n A i presupunem c orice ir ascendent de ideale
este staionar n A. Fie f
1
I, i alegem recursiv f
i+1
I \ I
i
unde I
i
=<
f
1
, f
2
, . . . , f
i
>. Este clar c irul I
i
este un ir strict ascendent de ideale, i
el ind staionar trebuie s e nit, deci dup un anumit rang k, f
k+1
nu mai
exist. De aici rezult c I =< f
1
, f
2
, . . . , f
k
>, deci I este nit generat.
Teorema care urmeaz claric relaia dintre idealele inelului de polinoame
k[x
1
, x
2
, . . . , x
n
] i varietile ane. Rmnem pentru moment tot la enunul
pentru contextul abstract.
Teorema 1.1.45 (Teorema lui Hilbert a bazei). Fie A un inel comutativ.
Dac A este Noetherian atunci i A[x] este Noetherian.
Demonstraie. Fie I un ideal n A[x]. Trebuie s artm, c I este nit gen-
erat.
Considerm irul de elemente din I n construit n felul urmtor: Alegem
f
1
= 0 din I astfel ca deg(f
1
) s e minim, i apoi recursiv pentru i 1 alegem
f
i+1
I\ < f
1
, f
2
, . . . , f
i
> tot de grad minim.
Dac la un anumit indice alegerea lui f
i+1
nu mai e posibil, atunci I =<
f
1
, f
2
, . . . , f
i
>, i idealul I este nit generat, i suntem gata.
1.1. CONCEPTE DE BAZ 39
Dac admitem, c procesul de construcie al termenilor irului ar nelim-
itat, atunci raionamentul se continu astfel: Fie a
i
coecientul termenului
principal (de grad cel mai mare) al polinomul f
i
. Idealul generat de acetia
J =< a
1
, a
2
, . . . , > este un ideal n A. Acest inel ind Noetherian, idealul J
este nit generat, i anume chiar de primele k elemente a
1
, a
2
, . . . , a
k
. Aceast
ultim proprietate se vede din faptul c irul de ideale J
i
=< a
1
, a
2
, . . . , a
i
>
este ascendent i conform propoziiei anterioare 1.1.44 el este staionar, deci
ncepnd de la un anumit indice k, avem J
k
= J
k+1
= J
k+2
= . . . , deci n fapt
J =< a
1
, a
2
, . . . , a
k
> . (1.1)
Armm acum, c I =< f
1
, f
2
, . . . , f
k
>. ntr-adevr, dac am avea incluz-
iune strict < f
1
, f
2
, . . . , f
k
> I, atunci procesul de alegere al polinoamelor
ar continua cel puin nc un pas, i am avea nc un element nenul de grad
minim f
k+1
I\ < f
1
, f
2
, . . . , f
k
>. Observaia crucial acum este c gradul
polinomului f
k+1
este egal sau mai mare dect gradul oricrui polinom ales
anterior, f
1
, f
2
, . . . , f
k
. Prin urmare cu ajutorul acestora putem construi un
polinom de acelai grad, ba chiar are acelai termen principal ca i f
k+1
, dar
care este n idealul generat de acetia, < f
1
, f
2
, . . . , f
k
>.
Explicit acest polinom se construiete astfel. Coecientul termenului de
grad maxim al lui f
k+1
este a
k+1
J, i conform celor de mai sus (relaia 1.1)
avem
a
k+1
=
k

i=1
c
i
a
i
.
pentru anumii coecieni c
i
A, i = 1, . . . , k, potrivit alei. Polinomul
g =
k

i=1
c
i
f
i
x
deg(f
k+1
)deg(f
i
)
este evident un polinom n idealul < f
1
, f
2
, . . . , f
k
>, deci i n I. Astfel,
polinomul f
k+1
g este n I, nu este n < f
1
, f
2
, . . . , f
k
>, i are gradul strict
mai mic dect gradul lui f
k+1
, ceea ce contrazice alegerea lui f
k+1
. Aadar
polinomul f
k+1
nu exist, deci
I =< f
1
, f
2
, . . . , f
k
> .
Consecina 1.1.46. Fie k un corp. Atunci orice ideal al inelului de polinoame
k[x
1
, x
2
, . . . , x
n
] este nit generat.
40 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Demonstraie. Corpul k este un inel n care exist numai dou ideale: {0}
i corpul k nsui. Primul este generat de elementul 0, al doilea de ele-
mentul 1, deci toate idealele lui k sunt nit generate. Prin urmare k este
Noetherian. Acum aplicm recursiv Teorema lui Hilbert a bazei, (teorema
1.1.45), i obinem k[x
1
], k[x
1
, x
2
] = k[x
1
][x
2
], ... i n nal k[x
1
, x
2
, . . . , x
n
] =
k[x
1
, . . . , x
n1
][x
n
] este ecare inel Noetherian.
Aadar orice ideal al inelului k[x
1
, x
2
, . . . , x
n
] este nit generat.
Analog propoziiei 1.1.42 de pe pagina 37 este urmtoarea propoziie:
Propoziia 1.1.47. Fie I un ideal n k[x
1
, x
2
, . . . , x
n
]. Atunci V (I) este o
varietate an.
Demonstraie. Conform consecinei 1.1.46 idealul I este nit generat, deci
I =< f
1
, f
2
, . . . , f
k
>. S artm c V (I) = V (f
1
, f
2
, . . . , f
k
). Incluziunea
V (I) V (f
1
, f
2
, . . . , f
k
) este clar.
Fie (a
1
, a
2
, . . . , a
n
) V (f
1
, f
2
, . . . , f
k
). Fie f V (I) arbitrar. ntru-ct f
se poate scrie sub forma f = g
1
f
1
+ g
2
f
2
+ + g
k
f
k
, i deoarece f
i
(a) = 0
pentru orice i = 1, 2, . . . , k avem f(a) = 0. Aadar (a
1
, a
2
, . . . , a
n
) V (I),
deci V (f
1
, f
2
, . . . , f
k
) V (I). n concluzie V (I) = V (f
1
, f
2
, . . . , f
k
).
S ncepem concret acum investigaia proprietilor corespondenei ideal
varietate an, respectiv varietate anideal. O prim proprietate este dat
n urmtoarea propoziie.
Propoziia 1.1.48. Corespondenele (vezi deniia 1.1.41 de pe pagina 37)
V I(V )
i
I V (I)
sunt antimonotone, adic dac V
1
V
2
, atunci I(V
2
) I(V
1
), respectiv dac
I
1
I
2
, atunci V (I
2
) V (I
1
).
n plus, corespondena V I(V ) este injectiv, i V (I(V )) = V .
Demonstraie. Fie V
1
V
2
. Este clar c orice polinom care se anuleaz pe o
mulime de puncte, se anuleaz i pe o submulime a acesteia, deci I(V
2
)
I(V
1
).
Invers, e I
1
I
2
. Mulimea zerourilor comune a mai multor polinoame
este mai mic, deci este clar c V (I
2
) V (I
1
).
Pentru a demonstra egalitatea V (I(V )) = V s observm, c incluziunea
V V (I(V )) este o consecin imediat a deniiilor, ntru-ct orice f I(V )
se anuleaz pe V . n cellalt sens, e V = V (f
1
, f
2
, . . . , f
k
). Atunci
1.2. CONSTRUCIA BAZEI GRBNER 41
f
1
, f
2
, . . . , f
k
I(V ) deci avem i < f
1
, f
2
, . . . , f
k
> I(V ). Dar pe de o
parte V = V (f
1
, f
2
, . . . , f
k
) = V (< f
1
, f
2
, . . . , f
k
>) conform demonstraiei
propoziiei 1.1.40 de pe pagina 36, pe de alt parte asocierea varietii la ideal
este antimonoton, deci V (I(V )) V . n concluzie V (I(V )) = V . De aici
rezult i injectivitatea asocierii idealului.
Legtura dintre operaiile cu ideale i operaiile cu varietile ane poate
studiat n detaliu. Se constat spre exemplu c, sumei a dou ideale i
corespunde intersecia varietilor ane asociate acestora, iar produsului a
dou ideale i corespunde reuniunea varietilor ane asociate. n acest fel
se poate construi un veritabil dicionar de algebrgeometrie, care permite
studierea fenomenelor geometrice cu mijloace algebrice i invers.
1.2 Construcia bazei Grbner
V
om prezenta n aceast seciune fundamentul algebric teoretic
i algoritmic al investigaiei varietilor ane. Acest fundament este
baza Grbner . tim deja c orice ideal al inelului k[x
1
, x
2
, . . . , x
n
] are o baz
nit. O baza Grbner este o baz cu proprieti speciale, care genereaz
acelai ideal. Ea se poate calcula plecnd de la baza dat cu ajutorul unui
algoritm, algoritmul Buchberger.
1.2.1 mprirea polinoamelor cu o variabil
Structura de inel a mulimii polinoamelor k[x
1
, x
2
, . . . , x
n
] nseamn expri-
mat ntr-un limbaj vag i degajat posibilitatea adunrii, scderii i nmulirii
nengrdite a polinoamelor ntre ele. Exact ca i n cazul numerelor ntregi, se
pune aadar problema studierii mpririi.
S vedem mai nti cteva exemple. mprim 37 la 5, n inelul ntregilor.
Obinem ctul 7, i restul 2.
37 5
- 35 7 7 5 = 35
2
Aadar 37 = 75+2, sau n exprimarea academic 37 = 2(mod 5), respectiv
37 2 < 5 >, adic diferena dintre 37 i 2 se a n idealul generat de 5 n
inelul ntregilor.
Similar, n inelul Q[x] al polinoamelor de o nedeterminat x, cu coecieni n
corpul numerelor raionale Q, polinomul x
2
+3x+3 mprit la x+1 d ctul
x + 2 i restul 1.
42 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
x
2
+ 3x + 3 x + 1
(-) x
2
+ 3x + 2 x + 2 (x + 2) (x + 1) = x
2
+ 3x + 2
1
Avem deci relaia x
2
+ 3x + 3 = (x + 1) (x + 2) + 1, sau x
2
+ 3x + 3 =
1(mod (x+1)), respectiv x
2
+3x+3 1 < x+1 >, adic x
2
+3x+2 se a
n idealul generat de polinomul x + 1.
n ambele exemple ctul i restul sunt univoc determinate de dempritul
i mpritorul dat: condiia ca restul s e strict mai mic dect mpritorul
15 (dar pozitiv), respectiv gradul polinomului rest s e strict mai mic dect
gradul mpritorului x + 1 determin valoarea ctului i al restului n mod
unic (vezi teorema fundamental a aritmeticii respectiv teorema mpririi
polinoamelor de o singur nedeterminat).
Ce s-ar ntmpla dac am mpri un numr ntreg (sau un polinom) la
mai multe numere (mai multe polinoame)?
S ncepem cu o "mprire" de numere ntregi. mprim spre exemplu 87
la 15 i 6. Un sens al acestei "mpriri" neobinuite poate regsit n "proba"
mpririi: 87 = 15 x + 6 y + r, unde x, y sunt cele dou cturi iar r este
un rest, care urmeaz toate s e determinate. Am spus un rest i nu restul
deoarece nu tim nc dac acest rest este unic!
S examinm cazul exemplului nostru de "mprire". Avem:
87 15 6
- 60 4 4 15 = 60
27 3 3 6 = 18
- 18
9
87 15 6
- 30 2 2 15 = 30
57 9 9 6 = 54
- 54
3
Astfel 87 = 15 4 + 6 3 + 9 sau 87 = 15 2 + 6 9 + 3, pentru a aminti
doar cteva din posibilitile de exprimare a "dempritului" 87 cu ajutorul
unei combinaii liniare a celor doi "mpritori" 15 i 6.
1.2. CONSTRUCIA BAZEI GRBNER 43
Putem obine chiar i restul 0, spre exemplu n modul urmtor:
87 15 6
- 45 3 3 15 = 45
42 7 7 6 = 42
- 42
0
Similar, n inelul Q[x] al polinoamelor de o nedeterminat x, cu coecieni
n corpul numerelor raionale Q, "mprim" polinomul f = 2x
3
x 1 la
polinoamele g = x
2
x i h = x
2
1. Avem printre altele urmtoarele scheme
de mprire:
2x
3
x 1 x
2
x x
2
1
(-) x
3
x x x (x
2
1) = x
3
x
x
3
1
(-) x
3
x
2
x x (x
2
x) = x
3
x
2
x
2
1
x
2
x 1 1 (x
2
x) = x
2
x
x 1
2x
3
x 1 x
2
x x
2
1
(-) x
3
x x x (x
2
1) = x
3
x
x
3
1
(-) x
3
x
2
x x (x
2
x) = x
3
x
2
x
2
1
x
2
1 1 1 (x
2
1) = x
2
1
0
Acestea pot da deci "cturile" x + 1 i x iar restul x 1, deoarece
f = (x + 1) g +x h + (x 1),
dar i "cturile" x i x + 1 iar restul 0, deoarece
f = x g + (x + 1) h.
Putem conchide deci c polinoamele f (x 1) i f se a n idealul generat
de polinoamele g i h, I =< g, h >.
Sunt oare unice cturile i restul obinute n aceste "mpriri"? Exemplele
de mai sus arat c ele nu sunt unice, chiar dac impunem condiia ca restul
s e mai mic dect cel mai mic dintre numere, respectiv gradul restului s e
mai mic dect gradul celui mai mic dintre mpritori!
44 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Pot fcute oare cturile i restul unice? Rspunsul este armativ. Ideea
de baz este reducerea "mpririi" la mai multe numere (respectiv polinoame)
la mprirea obinuit la un singur numr respectiv un singur polinom!
Procedeul se bazeaz pe propoziia 1.1.19 de pe pagina 26. ntr-adevr,
inelul ntregilor precum i inelul polinoamelor cu o nedeterminat i coecieni
ntr-un corp este inel principal, prin urmare idealul generat de dou sau mai
multe elemente poate generat i de un singur element. Pe baza propoziiei
1.1.23 de la pagina 27 acest element este chiar cel mai mare divizor comun al
"mpritorilor".
S vedem cum transformm concret mpririle din exemplele noastre an-
terioare.
n exemplul numeric avem (15, 6) = 3, deci 15Z + 6Z = 3Z. Astfel "m-
prirea echivalent" este
87 3
- 87 29 29 3 = 87
0
unde ctul i restul sunt unice! Pe baza unei exprimri al celui mai mare
divizor comun sub forma unei combinaii liniare ale celor dou numere de
genul
3 = 1 15 2 6,
orice exprimare ("mprire") a lui 87 ca o combinaie liniar a lui 15 i 6 poate
redus la restul unic al mpririi, spre exemplu 87 = 15 4 +6 3 + 9 poate
redus astfel:
87 = 4 15 + 3 6 + 3 (1 15 2 6) + 0
= 7 15 3 6 + 0.
Similar, n cazul exemplului cu polinoame, avem:
(x
2
1, x
2
x) = x 1,
deci mprirea echivalent n care ctul i restul sunt unic determinate
este urmtoarea
2x
3
x 1 x 1
(-) 2x
3
x 1 2x
2
+ 2x + 1 (2x
2
+ 2x + 1) (x 1) = 2x
3
x 1
0.
1.2. CONSTRUCIA BAZEI GRBNER 45
La fel ca pentru numere ntregi, i n acest caz exprimarea celor dou polinoame
sub forma unor combinaii liniare a celor doi "mpritori" are ca efect faptul
c, orice "mprire" poate redus la o mprire care are restul unic, n cazul
nostru 0.
Menionm aici, c cel mai mare divizor comun, precum i "coecienii"
combinaiei liniare care l exprim pe acesta cu ajutorul numerelor (poli-
noamelor) date, se calculeaz efectiv cu algoritmului lui Euclid extins.
1.2.2 mprirea polinoamelor cu mai multe variabile
S trecem acum la mprirea polinoamelor cu mai multe variabile (n >= 2).
Se pune ntrebarea n ce msur cele de mai sus sunt valabile i n acest nou
context? Mai precis, putem formula urmtoarele ntrebri:
Este inelul polinoamelor k[x
1
, x
2
, . . . , x
n
] un inel principal?
n inelul k[x
1
, x
2
, . . . , x
n
] funcioneaz algoritmul lui Euclid?
Exist descompunere n factori ireductibili pentru orice polinom din
k[x
1
, x
2
, . . . , x
n
], i dac da, este unic oare o astfel de descompunere?
Exist un cel mai mare divizor comun pentru oricare dou polinoame
din k[x
1
, x
2
, . . . , x
n
]?
Rspunsul la primele dou ntrebri este uor. Un raionament simplu
(detaliile sunt lsate pe seama cititorului) arat c n inelul K[x, y] idealul
I =< x, y > generat de cele dou variabile nu este principal, adic nu poate
generat de un singur polinom.
ntru-ct orice inel euclidian este i principal, inelul de polinoame cu mai
multe variabile nu este euclidian. Este deci natural s ne ntrebm ct de
departe este acest inel de inelele euclidiene, respectiv cum poate facut m-
prirea polinoamelor cu pstrarea a ct mai mult din proprietatea de unicitate
a cturilor i a restului.
Pentru a rspunde la celelalte dou ntrebri este momentul s dm cteva
deniii noi i reamintim cteva rezultate de baz ale algebrei comutative.
Deniia 1.2.1. Fie A un inel comutativ unitar fr divizori ai lui zero.
Spunem c un element a A este ireductibil , dac nu poate scris ca un
produs de dou elemente ambele neinversabile, adic dac a = bc atunci b sau
c este inversabil (unitate).
Deniia 1.2.2. Fie A un inel comutativ unitar fr divizori ai lui zero.
Spunem c un element p A este prim, dac divide un produs de dou
46 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
elemente numai dac divide unul din cei doi factori, adic dac p|bc atunci p|b
sau p|c.
Un ideal propriu P A se numete ideal prim dac conine un produs
de elemente numai dac conine unul din factorii acestuia, adic dac ab P
atunci a P sau b P.
Se observ c un element prim este i ireductibil (exerciiu) pe cnd in-
vers n general nu este adevrat (contraexemple se pot da n inele n care
descompunerea n factori ireductibili nu este unic!).
Deniia 1.2.3. Fie A un inel comutativ unitar fr divizori ai lui zero.
Inelul A se numete factorial (sau inel cu descompunere unic n factori),
orice element al inelului se poate scrie ca un produs de elemente ireductibile
i aceast scriere este n esen unic.
Formal, A este factorial dac pentru orice element a al lui se poate scrie
a = q
1
q
2
. . .q
n
, unde elementele q
i
sunt ireductibile, i dac a = p
1
p
2
. . .p
m
este o alt reprezentare n produs de elemente ireductibile, atunci m = n
i p
i
= q
i
, dup o eventual permutare a indicilor (i ignorarea/colectarea
eventualelor elemente inversabile).
Observaia 1.2.4. Orice ideal maximal este ideal prim.
Demonstraie. Fie M un ideal maximal n inelul unitar comutativ A. Pre-
supunem c ab M. Trebuie s artm c M conine unul din cei doi factori.
Dac a M atunci idealul generat de a i M, < a, M > (prin maximali-
tatea lui M) este egal cu inelul A, deci avem o reprezentare a lui 1 de forma
1 = ax + m, unde m M. Obinem de aici b = abx + mb M, deci M este
prim.
Are loc urmtoarea propoziie important.
Propoziia 1.2.5. Dac A este un inel factorial, atunci A[x] este tot
inel factorial. n consecin inelul polinoamelor cu mai multe variabile
k[x
1
, x
2
, . . . , x
n
] este factorial.
Pentru demonstraie trimitem cititorul la oricare din tratatele clasice de
algebr.
Putem acum rspunde i la celelalte dou ntrebri. ntru-ct orice corp
este inel factorial (n mod banal), inelul polinoamelor cu una sau mai multe
variabile k[x
1
, x
2
, . . . , x
n
] este inel factorial.
Deoarece ntr-un inel factorial orice element ireductibil este i prim, rezult
c n aceste inele oricare dou elemente au un cel mai mare divizor comun. El
se poate deni chiar cu ajutorul descompunerii celor dou elemente n factori
ireductibili (deci primi) n modul obinuit: se aleg toi factorii comuni (i.e.
1.2. CONSTRUCIA BAZEI GRBNER 47
asociai n divizibilitate) la puterea cea mai mic la care acestea apar n cele
dou descompuneri.
S trecem acum la formularea problemei "mpririi" n inelul
k[x
1
, x
2
, . . . , x
n
]. Fie idealul I =< f
1
, f
2
, . . . , f
k
>. S reamintim c orice
ideal al acestui inel este nit generat, conform teoremei lui Hilbert a bazei,
vezi 1.1.45 de pe pagina 38, deci problema este pus n termenii cei mai gen-
erali. Fie f k[x
1
, x
2
, . . . , x
n
] un polinom. Dorim s exprimm acest polinom
ca o "combinaie liniar" a polinoamelor f
1
, f
2
, . . . , f
k
, admind un rest, cu
alte cuvinte dorim s investigm n ce msur f aparine idealului I? Formal,
cutm o exprimare de forma
f = f
1
q
1
+f
2
q
2
+. . . +f
k
q
k
+r,
n care vom numi (aici) polinoamele q
1
, q
2
, . . . , q
k
drept "cturi", iar polinomul
r "rest" al "mpririi".
Pentru aceasta este clar c avem nevoie mai nti de o ordonare a termenilor
unui polinom. n seciunea care urmeaz investigm posibilitile de ordonare
ale monoamelor.
1.2.3 Ideale monomiale
Este clar c pentru a stabili o relaie de ordine ntre monoamele polinoamelor
inelului k[x
1
, x
2
, . . . , x
n
], care au forma
x

= x

1
1
x

2
2
x

n
n
,
este necesar i sucient s stabilim o astfel de relaie ntre exponenii (i.e.
multiexponenii) acestora,
= (
1
,
2
, . . . ,
n
)
deci s denim o ordonare pe mulimea N
n
. Este natural s cerem ca aceast
relaie de ordonare s e total (oricare dou monoame s e comparabile) i
s e compatibil cu nmulirea monoamelor (nmulirea a dou monoame cu
un al treilea s nu afecteze relaia de ordine existent ntre acestea).
Pentru a putea s e aplicat ntr-un algoritm de mprire, n care prin
scderi succesive gradele monoamelor vor descrete n raport cu aceast or-
donare, pentru a asigurat terminarea algoritmului ntr-un numr nit de pai,
va trebui s cerem s nu existe iruri innite de exponeni strict descresctori.
Toate aceste criterii merit o deniie proprie.
Deniia 1.2.6. O relaie de ordine > pe N
n
se numete ordonare monomial
dac are urmtoarele trei proprieti:
48 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
este o relaie total (ordonare liniar),
dac > atunci + > +,
este o relaie de bineordonare, adic orice submulime nevid are un cel
mai mic element.
A treia proprietate este evident echivalent cu faptul c orice ir strict de-
scresctor este nit.
Se pune acum problema dac exist asemenea relaii de ordine pe mulimea
N
n
i eventual cum se caracterizeaz ele. Pentru a rspunde la prima ntre-
bare vom da cteva exemple de ordonri monomiale pe care le vom regsi i
n mplementrile algoritmilor polinoamelor cu mai multe variabile. n ceea
ce privete cea de a doua ntrebare menionm aici doar faptul c problema
caracterizrii este rezolvat i orice ordonare monomial este descris de o
matrice, avnd anumite proprieti.
Deniia 1.2.7. Relaie de ordine > pe N
n
denit astfel: > dac n
diferena prima component nenul din stnga este pozitiv, se numete
ordonare lexicograc (notat, dac contextul cere n mod explicit, >
lex
).
Se poate verica uor, c aceast ordonare este ordonare monomial.
Introducem urmtoarea notaie pentru exprimarea "gradul total" al unui
monom:
|| =
1
+
2
+. . . +
n
.
Deniia 1.2.8. Relaia de ordine > pe N
n
denit astfel: > dac
|| > || sau
dac || = || atunci n diferena prima component nenul din
stnga este pozitiv,
se numete ordonare lexicograc graduat (notat uneori >
grlex
).
i nc o ordonare utilizat mai des este urmtoarea.
Deniia 1.2.9. Relaia de ordine > pe N
n
denit prin: > dac
|| > || sau
dac || = || atunci n diferena prima component nenul din
dreapta este negativ,
se numete ordonare invers lexicograc graduat (notat >
invgrlex
).
Exemplele 1.2.10. S dm cteva exemple.
1.2. CONSTRUCIA BAZEI GRBNER 49
(1, 2, 3) >
lex
(1, 0, 4)
(2, 2, 3) >
grlex
(3, 2, 1)
(2, 1, 2) >
grlex
(1, 2, 2)
(2, 0, 1) >
invgrlex
(1, 1, 1)
Odat xat o ordonare monomial, evident putem aranja termenii unui poli-
nom ntr-o ordine preferm n mod uzual ordinea descresctoare dar putem
redeni i conceptele obinuite la polinoame cu o singur variabil de termen-
i coecient principal respectiv gradul unui polinom.
Deniia 1.2.11. Fie f un polinom nenul n k[x
1
, x
2
, . . . , x
n
] i e > o or-
donare monomial. Atunci:
(1) gradul polinomului f este
mdeg(f) = max{ N
n
: a

= 0},
(2) coecientul principal al lui f este
LC(f) = a
mdeg(f)
k,
(3) monomul principal al lui f este
LM(f) = x
mdeg(f)
k,
(4) iar termenul principal al lui f este
LT(f) = LC(f) LM(f).
Deniia care urmeaz va important n denirea bazei Grbner .
Deniia 1.2.12. Un ideal I k[x
1
, x
2
, . . . , x
n
] se numete ideal monomial
dac exist o submulime de multiexponeni A N
n
astfel ca I este format
din toate polinoamele ale cror termeni sunt monoame avnd multiexponentul
din A. Vom nota un ideal monomial deci I =< x

: A >.
Dm fr demonstraie o caracterizare important a idealelor monomiale:
Propoziia 1.2.13 (lema lui Dickson). Fie I un ideal monomial n
k[x
1
, x
2
, . . . , x
n
]. Atunci I este generat de o mulime nit de monoame.
n sfrit vom mai avea nevoie de o deniie.
50 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Deniia 1.2.14. Fie I k[x
1
, x
2
, . . . , x
n
] un ideal nenul.
(1) Denim i notm mulimea termenilor principali ai lui I prin
LT(I) = {cx

: exist f I, astfel ca LT(f) = cx

},
(2) respectiv idealul termenilor principali ca ind idealul generat de
aceste elemente LT(I), care va notat prin < LT(I) >.
Este uor de vzut c idealul termenilor principali al unui ideal I este un
ideal monomial i este nit generat de mulimea termenilor principali ai unui
set nit de polinoame ale idealului I.
1.2.4 Baze Grbner
Avnd la dispoziie ordonrile monomiale, putem trece la experimentarea "m-
pririlor" polinoamelor la un set nit de divizori. Vom folosi ordonarea cea
mai la ndemn, ordonarea lexicograc. Iat un exemplu. Fie f = 2x
2
y
"dempritul" iar "mpritorii" f
1
= x
2
x i f
2
= xy +y.
2x
2
y x
2
x xy +y
(-) 2x
2
y 2xy 2y 2y (x
2
x) = 2x
2
y 2xy
2xy
(-) 2xy + 2y 2 2 (xy +y) = 2xy + 2y
2y
Aadar, putem scrie "proba" mpririi:
2x
2
y = 2y (x
2
x) + 2 (xy +y) + (2y).
Restul 2y ne-ar putea sugera c f nu este o combinaie a polinoamelor f
1
i f
2
, altfel spus f nu este n idealul generat de f
1
i f
2
. S nu tragem ns
concluzii pripite. S efectum acum acelai procedeu schimbnd ordinea celor
doi mpritori. Vom obine:
2x
2
y x
2
x xy +y
(-) 2x
2
y + 2xy 2x 2x (xy +y) = 2x
2
y + 2xy
2xy
(-) 2xy 2y -2 2 (xy +y) = 2xy 2y
2y
De data aceasta am obinut urmtoarea reprezentare a lui f:
2x
2
y = 0 (x
2
x) + (2x 2) (xy +y) + 2y.
1.2. CONSTRUCIA BAZEI GRBNER 51
Din nou avem un rest, dar diferit de cel anterior. n consecin procedeul
de mprire depinde pn i de ordinea n care alegem ntre mpritori n
procesul de generare a resturilor pariale.
O alt observaie pentru care nu dm acum o ilustraie este criteriul de
terminare a mpririi. Se poate imagina uor c generarea resturilor nu tre-
buie s se opreasc atunci cnd termenul principal al restului parial nu mai
este divizibil cu nici unul dintre termenii principali ai mpritorilor. ntr-un
astfel de moment putem aeza acest termen rest, i putem cuntinua mprirea
cu urmtorul termen al restului parial. Doar cnd nici unul dintre termenii
restului parial nu mai este divizibil cu termenii principali ai mpritorilor,
procedeul se oprete. Proprietatea ordonrii monomiale ne asigur c acesta
se va ntmpla dup un numr nit de pai.
Revenind la exemplul nostru, urmeaz surpriza:
2x
2
= y (x
2
x) +x (xy +y),
deci f = y f
1
+ x f
2
, ceea ce nseamn c f < f
1
, f
2
>, sau n limbajul
nostru degajat, f este "divizibil" cu f
1
, f
2
!
Se pune deci problema natural: cum poate salvat algoritmul nostru de
mprire? Rspunsul este urmtorul: schimbnd mpritorii! Mai precis, va
trebui s-i schimbm n mod potrivit, fr s schimbm idealul generat de ei!
Setul nou potrivit, care face decidabil problema apartenenei lui f la idealul
I generat de mpritori, deci pentru care restul mpririi este n cazul nostru
0, este baza Grbner !
Pentru idealul nostru I acesta este G = {x
2
x, y}. Se veric uor c
aceasta este o baz echivalent: genereaz acelai ideal I! ntr-adevr, dac
notm g
1
= x
2
x i g
2
= y, atunci avem exprimrile reciproce:
_
f
1
= g
1
f
2
= (x + 1) g
2
,
i
_
g
1
= f
1
g
2
=
1
2
y f
1
+ (
1
2
x + 1)f
2
,
deci este clar c I =< f
1
, f
2
>=< g
1
, g
2
>.
Este momentul s dm deniia bazei Grbner .
Deniia 1.2.15. Fie I un ideal n k[x
1
, x
2
, . . . , x
n
]. O mulime nit de
polinoame G = {g
1
, . . . , g
k
} din I se numete baz Grbner pentru idealul I,
dac
< LT(g
1
), . . . , LT(g
k
) >=< LT(I) > .
52 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
O uoar adaptare a demonstraiei dat pentru teorema lui Hilbert a bazei
ne permite s enunm propoziia urmtoare:
Propoziia 1.2.16. Orice ideal I din k[x
1
, x
2
, . . . , x
n
] are o baz Grbner
. Aceasta este n acelai timp o baz pentru I, adic I este generat de poli-
noamele din baza Grbner .
S demonstrm aici n schimb urmtoarea propoziie, care ne convinge c
ntr-adevr baza Grbner este cea care asigur unicitatea restului mpririi.
Propoziia 1.2.17. Considerm un ideal I n k[x
1
, x
2
, . . . , x
n
] i o baz Grb-
ner G = {g
1
, g
2
, . . . , g
k
} pentru acest ideal. Fie f k[x
1
, x
2
, . . . , x
n
] un poli-
nom arbitrar. Atunci exist polinoamele g I i r k[x
1
, x
2
, . . . , x
n
] cu
urmtoarele proprieti:
f = g +r (mprirea),
nici unul din termenii lui r nu este divizibil cu vre-unul din termenii
principali ai polinoamelor bazei, LT(g
1
), . . . , LT(g
k
) (criteriul opririi m-
pririi) i
r este unic cu aceste dou proprieti.
Demonstraie. Existena lui g i r cu primele dou proprieti este dat chiar
de algoritmul mpririi. Trebuie s dovedim doar unicitatea lui r. Fie f =
g +r = g

+r

. Atunci r

r = g g

I deci evident LT(r

r) < LT(T) >.


Dar datorit bazei Grbner avem < LT(T) >=< LT(G) >, ceea ce nu este
posibil dect dac r

r = 0, deci unicitatea lui r este demonstrat.


1.2.5 Algoritmul lui Buchberger
Baza Grbner a fost introdus de Buchberger n teza sa de doctorat i de-
numit astfel n onoarea conductorului tezei. Buchberger a dat n aceast
tez i un algoritm de calcul al acestei baze. Algoritmul pleac de la o baz a
idealului, un set nit de polinoame, i ntr-un numr nit de pai calculeaz o
baz Grbner pentru idealul dat.
Suntem datori s schim acest algoritm. Fie deci I =< f
1
, f
2
, . . . , f
k
>= 0
un ideal. Iat algoritmul lui Buchberger:
Input: F = (f
1
, f
2
, . . . , f
k
)
Output: G = (g
1
, g
2
, . . . , g
l
), o baz Grbner pentru I, astfel ca F G
G := F
repeat
G

:= G
1.2. CONSTRUCIA BAZEI GRBNER 53
for (p, q), p, q G

, p = q
S := S(p, q)mod G

if S = 0 then G := G {S}
until G = G

Notaia S := S(p, q)mod G

trebuie explicat. Fie x

c.m.m.m.c al
monoamelor LM(p) i LM(p). Atunci
S(p, q) =
x

LT(p)
p
x

LT(q)
q,
iar "mod" este un abuz de limbaj, pentru restul mpririi.
S observm c algoritmul de mai sus calculeaz o baz Grbner care
poate conine polinoame "inutile". Mai precis avem urmtoarea remarc, a
crei demonstraie este imediat din deniia bazei Grbner .
Observaia 1.2.18. Fie G o baz Grbner pentru idealul I. Fie g G un
polinom astfel ca LT(g) LT(G\{g}. Atunci G\{g} este tot o baz Grbner
pentru I.
Rezult de aici c putem elimina aceast redundan din baza Grbner
calculat cu ajutorul algoritmului lui Buchberger.
Deniia 1.2.19. O baz Grbner G pentru idealul I se numete minimal,
dac:
LC(g) = 1 pentru orice g G, i
LT(g) < LT(G\ {g} > pentru orice g G.
Avnd la dispoziie o baz Grbner pentru un ideal I putem elimina pas
cu pas polinoamele care violeaz proprietatea de minimalitate a bazei. Se
vede ns uor c aceast eliminare poate fcut n multe moduri, deci baza
Grbner obinut nu este unic. Putem ns face o "reducere" mai substanial
a bazei Grbner , care va avea i o proprietate de unicitate!
Deniia 1.2.20. O baz Grbner G pentru idealul I se numete redus,
dac:
LC(g) = 1 pentru orice g G, i
nici unul din monoamele lui g nu se a n < LT(G\ {g} > pentru orice
g G.
Deniia de mai sus este justicat de propoziia care urmeaz.
54 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Propoziia 1.2.21. Fixm o ordonare monomial n k[x
1
, x
2
, . . . , x
n
], i e
I un ideal nenul. Atunci baza Grbner redus a lui I este unic.
Demonstraie. S denim n aceast demonstraie un polinom g G ca ind
redus n G dac nici un monom al lui g nu este n < LT(G\ {g} >. Evident,
reducerea lui G se va termina, cnd ecare element al lui este redus n el.
O prim observaie imediat este c dac un polinom g G este redus n
G, atunci ele este redus n orice alt baz Grbner minimal din care face i
el parte, i care are acelai set de termeni principali.
A doua observaie este faptul c orice polinom g al unei baze Grbner
minimale G poate nlocuit cu restul mpririi acestuia la G \ {g}, (adic
gmod (G\ {g})), aceasta ind tot a baz Grbner minimal. Aceasta rezult
direct din algoritmul lui Buchberger, deoarece LT(g) = LT(gmod (G\ {g})).
n ne s mai observm c gmod (G\{g}) este redus pentru baza Grbner
obinut prin dislocarea din G a lui g i cooptarea n locul lui al lui gmod (G\
{g}).
Aceste observaii arat c procesul de reducere a unei baze Grbner prin
eliminarea respectiv dislocarea elementelor sale conform cu observaiilor ante-
rioare conduce la o baz Grbner redus.
Trebuie s mai analizm deci unicitatea bazei reduse. Fie G
1
i G
2
dou
baze Grbner reduse pentru I. Este uor de vzut c mulimea termenilor
principali coincid, deci LT(G
1
) = LT(G
2
). Fie g
1
G
1
arbitrar. Atunci exist
g
2
G
2
astfel ca LT(g
1
) = LT(g
2
). Va trebui s artm c g
1
= g
2
.
Pentru aceasta s considerm diferena g
1
g
2
. Aceasta ind n idealul I
avem (g
1
g
2
)mod G
1
= 0. Dar deoarece LT(g
1
) = LT(g
2
), aceti termeni se
anuleaz n diferen, iar termenii rmai nu sunt divizibili cu nici un monom
din LT(G
1
) = LT(G
2
), deoarece G
1
i G
2
sunt baze Grbner reduse pentru I.
Aadar (g
1
g
2
)mod G
1
= (g
1
g
2
). Rezult c g
1
= g
2
.
Din cele de mai sus rezult un criteriu algoritmic de a decide egalitatea a
dou ideale.
Observaia 1.2.22. Seturile de polinoame {f
1
, f
2
, . . . , f
k
} i {g
1
, g
2
, . . . , g
l
}
genereaz acelai ideal, dac bazele Grbner reduse ale celor dou ideale gen-
erate coincid.
1.3 Demonstraia teoremelor de geometrie
S
trecem acum la una din cele mai spectaculoase aplicaii ale aces-
tui algoritm: demonstraia teoremelor de geometrie euclidian plan.
Prezentarea noastr ncearc s e ct mai scurt, pentru a da loc unor ex-
emple edicatoare. Evident, materialul inclus aici nu este dect o iniiere n
1.3. DEMONSTRAIA TEOREMELOR DE GEOMETRIE 55
acest domeniu, i are drept scop principal trezirea interesului pentru apro-
fundarea acestor tehnici. Este ntotdeauna fascinant n opinia autorului
descoperirea unor legturi profunde ntre diverse ramuri ale matematicii, n
cazul de fa ntre algebr i geometrie!
n continuare ne xm contextul presupunnd urmtoarele fapte: propri-
etile geometrice admise sunt cele care se pot exprima prin ecuaii polinomiale
(nu neaprat liniare!). Acestea se obin cu ajutorul coordonatizrii. Datele
problemei geometrice vor variabile algebrice, ele putnd de dou tipuri:
cele arbitrare (acestea vor notate cu litera u, i sunt parametrii construciilor
geometrice fcute n ipoteza enunului) i cele legate de proprietile geomet-
rice date (notate cu x), numrul acestora din urm ind egal cu numrul
proprietilor. Presupunem deci c ecare proprietate se exprim cu ajutorul
unei ecuaii algebrice (n general neliniare), iar polinoamele acestea vor no-
tate cu h. Proprietatea care exprim concluzia enunului este i ea o ecuaie
polinomial, notat cu g.
Iat descrierea sumar a metodei. ncepem cu o deniie.
Deniia 1.3.1. Concluzia g rezult strict din ipotezele h
1
, . . . , h
n
, dac g
I(V ) R[u
1
, . . . , u
m
, x
1
, . . . , x
n
], unde V este varietatea an generat de
h
1
, . . . , h
n
, i.e. mulimea zerourilor acestui set de polinoame.
Avem urmtoarea propoziie.
Propoziia 1.3.2. Dac g este n

< h
1
, . . . , h
n
>, atunci g rezult strict
din ipotezele h
1
, . . . , h
n
.
Pentru demonstraie trimitem la [12]. n continuare avem nevoie de o
deniie care exprim legtura dintre independena algebric a parametrilor
i degenerarea condiiilor geometrice.
Deniia 1.3.3. Concluzia g rezult generic din ipotezele h
1
, . . . , h
n
, dac
g I(V

) R[u
1
, . . . , u
m
, x
1
, . . . , x
n
], unde V

este reuniunea acelor compo-


nente ale varietii ane V generat de h
1
, . . . , h
n
pe care u
i
sunt algebric
independente.
Reamintim, c independena algebric a variabilelor u
i
pe o varietate an
ireductibil nseamn c nu exist polinom nenul avnd numai aceste variabile
care s se anuleze identic pe aceast varietate. n mod uzual n teoremele
geometrice concluzia exprim o proprietate geometric generic, i.e. situaia
degenerat a proprietilor din ipoteze se exclude.
Urmtoarea teorem reprezint cheia aplicrii teoriei bazelor Grbner n
demonstrarea teoremelor de geometrie (vezi [12]).
Teorema 1.3.4. Concluzia g rezult generic din ipotezele h
1
, . . . , h
n
, dac
una din condiiile echivalente urmtoare este ndeplinit:
56 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
(1) Exist un polinom nenul c(u
1
, . . . , u
m
) R[u
1
, . . . , u
m
] astfel ca
c g

H,
unde H =< h
1
, . . . , h
n
> R[u
1
, . . . , u
m
, x
1
, . . . , x
n
].
(2) Dac notm

H =< h
1
, . . . , h
n
> R(u
1
, . . . , u
m
)[x
1
, . . . , x
n
], atunci
g

H.
(3) 1 este baza Grbner (redus) a idealului
< h
1
, . . . , h
n
, 1 yg > R(u
1
, . . . , u
m
)[x
1
, . . . , x
n
, y].
n exemplele care urmeaz rolul principal va juca condiia (3) care se va
regsi i n comenzile din codul surs al programului Singular, pe care-l vom
folosi n aplicaii.
1.4 Aplicaii Exemple n Singular
S
vedem acum, cum arat toate acestea n Singular. Acest pachet este
construit pe baza furnizat de teoria inelelor de polinoame cu mai multe
variabile i are ca scop iniial furnizarea suportului computaional pentru in-
vestigaii n teoria singularitiilor. Este accesibil liber pe internet la adresa
http://www.singular.uni-kl.de/ de unde se poate obine versiunea 3.1.1, la
care a ajuns n momentul redactrii acestui manuscris.
Inelele n pachetul Singular pot :
Un inel de polinoame peste un corp.
Localizarea unui inel de polinoame.
Inelul factor al celor de mai sus, cu un ideal al acestora.
Produsul tensorial al inelelor de la punctul 1 sau 2.
Corpul de coecieni poate :
Corpul numerelor raionale Q, cu reprezentarea numerelor ntregi n pre-
cizie innit.
Z
p
unde p este un numr prim mai mic dect 2147483629.
Un corp nit GF(p
n
), unde p este un numr prim, i p
n
2
15
.
Extinderi transcendente ale lui Q i Z
p
.
Extinderi algebrice simple ale lui Q i Z
p
.
Corpul numerelor reale i complexe (cu reprezentarea numerelor n vir-
gul mobil, cu precizie innit).
1.4. APLICAII EXEMPLE N SINGULAR 57
Exemplele 1.4.1. Denim n Singular inelele de polinoame:
(1) Q[x, y, z],
(2) Z
5
[x],
(3) Z
1
1(a, b)[x, y, z],
(4) Z
2
[a]/(a
3
+a + 1)[x, y].
(5) R[x, y, z].
Iat i secvenele de program corespunztoare:
// (1)
ring R=0,(x,y,z),dp;
R;
// (2)
ring R=5,x,dp;
R;
// (3)
ring R=(11,a,b),(x,y,z),dp;
R;
// (4)
ring R=(2,a),(x,y),dp;
minpoly = a^3+a+1;
R;
ring R=(2^3,a),(x,y),dp;
R;
// (5) numere reale cu 50 cifre zecimale
ring R=(real,50),(x,y),dp;
R;
Comanda (4) spre exemplu denete inelul caracterizat de program astfel:
// characteristic : 2
// 1 parameter : a
// minpoly : (a3+a+1)
// number of vars : 2
// block 1 : ordering dp
// : names x y
// block 2 : ordering C
n cele ce urmeaz semnalm de pe acum nu vom insista asupra sintaxei
comenzilor programelor pe care le folosim pentru exemplicri i rezolvarea
exerciiilor. Aceste programe dispun de un ajutor (help) extensiv i acoperitor,
pentru ca cititorul dornic s pun n funciune matematica prezentat, s se
lmureasc asupra acestor aspecte din punctul de vedere al scopului urmrit
de textul de fa neeseniale.
58 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
S considerm urmtoarea teorem de geometrie plan.
Teorema 1.4.2. Fie A, B, C i D patru puncte arbitrare n planul euclidian.
Presupunem c ele sunt cte trei necoliniare, i nici unul nu este ortocentrul
triunghiului format de celelalte trei puncte. Considerm cele patru cercuri ale
celor nou puncte (numit i cercul Euler sau cercul Feuerbach) al celor patru
triunghiuri formate de punctele date. Cele patru cercuri au un punct comun.
A
B
C
D
Figura 1.7: Patru cercuri (A)
Demonstraia acestei teoreme este coninut n codul surs Singular de mai
jos. Comentariile din cod trebuie s e suciente pentru a nelege constituirea
acestui program.
Aceast teorem se bazeaz pe o teorem a lui Brianchon-Poncelet (1820),
care arm c centrul unei hiperbole echilaterale care trece prin trei puncte
date, se a pe cercul celor nou puncte al triunghilui.
Aadar punctul de intersecie al celor patru cercuri este centrul hiperbolei
echilaterale determinat unic de cele patru puncte date.
// --------------------------------------------------------
//
1.4. APLICAII EXEMPLE N SINGULAR 59
// Program Singular
//
// Fie A1, A2, A3, A4 patru puncte arbitrare n plan.
// Coordonatele acestora sunt parametrii
// A(u1,u2), B(u3,u4), C(u5,u6), D(u7,u8)
// Ecuaia unui cerc Euler conine trei variabile legate
// a,b,c, iar cercul trece prin trei puncte deja date:
// (x-a1)^2+(y-b1)^2-c1^2=0 is the Euler circle of BCD...
// de unde rezult trei condiii h1=0, h2=0, h3=0...
// n final (x1,x2) sunt coordonatele punctului de intersecie.
//
ring r=(0,u1,u2,u3,u4,u5,u6,u7,u8),
(a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,x1,x2,y),lp;
poly h1=(u3+u5-2*a1)^2+(u4+u6-2*b1)^2-4*c1*c1;
poly h2=(u3+u7-2*a1)^2+(u4+u8-2*b1)^2-4*c1*c1;
poly h3=(u5+u7-2*a1)^2+(u6+u8-2*b1)^2-4*c1*c1;
poly h4=(u1+u5-2*a2)^2+(u2+u6-2*b2)^2-4*c2*c2;
poly h5=(u1+u7-2*a2)^2+(u2+u8-2*b2)^2-4*c2*c2;
poly h6=(u5+u7-2*a2)^2+(u6+u8-2*b2)^2-4*c2*c2;
poly h7=(u1+u3-2*a3)^2+(u2+u4-2*b3)^2-4*c3*c3;
poly h8=(u1+u7-2*a3)^2+(u2+u8-2*b3)^2-4*c3*c3;
poly h9=(u3+u7-2*a3)^2+(u4+u8-2*b3)^2-4*c3*c3;
poly h10=(u1+u3-2*a4)^2+(u2+u4-2*b4)^2-4*c4*c4;
poly h11=(u1+u5-2*a4)^2+(u2+u6-2*b4)^2-4*c4*c4;
poly h12=(u3+u5-2*a4)^2+(u4+u6-2*b4)^2-4*c4*c4;
poly h13=(x1-a1)^2+(x2-b1)^2-c1^2-((x1-a2)^2+(x2-b2)^2-c2^2);
poly h14=(x1-a1)^2+(x2-b1)^2-c1^2-((x1-a3)^2+(x2-b3)^2-c3^2);
// Concluzia este reprezentat de:
poly g=(x1-a1)^2+(x2-b1)^2-c1*c1;
// Definim idealul:
ideal I=(1-y*g,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14);
// Baza Grbner este 1, deci teorema este adevrat:
groebner(I);
// --------------------------------------------------------
Programul va ntoarce 1, deci teorema este demonstrat. (De fapt n locul
comenzii groebner(I) se folosete o variant modicat, std(I), prescurtare de
la "standard bases". Pentru detalii vezi [12]).
Autorul nu a gsit referine pentru urmtoarea variant a precedentului rezul-
tat vechi.
60 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Teorema 1.4.3. Fie A, B, C i D patru puncte arbitrare n planul euclidian,
ca n teorema precedent. Considerm cele patru cercuri care trec prin cele cte
trei picioare ale perpendicularelor duse dintr-un punct pe laturile triunghiului
format de celelalte trei puncte. Cele patru cercuri au din nou un punct comun.
A
B
C
D
O
Figura 1.8: Patru cercuri (B)
Este remarcabil c cele dou puncte de intersecie coincid! Demonstraia este
un exerciiu de programare n Singular, lsat pe seama cititorului.
A
B
C
D
O
Figura 1.9: Patru cercuri (C)
1.5. PROBLEME PROPUSE 61
1.5 Probleme propuse
1. S se reprezinte grac varietile ane din R
2
i s se precizeze ct
mai multe informaii despre natura i dimensiunea acestora.
1-1. V (x
2
2y).
1-2. V ((x
2
2y) (2x y
2
)).
1-3. V (xy(x
2
2y) (2x y
2
+ 1)).
1-4. V (x 2y + 1) V (2x y
2
).
1-5. V (x
2
2y) V (2x y
2
).
2. S se reprezinte grac varietile ane din R
3
i s se precizeze de
asemenea ct mai multe informaii despre natura i dimensiunea aces-
tora.
2-1. V (x
2
+y
2
z
2
1).
2-2. V (x
2
y
2
z
2
1).
2-3. V (x
2
y
2
z).
2-4. V (x
2
+y
2
1).
2-5. V (x
2
y
2
1).
2-6. V ((x
2
2y) (2x y
2
)).
2-7. V ((x
2
2y) (2x z
2
)).
2-8. V (xyz(x
2
2y)).
2-9. V (x 2y +z + 1) V (2x y z + 2).
2-10. V (x
2
2y) V (x y +z + 1).
3. S se stabileasc dac apartenenele de mai jos sunt adevrate sau nu n
inelul R[x, y] respectiv R[x, y, z].
3-1. x
6
+y
6
< x
3
+x
2
y, xy
3
+y
4
>.
3-2. x
6
y
6
< x
3
+x
2
y, xy
3
+y
4
>.
3-3. x
6
+y
6
< x
3
+y
3
, x
2
+y
2
>.
3-4. x
2
+y
2
< x
3
+y
3
, x
2
+y
2
>.
3-5. x
2
y
2
< x
3
+y
3
, x
2
+y
2
>.
3-6. x
3
+yz
2
< x
3
+y
3
, xy +yz, y
2
z
2
>.
3-7. x
2
+y
2
+z
2
< x
3
+y
3
, xy +yz, y
2
z
2
>.
3-8. x
3
+y
4
+z
5
< x
3
+y
3
, xy +yz, y
2
z
2
>.
3-9. xyz < x
3
+y
3
+z
3
, xy +yz +zx, x
2
+y
2
+z
2
>.
3-10. x +y +z < x
3
+y
3
+z
3
, xy +yz +zx, x
2
+y
2
+z
2
>.
3-11. x
7
+y
7
+z
7
< x
3
+y
3
+z
3
, xy +yz +zx, x
2
+y
2
+z
2
>.
Indicaie:
ring R=0,(x,y),dp;
ideal I=x3+x2y,xy3+y4;
ideal J=std(I);
poly f=x6+y6;
62 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
reduce(f,J);
// -> 0: f este in I
// -> diferit de 0: f nu este in I
4. S se stabileasc care din relaiile (posibil mai multe)
(a). I J.
(b). I J.
(c). I = J.
(d). I J.
(e). I J.
au loc pentru urmtoarele ideale ale inelului R[x, y] respectiv R[x, y, z].
4-1. I =< x, y >, J =< x + 2y, 2x y >.
4-2. I =< x, y >, J =< x
2
, x +y >.
4-3. I =< x
2
, y
2
, xy >, J =< x +y, x
3
y
3
>.
4-4. I =< x, y, z >, J =< x + 2y +z, 2x y x, y +z >.
4-5. I =< x +y, xy, x +z >, J =< xyz, x z, y z >.
Indicaie:
ring R=0,(x,y),dp;
ideal I=x,y;
ideal J=x+2y,2x-y;
reduce(I,std(J));
// daca ambele generatoare ale lui I sunt in J -> I inclus J
// exact in acest caz comanda intoarce numai 0-uri
// in caz contrar -> I nu este inclus in J, etc...
5. S se calculeze "restul" i "cturile" mpririi polinomului f la idealul I,
i s se scrie "proba" mpririi.
5-1. f = x + 3y, I =< x + 2y, 2x y >.
5-2. f = x
3
y
3
, I =< x
2
+y, x +y
2
>.
5-3. f = x
3
+y
3
+z
3
, I =< x +y +z, x
2
+y
2
+z
2
>.
Indicaie:
ring R=0,(x,y),dp;
ideal I=x+2y,2x-y;
poly f=x+3y;
poly r=reduce(f,std(I));
matrix Q=lift(I,f-r);
1.5. PROBLEME PROPUSE 63
r;
Q;
f-Q[1,1]*I[1]-Q[2,1]*I[2]-r;
// -> r este "restul" impartirii
// -> Q este "caturile" impartirii
// ultima relatie trebuie sa dea 0 -> "proba" impartirii
sau
ring R=0,(x,y),dp;
ideal I=x+2y,2x-y;
poly f=x+3y;
list L=division(f,I);
L;
L[3]*f-matrix(I)*L[1]-L[2];
// -> L[1] este "caturile" impartirii
// -> L[2] este "restul" impartirii
// -> L[3] este un factor care inmulteste f
// ultima relatie trebuie sa dea 0 -> "proba" impartirii
6. S se calculeze ecuaiile implicite ale curbelor i suprafeelor denite
parametric de ecuaiile date (parametrii sunt t, u, v...).
6-1. x = 2t
2
, y = t
3
.
6-2. x = t
2
+t + 1, y = t
3
.
6-3. x = t
2
, y = t
3
, z = t
5
.
6-4. x = uv, y = uv
2
, z = u
2
(aceast suprafa se numete umbrela lui
Whitney).
6-5. x = u +v, y = u v, z = u
2
v
2
.
6-6. x = u +v, y = u v, z = u
2
+v
2
.
6-7. x = u +v, y = uv, z = u
2
+v
2
.
6-8. x = u
2
+v
2
, y = u
2
v
2
, z = 2uv.
6-9. x = 1 +u
2
+v, y = 1 u v
2
, z = u
2
+v
2
.
Indicaie:
ring R=0,(t,x,y),dp;
ideal I=x-2t2,y-t3;
ideal J=eliminate(I,t);
J;
// -> J este generat de ecuaiile implicite
7. S se stabileasc dac polinomul dat este sau nu un element al radicalului
idealului dat.
64 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
7-1. f = x +y, I =< x
2
, xy, y
2
>.
7-2. f = x y, I =< x
3
, x
2
y, xy
2
, y
3
>.
7-3. f = x +y +z, I =< x
6
, xy
2
, y
3
, z
4
+xyz >.
7-4. f = x +y +z, I =< x
9
, xy
8
, y
9
, xyz >.
7-5. f = x
2
+y
2
+z
2
, I =< x
9
, xy
8
, z
9
, xyz >.
Indicaie:
ring A=0,(x,y),dp;
ideal I=x2,2xy,y2;
poly f=x+y;
ring B=0,(t,x,y),dp;
ideal I=imap(A,I);
poly f=imap(A,f);
I=I,1-t*f;
std(I);
// -> 1, inseamna f este in radicalul lui I,
// -> != 1, f nu este in radicalul lui I
8. S se determine radicalul idealului urmtor dat.
8-1. I =< x
2
, xy, y
2
>.
8-2. I =< x
3
, x2y, xy2, y
3
>.
8-3. I =< x
4
, y
3
>.
8-4. I =< x
2
+xy, y
3
>.
8-5. I =< x
6
, xy
2
, y
3
, z
4
+xyz >.
8-6. I =< x
9
, xy
8
, y
9
, xyz >.
8-7. I =< x
9
, xy
8
, z
9
, xyz >.
Indicaie:
LIB "primedec.lib";
ring R=0,(x,y),dp;
ideal I=x2,2xy,y2;
setring(R);
radical(I);
// -> idealul radical(I)
9. S se calculeze intersecia idealelor, I J pentru idealele urmtoare.
9-1. I =< x
2
, xy, y
2
>, J =< x
3
>.
9-2. I =< x
3
, x2y, xy2, y
3
>, J =< x
3
, y
3
>.
9-3. I =< x
4
, y
3
>, J =< x
2
+y
3
>.
9-4. I =< x
2
+xy, y
3
>, J =< x
4
, z
2
>.
9-5. I =< x
3
, xy
2
>, J =< z >.
1.5. PROBLEME PROPUSE 65
9-6. I =< x
5
, xy, xy >, J =< x, xz >.
9-7. I =< x
3
+xy
2
, xyz >, J =< x +y, x +z >.
9-8. I =< x +y
2
, z >, J =< x +y, z >.
9-9. I =< x +y +z, xyz >, J =< x +y, x +z, y +z >.
66 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Indicaie:
ring R=0,(x,y),dp;
ideal I=x2,xy,y2;
ideal J=x3;
intresect(I,J);
// -> idealul intersectia lui I si J
10. S se calculeze ctul idealelor, I : J pentru idealele urmtoare.
10-1. I =< x
2
, xy >, J =< x
3
>.
10-2. I =< x, y >, J =< x
3
, y
3
>.
10-3. I =< x
3
, y
3
>, J =< x, y >.
10-4. I =< x
2
, y >, J =< x, z
2
>.
10-5. I =< x
3
, xy, z
2
>, J =< z >.
10-6. I =< x
3
, xy, z
2
>, J =< x, z >.
10-7. < x, z >, J = I =< x
3
, xy, z
2
>.
Indicaie:
ring R=0,(x,y),dp;
ideal I=x2,xy;
ideal J=x3;
quotient(I,J);
// -> idealul cat al lui I si J
// -> 1, inseamna intreg inelul
11. S se studieze dependena algebric a polinoamelor date, i n cazul de-
pendenei algebrice s se determine polinomul care realizeaz aceast de-
penden. (Reamintim c polinoamele f
1
, f
2
, . . . , f
k
k[x
1
, x
2
, . . . , x
n
]
sunt algebric dependente dac exist un polinom g K[y
1
, y
2
, . . . , y
k
]
astfel ca g(f
1
, f
2
, . . . , f
k
) = 0.)
11-1. f
1
= 2x +y, f
2
= x 3y, f
3
= 5x + 7y.
11-2. f
1
= x +y, f
2
= x y, f
3
= x
2
y
2
.
11-3. f
1
= x +y, f
2
= x y, f
3
= x
2
+y
2
.
11-4. f
1
= x +y +z, f
2
= x
2
+y
2
+z
2
, f
3
= xy +xz +yz.
11-5. f
1
= x +y, f
2
= xy, f
3
= x
5
+y
5
.
11-6. f
1
= x +y, f
2
= xy, f
3
= x
5
y
5
.
1.5. PROBLEME PROPUSE 67
Indicaie:
ring R=0,(x,y),dp;
poly f1=2x+y;
poly f2=x-3y;
poly f3=5x+7y;
LIB "algebra.lib";
list L=algDependent(ideal(f1,f2,f3))[1];
// -> L[1]=1, inseamna algebric dependent
def S=L[2]; // defineste inelul de 2+3 (x,y,f1,f2,f3) variabile
setring(S); // selecteaza acest inel
ker; // listeaza relatiile de dependenta
12. S se demonstreze teoremele urmtoare folosind programe scrise n
Singular.
12-1. Teorema lui Pitagora.
12-2. Reciproca teoremei lui Pitagora.
12-3. Teorema nlimilor.
12-4. Teorema medianelor.
12-5. Teorema bisectoarelor.
12-6. Teorema mediatoarelor.
12-7. Teorema bisectoarei.
13. S se demonstreze teorema 1.4.3 de la pagina 60 ambele armaii,
corespunztoare gurilor (B) i (C) respectiv.
68 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Capitolul 2
Rezolvarea sistemelor de
ecuaii
E
cuaiile polinomiale cu o singur variabil se studiaz n
cadrul unor capitole de matematic care nu intr n obiectivele
prezentului volum. Sisteme de ecuaii am ntlnit ns n capi-
tolul precedent: am vzut c mulimea soluiilor unui sistem de
ecuaii algebrice este un obiect "geometric" numit varietate an. Ecuaiile
unui sistem pot schimbate dup anumite reguli cu pstrarea mulimii solui-
ilor sistemului, ecuaiile (polinoamele) obinute n acest fel dau natere la un
obiect algebric, numit ideal. Am vzut de asemenea c aceast coresponden
varietate algebric ideal, este protabil din punctul de vedere al studiului
ambelor obiecte.
n acest capitol vom ncerca s fructicm acest studiu n direcia studiului
rezolvabilitii sistemelor de ecuaii algebrice.
2.1 Sisteme de ecuaii polinomiale
S
istemele de ecuaii pe care le vom considera n acest capitol vor
formate din ecuaii polinomiale. Coecienii vor elementele unui corp
de numere. n exemplele concrete vor numere raionale, numere reale, clase
de resturi modulo un numr prim, sau extensii algebrice nite ale acestora.
69
70 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Forma general a unui astfel de sistem este deci
_

_
f
1
(x
1
, x
2
, . . . , x
n
) = 0
f
2
(x
1
, x
2
, . . . , x
n
) = 0
. . .
f
m
(x
1
, x
2
, . . . , x
n
) = 0
(2.1)
unde x
1
, x
2
, . . . , x
n
sunt necunoscutele sistemului iar f
1
, f
2
, . . . , f
m

K[x
1
, x
2
, . . . , x
n
] sunt polinoame cu coecieni n corpul de numere K.
2.1.1 Sisteme liniare
Cele mai simple sisteme de ecuaii sunt cele liniare. n acest caz polinoamele
f
1
, f
2
, . . . , f
m
sunt liniare, deci au forma
f = a
1
x
1
+a
2
x
2
+. . . +a
n
x
n
b,
unde numerele a
1
, a
2
, . . . , a
n
, b K sunt elemente ale corpului de numere K.
Teoria acestor sisteme este binecunoscut. Sunt posibile trei situaii: sis-
temul are soluie unic, sistemul are o innitate de soluii (acetia sunt funcii
liniare de un numr nit de parametrii), respectiv sistemul nu are soluii.
Toate aceste situaii sunt decise de rangul matricii coecienilor sistemului i
de rangul matricii extinse, adic rangurile matricilor:
A =
_
_
_
_
_
_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
.
.
.
.
.
.
.
.
.
a
m1
a
m2
. . . a
mn
_
_
_
_
_
_
respectiv
A =
_
_
_
_
_
_
a
11
a
12
. . . a
1n
b
1
a
21
a
22
. . . a
2n
b
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
m1
a
m2
. . . a
mn
b
m
_
_
_
_
_
_
.
Reamintim c rangul unei matrici este numrul maxim r de linii (sau coloane)
liniar independente, sau ordinul r celui mai mare minor (i.e. subdeterminant)
nenul format din elementele a r linii i r coloane alese din matrice.
Teoria acestor sisteme se poate formula concis n felul urmtor. Notm
r = rank(A) i r = rank(A). Atunci avem:
r = r sistem compatibil are soluii
r = n sistem determinat soluie unic
2.1. SISTEME DE ECUAII POLINOMIALE 71
r < n sistem nedeterminat innitate parametric de soluii
r < r sistem incompatibil nu are soluii
n toate cazurile anterioare, dac r < m atunci un numr de m r ecuaii
potrivit alese sunt combinaii liniare ale celorlalte r ecuaii, deci aceste ecuaii
pot eliminate din sistem fr ca rezolvabilitatea i soluiile sistemului s e
afectate. n seciunea de aplicaii dm exemple pentru ecare caz.
2.1.2 Teorema lui Hilbert a zerourilor
nainte de a intra n studiul sistemelor de ecuaii neliniare va trebui s contin-
um analiza "dicionarului" algebr-geometrie nceput n capitolul precedent.
S ne aducem aminte aadar, c mulimea soluiilor unui sistem de ecuaii poli-
nomiale se numete varietate algebric. Polinoamele care denesc sistemul de
ecuaii denesc i un ideal, i orice polinom al acestui ideal se anuleaz pe
punctele acestei varieti.
Invers, dat un ideal de polinoame conform teoremei lui Hilbert a bazei
(vezi teorema 1.1.45 de la pagina 38), mai precis a consecinei acesteia care
urmeaz dup teorem acest ideal este nit generat, deci exist un sistem
format dintr-un numr nit de ecuaii, ale cror rdcini comune sunt punctele
n care se anuleaz toate polinoamele idealului (propoziia 1.1.47 e la pagina
40).
Am vzut de asemenea c att corespondena varietate-ideal, ct i core-
spondena ideal-varietate este antimonoton (vezi propoziia 1.1.48 de la pag-
ina 40).
Am demonstrat tot acolo, c V (I(V )) = V , i asocierea idealului la vari-
etate este injectiv. Se pune deci problema natural, n ce msur o variate
an asociat unui ideal determin idealul din care provine.
Avem evident I(V (I)) I. Este uor de vzut pe un contraexemplu simplu
c incluziunea este strict. ntr-adevr, e n = 1, I = (x
2
), deci V (I) = {0}
i deci I(V (I)) = (x) I. Teorema lui Hilbert a zerourilor claric tocmai
aceast incluziune strict.
nainte de a enuna teorema lui Hilbert a zerourilor demonstrm dou leme
care vor folosite n demonstraia acesteia respectiv vom demonstra i forma
slab a acestei teoreme.
Lema 2.1.1. Fie I un ideal propriu n k[x
1
, x
2
, . . . , x
n
]. Atunci exist un
ideal maximal m k[x
1
, x
2
, . . . , x
n
] care l conine pe I.
Demonstraie. ntr-adevr, adugnd unul cte unul elemente ale inelului la
idealul I i genernd astfel un ir strict ascendent de ideale acesta ind
nit, la un moment dat el coincide cu ntreg inelul k[x
1
, x
2
, . . . , x
n
]. Idealul
72 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
construit n pasul anterior acestui moment este evident maximal i conine
idealul I.
Ideea de mai sus reluat mai explicit arat astfel. tim din teorema lui
Hilbert a bazei (teorema 1.1.45 de la pagina 38) c inelul k[x
1
, x
2
, . . . , x
n
] este
Noetherian, i conform propoziiei 1.1.44 de la pagina 38 aceasta nseamn c
orice ir de ideale ascendent este staionar sau altfel spus orice ir de ideale
strict ascendent este nit.
Considerm idealul I
1
= I. Acesta ind ideal propriu, exist un element
f
1
k[x
1
, x
2
, . . . , x
n
] \ I
1
. Idealul generat I
2
=< f
1
, I
1
> este ori ntreg
inelul ori ideal propriu. Aadar ori I
1
I este maximal ori exist f
2

k[x
1
, x
2
, . . . , x
n
] \ I
2
. Raionamentul se repet, i se obine astfel un ir strict
ascendent de ideale I
1
I
2
. . ., care ind nit, exist un indice k pentru
care I
k
= k[x
1
, x
2
, . . . , x
n
]. Atunci m = I
k1
este idealul maximal care l
conine pe I.
Idealele maximale ale inelelor de polinoame cu coecieni ntr-un corp al-
gebric nchis (e sucient s ne limitm aici la corpul numerelor complexe) au
o form particular. S ne aducem aminte c asocierea la un ideal a unei
varieti algebrice este antimonoton: cu ct idealul este mai mare, cu att
varietatea este mai mic. Nu este chiar att de surprinztor aadar c unui
ideal maximal i va corespunde cea mai "mic" varietate algebric: punctul.
Dac coordonatele acestuia sunt (a
1
, a
2
, . . . , a
n
), atunci funciile polinomiale
cele mai simple care se anuleaz n acest punct sunt cele liniare. Avem aadar
urmtoarea armaie:
Lema 2.1.2. Fie m un ideal maximal (deci propriu) n k[x
1
, x
2
, . . . , x
n
].
Atunci exist un punct (a
1
, a
2
, . . . , a
n
) k
n
astfel ca
m =< x
1
a
1
, x
2
a
2
, . . . , x
n
a
n
>,
adic idealul maximal este generat de polinoamele de gradul nti x
i
a
i
.
Demonstraie. Demonstraia nu este chiar simpl. Redm aici o idee a demon-
straiei pentru a sublinia att plauzibilitatea rezultatului ct i dicultatea
demonstraiei nsi. Pentru orice i, 1 i n intersecia m k[x
i
] nu
este vid, adic idealul maximal conine pentru ecare variabil un polinom
n numai variabila respectiv (aceasta este partea dicil a demonstraiei,
vezi [?]). Acest polinom nu poate o constant nenul, deoarece atunci
am avea m = k[x
1
, x
2
, . . . , x
n
]. Corpul k ind algebric nchis acest poli-
nom de grad cel puin 1 se descompune n factori liniari. Dar idealul m
ind maximal este i prim, deci conine unul din factorii acestei descom-
puneri, s spunem factorul (x
i
a
i
). Prin urmare idealul m conine idealul
2.1. SISTEME DE ECUAII POLINOMIALE 73
< x
1
a
1
, x
2
a
2
, . . . , x
n
a
n
> . Acesta ns este un ideal maximal, deci
avem egalitatea din enun.
Teorema lui Hilbert a zerourilor n forma sa slab (week Nullstellensatz)
are urmtorul enun:
Teorema 2.1.3 (Teorema lui Hilbert a zerourilor forma slab). Fie k un
corp algebric nchis. Fie I un ideal n k[x
1
, x
2
, . . . , x
n
], pentru care V (I) = .
Atunci I = k[x
1
, x
2
, . . . , x
n
].
Demonstraie. Armaia teoremei se poate reformula astfel: dac idealul I
k[x
1
, x
2
, . . . , x
n
] este ideal propriu, atunci V (I) = . Fie m un ideal maximal
care l conine pe I acesta exist conform lemei 2.1.1. Atunci conform
lemei 2.1.2 exist un punct (a
1
, a
2
, . . . , a
n
) k
n
astfel ca m =< x
1
a
1
, x
2

a
2
, . . . , x
n
a
n
>. Atunci punctul (a
1
, a
2
, . . . , a
n
) este o rdcin comun a
polinoamelor din m deci i a polinoamelor din I.
n sfrit teorema lui Hilbert a zerourilor dup cum am pus la vedere n
nceputul acestei seciuni are urmtorul enun:
Teorema 2.1.4 (Teorema lui Hilbert a zerourilor). Fie k un corp algebric
nchis i e I un ideal propriu al inelului de polinoame k[x
1
, x
2
, . . . , x
n
]. Atunci
I(V (I)) =

I.
Demonstraie. Incluziunea I(V (I))

I este simpl. ntr-adevr, dac f


i

I pentru un i 1 (i.e. f

I), atunci nu numai nu numai f


i
(x) = 0 pentru
orice x V (I) dar odat cu aceasta i f(x) = 0, deci f I(V (I)).
Demonstrm deci incluziunea contrar I(V (I))

I. Dac I = (0),
atunci avem I(V (I)) = I =

I = (0). Fie deci I = 0. Fie f I(V (I)), f = 0,


i e {g
1
, g
2
, . . . , g
s
} un sistem de generatori ai lui I. S notm totodat
R = k[x
1
, x
2
, . . . , x
n
]. Considerm a nou variabil y. Considerm n inelul
de polinoame R[y] = k[x
1
, x
2
, . . . , x
n
, y] idealul
J =< I, yf 1 > .
Pentru orice punct (a
1
, a
2
, . . . , a
n
, b) n varietatea algebric an V (J) avem
bf(a
1
, a
2
, . . . , a
n
) = 1 i g
i
(a
1
, a
2
, . . . , a
n
) = 0, pentru orice i = 1, . . . , s. De
aici ns se deduce c (a
1
, a
2
, . . . , a
n
) V (I) i f(a
1
, a
2
, . . . , a
n
) = 0, n con-
tradicie cu alegerea lui f. Prin urmare un asemenea punct (a
1
, a
2
, . . . , a
n
, b)
nu exist, deci V (J) = , i forma slab a teoremei lui Hilbert a zerourilor
implic 1 J. Astfel rezult c exist polinoamele h
1
, h
2
, . . . , h
s
, h R[y]
astfel ca
1 = h
1
g
1
+h
2
g
2
+. . . +h
s
g
s
+h (yf 1).
74 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Aceast egalitate vzut n corpul de fracii raionale k(x
1
, x
2
, . . . , x
n
, y) ne
permite s substituim y cu 1/f, de unde vom obine
1 =
s

i=1
h
i
(x
1
, x
2
, . . . , x
n
,
1
f
) g
i
.
Acum nu mai avem dect s eliminm numitorul printr-o nmulire corespun-
ztoare i vom obine c a exist o putere a lui f care este o combinaie a
generatorilor lui I, deci f

I.
2.1.3 Sisteme neliniare
Scopul principal al acestui capitol este studiul sistemelor de ecuaii neliniare
polinomiale. Aadar n 2.1 de la pagina 70 polinoamele f vor neliniare: vor
sume de monoame ale variabilelor, de diverse grade.
Aa cum vom vedea n cele ce urmeaz, studiul acestor sisteme ne va
conduce la trei alternative similare cu cele de la sisteme liniare, i anume:
sistem compatibil cu o innitate de soluii, sau cu un numr nit de soluii
respectiv sistem incompatibil, deci fr soluie. Interesant este ns faptul
c toate aceste alternative pot recunoscute efectiv cu ajutorul algoritmului
bazei Grbner ! S vedem acum i detaliile.
Ca un rezultat imediat s observm c teorema lui Hilbert a zerourilor
n forma slab permite s caracterizm (inclusiv algoritmic!) rezolvabilitatea
unui sistem de ecuaii polinomiale neliniare.
Propoziia 2.1.5. Un sistem de ecuaii algebrice de forma 2.1 are soluii
exact atunci cnd idealul generat de polinoamele care l denesc este propriu
(nu este ntregul inel de polinoame n cele n variabile).
Altfel spus, un sistem algebric este incompatibil dac i numai dac baza
Grbner al idealului generat de polinoamele care denesc sistemul conine poli-
nomul constant 1.
Demonstraie. Enunul propoziiei este doar a reformulare a teoremei lui
Hilbert a zerourilor n forma slab. Pentru cea de a doua variant, s ob-
servm c dac un ideal al unui inel conine elementul unitate, atunci conine
orice element, adic coincide cu inelul, deci nu este ideal propriu (i invers).
tim aadar s decidem dac un sistem de ecuaii polinomial are sau nu
soluie. n cazul n care sistemul are soluii, se pune problema dac numrul
acestora este nit sau innit.
S relum n acest scop ideile din propoziia 1.2.17 de la pagina 52 sub
forma unui enun care este practic o reformulare a acesteia.
2.1. SISTEME DE ECUAII POLINOMIALE 75
Propoziia 2.1.6. Fie I un ideal n k[x
1
, x
2
, . . . , x
n
], i e o ordonare mono-
mial xat n acest inel. Atunci:
Orice f k[x
1
, x
2
, . . . , x
n
] este congruent modulo I cu un unic poli-
nom r, care este o combinaie liniar cu coecieni numerici ai unor
monoame din complementara mulimii < LT(I) >, adic din mulimea
de monoame {x

| x

< LT(I) >}.


Elementele mulimii {x

| x

< LT(I) >} sunt liniar independente


modulo I, adic din

= 0mod I, rezult c

= 0 pentru orice
.
Demonstraie. Fie G baza Grbner pentru I. Atunci existena i unicitatea lui
r este garantat de propoziia 1.2.17. Algoritmul de mprire a polinoamelor
cu mai multe nedeterminate vezi condiia de terminare a algoritmului
asigur faptul c r este o combinaie liniar a doar monoame din mulimea
{x

| x

< LT(I) >}.


Partea a doua este o consecin a unicitii restului tot de la propoziia
1.2.17.
Armaiile coninute n propoziia precedent pot acum reinterpretate
n inelul factor k[x
1
, x
2
, . . . , x
n
]/I. Prin urmare avem:
Corolarul 2.1.7. Fie I k[x
1
, x
2
, . . . , x
n
] un ideal. Atunci inelul factor
k[x
1
, x
2
, . . . , x
n
]/I ca spaiu vectorial peste corpul k este izomorf cu spaiul
vectorial generat de mulimea de monoame {x

| x

< LT(I) >}. n particu-


lar clasa unui polinom f k[x
1
, x
2
, . . . , x
n
]/I este reprezentat n mod standard
de restul (unic determinat) al mpririi lui f la baza Grbner al lui I. Aceast
reprezentare a claselor este compatibil cu operaiile de adunare i de nmulire
a polinoamelor.
ntr-adevr, restul mpririi sumei este suma resturilor, iar restul m-
pririi unui produs este produsul resturilor, mai precis restul mpririi acestui
produs.
2.1.4 Sisteme cu un numr nit de soluii
Partea frumoas a celor discutate mai sus este c toate acestea pot con-
vertite uor ntr-un criteriu algoritmic de a decide dac un sistem de ecuaii
polinomiale are un numr nit de soluii (vezi [12]).
Propoziia 2.1.8. Fie V = V (I) o varietate an n C
n
. Fixm o ordonare
monomial n C[x
1
, x
2
, . . . , x
n
]. Atunci urmtoarele armaii sunt echivalente.
1. V este o mulime nit.
76 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
2. Pentru ecare i, 1 i n, exist un exponent m
i
0, astfel ca x
m
i
i
<
LT(I) >.
3. Fie G o baz Grbner pentru I. Atunci pentru ecare i, 1 i n,
exist un m
i
0, astfel ca x
m
i
i
= LM(g
i
), pentru un element potrivit al
bazei g
i
G.
4. C-spaiul vectorial generat de de mulimea de monoame {x

| x

<
LT(I) >} este nit dimensional.
5. C-spaiul vectorial C[x
1
, x
2
, . . . , x
n
]/I este nit dimensional.
Demonstraie. (1)(2). Fie mai nti V = . Atunci 1 I (conform teo-
remei lui Hilbert a zerourilor, forma slab), i putem alege m
i
= 0 pentru
orice 1 i n. Dac ns V este nevid, atunci pentru ecare coordonat i
culegem numerele complexe (distincte) a
1
, a
2
, . . . , a
k
care apar ca i valori ale
coordonatei i ale punctelor din V i construim polinomul de o variabil
f(x
i
) =
k

j=1
(x
i
a
j
).
Prin construcie, polinomul f se anuleaz n punctele lui V , deci f I(V ).
Pe baza teoremei lui Hilbert a zerourilor exist deci m 1 astfel ca f
m
I.
Dar aceasta ne arat imediat c termenul principal al lui f
m
o putere a lui
x
i
este n < LT(I) >.
(2)(3). Fie m
i
0, astfel ca x
m
i
i
< LT(I) >. Dac G este o baz
Grbner pentru I, atunci < LT(I) >=< LT(g) | g G >. Rezult c exist
un polinom g
i
G astfel ca LT(g
i
) s divid x
m
i
i
, deci LT(g
i
) este o putere a
lui x
i
.
(3)(2). Aceasta rezult din deniia lui LT(G).
(2)(4). Dac o putere m
i
a ecrei necunoscute x
i
este n < LT(I) >,
atunci monoamele din complementul lui < LT(I) > au exponentul lui x
i
limitat de m
i
, deci numrul total al acestora este mrginit de m
1
m
2
. . . m
n
.
(4)(5). Este armaia corolarului 2.1.7 de la pagina 75.
(5)(1). Pentru a arta c V este o mulime nit, este sucient s
artm c proiecia ei pe ecare ax de coordonat este nit. Fixm deci un
indice i, i considerm clasa de echivalen [x
j
i
] n C[x
1
, x
2
, . . . , x
n
]/I, pentru
toate valorile naturale ale exponentului. Deoarece C[x
1
, x
2
, . . . , x
n
]/I este nit
dimensional, aceste clase de echivalen sunt liniar dependente, deci exist o
relaie de forma
m

j=0
c
j
[x
j
i
] = [
m

j=0
c
j
x
j
i
] = [0],
2.2. APLICAII EXEMPLE IN SINGULAR 77
unde nu toi coecienii sunt nuli. Aceast egalitate nseamn c

m
j=0
c
j
x
j
i

I. Un polinom de grad m are cel mult m rdcini distincte n C, deci avem
un numr nit de valori ale coordonatei n direcia i.
Putem caracteriza acum sistemele de ecuaii cu un numr nit de soluii.
Teorema 2.1.9. Fie I un idealul generat n C[x
1
, x
2
, . . . , x
n
] de polinoamele
care denesc sistemul de ecuaii 2.1. Fie G o baz Grbner pentru I. Sistemul
de ecuaii are un numr nit de soluii exact atunci cnd pentru ecare i exist
un m
i
m
i
0, astfel ca x
m
i
i
= LM(g
i
), pentru un polinom g
i
G al bazei.
Demonstraie. Rezult direct din punctul (3) al propoziiei anterioare 2.1.8.
Se vede n plus, c o margine superioar a numrului de soluii a sistemului
de ecuaii, este dat de produsul acestor exponeni. Menionm c egalitate
are loc dac idealul I este ideal radical, adic I =

I.
2.2 Aplicaii Exemple in Singular
P
rezentm n aceast seciune un numr mai mare de exemple.
Toate acestea utilizeaz mediul de programare oferit de Singular i ape-
leaz algoritmul bazei Grbner . Vom da att programul scris n Singular, ct
i rezultatul rulrii acestuia.
2.2.1 Sisteme de ecuaii liniare
Dm aici cteva exemple de sisteme liniare, care ilustreaz toate tipurile
compatibil determinat/nedeterminat, respectiv incompatibil al acestor sis-
teme.
Sistem de ecuaii, 3 necunoscute, gradul 1, compatibil determinat
//
// Sistem de ecuaii 3 necunoscute, gradul 1, coeficienti in Q
//
// are un numr finit de soluii
//
ring R = 0,(x,y,z),lp;
ideal I = 2x+y-2z+2,x-3y-2z-25,x-y+z-4;
ideal J = groebner(I);
J;
78 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
// scriere intr-un fisier, codificare LaTeX
LIB "latex.lib";
string file = "file.tex";
int TeXwidth = 0;
opentex(file);
texobj(file,I);
texobj(file,J);
closetex(file);
// rezolvarea efectiva a sistemului
option(redSB);
simplify(std(I),1);
// pregatire pentru un alt sistem
kill R;
Sistemul de ecuaii iniial:
_

_
2x + y z = 1
x 3y 2z = 6
x y + z = 2
Sistemul de ecuaii echivalent, care se poate rezolva, avnd forma "triunghi-
ular" (descris de idealul J):
_

_
z = 2
2y + 3z = 8
x y + z = 2
Soluia sistemului este:
_

_
x = 1
y = 1
z = 2
Sistem de ecuaii, 3 necunoscute, gradul 1, incompatibil
//
// Sistem de ecuaii, 3 necunoscute, gradul 1, coeficienti in Q
// baza Grbner este 1,
// nu are soluii
//
ring R = 0,(x,y,z),lp;
2.2. APLICAII EXEMPLE IN SINGULAR 79
ideal I = 2x+y-2z+2,x-y-z-2,x+2y-z-5;
groebner(I);
Sistemul de ecuaii iniial:
_

_
2x + y 2z = 2
x y z = 2
x + 2y z = 5
Baza Grbner este 1. Prin urmare sistemul este incompatibil.
Sistem de ecuaii, 3 necunoscute, gradul 1, compatibil, nedeterminat
//
// Sistem de ecuaii, 3 necunoscute, gradul 1, coeficienti in Q
//
// are o infinitate de soluii, nedeterminat, z parametru
//
ring R = 0,(x,y,z),lp;
ideal I = 2x+y+2z+2,x-3y+2z-5,3x-2y+4z-3;
groebner(I);
option(redSB);
simplify(std(I),1);
Sistemul de ecuaii iniial:
_

_
2x + y + 2z = 2
x 3y + 2z = 5
3x 2y + 4z = 3
Sistemul de ecuaii echivalent, de forma "triunghiular":
_
7y 2z = 12
3x 2y + 4z = 3
Sistemul este nedeterminat, z este parametru. Soluia este:
_

_
x = 8/7 1/7
y = 2/7 + 12/7
z =
80 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Sistem de ecuaii, 3 necunoscute, gradul 1, cu 1 parametru
//
// Sistem de ecuaii, 3 necunoscute, gradul 1, 1 parametru
// coeficienti in Q(a)
//
// are un numr finit de soluii
//
ring R = (0,a),(x,y,z),lp;
ideal I = 2x+ay-2z+a2,ax-3y-2z-25a,x-y+az-4a+1;
groebner(I);
option(redSB);
simplify(std(I),1);
Sistemul de ecuaii iniial, parametric:
_

_
2x + ay 2z = a
2
ax + y 2z = 2a
x y + az = 4a 1
Sistemul de ecuaii echivalent:
_

_
(a
3
2a + 2)z + (3a
3
+ 4a
2
+ 12a 2) = 0
(a
3
2a + 2)y + (a
4
2a
2
+ 22a 4) = 0
(a
3
2a + 2)x + (3a
3
6a
2
+ 14a 2) = 0
Soluia sistemului se obine prin mprirea cu coecientul necunoscutelor.
Sistem de ecuaii, 3 necunoscute, gradul 1, 2 parametrii
//
// Sistem de ecuaii, 3 necunoscute, gradul 1, coeficienti in Z_11
//
ring R = 11,(x,y,z),lp;
ideal I = 5x+y-2z+2,x-3y-2z-1,x-y+7z-4;
groebner(I);
Sistemul de ecuaii iniial, cu 2 parametrii:
_

_
5x + y 2z = 2
x 3y 2z = 1
x y + 7z = 4
Sistemul de ecuaii echivalent:
2.2. APLICAII EXEMPLE IN SINGULAR 81
_

_
z = 1
y = 3
x = 5
2.2.2 Sisteme de ecuaii neliniare
Sistem de ecuaii, 2 necunoscute, gradul 2
//
// Sistem de ecuaii, 2 necunoscute, gradul 2, coeficienti in Q
// aducere la forma triunghiulara
// are soluie
//
ring R = 0,(x,y),lp;
ideal I = xy-x-y-22,x2+y2+3x+3y-88;
groebner(I);
Sistemul de ecuaii iniial:
_
xy x y = 22
x
2
+ 3x +y
2
+ 3y = 88
Sistemul de ecuaii echivalent, de forma "triunghiular":
_
y
4
+y
3
89y
2
+ 286y + 330 = 0
23x +y
3
+ 2y
2
87y + 176 = 0
Sistem de ecuaii, 3 necunoscute, gradul 2
//
// Sistem de ecuaii 3 necunoscute, gradul 2
// aducere la forma triunghiular
//
// termenii principali ai bazei Grbner nu conin toate
// necunoscutele la cte o putere convenabil, prin urmare
// sistemul are o infinitate de soluii
//
ring R = 0,(x,y,z),lp;
ideal I = xz+xy-x+z2-2,xy2+2xz-3x+y+z-1,2z2+zy2-3z+2zy+y3-3y;
groebner(I);
Sistemul de ecuaii dat:
82 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
_

_
xy +xz x +z
2
= 2
xy
2
+ 2xz 3x +y +z = 1
y
3
+y
2
z + 2yz 3y + 2z
2
3z = 0
Sistemul de ecuaii echivalent, avnd forma "triunghiular":
_

_
z
6
+ 2z
5
7z
4
8z
3
+ 15z
2
+ 8z 10 = 0
y +z
4
+ 2z
3
5z
2
3z + 5 = 0
xz
2
2x yz
2
+ 3y +z
3
z
2
z + 1 = 0
sistemul are o innitate de soluii.
Sistem de ecuaii, 2 necunoscute, gradul 2, cu 1 parametru
//
// Sistem de ecuaii 2 necunoscute, gradul 2, 1 parametru
// coeficienti in Q(a)
// aducere la forma triunghiular
//
ring R = (0,a),(x,y),lp;
ideal I = a+axy-x+y,2+x+y+xy;
groebner(I);
Sistemul de ecuaii iniial, parametric:
_
axy x +y = a
xy +x +y = 2
Sistemul de ecuaii echivalent, de forma "triunghiular":
_
(a 1)y
2
+ (a 2)y (a + 2) = 0
(a + 1)x (a 1)y a = 0
Sistem de ecuaii, 3 necunoscute, gradul 2, incompatibil
//
// Sistem de ecuaii 3 necunoscute, gradul 2, coeficienti in Q
// Dac baza Grbner este 1, atunci i numai atunci
// sistemul de ecuaii nu are soluii
// nu are soluii
//
ring R = 0,(x,y,z),lp;
ideal I = x2y+4y2-17,2xy-3y2+8,xy2-5xy+1;
groebner(I);
2.2. APLICAII EXEMPLE IN SINGULAR 83
Sistemul de ecuaii dat:
_

_
x
2
y + 4y
2
= 17
2xy 3y
2
= 8
xy
2
5xy = 1
Baza Grbner este 1, deci sistemul nu are soluie.
Sistem de ecuaii, 3 necunoscute, gradul 2, numr nit de soluii
//
// Sistem de ecuaii, 3 necunoscute, gradul 2, coeficienti in Q
//
// termenii principali ai bazei Grbner conin toate necunoscutele
// la cte o putere convenabil...
// sistemul are un numr finit de soluii
//
ring R = 0,(x,y,z),lp;
ideal I = 2xy+yz-27,3yz-2xz-25,xz-xy-4;
groebner(I);
Sistemul de ecuaii iniial:
_

_
2xy +yz = 27
2xz + 3yz = 25
xy +xz = 4
Sistemul de ecuaii echivalent, de form "triunghiular":
_

_
z
2
25 = 0
5y 3z = 0
30x 3y
2
z + 25y = 0
Sistemul are un numr nit (dou) soluii (2 < 3 2 3).
Sistem de ecuaii, 3 necunoscute, gradul 3
//
// Sistem de ecuaii, 3 necunoscute, gradul 3, coeficienti in Q
//
// are un numr finit de soluii
//
ring R = 0,(x,y,z),lp;
ideal I = 2x2+xy2-2z+2,x3-3zy-2z-25+z,x3-y3+xz-4;
groebner(I);
84 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Sistemul de ecuaii dat:
_

_
2x
2
+xy
2
2z + 2 = 0
x
3
3yz z 25 = 0
x
3
+xz y
3
4 = 0
Sistemul de ecuaii echivalent:
2.2. APLICAII EXEMPLE IN SINGULAR 85
_

_
486z
13
+ 840294z
12
+ 2179519z
11
18625847z
10

66952171z
9
7843427z
8
+ 864097117z
7
+ 8298367485z
6
+
+25162261044z
5
22542925824z
4
487702971614z
3

723757819752z
2
+ 2144327757537z + 4109489307937 = 0
77868818920376452884002811866907927673441157293810718
339707101119008169629924900821074y
3165964173658935134318719546559561756869138557293825
59718764947097089412685574z
12

5468660118700616318300861495537616527046099140703174
56131250225276053752487210842z
11

5062655715391250343281072657913808616967693447596384
72523854301571083149345549117z
10
+
+1203525326967704658753953066324324257990023912764591
9306621852750963467045157880067z
9
+
+2183609940433704346329865619806272172526511003755655
3500984050074577338350969027336z
8

1597643510026580155559129736486158168128487513165237
0380435238355883589904576870620z
7

4918586941570178867598827408562421500244352148286093
56548339447678061044391805476356z
6

4547731012299438430399486296727284507537002149137493
051746934356874890912603084713661z
5

9327763490789532911836051672446234989487360511203537
630956287478096418183048087158993z
4
+
+2207427906651088844372502166119468408052683359325382
1243194012994480276581591309059380z
3
+
+2565575905657144169435766588693932093688036563944545
37686316620821332822604623919532697z
2
+
+3024177886537265069275177451180774051636115905699171
3443488775463490120854023159339556z
1116574640642650517254952303223042003058428039235345
713199512234484182234329397469281893 = 0
154238x 2440y
6
+ 4782y
5
+ 3477y
4
z + 21090y
4

1730y
3
z + 37457y
3
+ 366y
2
z
2
72397y
2
z 4891y
2

272yz
2
115170yz 457590y 8714z
2
64132z 691370 = 0
Sistemul are un numr nit (mai exact 13) soluii (13 < 3 3 3).
86 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Sistem de ecuaii, 3 necunoscute, gradul 3
//
// Sistem de ecuaii 3 necunoscute, gradul 3, coeficienti in Q
//
// are un numr finit de soluii
//
// 27 soluii
//
ring R = 0,(x,y,z),lp;
ideal I = x3-y3-z2+1,y3-z3-2,z3-x3+x2y-5;
groebner(I);
Sistemul de ecuaii iniial:
_

_
x
3
y
3
z
2
= 1
y
3
z
3
= 2
x
3
+x
2
y +z
3
= 5
Sistemul de ecuaii echivalent, de forma "triunghiular":
_

_
z
9
+ 2z
8
+z
7
+ 3z
6
+ 6z
5
16z
4
+ 5z
3
104z
2
= 214
y
3
z
3
= 2
26510x 9y
4
z
5
122y
4
z
4
50y
4
z
3
+ 818y
4
z
2
+
+51y
4
z 3778y
4
9yz
7
131yz
6
154yz
5
+ 886yz
4

532yz
3
4031yz
2
+ 219yz + 7168y = 0
n ne, sistemul are numrul cel mai mare posibil de soluii, 27 = 333.
Sistem de ecuaii, 3 necunoscute, gradul 4
//
// Sistem de ecuaii 3 necunoscute, gradul 4
//
// are un numr finit de soluii
//
// difer doar un singur termen fata de exemplul precedent
//
ring R = 0,(x,y,z),lp;
ideal I = x3-y3-z2+1,y4-z3-2,z3-x3+x2y-5;
groebner(I);
2.2. APLICAII EXEMPLE IN SINGULAR 87
Sistemul de ecuaii dat:
_

_
x
3
y
3
z
2
= 1
y
4
z
3
= 2
x
3
+x
2
y +z
3
= 5
Sistemul echivalent este:
z
36
12z
35
+ 66z
34
259z
33
+ 999z
32
3488z
31
+
+9987z
30
26924z
29
+ 71037z
28
164116z
27
+ 359443z
26

780638z
25
+ 1522005z
24
2868548z
23
+ 5334964z
22

9004370z
21
+ 14960556z
20
24199784z
19
+ 35734788z
18

52610260z
17
+ 74313032z
16
95421684z
15
+ 124149152z
14

153093600z
13
+ 166826600z
12
193202392z
11
+
+205778048z
10
183765969z
9
+ 197770992z
8

170755968z
7
+ 123037466z
6
137062368z
5
+
+73700992z
4
49132044z
3
+ 65651520z
2
+ 30689784 = 0
5417581252722767757893785005977549594858437561190520738794
4543099287040000y
380407259006106255157115226548178238657972782573090172609
13123255939z
35
+
+490198400501144742354695108750377701491564890301772523468
574460255845z
34

291094228604993169621351702398726171964972709176773454684
8226339326909z
33
+
+118941097136439757347058693235197403126676943105753767794
27135535697288z
32

447766118221606923608448449396284858988291425553069386289
44226550656845z
31
+
+155481032106091955235618175888045998356975249687775422634
405962696466767z
30

453925669452102709794358138333732483280913563754486955176
336819707784974z
29
+
+119915470545578565193190765611652778742503673549812437485
3234801665372318z
28

306096503528486197955620584546544961917706050574797213163
6339074865585217z
27
+
88 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
+706141768162837765886890724973207169311442349984733073474
4479426938761255z
26

150813004212932930694467045516180374800422151932206774886
20802875205959942z
25
+
+314225407459769208101160471113919701081425951342656743200
61835871812036188z
24

605221530661893932436492718689017579155495404700119832827
47242353580588979z
23
+
+110164401681394388896911248883884296975432656308392873955
296908293520677469z
22

196054373944301284242043010489125964899733600938851600354
007242789634115963z
21
+
+324535592506944280136405443212958710199613453549327322753
893192609477691039z
20

514245835856854922228146149985885797367655445996926529523
751328479118237561z
19
+
+793693832095180314625421525269560263653275970371691784743
928623618909791499z
18

113637151311394711459915574787174078139256163134384408470
8931468958221009189z
17
+
+156778015621377881782094840741093425122048128544933971349
3801987059899410867z
16

209851119113519633028865405777314273794151047841195910999
0677659894275330729z
15
+
+256629279374923725192707690016504875775441493338259738213
1543433641385881023z
14

304356567507058301976654266464020327916723836015869628216
8131798217396619317z
13
+
+352465761223250489279926921197545881220003180131809385563
8821081195101975431z
12

358889076053476287266958114245936424780938110212860139342
5703381436599648933z
11
+
+363867476324405727453227660495550603198567042597058277786
8195266618253468607z
10

365344942219656433609648781911468153070444457391146934377
5803672178271701973z
9
+
+295339439132619987450572189045899333937302619483615408936
6418183800006905530z
8

2.2. APLICAII EXEMPLE IN SINGULAR 89


269533742969156754350962756303981319687682636711424286007
8910200928419409678z
7
+
+231074135647962624531691039423213006368164894919951770035
3367450118256943706z
6

122756615494727295713573371744259405539193843809357051424
9623863941654919532z
5
+
+125826176957466809520033834635107371821063108213015027455
2967957610159749828z
4

792393052250852353861702261514644310895862492263359648244
917536941034339692z
3
+
+206420917632076173539312189584954666865392013564015533912
916656529156102472z
2

545032840828031924370745138552277174455467026003060892852
426931006456412376z
477575194361137824693413533635032771708909212313290521881
85989675769736632 = 0
62991746510x + 15680280y
7
z
4
15384600y
7
z
3
+
+228629170y
7
z
2
751931950y
7
z 148004780y
7

54880980y
6
z
5
28475370y
6
z
4
952677110y
6
z
3
+
+1255557380y
6
z
2
+ 333425400y
6
z + 4144133840y
6
+
+8084508y
5
z
6
+ 184487376y
5
z
5
50366107y
5
z
4

7779821886y
5
z
3
+ 2109920478y
5
z
2
862842666y
5
z+
+27763204727y
5
31360560y
4
z
7
+ 81363558y
4
z
6

1072320383y
4
z
5
+ 1684477410y
4
z
4
+ 3136861377y
4
z
3
+
+3398577110y
4
z
2
4970014728y
4
z 18905747224y
4
+
+109761960y
3
z
8
131212620y
3
z
7
+ 1799884240y
3
z
6

6149990770y
3
z
5
+ 3373349980y
3
z
4
13439494530y
3
z
3
+
+23467200680y
3
z
2
639717540y
3
z + 25160812600y
3

4042254y
2
z
9
113620797y
2
z
8
+ 107139602y
2
z
7
+
+3297002108y
2
z
6
6747256212y
2
z
5
+ 2933764325y
2
z
4

26334378960y
2
z
3
+ 22610651624y
2
z
2
1070851684y
2
z+
+55112549848y
2
+ 15680280yz
10
58383186yz
9
+ 490325587yz
8

1805926200yz
7
+ 272802136yz
6
+ 683921420yz
5
+
+8931171310yz
4
+ 3761772605yz
3
12212905339yz
2

9866757747yz 16027982146y 54880980z


11
+ 120487290z
10

985148780z
9
+ 4192131790z
8
5317148760z
7
+ 12605234180z
6

30092670300z
5
+ 19097764840z
4
40862175200z
3
+
+56844430720z
2
544519360z + 52097682560 = 0
90 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Sistem de ecuaii omogen, 2 necunoscute, gradul 2, parametric
//
// Sistem de ecuaii 2 necunoscute, gradul 2, polinom omogen,
// 8 parametrii
// are soluie, 4 soluii n general
// se va rezolva o ecuaie de gradul 4 bicuadratic
//
ring R = (0,a,b,c,d,e,f,g,h),(x,y),lp;
ideal I = ax2+2bxy+cy2-d,ex2+2fxy+gy2-h;
groebner(I);
Sistemul de ecuaii iniial, omogen general de gradul 2:
_
ax
2
+ 2bxy +cy
2
= d
ex
2
+ 2fxy +gy
2
= h
Sistemul echivalent este:
_

_
(a
2
g
2
4abfg 2aceg + 4acf
2
+ 4b
2
eg 4bcef +c
2
e
2
)y
4

(2a
2
gh 4abfh 2aceh 2adeg + 4adf
2
+ 4b
2
eh 4bdef + 2cde
2
)y
2
+
+(a
2
h
2
+ 2adeh d
2
e
2
) = 0
(2a
2
fh 2abeh 2adef + 2bde
2
)x+
+(a
2
g
2
4abfg 2aceg + 4acf
2
+ 4b
2
eg 4bcef +c
2
e
2
)y
3

(a
2
gh 4abfh aceh adeg + 4adf
2
+ 4b
2
eh 4bdef +cde
2
)y = 0
Sistem de ecuaii omogen, 2 necunoscute, gradul 3, parametric
//
// Sistem de ecuaii 2 necunoscute, gradul 3, polinom omogen,
// 10 parametrii
// are soluie, n general 9 soluii
//
ring R = (0,a,b,c,d,e,f,g,h,k,l),(x,y),lp;
ideal I = ax3+bx2y+cxy2+dy3-e,fx3+gx2y+hxy2+ky3-l;
groebner(I);
Sistemul de ecuaii iniial, general, omogen de gradul 3:
_
ax
3
+bx
2
y +cxy
2
+dy
3
= e
fx
3
+gx
2
y +hxy
2
+ky
3
= l
2.2. APLICAII EXEMPLE IN SINGULAR 91
Sistemul de ecuaii echivalent este:
(a
3
k
3
a
2
bhk
2
2a
2
cgk
2
+a
2
ch
2
k 3a
2
dfk
2
+3a
2
dghk a
2
dh
3
+ab
2
gk
2
+
3abcfk
2
abcghk abdfhk 2abdg
2
k +abdgh
2
2ac
2
fhk +ac
2
g
2
k +acdfgk +
2acdfh
2
acdg
2
h +3ad
2
f
2
k 3ad
2
fgh +ad
2
g
3
b
3
fk
2
+b
2
cfhk +2b
2
dfgk
b
2
dfh
2
bc
2
fgk 3bcdf
2
k + bcdfgh + 2bd
2
f
2
h bd
2
fg
2
+ c
3
f
2
k c
2
df
2
h +
cd
2
f
2
g d
3
f
3
)y
9
+
+(3a
3
k
2
l2a
2
bhkl4a
2
cgkl+a
2
ch
2
l6a
2
dfkl+3a
2
dghl3a
2
efk
2
+3a
2
eghk
a
2
eh
3
+ 2ab
2
gkl + 6abcfkl abcghl abdfhl 2abdg
2
l abefhk 2abeg
2
k +
abegh
2
2ac
2
fhl +ac
2
g
2
l +acdfgl +acefgk +2acefh
2
aceg
2
h +3ad
2
f
2
l +
6adef
2
k 6adefgh+2adeg
3
2b
3
fkl +b
2
cfhl +2b
2
dfgl +2b
2
efgk b
2
efh
2

bc
2
fgl 3bcdf
2
l 3bcef
2
k +bcefgh + 4bdef
2
h 2bdefg
2
+c
3
f
2
l c
2
ef
2
h +
2cdef
2
g 3d
2
ef
3
)y
6

(3a
3
kl
2
a
2
bhl
2
2a
2
cgl
2
3a
2
dfl
2
6a
2
efkl +3a
2
eghl +ab
2
gl
2
+3abcfl
2

abefhl 2abeg
2
l + acefgl + 6adef
2
l + 3ae
2
f
2
k 3ae
2
fgh + ae
2
g
3
b
3
fl
2
+
2b
2
efgl 3bcef
2
l + 2be
2
f
2
h be
2
fg
2
+ce
2
f
2
g 3de
2
f
3
)y
3
+
+(a
3
l
3
+ 3a
2
efl
2
3ae
2
f
2
l +e
3
f
3
) = 0
(a
5
h
3
l
2
2a
4
bgh
2
l
2
3a
4
cfh
2
l
2
+a
4
cg
2
hl
2
+a
4
dg
3
l
2
2a
4
efh
3
la
4
eg
3
kl+
a
4
eg
2
h
2
l + 2a
3
b
2
fh
2
l
2
+ a
3
b
2
g
2
hl
2
+ 2a
3
bcfghl
2
a
3
bcg
3
l
2
3a
3
bdfg
2
l
2
+
3a
3
befg
2
kl + 2a
3
befgh
2
l a
3
beg
3
hl + 3a
3
c
2
f
2
hl
2
a
3
c
2
fg
2
l
2
+ 6a
3
cef
2
h
2
l
4a
3
cefg
2
hl + a
3
ceg
4
l a
3
defg
3
l + a
3
e
2
f
2
h
3
+ a
3
e
2
fg
3
k a
3
e
2
fg
2
h
2

2a
2
b
3
fghl
2
3a
2
b
2
cf
2
hl
2
+ 2a
2
b
2
cfg
2
l
2
+ 3a
2
b
2
df
2
gl
2
3a
2
b
2
ef
2
gkl
3a
2
b
2
ef
2
h
2
l+a
2
b
2
efg
2
hla
2
bcefg
3
l+3a
2
bdef
2
g
2
l3a
2
be
2
f
2
g
2
k+a
2
be
2
fg
3
h
a
2
c
3
f
3
l
2
6a
2
c
2
ef
3
hl +3a
2
c
2
ef
2
g
2
l 3a
2
ce
2
f
3
h
2
+3a
2
ce
2
f
2
g
2
ha
2
ce
2
fg
4
+
ab
4
f
2
hl
2
ab
3
cf
2
gl
2
ab
3
df
3
l
2
+ab
3
ef
3
kl+ab
3
ef
2
ghl+ab
2
c
2
f
3
l
2
+4ab
2
cef
3
hl
ab
2
cef
2
g
2
l3ab
2
def
3
gl+3ab
2
e
2
f
3
gk+ab
2
e
2
f
3
h
2
2ab
2
e
2
f
2
g
2
h2abc
2
ef
3
gl
2abce
2
f
3
gh + 2abce
2
f
2
g
3
+ 2ac
3
ef
4
l + 3ac
2
e
2
f
4
h 2ac
2
e
2
f
3
g
2
b
4
ef
3
hl +
b
3
cef
3
gl +b
3
def
4
l b
3
e
2
f
4
k +b
3
e
2
f
3
gh b
2
c
2
ef
4
l b
2
ce
2
f
4
h b
2
ce
2
f
3
g
2
+
2bc
2
e
2
f
4
g c
3
e
2
f
5
)x
(a
5
gk
4
a
5
h
2
k
3
a
4
bfk
4
+ a
4
bh
3
k
2
+ 2a
4
cfhk
3
3a
4
cg
2
k
3
+ 3a
4
cgh
2
k
2

a
4
ch
4
k 4a
4
dfgk
3
+ 3a
4
dfh
2
k
2
+ 3a
4
dg
2
hk
2
4a
4
dgh
3
k + a
4
dh
5
+
a
3
b
2
g
2
k
3
2a
3
b
2
gh
2
k
2
+6a
3
bcfgk
3
6a
3
bcfh
2
k
2
2a
3
bcg
2
hk
2
+2a
3
bcgh
3
k +
4a
3
bdf
2
k
3
6a
3
bdfghk
2
+ 2a
3
bdfh
3
k 2a
3
bdg
3
k
2
+ 6a
3
bdg
2
h
2
k 2a
3
bdgh
4

a
3
c
2
f
2
k
3
6a
3
c
2
fghk
2
+4a
3
c
2
fh
3
k +3a
3
c
2
g
3
k
2
2a
3
c
2
g
2
h
2
k 6a
3
cdf
2
hk
2
+
6a
3
cdfg
2
k
2
+6a
3
cdfgh
2
k 4a
3
cdfh
4
4a
3
cdg
3
hk +2a
3
cdg
2
h
3
+6a
3
d
2
f
2
gk
2

3a
3
d
2
f
2
h
2
k 6a
3
d
2
fg
2
hk + 4a
3
d
2
fgh
3
+ a
3
d
2
g
4
k a
3
d
2
g
3
h
2
2a
2
b
3
fgk
3
+
2a
2
b
3
fh
2
k
2
+a
2
b
3
g
2
hk
2
3a
2
b
2
cf
2
k
3
+8a
2
b
2
cfghk
2
2a
2
b
2
cfh
3
ka
2
b
2
cg
3
k
2

a
2
b
2
cg
2
h
2
k + 3a
2
b
2
df
2
hk
2
+ 3a
2
b
2
dfg
2
k
2
8a
2
b
2
dfgh
2
k + 2a
2
b
2
dfh
4

2a
2
b
2
dg
3
hk + a
2
b
2
dg
2
h
3
+ 9a
2
bc
2
f
2
hk
2
7a
2
bc
2
fg
2
k
2
2a
2
bc
2
fgh
2
k +
2a
2
bc
2
g
3
hk 12a
2
bcdf
2
gk
2
+ 4a
2
bcdfg
2
hk + 2a
2
bcdfgh
3
+ 2a
2
bcdg
4
k
2a
2
bcdg
3
h
2
6a
2
bd
2
f
3
k
2
+ 12a
2
bd
2
f
2
ghk 3a
2
bd
2
f
2
h
3
3a
2
bd
2
fg
2
h
2
+
92 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
a
2
bd
2
g
4
h + 3a
2
c
3
f
2
gk
2
6a
2
c
3
f
2
h
2
k + 4a
2
c
3
fg
2
hk a
2
c
3
g
4
k + 3a
2
c
2
df
3
k
2
+
6a
2
c
2
df
2
h
3
2a
2
c
2
dfg
3
k4a
2
c
2
dfg
2
h
2
+a
2
c
2
dg
4
h+6a
2
cd
2
f
3
hk3a
2
cd
2
f
2
g
2
k
9a
2
cd
2
f
2
gh
2
+6a
2
cd
2
fg
3
h a
2
cd
2
g
5
4a
2
d
3
f
3
gk +a
2
d
3
f
3
h
2
+3a
2
d
3
f
2
g
2
h
a
2
d
3
fg
4
+ ab
4
f
2
k
3
2ab
4
fghk
2
6ab
3
cf
2
hk
2
+ 2ab
3
cfg
2
k
2
+ 2ab
3
cfgh
2
k +
2ab
3
df
2
h
2
k + 4ab
3
dfg
2
hk 2ab
3
dfgh
3
+ 3ab
2
c
2
f
2
gk
2
+ 4ab
2
c
2
f
2
h
2
k
4ab
2
c
2
fg
2
hk + 6ab
2
cdf
3
k
2
4ab
2
cdf
2
ghk 4ab
2
cdf
2
h
3
4ab
2
cdfg
3
k +
4ab
2
cdfg
2
h
2
6ab
2
d
2
f
3
hk 3ab
2
d
2
f
2
g
2
k + 7ab
2
d
2
f
2
gh
2
2ab
2
d
2
fg
3
h
4abc
3
f
3
k
2
2abc
3
f
2
ghk+2abc
3
fg
3
k6abc
2
df
3
hk+8abc
2
df
2
g
2
k+2abc
2
df
2
gh
2

2abc
2
dfg
3
h+6abcd
2
f
3
gk+6abcd
2
f
3
h
2
8abcd
2
f
2
g
2
h+2abcd
2
fg
4
+4abd
3
f
4
k
6abd
3
f
3
gh + 2abd
3
f
2
g
3
+ 4ac
4
f
3
hk 2ac
4
f
2
g
2
k 2ac
3
df
3
gk 4ac
3
df
3
h
2
+
2ac
3
df
2
g
2
h 3ac
2
d
2
f
4
k + 6ac
2
d
2
f
3
gh 2ac
2
d
2
f
2
g
3
2acd
3
f
4
h + ad
4
f
4
g +
b
5
f
2
hk
2
b
4
cf
2
gk
2
b
4
cf
2
h
2
k b
4
df
3
k
2
2b
4
df
2
ghk +b
4
df
2
h
3
+b
3
c
2
f
3
k
2
+
2b
3
c
2
f
2
ghk +4b
3
cdf
3
hk +2b
3
cdf
2
g
2
k 2b
3
cdf
2
gh
2
+2b
3
d
2
f
3
gk 3b
3
d
2
f
3
h
2
+
b
3
d
2
f
2
g
2
h 2b
2
c
3
f
3
hk b
2
c
3
f
2
g
2
k 6b
2
c
2
df
3
gk +2b
2
c
2
df
3
h
2
+b
2
c
2
df
2
g
2
h
3b
2
cd
2
f
4
k + 2b
2
cd
2
f
3
gh b
2
cd
2
f
2
g
3
+ 3b
2
d
3
f
4
h b
2
d
3
f
3
g
2
+ 2bc
4
f
3
gk +
4bc
3
df
4
k 2bc
3
df
3
gh 3bc
2
d
2
f
4
h + 2bc
2
d
2
f
3
g
2
bd
4
f
5
c
5
f
4
k + c
4
df
4
h
c
3
d
2
f
4
g +c
2
d
3
f
5
)y
7
+
+(2a
5
gk
3
l 3a
5
h
2
k
2
l 2a
4
bfk
3
l + 2a
4
bghk
2
l + 2a
4
bh
3
kl + 6a
4
cfhk
2
l
5a
4
cg
2
k
2
l+4a
4
cgh
2
kla
4
ch
4
l6a
4
dfgk
2
l+6a
4
dfh
2
kl2a
4
dgh
3
l2a
4
efgk
3
+
3a
4
efh
2
k
2
+ 3a
4
eg
2
hk
2
4a
4
egh
3
k + a
4
eh
5
2a
3
b
2
fhk
2
l + a
3
b
2
g
2
k
2
l
4a
3
b
2
gh
2
kl +8a
3
bcfgk
2
l 10a
3
bcfh
2
kl 2a
3
bcg
2
hkl +2a
3
bcgh
3
l +6a
3
bdf
2
k
2
l
4a
3
bdfghkl +4a
3
bdg
2
h
2
l +2a
3
bef
2
k
3
8a
3
befghk
2
+2a
3
befh
3
k 2a
3
beg
3
k
2
+
6a
3
beg
2
h
2
k 2a
3
begh
4
3a
3
c
2
f
2
k
2
l 8a
3
c
2
fghkl + 4a
3
c
2
fh
3
l + 4a
3
c
2
g
3
kl
2a
3
c
2
g
2
h
2
l12a
3
cdf
2
hkl+10a
3
cdfg
2
kl+2a
3
cdfgh
2
l2a
3
cdg
3
hl6a
3
cef
2
hk
2
+
2a
3
cefg
2
k
2
+8a
3
cefgh
2
k 4a
3
cefh
4
4a
3
ceg
3
hk +2a
3
ceg
2
h
3
+6a
3
d
2
f
2
gkl
3a
3
d
2
f
2
h
2
l a
3
d
2
g
4
l +6a
3
def
2
gk
2
6a
3
def
2
h
2
k 6a
3
defg
2
hk +6a
3
defgh
3
+
2a
3
deg
4
k 2a
3
deg
3
h
2
2a
2
b
3
fgk
2
l +4a
2
b
3
fh
2
kl +2a
2
b
3
g
2
hkl 3a
2
b
2
cf
2
k
2
l +
12a
2
b
2
cfghkl 2a
2
b
2
cfh
3
l 2a
2
b
2
cg
3
kl a
2
b
2
cg
2
h
2
l + 4a
2
b
2
df
2
hkl
2a
2
b
2
dfg
2
kl 4a
2
b
2
dfgh
2
l 2a
2
b
2
dg
3
hl + 5a
2
b
2
ef
2
hk
2
+ 5a
2
b
2
efg
2
k
2

8a
2
b
2
efgh
2
k + 2a
2
b
2
efh
4
2a
2
b
2
eg
3
hk + a
2
b
2
eg
2
h
3
+ 14a
2
bc
2
f
2
hkl
10a
2
bc
2
fg
2
kl 2a
2
bc
2
fgh
2
l + 2a
2
bc
2
g
3
hl 16a
2
bcdf
2
gkl + 4a
2
bcdf
2
h
2
l +
2a
2
bcdg
4
l 2a
2
bcef
2
gk
2
2a
2
bcef
2
h
2
k + 2a
2
bcefg
2
hk + 2a
2
bcefgh
3
+
2a
2
bceg
4
k2a
2
bceg
3
h
2
6a
2
bd
2
f
3
kl+2a
2
bd
2
f
2
ghl+4a
2
bd
2
fg
3
l6a
2
bdef
3
k
2
+
16a
2
bdef
2
ghk 4a
2
bdef
2
h
3
4a
2
bdefg
3
k 4a
2
bdefg
2
h
2
+ 2a
2
bdeg
4
h +
4a
2
c
3
f
2
gkl 6a
2
c
3
f
2
h
2
l +4a
2
c
3
fg
2
hl a
2
c
3
g
4
l +6a
2
c
2
df
3
kl +2a
2
c
2
df
2
ghl
2a
2
c
2
dfg
3
l+3a
2
c
2
ef
3
k
2
4a
2
c
2
ef
2
ghk+6a
2
c
2
ef
2
h
3
4a
2
c
2
efg
2
h
2
+a
2
c
2
eg
4
h+
6a
2
cd
2
f
3
hl 5a
2
cd
2
f
2
g
2
l + 12a
2
cdef
3
hk 4a
2
cdef
2
g
2
k 14a
2
cdef
2
gh
2
+
10a
2
cdefg
3
h2a
2
cdeg
5
2a
2
d
3
f
3
gl6a
2
d
2
ef
3
gk+3a
2
d
2
ef
3
h
2
+3a
2
d
2
ef
2
g
2
h
a
2
d
2
efg
4
+ab
4
f
2
k
2
l 4ab
4
fghkl 10ab
3
cf
2
hkl + 4ab
3
cfg
2
kl + 2ab
3
cfgh
2
l +
4ab
3
df
2
gkl+4ab
3
dfg
2
hl4ab
3
ef
2
gk
2
+2ab
3
ef
2
h
2
k+4ab
3
efg
2
hk2ab
3
efgh
3
+
4ab
2
c
2
f
2
gkl + 4ab
2
c
2
f
2
h
2
l 4ab
2
c
2
fg
2
hl + 6ab
2
cdf
3
kl 2ab
2
cdf
2
ghl
2.2. APLICAII EXEMPLE IN SINGULAR 93
4ab
2
cdfg
3
l 4ab
2
cef
2
h
3
4ab
2
cefg
3
k + 4ab
2
cefg
2
h
2
2ab
2
d
2
f
3
hl
5ab
2
d
2
f
2
g
2
l 10ab
2
def
3
hk + 2ab
2
def
2
g
2
k + 10ab
2
def
2
gh
2
4ab
2
defg
3
h
6abc
3
f
3
kl 2abc
3
f
2
ghl +2abc
3
fg
3
l 8abc
2
df
3
hl +8abc
2
df
2
g
2
l 2abc
2
ef
3
hk +
4abc
2
ef
2
g
2
k + 2abc
2
ef
2
gh
2
2abc
2
efg
3
h + 8abcd
2
f
3
gl + 4abcdef
3
gk +
8abcdef
3
h
2
12abcdef
2
g
2
h+4abcdefg
4
+2abd
3
f
4
l+6abd
2
ef
4
k8abd
2
ef
3
gh+
2abd
2
ef
2
g
3
+ 4ac
4
f
3
hl 2ac
4
f
2
g
2
l 2ac
3
df
3
gl 4ac
3
ef
3
h
2
+ 2ac
3
ef
2
g
2
h
3ac
2
d
2
f
4
l6ac
2
def
4
k+10ac
2
def
3
gh4ac
2
def
2
g
3
6acd
2
ef
4
h+2acd
2
ef
3
g
2
+
2ad
3
ef
4
g +2b
5
f
2
hkl 2b
4
cf
2
gkl b
4
cf
2
h
2
l 2b
4
df
3
kl 2b
4
df
2
ghl +b
4
ef
3
k
2

2b
4
ef
2
ghk + b
4
ef
2
h
3
+ 2b
3
c
2
f
3
kl + 2b
3
c
2
f
2
ghl + 4b
3
cdf
3
hl + 2b
3
cdf
2
g
2
l +
2b
3
cef
3
hk +2b
3
cef
2
g
2
k 2b
3
cef
2
gh
2
+2b
3
d
2
f
3
gl 4b
3
def
3
h
2
+2b
3
def
2
g
2
h
2b
2
c
3
f
3
hl b
2
c
3
f
2
g
2
l 6b
2
c
2
df
3
gl 4b
2
c
2
ef
3
gk + 2b
2
c
2
ef
3
h
2
+b
2
c
2
ef
2
g
2
h
3b
2
cd
2
f
4
l + 2b
2
cdef
3
gh 2b
2
cdef
2
g
3
+ 5b
2
d
2
ef
4
h b
2
d
2
ef
3
g
2
+ 2bc
4
f
3
gl +
4bc
3
df
4
l + 2bc
3
ef
4
k 2bc
3
ef
3
gh 4bc
2
def
4
h + 4bc
2
def
3
g
2
2bcd
2
ef
4
g
2bd
3
ef
5
c
5
f
4
l +c
4
ef
4
h 2c
3
def
4
g + 3c
2
d
2
ef
5
)y
4

(a
5
gk
2
l
2
2a
5
h
2
kl
2
a
4
bfk
2
l
2
+2a
4
bghkl
2
+a
4
bh
3
l
2
+4a
4
cfhkl
2
2a
4
cg
2
kl
2
+
a
4
cgh
2
l
2
2a
4
dfgkl
2
+ 2a
4
dfh
2
l
2
a
4
dg
2
hl
2
2a
4
efgk
2
l + 4a
4
efh
2
kl +
a
4
eg
2
hkl 2a
4
egh
3
l 2a
3
b
2
fhkl
2
2a
3
b
2
gh
2
l
2
+ 2a
3
bcfgkl
2
4a
3
bcfh
2
l
2
+
2a
3
bdf
2
kl
2
+ a
3
bdg
3
l
2
+ 2a
3
bef
2
k
2
l 6a
3
befghkl a
3
beg
3
kl + 4a
3
beg
2
h
2
l
2a
3
c
2
f
2
kl
2
2a
3
c
2
fghl
2
+a
3
c
2
g
3
l
2
4a
3
cdf
2
hl
2
+3a
3
cdfg
2
l
2
8a
3
cef
2
hkl +
3a
3
cefg
2
kl +4a
3
cefgh
2
l 2a
3
ceg
3
hl +a
3
d
2
f
2
gl
2
+4a
3
def
2
gkl 4a
3
def
2
h
2
l +
a
3
defg
2
hl a
3
deg
4
l + a
3
e
2
f
2
gk
2
2a
3
e
2
f
2
h
2
k a
3
e
2
fg
2
hk + 2a
3
e
2
fgh
3
+
a
3
e
2
g
4
k a
3
e
2
g
3
h
2
+ 2a
2
b
3
fh
2
l
2
+ a
2
b
3
g
2
hl
2
+ 4a
2
b
2
cfghl
2
a
2
b
2
cg
3
l
2
+
a
2
b
2
df
2
hl
2
3a
2
b
2
dfg
2
l
2
+ 5a
2
b
2
ef
2
hkl + 3a
2
b
2
efg
2
kl 4a
2
b
2
efgh
2
l
2a
2
b
2
eg
3
hl + 5a
2
bc
2
f
2
hl
2
3a
2
bc
2
fg
2
l
2
4a
2
bcdf
2
gl
2
2a
2
bcef
2
gkl +
2a
2
bcef
2
h
2
l2a
2
bcefg
2
hl+2a
2
bceg
4
la
2
bd
2
f
3
l
2
4a
2
bdef
3
kl+2a
2
bdef
2
ghl+
3a
2
bdefg
3
la
2
be
2
f
3
k
2
+4a
2
be
2
f
2
ghka
2
be
2
f
2
h
3
3a
2
be
2
fg
3
ka
2
be
2
fg
2
h
2
+
a
2
be
2
g
4
h +a
2
c
3
f
2
gl
2
+2a
2
c
2
df
3
l
2
+4a
2
c
2
ef
3
kl 2a
2
c
2
ef
2
ghl +8a
2
cdef
3
hl
5a
2
cdef
2
g
2
l + 4a
2
ce
2
f
3
hk a
2
ce
2
f
2
g
2
k 5a
2
ce
2
f
2
gh
2
+ 4a
2
ce
2
fg
3
h
a
2
ce
2
g
5
2a
2
d
2
ef
3
gl 2a
2
de
2
f
3
gk + 2a
2
de
2
f
3
h
2
2ab
4
fghl
2
4ab
3
cf
2
hl
2
+
2ab
3
cfg
2
l
2
+3ab
3
df
2
gl
2
3ab
3
ef
2
gkl +4ab
3
efg
2
hl +ab
2
c
2
f
2
gl
2
+ab
2
cdf
3
l
2

ab
2
cef
3
kl+2ab
2
cef
2
ghl4ab
2
cefg
3
l3ab
2
def
3
hl3ab
2
def
2
g
2
l3ab
2
e
2
f
3
hk+
3ab
2
e
2
f
2
g
2
k + 3ab
2
e
2
f
2
gh
2
2ab
2
e
2
fg
3
h 2abc
3
f
3
l
2
4abc
2
ef
3
hl +
4abc
2
ef
2
g
2
l+6abcdef
3
gl+2abce
2
f
3
h
2
4abce
2
f
2
g
2
h+2abce
2
fg
4
+2abd
2
ef
4
l+
2abde
2
f
4
k2abde
2
f
3
gh4ac
2
def
4
l 2ac
2
e
2
f
4
k+4ac
2
e
2
f
3
gh2ac
2
e
2
f
2
g
3

4acde
2
f
4
h+2acde
2
f
3
g
2
+ad
2
e
2
f
4
g +b
5
f
2
hl
2
b
4
cf
2
gl
2
b
4
df
3
l
2
+b
4
ef
3
kl
2b
4
ef
2
ghl+b
3
c
2
f
3
l
2
+2b
3
cef
3
hl+2b
3
cef
2
g
2
l+b
3
def
3
glb
3
e
2
f
3
gkb
3
e
2
f
3
h
2
+
b
3
e
2
f
2
g
2
h 4b
2
c
2
ef
3
gl b
2
cdef
4
l + b
2
ce
2
f
4
k b
2
ce
2
f
2
g
3
+ 2b
2
de
2
f
4
h +
2bc
3
ef
4
lbc
2
e
2
f
4
h+2bc
2
e
2
f
3
g
2
2bcde
2
f
4
gbd
2
e
2
f
5
c
3
e
2
f
4
g+2c
2
de
2
f
5
)y =
0.
94 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Sistem de ecuaii, coecieni compleci algebrici
//
// Sistem de ecuaii cu coeficieni Z_7(i)
//
ring R = (7,i),(x,y),lp;
minpoly = i2+1;
ideal I = (xy+(-1-i))*(x2+x+(i)*y+(-2+i)),(xy+(-1-i))*(x2+(-2+3i));
groebner(I);
Sistemul dat este (polinoame din Z
7
(i)[X, Y ]):
_
x
3
y +x
2
y (i + 1)x
2
+ixy
2
+ (i 2)xy (i + 1)x (i 1)y + (i + 3) = 0
x
3
y (i + 1)x
2
+ (3i 2)xy (i + 2) = 0
Sistemul echivalent este:
_
y
5
y
4
(i 2)y
3
+ (i 3)y
2
iy + (2i + 1) = 0
(2i 2)x + (2i + 2)y
4
+ 3y
3
+ (i + 2)y
2
+y 3i = 0
Sistem de 2 ecuaii, 2 necunoscute, coecieni compleci algebrici
din Q(i)
//
// Sistem de 2 ecuatii cu 2 necunoscute,
// coeficienti complecsi, Q(i)
//
// exista solutie
//
ring R = (0,i),(x,y),lp;
minpoly = i2+1;
ideal I = (xy+(-1-i))*(x2+x+(i)*y+(-2+i)),(xy+(-1-i))*(x2+(-2+3i));
groebner(I);
Sistemul de ecuaii dat este (coecieni din Q(i)):
_
x
3
y +x
2
y (i + 1)x
2
+ixy
2
+ (i 2)xy (i + 1)x (i 1)y + (i + 3) = 0
x
3
y (i + 1)x
2
+ (3i 2)xy (i 5) = 0
Sistemul echivalent este:
2.3. REZOLVAREA NUMERIC A UNUI SISTEM NEPOLINOMIAL 95
_

_
2y
5
12y
4
(5i 31)y
3
+
(12i 36)y
2
(19i 21)y + (24i + 12) = 0
(44i 100)x
(12i 16)y
4
+ (56i 88)y
3
(146i 170)y
2
+
+(196i 132)y (206i 14) = 0
2.3 Rezolvarea numeric a unui sistem nepolino-
mial
n aceast seciune facem o incursiune scurt n afara domeniului varietilor
algebrice. Tot ce discutm aici are doar o valoare informativ i teoria prezen-
tat nu va fundamentat n toate amnuntele sale. Practic accentul cade pe
cele dou exemple, care ilustreaz sucient de clar ideea expus.
Pentru sistemele de ecuaii neliniare nepolinomiale nu exist metode de
rezolvare globale (cel puin dup cunotinele autorului prezentei cri). Tot
ce se poate face pentru astfel de sisteme este rezolvarea lor local. Mai precis,
pentru astfel de sisteme dispunem de metode iterative (metode de tip Newton-
Kantorovich), care construiesc iruri de aproximaii pentru soluii care se a
n "raza de atracie" a punctului de start al iteraiei. Repetnd construirea
acestor iruri cu alte i alte puncte de start, obinem eventual alte soluii
ale sistemului.
Cum trebuie ales punctul de start al iteraiei? Cte soluii are un sistem
dat ntr-un domeniu nit dat? La aceste ntrebri nu avem rspunsuri generale.
n cele de mai jos vom arta prin exemple concrete c teoria bazelor Grb-
ner poate aplicat i n acest context, astfel ca vom putea da rspunsuri re-
zonabile i la aceste ntrebri. Ideea de baz este simpl: aproximm sistemul
neliniar dat pe un domeniu, cu sisteme de ecuaii polinomiale pe subdomenii
convenabil alese. Rezolvm sistemele neliniare polinomiale cu metoda bazei
Grbner , i folosim soluiile gsite ca puncte de start pentru metode iterative
clasice pentru a obine soluiile numerice cu precizia dorit.
Formal avem deci urmtoarea problem. Fie sistemul de ecuaii neliniar:
_

_
f
1
(x
1
, x
2
, . . . , x
n
) = 0
f
2
(x
1
, x
2
, . . . , x
n
) = 0
. . .
f
n
(x
1
, x
2
, . . . , x
n
) = 0
unde f
1
, . . . , f
n
sunt funcii denite i difereniabile pe un domeniu dreptunghi-
ular D R
n
.
96 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Problema 2.3.1. Presupunem c sistemul de ecuaii de mai sus are un numr
nit de soluii n domeniul D. Presupunem de asemenea c matricea Iacobi
F = (f
1
, . . . , f
n
) este nesingular n aceste puncte de rdcin. S se gseasc
toate (!) aceste puncte cu o precizie dat.
2.3.1 Exemplu cu aproximare Bernstein
Metoda de rezolvare numeric propus n [23] are urmtorii pai:
Pasul 1. Se aproximeaz funciile f
i
cu polinoame (Bernstein [37] sau
spline).
Teorema 2.3.2. Fie domeniul D =

n
k=1
[0, 1] i e B
m
operatorul Bernstein
denit de
(B
m
f)(x) =
m

i
1
=0
m

i
2
=0

m

i
n
=0
f(
i
1
m
,
i
2
m
, . . . ,
i
n
m
)
n

j=1
C
i
j
m
x
i
j
j
(1 x
j
)
mi
j
,
unde x = (x
1
, x
2
, . . . , x
n
) D i f este o funcie continu pe D.
Atunci lim
m
||B
m
f f||

= 0.
Aproximm f
i
cu B
m
f
i
pentru orice i = 1, . . . , n.
Pasul 2. Se aplic algoritmul de calcul al bazei Grbner sistemului poli-
nomial de ecuaii B
m
f
i
= 0, i = 1, . . . , n pentru a obine sistemul echivalent
"triunghiular".
Pasul 3. Se aplic o metod numeric standard pentru rezolvarea ecuaiei
polinomiale cu o singur necunoscut. (n exemplele care vor urma am utilizat
metoda Bairstows ([36]), dar sistemele CAS dispun de metode incorporate
pentru rezolvarea numeric a sistemelor algebrice neliniare). Se rein soluiile
reale din intervalul [0, 1]. Se calculeaz toate soluiile sistemului triunghiular
din domeniul D.
Pasul 4. Se raneaz soluiile gsite n pasul anterior folosindu-se aceste
valori ca puncte de start pentru metode numerice iterative standard apli-
cate sistemului iniial. (n exemplele de mai jos am folosit metoda Newton-
Kantorovich).
Exemplul 2.3.3. S se gseasc toate soluiile din [0, 1] [0, 1] [0, 1] ale
sistemului de ecuaii:
2.3. REZOLVAREA NUMERIC A UNUI SISTEM NEPOLINOMIAL 97
_

_
z = cos(x +y)
z = x
2
+y
2
z = x +y
1
4
Rezolvare:
Pasul 1. m = 2,
_

_
28x
2
y
2
+ 170x
2
y 216x
2
+ 170xy
2
864xy
244x 1000z 216y
2
244y + 1000 = 0
x
2
+z y
2
= 0
4x + 4z 4y + 1 = 0
Pasul 2.
_

_
3136y
8
+ 31808y
7
+ 178784y
6
1139456y
5
+ 2960232y
4
+3963400y
3
+ 15306185y
2
17019304y + 1317904 = 0
239377264285440264z
+38801387759680y
7
+361771065106752y
6
+2064375688512992y
5
13760573122605696y
4
+64582070537855400y
3
18298549871869160y
2
21651628400988375y
144393016743385558 = 0
4x + 4z 4y + 1 = 0
Soluiile sistemului algebric sunt:
Pasul 3.
x
1
= 0.1, y
1
= 0.777, z
1
= 0.627
x
2
= 0.81, y
2
= 0.084, z
2
= 0.644
98 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Pasul 4.
x
1
= 0.093, y
1
= 0.791, z
1
= 0.634
x
2
= 0.791, y
2
= 0.093, z
2
= 0.634
2.3.2 Exemplu cu aproximare spline
Presupunem de la nceput n = 2. De asemenea presupunem c domeniul D
este de forma [a, b] [c, d]. Alegem nodurile echidistante a = x
0
< x
1
<
. . . x
N
= b i c = y
0
< y
1
< . . . y
M
= d. Notm D
ij
= [x
i
, x
i+1
] [y
j
, y
j+1
] i
h =
b a
N
, l =
d c
M
.
Vom considera funcii spline bicubice, care sunt polinomiale de grad trei
n ambele variabile pe poriuni, i interpoleaz valorile funciei difereniabile
f : D R n nodurile (x
i
, y
j
) i a valorilor derivatelor pariale de ordinul
nti D
1,0
f i D
0,1
f n aceleai noduri.
De fapt se determin funcia spline bicubic S(f) n dou variabile avnd
urmtoarele proprieti:
(1) pe dreptunghiul D
ij
avem
S(f)(x, y) = S
i,j
(f)(x, y) =

,=0,+4
A
,
i,j
(x x
i
)

(y y
j
)

(2) n nodurile (x
i
, y
j
), i = 0, 1, . . . , N, j = 0, 1, . . . , M avem
D
r,s
S(f)(x
i
, y
j
) = D
r,s
f(x
i
, y
j
) := f
(r,s)
ij
unde r +s 1 i D
r,s
este operatorul de derivare parial.
S reiterm teorema 2.3 din [29] (se poate consulta i [11] sau [34]).
Teorema 2.3.4. Dac A
2,2
i,j
= 0 atunci exist o funcie spline bicubic S(f)
care satisface condiiile (1) i (2) pe domeniul D.
Mai mult, S(f) poate construit efectiv. Iat expresia acesteia. Notm:
t =
x x
i
h
, v =
y y
j
l
,
pentru o pereche xat de indici (i, j) i punctul (x, y) D
i,j
. Putem exprima
funcia spline bicubic S(f) pe subdomeniul D
i,j
n felul urmtor:
2.3. REZOLVAREA NUMERIC A UNUI SISTEM NEPOLINOMIAL 99
S
i,j
(f)(x, y) =
(1 v) (
1
(t)f
i,j
+
2
(t)f
i+1,j
+
3
(t)hf
(1,0)
i,j
+
4
(t)hf
(1,0)
i+1,j
)
+v (
1
(t)f
i,j+1
+
2
(t)f
i+1,j+1
+
3
(t)hf
(1,0)
i,j+1
+
4
(t)hf
(1,0)
i+1,j+1
)
+v(1 v) (v((1 t)(f
i,j+1
f
i,j
lf
(0,1)
i,j+1
)
+t(f
i+1,j+1
f
i+1,j
lf
(0,1)
i+1,j+1
))
+(1 v)((1 t)(f
i,j+1
+f
i,j
+lf
(0,1)
i,j
)
+t(f
i+1,j+1
+f
i+1,j
+lf
(0,1)
i+1,j
))),
unde

1
(t) = (1 t)
2
(1 + 2t),

2
(t) = t
2
(3 2t),

3
(t) = t(1 t)
2
,

4
(t) = t
2
(1 t).
Fiecare funcie f
1
i f
2
poate aproximat deci cu astfel de funcii spline,
aadar n locul sistemului neliniar nepolinomial
F(x, y) = 0
vom avea un numr de N M sisteme polinomiale de forma
_
S(f
1
)(x
1
, x
2
) = 0
S(f
2
)(x
1
, x
2
) = 0,
unde x = (x
1
, x
2
) D
i,j
pentru ecare subdomeniu D
ij
, i = 0, 1, . . . , N 1 i
j = 0, 1, . . . , M 1.
Metoda din [22] are urmtorii pai:
Pasul 1. Se aproximeaz funciile difereniabile f
i
cu funcii spline, ca
mai sus.
Pasul 2. Se aplic algoritmul bazei Grbner pentru cele N M sisteme
polinomiale
_
S
i,j
(f
1
)(x
1
, x
2
) = 0
S
i,j
(f
2
)(x
1
, x
2
) = 0,
de unde pentru ecare subdomeniu D
ij
, i = 0, 1, . . . , N1 i j = 0, 1, . . . , M1
se obine un sistem "triunghiular" echivalent.
Pasul 3. Se rezolv numeric aceste sisteme cu metode standard. Se rein
soluiile reale din subdomenii.
100 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Pasul 4. Soluiile aproximative de lapasul anterior se consider ca puncte
de start pentru metode iterative numerice standard de reyolvare a sistemelor
neliniare.
S relum exemplul anterior n acest context.
Exerciiul 2.3.5.
_

_
cos(x +y) x y +
1
4
= 0
x
2
+y
2
x y +
1
4
= 0
Soluie:
Pasul 1. Alegem N = 3 i M = 3. Formula de aproximare cu funcii
spline ne d 3 3 = 9 sisteme polinomiale. Primul din ele, pentru i = 0 i
j = 0 sau D
0,0
= [0, 0.333] [0, 0.333] avem
_

_
1.564 10
1
x
3
y + 2.757 10
2
x
3
+ 8.394 10
2
x
2
y
5.046 10
1
x
2
+ 1.564 10
1
xy
3
+ 8.391 10
2
xy
2
1.027xy x + 2.757 10
2
y
3
5.046 10
1
y
2
y + 1.250 = 0
x
2
x +y
2
y + 2.500 10
1
= 0
Pentru i = 0 i j = 1, sau D
0,1
= [0, 0.333] [0.333, 0.666] avem
_

_
1.301 10
1
x
3
y + 3.643 10
2
x
3
+ 2.414 10
1
x
2
y
5.570 10
1
x
2
+ 1.300 10
1
xy
3
+ 1.114 10
1
xy
2
1.086xy 9.824 10
1
x + 7.969 10
2
y
3
5.563 10
1
y
2
9.829 10
1
y + 1.248 = 0
x
2
x +y
2
y + 2.500 10
1
= 0
Pentru i = 0 i j = 2, sau D
0,2
= [0, 0.333] [0.666, 1] avem
_

_
8.940 10
2
x
3
y + 6.349 10
2
x
3
+ 3.722 10
1
x
2
y
6.443 10
1
x
2
+ 8.934 10
2
xy
3
+ 1.934 10
1
xy
2
1.180xy 9.439 10
1
x + 1.230 10
1
y
3
6.422 10
1
y
2
9.261 10
1
y + 1.236 = 0
x
2
x +y
2
y + 2.500 10
1
= 0
Pasul 2.
2.4. PROBLEME PROPUSE 101
_

_
y 9.239 10
2
= 0
x + 1.716 10
2
y
5
1.076 10
1
y
4
+3.785 10
1
y
3
1.969 10
1
y
2
+9.593 10
1
y 8.771 10
1
= 0
_

_
y
6
4.633y
5
+ 1.185 10y
4
+ 1.495y
3
+3.531 10y
2
3.707 10y + 3.043 = 0
x + 2.048 10
2
y
5
1.070 10
1
y
4
+4.079 10
1
y
3
3.297 10
1
y
2
+1.042y 8.772 10
1
= 0
_

_
y
6
4.244y
5
+ 1.025 10y
4
6.669 10
1
y
3
+ 2.922 10y
2
2.930 10y + 2.291 = 0
x + 2.416 10
2
y
5
1.153 10
1
y
4
+4.322 10
1
y
3
3.864 10
1
y
2
+1.062y 8.678 10
1
= 0
Pasul 3.
Pentru primul sistem soluia este: (0.797, 0.09239) D
0,0
.
Pentru cel de al doilea obinem dou soluii reale (0.786, 0.09) i
(0.093, 0.791), care nu aparin domeniului D
0,1
.
Al treilea sistem are dou soluii reale: (0.78, 0.085) D
0,2
dar
(0.093, 0.791) D
0,2
.
Pasul 4.
Metoda Newton cu punctul de start obinut anterior d: (0.093, 0.791)
D
0,2
. Celelalte ase sisteme mai dau nc o soluie, simetric fa de cea
obinut deja.
2.4 Probleme propuse
1. S se rezolve sistemele de ecuaii cu coecieni n corpul numerelor
raionale, Q.
1-1.
_
2x 3y = 1
x 2y = 1
102 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
1-2.
_

_
2x 3y + 4z = 10
x 5y + 2z = 10
3x 4y + 3z = 10
1-3.
_

_
5x 3y +z = 9
x 2y 2z = 1
4x y + 3z = 10
1-4.
_

_
2x 3y +z = 1
x + 2y + 2z = 1
3x y + 3z = 10
1-5.
_

_
2x y z u = 1
x + 2y z u = 1
x y + 2z u = 1
x y z + 2u = 1
Indicaie:
ring R=0,(x,y),lp;
poly f1=2x-3y+1;
poly f2=x-2y+1;
ideal I=f1,f2;
ideal J=groebner(I);
J;
LIB "solve.lib";
list s=solve(I,6);
s;
// -> J: este forma echivalenta "triunghiulara" a sistemului
// -> s: este lista solutiilor in numere complexe
2. S se reyolve sistemele neliniare cu coecieni compleci.
2-1.
_
2x
2
3y
2
= 1
x 2y = 1
2-2.
_
2x 3y = 1
x
2
2y
2
= 1
2.4. PROBLEME PROPUSE 103
2-3.
_
2x
2
3y
2
= 1
x
2
2y
2
= 1
2-4.
_
2x
5
3y
4
= 1
x
3
2y
2
= 1
2-5.
_

_
2x
2
3y
2
+ 2z
2
= 1
x
2
2y
3
xz
2
= 2
x
2
y 2zy
2
yz
3
= 2
2-6.
_
(x +y 1)(2x 3y 1) = 0
(x + 5y 2)(4x + 2y 1) = 0
2-7.
_
(x
2
+x 2)(2x 3y 1) = 0
x
3
+xy y 1 = 0
2-8.
_
(x
2
+x 2)(2x 3y 1) = 0
x
3
+xy y + 1 = 0
2-9.
_
x
7
+xy
4
3y
3
= 1
x
3
y +xy
4
y
7
= 1
Indicaie:
ring R=0,(x,y),lp;
poly f1=2x2-3y2+1;
poly f2=x-2y+1;
ideal I=f1,f2;
ideal J=groebner(I);
J;
LIB "solve.lib";
list s=solve(I,6);
s;
// -> J: este forma echivalenta "triunghiulara" a sistemului
// -> s: este lista solutiilor in numere complexe
104 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUAII
Capitolul 3
Coduri corectoare de erori
N
umerele raionale, numerele reale i numerele complexe, m-
preun cu operaiile de adunare i nmulire ntre ele, avnd
proprieti algebrice naturale obinuite constituie exemple de
structuri numite corpuri. Corpul numerelor reale este o ex-
tindere a corpului numerelor raionale, iar corpul numerelor complexe este o
extindere a acestuia din urm. n acest capitol vom vedea mai n detaliu as-
pectele specice ale extinderilor corpurilor nite. Cteva dintre deniiile i
rezultatele ntlnite deja sunt reiterate i n acest context, pentru a asigura o
relativ independen a lecturii capitolelor.
Mai nainte ns aa cum am mai procedat i n alte capitole ale acestei
cri s ncepem cu sfritul. S vedem i aici o problem sucient de
concret i incitant, pentru a motiva efortul ndreptat pentru nfrngerea
dicultilor parcurgerii i nelegerii construciilor teoretice care vor urma.
S presupunem c dorim s transmitem un mesaj printr-un canal de comu-
nicaie, care nu poate garanta certitudinea nealterrii mesajului nostru. Ca
orice sistem technic, el poate altera mesajul, e i ntr-o msur mic. Dac la
receptor sosete mesajul "greeal de tipar", mesajul corect poate reconsti-
tuit eventual din context, cu condiia ca acest context s nu e o examinare la
distan a unor studeni la materia numit Ortograa limbii romne. Contex-
tul poate s lipseasc ns cu desvrire, spre exemplu n cazul unei secvene
de mesaj codicat de genul "AGECGKTSDTMVKUFTEWDXTFSAKL", n
care literele semnic niveluri de gri, ale unei poriuni de imagine transmis
de o sond spaial nregistrat de pe suprafaa unei planete.
Pretenia noastr este cu alte cuvinte de a codica informaia util astfel
nct, dac n cursul transmiterii se produc unele alterri, acestea s poat
detectate, i de ce nu i corectate! Este posibil oare aa ceva? Vom arta
pe un exemplu concret, c este posibil!
105
106 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
3.1 Un exemplu concret
S
presupunem c dorim s transmitem o informaie util constnd din
patru cifre binare 0 sau 1 a cror semnicaie nu este important pentru
noi, ele putnd reprezenta orice informaie convenit ca ind inteligent i
inteligibil ntre cei doi parteneri ai transmisiei, respectiv expeditorul/cel care
transmite i destinatarul/cel care recepteaz.
Fie acest mesaj spre exemplu
u = 1011.
nainte de a-l transmite s completm mesajul cu alte trei cifre binare n modul
urmtor. S considerm matricea de generare
G =
_
_
_
_
_
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
_
_
_
_
_
.
Dac privim mesajul nostru de patru cifre binare ca un vector
u =
_
1 0 1 1
_
,
atunci putem calcula produsul (matricial) v = u G calculat dup regulile
aritmeticii (mod 2) i astfel obinem un ir de 7 cifre binare:
v =
_
1 0 1 1 0 1 0
_
.
Acesta va mesajul pe care l vom transmite. Mesajul preparat astfel este
capabil de "minuni": dac oricare din cele 7 cifre este recepionat eronat, adic
se recepteaz 1 n loc de 0 sau 0 n loc de 1 undeva n acest secven, atunci
nu numai c faptul alterrii poate descoperit, dar mai mult, putem specica
i locul exact al alterrii, i astfel eroarea poate corectat!
S simulm o eroare. S presupunem spre exemplu c receptorul a nreg-
istrat mesajul sub forma
v =
_
1 0 1 0 0 1 0
_
.
Evident cel care recepteaz nu vede sub aceast form, ci mai degrab astfel:
v =
_
1 0 1 0 0 1 0
_
.
3.1. UN EXEMPLU CONCRET 107
Este acest mesaj corect? Dac nu, unde este greala, care este cifra alterat?
Iat cum putem depista cifra alterat. Considerm matricea
H =
_
_
_
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
_
_
_,
pe care o vom numi matrice de control al paritii, sau matrice de vericare
a paritii. Cu ajutorul acesteia vom detecta eroarea, dac ea s-a produs.
Privim acum mesajul recepionat v ca un vector, astfel
v
t
=
_
_
_
_
_
_
_
_
_
_
_
_
1
0
1
0
0
1
0
_
_
_
_
_
_
_
_
_
_
_
_
i l nmulim cu matricea H. S notm rezultatul nmulirii cu s = H v
t
.
Acesta este
s =
_
_
_
1
0
0
_
_
_.
Tot ce avem de fcut acum este s citim rezultatul de sus n jos n baza doi,
i astfel obinem 100 adic numrul 4. Cifra a patra este eronat!
Cititorul mai puin credul poate verica faptul c, oricare cifr ar fost
alterat din cele 7 cifre, procedeul funcioneaz, matricea detectoare e bun
n acest scop.
Dup corectarea erorii mesajul corect este
v =
_
1 0 1 1 0 1 0
_
.
Acum putem ignora cele 3 cifre adiionale, i obinem mesajul original neal-
terat notat cu u.
S observm, c procedeul nostru poate detecta i corecta cel mult o eroare
de o cifr binar.
Se nasc n mod natural urmtoarele ntrebri incitante: cum pot constru-
ite astfel de matrici-minune G i H? Sau i mai fundamental: pe ce fundament
teoretic pot inventate astfel de mecanisme de detectare i corectare a eror-
ilor? Dezideratul este evident de a obine o capacitate de detectare i corectare
ct mai mare cu un numr de cifre adiionale ct mai mic posibil.
108 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Toate acestea pot fundamentate i realizate cu ajutorul extensiei concep-
tului de numr. O nou mulime de numere utilizabil minunat n acest scop
se numete... corp nit! n seciunea 3.2 de pe pagina 112 ncepem studiul
sistematic al acestora.
Exerciiile 3.1.1.
1. Scriei un program n GAP pentru efectuarea tuturor calculelor de mai
sus.
2. Testai i alte mesaje utile, respectiv simulai erori n diverse poziii,
efectund toate calculele cu ajutorului acestui program.
3. Dai un rspuns argumentat la ntrebarea: Dac n mesajul recepionat
nu se detecteaz eroare, putem siguri c nu s-a produs nici o eroare n
cursul transmisiei?
Problema 3.1.2. ncercai s dai o explicaie, de ce funcioneaz corect
acest mecanism de detectare i corectare a erorilor de cel mult o cifr binar
(fr s citii mai nti indicaia de mai jos)!
Indicaie Observai faptul c matricea H are drept coloane numerele de la 1
la 7 reprezentate n baza 2. Cutai o analogie ntre modul de determinare a
cifrei binare eronate i o soluie posibil dat problemei de mai jos.
Problema 3.1.3. ntre 8 monezi care n aparen par identice exist
bnuiala, c una este fals, ea, dac exist, are o greutate puin mai mare dect
o moned veritabil. S presupunem c dispunem de un cntar cu brae egale
cu care putem efectua doar msurtori de comparaie a greutilor. ntrebarea
este: sunt oare suciente 3 cntriri potrivite pentru a detecta existena unei
monezi false, i a chiar a identicrii ei, n caz c exist?
O soluie posibil este urmtoarea: numerotm monezile cu numerele de
la 0 la 7, apoi efectum 3 cntriri, comparnd gruprurile de monezi 0,1,2,3 i
4,5,6,7, apoi 0,1,4,5 i 2,3,6,7, iar n nal 0,2,4,6 i 1,3,5,7. Cntarul rmne n
echilibru dac nu avem moned fals. ns n cazul unei monezi false, braul
care coboar al cntarului indic pe rnd cifrele binare ale numrului de ordine
al monezii false: nclinare la stnga nseamn 0, la dreapta nseamn 1.
0,1,2,3 4,5,6,7 0,1,4,5 2,3,6,7 0,2,4,6 1,3,5,7
0 000 4 100 0 000 2 010 0 000 1 001
1 001 5 101 1 001 3 011 2 010 3 011
2 010 6 110 4 100 6 110 4 100 5 101
3 011 7 111 5 101 7 111 6 110 7 111
3.1. UN EXEMPLU CONCRET 109
3.1.1 O prim utilizare a programului GAP n coduri
tim deja c mediul de programare GAP este interpretor, adic ateapt
comenzi pe un prompter, pe care le execut imediat. Un set de instruci-
uni succesive poate salvat ntr-un ier, i executat la o singur comand,
prin ncrcarea ierului.
S facem o introducere brusc n programarea elementar a pachetului
GAP, prin intermediul prezentrii unui exemplu de program surs comentat,
scris n acest mediu. Programul de mai jos scris n limbajul de programare
oferit de GAP este cu siguran uor de descifrat. Numele ierului este progr.g
i va ncrcat i executat la comanda Read("progr.g"); tastat pe prompterul
gap>
dup ce acest ier a fost copiat n catalogul \bin existent n catalogul-
rdcin n care a fost instalat programul GAP.
##################################################################
##
## progr.g
## program n GAP
## Un prim exemplu de utilizare a programului GAP n coduri
##
##################################################################
##################################################################
## Funcie de conversie a numrului de ordine
## input: s - o matrice 3x1, cu elemente din Z(2)
## output: convs - un numr ntre 0..7
##
##
convs:=function(s)
local k,i;
k:=0;
for i in [1..3] do
if s[i][1]=1*Z(2) then
k:=k*2+1;
else
k:=k*2+0;
fi;
od;
return k;
end;;
110 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
##################################################################
##
## Programul principal:
##
## Semnificaia variabilelor din program
##
## u - mesaj util, 4 cifre binare Z(2) (matrice tip 1x4)
## G - matrice de generare, elemente din Z(2) (tip 4x7)
## H - matrice de control, elemente din Z(2) (tip 3x7)
## v - mesajul codificat i transmis, apoi recepionat
## (eventual) eronat, (matrice-linie, tip 1x7)
## s - vector, locul erorii, (matrice coloan, tip 3x1)
##
##################################################################
## Definiia corpului finit Z(2)
F:=GF(2);
## Definirea matricii de generare (codificare)
G:=[[ 1, 0, 0, 0, 0, 1, 1],
[ 0, 1, 0, 0, 1, 0, 1],
[ 0, 0, 1, 0, 1, 1, 0],
[ 0, 0, 0, 1, 1, 1, 1]]*One(F);
## ...i a matricii control al paritii (detectare a erorii)
H:=[[ 0, 0, 0, 1, 1, 1, 1],
[ 0, 1, 1, 0, 0, 1, 1],
[ 1, 0, 1, 0, 1, 0, 1]]*One(F);
## Mesajul util
u:=[[1, 0, 1, 1]]*One(F);
## Mesajul transmis
v:=u*G;
Print("\n G - matricea de generare a codului este \n\n");
Display(G);
Print("\n H - matricea detectoare de erori este \n\n");
Display(H);
3.1. UN EXEMPLU CONCRET 111
Print("\n u - mesajul util \n\n");
Display(u);
Print("\n v - mesajul codificat i transmis \n\n");
Display(v);
## ! Simularea unei erori
## aici se poate modifica, pentru a testa deverse erori
v[1][4]:=1 - v[1][4];
Print("\n simularea erorii i \n v - mesajul recepionat \n\n");
Display(v);
## Descoperirea erorii
s:=H*TransposedMat(v);
Print("\n s - descoperirea erorii \n\n");
Display(s);
## Corectarea erorii
## cifra binar eronat are numrul de ordine k
k:=conv(s);
Print("\n ...cifra recepionat eronat este, \n\n");
Display(k);
Print("\n ...corectarea erorii, \n\n");
if k > 0 then
v[1][k]:=1-v[1][k];
else
Print("\n Mesajul probabil nu conine erori \n\n");
fi;
Display(v);
## Reconstituire mesajului original, primele 4 cifre
u:=v{[1]}{[1,2,3,4]};
Print("\n ...i n sfrit mesajul original este \n\n");
Display(u);
##################################################################
112 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
3.2 Corpuri nite
E
xemple de corpuri finite sunt bine cunoscute: inelele claselor de res-
turi modulo p, unde p este un numr prim sunt de fapt corpuri nite cu
p elemente. Acesta se datoreaz faptului c clasele de resturi nenule n acest
caz sunt inversabile. ntr-adevr, dac a este nenul i a < p, atunci a este
relativ prim cu p, deci cel mai mare divizor comun al lor este (a, p) = 1. Algo-
ritmul extins al lui Euclid asigur existena a dou numere ntregi b, c, astfel
ca ab +pc = 1. Trecnd la clase de resturi, rezult ab = 1mod (p), adic a este
inversabil.
Concluzia este c "numerele" dintr-o clas de resturi de modul prim sunt
la fel de potrivite ca numerele raionale, reale sau complexe n orice context n
care avem de efectuat numai cele patru operaii de baz: adunarea, scderea,
nmulirea i mprirea. (Atenie, analogia funcioneaz strict pn la cele pa-
tru operaii amintite, ne lipsete spre exemplu ordonarea numerelor, obinuit
i specic spre exemplu la numerele raionale!)
Este oare lista Z
p
unde p este un numr prim, lista complet a corpurilor
nite? Rspunsul la aceast ntrebare este NU: exist i corpuri cu alt numr
de elemente, spre exemplu 4, 9, 8, 16 etc. (dar nu i cu 6 elemente!).
n subseciunea care urmeaz ncepem aceste investigaii, tot n spiritul
"cu dicultatea fa-n-fa", adic s vedem mai nti fenomenul care st la
baza construciei corpurilor nite.
3.2.1 O problem de concurs n informatic
La un concurs nformatic autorul acestei cri a propus urmtoarea problem.
Problema 3.2.1. Se d mulimea formal innit
F = {0, 1, a, a
2
, a
3
, a
4
, ...},
unde simbolul a nu este nici 0 nici 1. Presupunem c operaiile de adunare (+)
i de nmulire () cu proprietile lor obinuite pot efectuate ntre elementele
acestei mulimi F, spre exemplu a a = a
2
, 1 a = a, 0 + a = a, 0 a = 0,
a (1 + a
2
) = a + a
3
etc. n acest mod se genereaz expresii algebrice, care
conin simbolul a.
Presupunem c mai avem i dou reguli specice de calcul:
1 + 1 = 0
i
a
6
= a + 1,
3.2. CORPURI FINITE 113
care afecteaz i probabil simplic aceste expresii algebrice.
Se cere scrierea unui program n orice limbaj care v st la dispoziie care
s calculeze:
cea mai mic valoare pozitiv a lui n pentru care a
n
= 1, conform acestor
reguli de calcul (a
0
= 1 prin convenie), i
a
22
+a
43
, ca un element al mulimii iniiale F, i
rdacinile din F ale ecuaiei x
2
+a x +a
2
= 0.
nainte de a ncepe discuia soluiei acestei probleme, se impun cteva
observaii preliminare.
Observaiile 3.2.2.
Numerele 0 i 1 genereaz prin adunare i scdere toate numerele ntregi
(i numai acestea). Spre exemplu 1+1 = 2, 1+1+1 = 3, etc., respectiv
0 1 = 1, 1 1 = 2, etc.
n prima instan operaiile de adunare i nmulire aplicate elementelor
mulimii F conduc la expresii polinomiale de tipul
c
0
+c
1
a +c
2
a
2
+. . . +a
k
a
k
, (3.1)
unde c
i
sunt numere ntregi.
Dac inem cont de ipoteza special legat de adunarea lui 1, atunci
cercul generrii numerelor se nchide la 0 i 1. Acestea sunt singurele
numere ntregi posibile. Practic numerele vor elemente ale clasei de
resturi modulo 2, dac inem cont i de structura dat de adunarea i
nmulirea acestora.
Apriori, nu este evident ctui de puin, dac operaia de adunare n
mulimea F este sau nu operaie intern a mulimii F. Ea este intern
n mulimea generat de F cu operaiile de adunare i nmulire, adic
mulimea expresiilor 3.1 (polinoamelor cu nedeterminata a, i coecieni
numere ntregi sau clase de resturi modulo 2).
Puterile lui a se pot transforma n polinoame ale nedeterminatei a. Spre
exemplu a
6
= a + 1, a
7
= a
6
a = (a + 1) a = a
2
+ a, a
8
= a
3
+ a
2
,
a
9
= a
4
+a
3
, a
10
= a
5
+a
4
, etc.
Dac facem transformrile pn la capt, gradele acestor polinoame nu
depesc 5. Spre exemplu a
11
= a
6
+a
5
= a + 1 +a
5
= a
5
+a + 1, etc.
114 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Consecina 3.2.3.
Setul de coecieni numerici posibili este nit, {0, 1}, iar setul
monoamelor este de asemenea nit, {1, a, a
2
, a
3
, a
4
, a
5
}, prin urmare se-
tul polinoamelor generat de F este nit.
n particular, mulimea F este nit.
Se pun acum n mod natural urmtoarele ntrebri.
Problemele 3.2.4.
Este mulimea polinoamelor generate de mulimea F mulimea tuturor
polinoamelor (nenule) cu coecieni din Z
2
de grad cel mult 5?
Este mulimea F cu elementele rescrise ca polinoame de grad cel mult
5 submulime proprie a mulimii tuturor polinoamelor de grad cel mult
5?
S observm c, dac rspunsul la prima ntrebare este DA, iar la a doua
este NU, atunci ambele operaii adunarea i nmulirea n mulimea F
devin operaii interne.
S trecem la rezolvarea problemei 3.2.1 de pe pagina 112. Calculm puter-
ile succesive ale lui a folosind i regulile speciale de calcul. Obinem urmtorul
tabel, care conrm observaiile de mai sus.
a
n
exprimarea polinomial vectorul coecienilor
a
0
1 (1, 0, 0, 0, 0, 0)
a
1
a (0, 1, 0, 0, 0, 0)
a
2
a
2
(0, 0, 1, 0, 0, 0)
. . . . . . . . .
a
6
a + 1 (1, 1, 0, 0, 0, 0)
a
7
a
2
+a (0, 1, 1, 0, 0, 0)
. . . . . . . . .
a
22
a
5
+a
4
+a
2
+ 1 (1, 0, 1, 0, 1, 1)
. . . . . . . . .
a
43
a
5
+a
4
+a
2
+a + 1 (1, 1, 1, 0, 1, 1)
. . . . . . . . .
a
61
a
5
+a
4
+ 1 (1, 0, 0, 0, 1, 1)
a
62
a
5
+ 1 (1, 0, 0, 0, 0, 1)
a
63
1 (1, 0, 0, 0, 0, 0)
3.2. CORPURI FINITE 115
Tabelul este nit, i.e. puterile lui a se repet periodic!
Ce se mai poate aa din acest tabel? Iat cteva fapte care se pot citi
direct din acest tabel (din tabelul complet, evident).
Prima coloan poate utilizat pentru a efectua uor nmulirile. n-
mulirile se reduc evident la adunarea (mod 63) a exponenilor.
Coloana a treia poate utilizat pentru a efectua uor adunrile. Acestea
se reduc de fapt la adunarea (mod 2) a vectorilor.
Proprieti structurale pot citite de asemenea din acest tabel: toate
polinoamele (nenule) cu coecieni n Z
2
de grad mai mic dect 6 apar
n acest tabel!
Prin urmare rspunsul la ntrebarea 3.2.4 de pe pagina 114 este DA:
toate cele 63 de polinoame nenule de grad mai mic dect 6 apar ca
puteri ale lui a!
iar rspunsul la ntrebarea 3.2.4 de pe pagina 114 este NU: mulimea
F coincide i ea cu toate aceste polinoame!
Cel mai important ns este urmtorul fapt, citit tot din tabel: Fiecare
element al mulimii F are un invers (multiplicativ)! ntr-adevr a
1
=
a
62
, etc. (deoarece a
k
a
63k
= a
63
= 1, k = 1, 2, . . . , 62)
ntr-un mediu de programare adecvat ntocmirea acestui tabel este simpl.
Iat o variant scris n Singular, apoi o variant scris n GAP.
link l=":a outfile"; // fiier outfile mod "append"
ring F=(2,a),x,dp; // inel polinoame (Z_2[a])[x]
minpoly=a^6+a+1; // "polinomul minimal" pt. "a"
for( int i=0; i <= 63; i=i+1 ) // ciclu, exponentul lui "a"
{ // string
write(l,"a^"+string(i)+" = "+string(a^i)); // - a^i -
} // outfile
close(l); // nchide fiierul outfile
Iat i rezultatul rulrii programului scris n Singular, aat n ierul numit
"outle". Acesta se poate deschide cu orice editor de texte.
116 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
a^0 = 1
a^1 = (a)
a^2 = (a2)
a^3 = (a3)
a^4 = (a4)
a^5 = (a5)
a^6 = (a+1)
a^7 = (a2+a)
a^8 = (a3+a2)
a^9 = (a4+a3)
a^10 = (a5+a4)
a^11 = (a5+a+1)
a^12 = (a2+1)
a^13 = (a3+a)
a^14 = (a4+a2)
a^15 = (a5+a3)
a^16 = (a4+a+1)
a^17 = (a5+a2+a)
a^18 = (a3+a2+a+1)
a^19 = (a4+a3+a2+a)
a^20 = (a5+a4+a3+a2)
a^21 = (a5+a4+a3+a+1)
a^22 = (a5+a4+a2+1)
a^23 = (a5+a3+1)
a^24 = (a4+1)
a^25 = (a5+a)
a^26 = (a2+a+1)
a^27 = (a3+a2+a)
a^28 = (a4+a3+a2)
a^29 = (a5+a4+a3)
a^30 = (a5+a4+a+1)
a^31 = (a5+a2+1)
a^32 = (a3+1)
a^33 = (a4+a)
a^34 = (a5+a2)
a^35 = (a3+a+1)
a^36 = (a4+a2+a)
a^37 = (a5+a3+a2)
a^38 = (a4+a3+a+1)
a^39 = (a5+a4+a2+a)
a^40 = (a5+a3+a2+a+1)
a^41 = (a4+a3+a2+1)
a^42 = (a5+a4+a3+a)
a^43 = (a5+a4+a2+a+1)
a^44 = (a5+a3+a2+1)
a^45 = (a4+a3+1)
a^46 = (a5+a4+a)
a^47 = (a5+a2+a+1)
a^48 = (a3+a2+1)
a^49 = (a4+a3+a)
a^50 = (a5+a4+a2)
a^51 = (a5+a3+a+1)
a^52 = (a4+a2+1)
a^53 = (a5+a3+a)
a^54 = (a4+a2+a+1)
a^55 = (a5+a3+a2+a)
a^56 = (a4+a3+a2+a+1)
a^57 = (a5+a4+a3+a2+a)
a^58 = (a5+a4+a3+a2+a+1)
a^59 = (a5+a4+a3+a2+1)
a^60 = (a5+a4+a3+1)
a^61 = (a5+a4+1)
a^62 = (a5+1)
a^63 = 1
OutputLogTo("logfile"); // definete fiier "logfile"
a:=Indeterminate(GF(2),"a");; // variabila "a", peste Z_2
f:=a^6+a+1;; // definete poinomul f
for i in [0..63] do // ciclu, exponentul lui "a"
elem:=a^i mod f; // calculeaz a^i mod f
Display(elem); // afieaz
od; // (scrie i n fiier)
OutputLogTo(); // nchide fiierul "logfile"
3.2. CORPURI FINITE 117
Rezultatul rulrii variantei programului de listare n mediul de programare
GAP, aat n sierul numit "logle" este reprodus mai jos. (Constanta "Z(2)^0"
din acest ier, preferat de GAP, trebuie nlocuit cu varianta mai puin
exact dar mult mai prietenoas "1".)
Z(2)^0 = Z(2)^0
a = a
a^2 = a^2
a^3 = a^3
a^4 = a^4
a^5 = a^5
a^6 = a+Z(2)^0
a^7 = a^2+a
a^8 = a^3+a^2
a^9 = a^4+a^3
a^10 = a^5+a^4
a^11 = a^5+a+Z(2)^0
a^12 = a^2+Z(2)^0
a^13 = a^3+a
a^14 = a^4+a^2
a^15 = a^5+a^3
a^16 = a^4+a+Z(2)^0
a^17 = a^5+a^2+a
a^18 = a^3+a^2+a+Z(2)^0
a^19 = a^4+a^3+a^2+a
a^20 = a^5+a^4+a^3+a^2
a^21 = a^5+a^4+a^3+a+Z(2)^0
a^22 = a^5+a^4+a^2+Z(2)^0
a^23 = a^5+a^3+Z(2)^0
a^24 = a^4+Z(2)^0
a^25 = a^5+a
a^26 = a^2+a+Z(2)^0
a^27 = a^3+a^2+a
a^28 = a^4+a^3+a^2
a^29 = a^5+a^4+a^3
a^30 = a^5+a^4+a+Z(2)^0
a^31 = a^5+a^2+Z(2)^0
a^32 = a^3+Z(2)^0
a^33 = a^4+a
a^34 = a^5+a^2
a^35 = a^3+a+Z(2)^0
a^36 = a^4+a^2+a
a^37 = a^5+a^3+a^2
a^38 = a^4+a^3+a+Z(2)^0
a^39 = a^5+a^4+a^2+a
a^40 = a^5+a^3+a^2+a+Z(2)^0
a^41 = a^4+a^3+a^2+Z(2)^0
a^42 = a^5+a^4+a^3+a
a^43 = a^5+a^4+a^2+a+Z(2)^0
a^44 = a^5+a^3+a^2+Z(2)^0
a^45 = a^4+a^3+Z(2)^0
a^46 = a^5+a^4+a
a^47 = a^5+a^2+a+Z(2)^0
a^48 = a^3+a^2+Z(2)^0
a^49 = a^4+a^3+a
a^50 = a^5+a^4+a^2
a^51 = a^5+a^3+a+Z(2)^0
a^52 = a^4+a^2+Z(2)^0
a^53 = a^5+a^3+a
a^54 = a^4+a^2+a+Z(2)^0
a^55 = a^5+a^3+a^2+a
a^56 = a^4+a^3+a^2+a+Z(2)^0
a^57 = a^5+a^4+a^3+a^2+a
a^58 = a^5+a^4+a^3+a^2+a+Z(2)^0
a^59 = a^5+a^4+a^3+a^2+Z(2)^0
a^60 = a^5+a^4+a^3+Z(2)^0
a^61 = a^5+a^4+Z(2)^0
a^62 = a^5+Z(2)^0
a^63 = Z(2)^0
118 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Soluia problemei 3.2.1 de pe pagina 112.
Cea mai mic valoare pozitiv pentru n pentru care a
n
= 1 este (conform
listelor de mai sus)
63.
n mulimea F avem (conform listelor, vericai)
a
22
+a
43
= a.
Dac observm c 22 + 43 = 65 = 63 + 2, atunci putem scrie a
22

a
43
= a
2
. Aceasta ne amintete de relaiile lui Viete, privind rdcinile
i coecienii unei ecuaii algebrice. Calculul
(x a
22
) (x a
43
) = x
2
(a
22
+a
43
) x +a
22
a
43
= x
2
a x +a
2
= x
2
+a x +a
2
,
arat c a
22
i a
43
sunt rdcini ale ecuaiei date. Faptul c nu mai
exist i alte soluii rezult prin testarea tuturor celorlalte elemente ale
lui F, sau... din propoziia de mai jos!
Proprietile mulimii F, constatate mai sus, pot formulate condensat ntr-o
propoziie.
Propoziia 3.2.5. Mulimea F cu operaiile de adunare i nmulire denite
ca mai sus formeaz o structur de corp (nit).
Deoarece ntr-un corp orice element nenul este inversabil, nu exist divizori
ai lui 0 (de ce?), deci din egalitatea x
2
+a x +a
2
= (x a
22
) (x a
43
) = 0
va rezulta ori x = a
22
ori x = a
43
. Reamintim, c se numete divizor al lui 0
un element nenul pentru care exist un alt element nenul astfel ca produsul
celor dou este nul.
Ca fapt divers, includem aici i comanda Singular (continuare a comenzilor
de listare) pentru descompunerea polinomului/rezolvarea ecuaiei x
2
+a x +
a
2
= 0, precum i rezultatul ntors de aceast comand. Se recunosc conform
listei puterilor lui a cele dou rdcini a
43
respectiv a
22
!
factorize(x^2+a*x+a^2);
[1]:
_[1]=1
_[2]=x+(a5+a4+a2+a+1)
_[3]=x+(a5+a4+a2+1)
[2]:
1,1,1
3.2. CORPURI FINITE 119
ntrebarea natural care se pune acum este: de ce relaia special a
6
= a+1
presupus pentru simbolul a a avut pn la urm drept consecin proprietatea
structural puternic a lui F?
Rspunsul n sine este simplu:
Faptul 3.2.6. n inelul de polinoame Z
2
[a] polinomul a
6
a1 este ireductibil !
Se pune acum urmtoarea ntrebare de fond. Cum pot construite astfel
de mulimi F, care s funcioneze ca i corpuri de numere nite? Rspunsul la
aceast ntrebare cere dezvoltarea ideilor matematice care se ascunde n spatele
acestui mecanism... teoria corpurilor nite i a polinoamelor cu coecieni n
aceste corpuri.
3.2.2 Construirea corpurilor nite
Fie p un numr prim. Clasele de resturi modulo p, notat Z
p
formeaz cu
adunarea i nmulirea natural (denite prin intermediul reprezentani arbi-
trar alei) un corp. Datorit faptului c p este numr prim, ecare element
nenul din Z
p
are un invers. Avem deci exemple de corpuri cu un numr nit
de elemente, mai exact pentru ecare numr prim p avem un corp nit cu p
elemente notat i F
p
sau GF(p) (Galois Field, n onoarea lui Everist Galois).
Pe de alt parte propoziia 1.1.32 de pe pagina 32 este o modalitate de
generare de corpuri: inelul factor al unui inel (comutativ, unitar, fr divizori
ai lui zero) cu un ideal maximal al su este corp.
S considerm deci un corp k. Inelul k[x] al polinoamelor de o nedetermi-
nat x, cu coecieni n k, este un inel potrivit pentru a construi un corp
trebuie s alegem doar un inel maximal n el. Pe de alt parte, inelul k[x] este
euclidian (funcioneaz teorema/algoritmul mpririi cu rest al polinoamelor,
cu restul de grad minim unic!), deci este i principal. Aadar orice ideal n k[x]
este ideal principal (vezi propoziia 1.1.19 de pe pagina 26), deci este generat
de un polinom.
S alegem un polinom ireductibil f (nenul). Fie idealul I = (f) format
din toate polinoamele divizibile cu f. Armm, c idealul I este maximal!
ntr-adevr, Fie J, un ideal mai mare, I J. El trebuie s e deasemenea
ideal principal, deci J = (g). Rezult c f J deci f = gh. Acum deoarece
f este ireductibil g nu poate un divizor propriu al lui f, deci ori g = 1 (sau
orice constant nenul) ori g = f (sau g = cf, unde c este o constant nenul
din k). Aadar, ori J = (1) = k[x] ori J = (f) = I, deci I = (f) este maximal.
Am demonstrat aadar c inelul factor K = k[x]/(f), unde f este un
polinom ireductibil, este un corp! Fie acum k unul din corpurile nite k = F
p
,
unde p este un numr prim, i e f un polinom ireductibil de grad n 2 cu
coecieni din k (presupunem c exist un asemenea polinom). Inelul factor
120 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
ind format de clasele de resturi, elementele acestuia sunt reprezentate de
resturile posibile ale mpririlor cu polinomul f, adic sunt toate polinoamele
de grad cel mult n 1. Numrul acestora este exact p
n
(un polinom de grad
cel mult n1 are exact n coecieni, alei independent unii de alii din cele p
elemente ale lui F
p
). n concluzie, corpul K = F
p
[x]/(f) are p
n
elemente, deci
este un corp nit! Dac notm clasa de echivalen a lui x cu a se vede c K
este un k spaiu vectorial n care {1, a, a
2
, . . . , a
n1
} este o baz.
Avem i f(a) = 0, deci polinomul f are o rdcin n K. Se vede c k este
un subcorp al lui K. Spunem c K este o extensie a lui k.
Fie b K arbitrar. Elementele 1, b, b
2
, . . . , b
n
nu pot liniar independente,
deci exist c
0
, c
1
, . . . , c
n
k nu toate nule astfel ca c
0
+c
1
b+c
2
b
2
+. . .+c
n
b
n
= 0,
altfel spus polinomul g = c
0
+c
1
x+c
2
x
2
+. . . +c
n
x
n
are n K rdcina b. Un
asemenea polinom se numete polinom anulator pentru b. Mulimea acestora
este un ideal n inelul k[x], care este inel Euclidian, deci principal, de unde
rezult c acest ideal este generat de un polinom g
b
.
Polinomul minimal al lui a n k[x] este chiar f! ntr-adevr, f este anulator
pentru a, deci divizibil cu f
a
k[x], dar f este ireductibil deci f
a
= f.
Consideraiile de mai sus constituie demonstraia urmtoarei propoziii.
Propoziia 3.2.7. Fie f un polinom ireductibil de grad n 2 n inelul Z
p
[x],
unde p este un numr prim. Atunci inelul factor Z
p
[x]/(f) este un corp nit,
cu p
n
elemente.
Se pune imediat urmtoarea ntrebare: ct de general este aceast con-
strucie? Rspunsul este fascinant. Toate corpurile nite se pot construi n
modul artat mai sus! Dicultatea aadar se mut la problema factorizrii i la
stabilirea "primalitii", polinoamelor cu coecieni n F
p
respectiv a generrii
de polinoame ireductibile de grad dat n!
Pentru ca raionamentul de mai sus s nu e gol de coninut n lipsa
polinoamelor ireductibile vom da cteva exemple concrete.
Corpul GF(2
2
)
Corpul coecienilor este F
2
. Avem nevoie de un polinom ireductibil de gradul
2. Polinoame de grad 2 sunt patru: x
2
= x x, x
2
+ 1 = (x + 1)
2
, x
2
+ x =
x (x + 1) i x
2
+ x + 1 = x (x + 1) + 1. Acesta din urm este ireductibil!
ntr-adevr, dac ar reductibil, ar avea doi factori de gradul unu, deci ar
avea dou rdcini n F
2
= {0, 1}. ns, nici 0, nici 1 nu este rdcin pentru
acest polinom (substituia acestora ne convinge imediat), aadar polinomul
este ireductibil.
S notm clasa de echivalen a lui x n inelul factor F
2
[x]/(x
2
+x+1) cu
. Aadar
2
+ + 1 = 0 sau
2
= + 1 sau ( + 1) = 1 etc.
3.2. CORPURI FINITE 121
Corpul de 2
2
= 4 elemente astfel generat se noteaz GF(2
2
) i el are
urmtoarele elemente: {0, 1, , + 1}, corespunztoare tuturor resturilor de
grad cel mult 1.
S mai consemnm, c
3
=
2
= ( + 1) =
2
+ = 1, ceea ce
era de ateptat, deoarece n grupul multiplicativ al unui corp nit conform
teoremei lui Lagrange ordinul oricrui element este un divizor al ordinului
grupului, n cazul nostru acesta ind 4 1 = 3. Avem tabela
1 = 1
a = a
a^2 = a+1
----------------
a^3 = 1
Aceast tabel ne poate servi la efectuarea operaiilor: prima coloan este
propice pentru a face nmulirile (adunarea modulo 3 a exponenilor), iar cea
de a doua pentru a face adunrile (adunarea modulo 2 a coecienilor poli-
noamelor n ).
Corpul GF(2
3
)
Corpul coecienilor este tot F
2
. Avem nevoie acum de un polinom ireductibil
de gradul 3. Polinoame de grad 3 sunt opt: x
3
+x
2
, x
3
+x
2
+ 1, x
3
+x
2
+x,
x
3
+x
2
+x + 1, x
3
+x, x
3
+x + 1, x
3
+ 1 i x
3
.
Dac un polinom de gradul 3 este reductibil, atunci are un factor de gradul
unu, deci are o rdcin. Prin testarea direct a celor opt polinoame existente
depistm dou dintre ele care nu au rdcini n F
2
: x
3
+ x + 1 respectiv
x
3
+x
2
+ 1.
Notm clasa de echivalen a lui x n inelul factor F
2
[x]/(x
3
+x+1) cu .
Aadar
3
+ + 1 = 0 sau
3
= + 1 sau (
2
+ 1) = 1 etc.
Corpul de 2
3
= 8 elemente astfel generat se noteaz GF(2
3
). El are urm-
toarele elemente: {0, 1, , +1,
2
,
2
+1,
2
+,
2
+ +1}, corespunztor
tuturor resturilor de grad cel mult 2 posibili.
S mai consemnm, c ar de ateptat
7
= 1, deoarece n grupul mul-
tiplicativ al corpului nit conform teoremei lui Lagrange ordinul oricrui
element este un divizor al ordinului grupului, n cazul nostru 81 = 7. Putem
efectua calculul lui
7
manual, dar mai elegant este s apelm la un mediu de
programare adecvat GAP.
122 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
1 = 1
a = a
a^2 = a^2
a^3 = a+1
a^4 = a^2+a
a^5 = a^2+a+1
a^6 = a^2+1
--------------------
a^7 = 1
Am substituit elementul unitate "Z(2)^0" cu mai laconicul 1. Tabela este
de fapt tabela condensat a operaiilor: prima coloan ne servete pentru
nmuliri (adunarea modulo 7 a exponenilor), iar cea de a doua pentru adunri
(adunarea modulo 2 a coecienilor polinoamelor n ).
Ce s-ar ntmplat dac am ales cellalt polinom ireductibil, x
3
+x
2
+1?
S observm c cele dou polinoame sunt reciproce inversele rdcinilor
unuia sunt rdcini ale celuilalt. Aadar = 1/ = 1 +
2
=
6
este o
rdcin a acestui polinom.
S notm f = x
3
+x + 1 Z
2
[x] i g = x
3
+x
2
+ 1 Z
2
[x]. Fie o rdcin
a polinomului f, deci
3
+ + 1 = 0 respectiv e o rdcin a polinomului
g, deci
3
+
2
+ 1 = 0. Fie F = Z
2
[x]/(f) = Z
2
[] i G = Z
2
[x]/(g) = Z
2
[].
S construim un izomorsm explicit ntre F i G.
tim deja c F = {0, 1, ,
2
, . . . ,
6
} i s observm mai nti c avem
i G = {0, 1, ,
2
, . . . ,
6
}, respectiv la fel ca pentru avem i
7
= 1. O
vericare simpl arat c polinomale f i g se descompun n F astfel:
f = (x ) (x
2
) (x
4
)
g = (x
3
) (x
6
) (x
5
).
Sursa de inspiraie pentru aceste descompuneri rmne pentru moment
nedezvluit, va divulgat mai trziu (n subseciunea 3.2.6, de pe pagina
131). n corpul G avem descompunerea:
g = (x ) (x
2
) (x
4
)
f = (x
3
) (x
6
) (x
5
).
Un izomorsm de corpuri las polinoamele cu coecienii n Z
2
invariante,
deci duce o rdcin a unui polinom tot ntr-o rdcin a aceluiai polinom. Pe
de alt parte rdcinile unui polinom ireductibil "nu se disting" ntre ele, deci o
rdcin a lui f (ca polinom cu rdcini din F) poate pus n coresponden
cu oricare dintre rdcinile lui f (ca polinom cu rdcini din G). Aadar
corespondena
3.2. CORPURI FINITE 123

3
(ca i celelalte dou posibiliti cu
5
i
6
) are ansa de a genereaz un
izomorsm : F G, prin relaia
(
k
) =
3kmod 7
, k = 1 . . . 6,
relaie obligatorie pentru a transforma corect nmulirea din F. Evident
(0) = 0, prin deniie. S menionm aici c toate rdcinile lui f din
F sunt generatoarele grupului multiplicativ al acestuia, precum i rdcinile
acestuia din G sunt generatoare pentru grupul multiplicativ al acestuia din
urm. Interesant este ns c se comport corect i fa de adunare, adic
(
k
+
l
) = (
k
) +(
l
), pentru orice k, l! Lsm pentru moment demon-
straia general a acestui fapt, n acest caz particular cititorul poate face
vericarea manual sau asistat de calculator. Reproducem aici numai tabele
cu ajutorul crora aceste vericri sunt uoare.
a^0 = 1
a^1 = a
a^2 = a^2
a^3 = a+1
a^4 = a^2+a
a^5 = a^2+a+1
a^6 = a^2+1
----------------
a^7 = 1
b^0 = 1
b^1 = b
b^2 = b^2
b^3 = b^2+1
b^4 = b^2+b+1
b^5 = b+1
b^6 = b^2+b
----------------
b^7 = 1
Corpul GF(2
4
)
Considerm polinoamele cu coecieni din F
2
. Ne trebuie un polinom ire-
ductibil de gradul 4. Polinoame de grad 4 sunt 16, invitm cititorul s le
enumere.
Dac un polinom de gradul 4 este reductibil, atunci are un factor de gradul
unu (deci are o rdcin n F
2
), sau un factor de gradul doi. Prin testarea
direct a divizibilitii celor 16 polinoame cu polinoamele de grad unu i doi,
descoperim polinoamele ireductibile de grad patru: x
4
+ x + 1, x
4
+ x
3
+ 1
respectiv x
4
+x
3
+x
2
+x + 1.
S notm clasa de echivalen a lui x n inelul factor F
2
[x]/(x
4
+x+1) cu
. Aadar
4
+ + 1 = 0 sau
4
= + 1 sau (
3
+ 1) = 1 etc.
Inelul factor Z
2
[] este un corp de 2
4
= 16 elemente, se noteaz GF(2
4
) i
are urmtoarele elemente: GF(2
4
) = {c
0
+c
1
+c
2

2
+c
3

3
| c
0
, . . . , c
3
Z
2
},
adic toate resturilor de grad cel mult 3 posibili.
124 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
1 = 1
a = a
a^2 = a^2
a^3 = a^3
a^4 = a+1
a^5 = a^2+a
a^6 = a^3+a^2
a^7 = a^3+a+1
a^8 = a^2+1
a^9 = a^3+a
a^10 = a^2+a+1
a^11 = a^3+a^2+a
a^12 = a^3+a^2+a+1
a^13 = a^3+a^2+1
a^14 = a^3+1
--------------------
a^15 = 1
Tabelul de mai sus conine lista puterilor lui . Am substituit elementul
unitate "Z(2)^0" i aici cu 1. Lista arat c ordinul elementului n grupul
multiplicativ al elementelor nenule, (grup ciclic de ordin 2
4
1 = 15) este 15,
deci este un generator al grupului.
Dac am ales polinomul x
4
+ x
3
+ 1 pentru generarea corpului de 16
elemente, situaia era similar. Dac ns alegem polinomul ireductibil x
4
+
x
3
+x
2
+x+1, clasa de echivalen a lui x notat nu va mai un generator
al grupului multiplicativ!
1 = 1
a = a
a^2 = a^2
a^3 = a^3
a^4 = a^3+a^2+a+1
--------------------
a^5 = 1
n schimb tabelul de mai jos arat c + 1 este un generator al grupului
multiplicativ al corpului. Acest element este o rdcin a polinomului x
4
+
x
3
+ 1, ceea ce se veric simplu prin calcul direct.
3.2. CORPURI FINITE 125
(a+1)^0 = 1
(a+1)^1 = a+1
(a+1)^2 = a^2+1
(a+1)^3 = a^3+a^2+a+1
(a+1)^4 = a^3+a^2+a
(a+1)^5 = a^3+a^2+1
(a+1)^6 = a^3
(a+1)^7 = a^2+a+1
(a+1)^8 = a^3+1
(a+1)^9 = a^2
(a+1)^10 = a^3+a^2
(a+1)^11 = a^3+a+1
(a+1)^12 = a
(a+1)^13 = a^2+a
(a+1)^14 = a^3+a
-----------------------
(a+1)^15 = 1
Corpul GF(2
6
)
Acest corp este chiar corpul prezentat n seciunea 3.2.1 de pe pagina 112! Tot
ce avem de fcut este s vericm faptul c polinomul x
6
+x +1 Z
2
[x] este
ireductibil. Gradul polinomului ind mic, testarea tuturor polinoamelor de
grad cel mult trei ne convinge de ireductibilitate. n plus, clase de echivalen
a necunoscutei este un generator al grupului multiplicativ al corpului.
Corpul GF(3
2
)
Corpul de coecieni este F
3
= {1, 0, 1} (1 + 1 = 1). Avem nevoie de un
polinom ireductibil de gradul 2. Polinoame de grad 2 sunt 18 = (3 + 3 2) 2.
Polinoamele reductibile sunt: x
2
= (x) (x), x (x 1) = x
2
x,
(x1) (x1) = (x
2
x+1), (x
2
1). Aadar polinoamele x
2
+x1 i
x
2
+ 1 sunt ireductibile (Ele nu se anuleaz pentru nici unul dintre numerele
1, 0, 1).
Alegem unul dintre aceste polinoame, spre exemplu x
2
+1. S notm clasa
de echivalen a lui x n inelul factor F
3
[x]/(x
2
+ 1) cu i. Aadar i
2
+ 1 = 0
sau i
2
= 1.
Corpul de 3
2
= 9 elemente generat se noteaz GF(3
2
) i are urmtoarele
elemente: {1, 0, 1, i, i 1, i, i 1}, corespunztoare tuturor resturilor de
grad cel mult 1.
S calculm ordinul elementului i n grupul multiplicativ al corpului. El
este doar 4, oarecum conform ateptrilor. S calculm i ordinul lui 1 +i. El
126 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
este maximal, adic 8.
i^0 = 1
i^1 = i
i^2 = -1
i^3 = -i
----------
i^4 = 1
(1+i)^0 = 1
(1+i)^1 = i+1
(1+i)^2 = -i
(1+i)^3 = -i+1
(1+i)^4 = -1
(1+i)^5 = -i-1
(1+i)^6 = i
(1+i)^7 = i-1
----------------
(1+i)^8 = 1
3.2.3 Caracteristica unui corp nit
n seciunea precedent am dat o modalitate general de construcie a cor-
purilor nite.
S observm c pasul de construcie se poate aplica n lan: odat construit
un corp, putem considera polinoame cu coecieni n acest corp, apoi putem
cuta polinoame ireductibile peste acest corp, i construcia se repet.
Se pune ntrebarea natural, ct de general este aceast construcie, dintre
toate corpurile nite cte se pot construi n acest mod?
Rspunsul la aceast ntrebare este simplu, dar argumentaia puin mai lung.
Pentru ecare numr prim p i numr natural n 2 exist un singur corp cu
p
n
elemente!
ncepnd cu aceast seciune vom ncepe s parcurgem deci drumul oare-
cum invers celui parcurs pentru construirea corpurilor nite: din proprietile
structurale ale corpurilor nite vom deduce existena i unicitatea (pna la
izomorsm) a corpurilor cu p
n
elemente.
Fie deci F un corp nit. Cum orice corp conine 0 (elementul neutru la
adunare) i 1 (elementul neutru la nmulire) care difer ntre ele (altfel corpul
ar avea un singur element, i deci numai o singur operaie, caz exclus ca ind
neinteresant), putem s cutm cel mai mic subcorp, care conine aceste dou
elemente.
3.2. CORPURI FINITE 127
S ncepem cu adunarea. Avem
1 = 1 1,
1 + 1 = 2 1,
1 + 1 + 1 = 3 1,
...
1 + 1 +. . . + 1
. .
n termeni
= n 1.
Acest ir de elemente trebuie s e nit, deci la un moment dat apar
repetiii de valori. Dac r 1 = s 1, r < s, atunci avem 0 = (s r) 1.
Este uor de vzut de aici c mulimea I = {n Z| n 1 = 0 este un ideal
(nenul!) n Z ((n) 1 = (n 1)). Inelul ntregilor este inel principal, deci
acest ideal este format din multiplii unui numr p. Dac p = r s, unde r
i s sunt divizori proprii, atunci 0 = p 1 = (rs) 1 = (r 1) (s 1) i cum
corpul nu are divizori ai lui zero avem r 1 = 0 sau s 1 = 0, adic r sau s
este multiplu al lui p, ceea ce este contradicie. Rezult deci c p este numr
prim. Din (nm) 1 = (n 1) (m 1) rezult c : Z
p
F, (n) = n 1
este un homomorsm de corpuri. Acest homomorsm este injectiv, aa cum
rezult din chiar raionamentul de mai sus. De altfel orice homomorsm de
corpuri este injectiv. ntr-adevr, dac (a) = (b), rezult c (a b) = 0.
Dac c = a b = 0 atunci 1 = (1) = (c c
1
= (c) (c
1
= 0, ceea ce
este o contradicie.
Aadar Z
p
poate privit ca un subcorp al corpului F. Din toate acestea
se desprinde urmtoarea deniie.
Deniia 3.2.8. Fie F un corp nit. Subcorpul generat de 1, izomorf cu Z
p
,
unde p este numr prim, se numete subcorpul prim al lui F. Numrul prim
p se numete caracteristica corpului F.
3.2.4 Grupul multiplicativ al unui corp nit
Mai nti s facem o observaie important.
Observaia 3.2.9. Orice corp nit este spaiu vectorial peste corpul su prim.
Mai general, orice corp este spaiu vectorial peste orice subcorp al su.
Demonstraia acestor fapte este imediat. Aceast simpl observaie ns
are o consecin important.
Consecina 3.2.10. Numrul elementelor unui corp nit este o putere a unui
numr prim, p
n
. Ordinul grupului multiplicativ al unui corp nit este p
n
1.
128 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
ntr-adevr, Fie F
p
corpul prim al corpului F, unde p este numr prim.
Alegem o baz a lui F, {a
1
, a
2
, . . . , a
n
}. Numrul elementelor spaiului vecto-
rial F peste F
p
este evident p
n
. Grup multiplicativ al lui F este F

= F \{0},
deci are ordinul p
n
1.
Conform teoremei lui Lagrange, ordinul ecrui element al grupului multi-
plicativ al lui F este un divizor al ordinului grupului, deci dac notm q = p
n
,
atunci pentru orice element a al lui F

avem
a
q1
= 1.
Aadar orice element nenul al corpului F este rdcin a polinomului
x
q1
1, cu coecieni n F
p
. Situaia specic aici este faptul c o ecuaie
polinomial cu coecieni ntr-un corp nu poate avea mai multe rdcini dect
gradul polinomului. ntr-adevr, conform teoremei lui Bezout, dac un poli-
nom de grad n are o rdcin a, atunci ele este divizibil cu x a, i celelalte
rdcini ale sale sunt rdcini ale ctului mpririi cu x a, deci rdcini ale
unui polinom de grad n 1.
Consecina acestei situaii specice este faptul c grupul multiplicativ al
unui corp are o structur mai simpl, i anume este un grup ciclic. S artm
acest fapt.
Lema 3.2.11. Dac un grup nit comutativ G are n elemente, i pentru ecare
divizor al acestuia, m|n, ecuaia x
m
1 = 0 are exact m soluii n G, atunci
grupul G este ciclic.
Demonstraie. Mai nti e n = p
k
. Atunci este clar c trebuie s avem un
element de ordin p
k
n grup, n caz contrar toate cele n = p
k
> p
k1
elementele
ale grupului ar rdcini ale ecuaiei x
p
k1
1 = 0, ceea ce contrazice ipoteza.
Fie acum p
k
|n. Soluiile ecuaiei x
p
k
= 1 n G formeaz un subgrup, deci
avem un grup cu un numr de elemente putere a unui numr prim i care
evident veric ipoteza. Conform celor de mai sus acest subgrup este ciclic.
Fie acum n = p
k
1
1
p
k
2
2
. . . p
k
m
m
descompunerea lui n n factori primi dis-
tinci. Conform celor de mai sus exist n G elementele a
1
, a
2
, . . . a
m
de ordin
k
1
, k
2
, . . . , k
m
respectiv. Elementul a
1
a
2
. . . a
m
are ordinul n. ntr-adevr,
s observm dac a, b G sunt dou elemente de ordin p, q respectiv din
grupul comutativ G, astfel ca (p, q) = 1, atunci elementul ab are ordinul pq.
Acest lucru se vede astfel. Fie d ordinul elementului ab, deci (ab)
d
= 1. Dar
(ab)
p
q = (a
p
)
q
(b
q
)
p
= 1 1 = 1, deci d|pq.
Pe de alt parte putem scrie i 1 = (ab)
d
= ((ab)
d
)
p
= (a
p
)
d
b
pd
= b
pd
de
unde q|pd. Dar (p, q) = 1 deci q|d. Similar p|d, i din nou datorit faptului
c (p, q) = 1 rezult c pq|d. Avem deci d = pq. Aplicnd acest fapt n lan
rezult n nal c grupul G are un generator, deci este ciclic.
3.2. CORPURI FINITE 129
Putem enuna deci propoziia urmtoare.
Propoziia 3.2.12. Grupul multiplicativ al unui corp nit cu q = p
n
elemente
este ciclic i are q 1 elemente.
Deniia 3.2.13. Un generator al grupului multiplicativ ciclic al unui corp
nit F se numete element primitiv n corpul F.
Toate tabelele de operaii calculate n seciunea precedent furnizeaz ex-
emple de elemente primitive n corpurile date. Spre exemplu 1 + i GF(3
2
)
este un element primitiv n acest corp.
Din teorema lui Lagrange rezult c ordinul oricrui element nenul a al
corpului F de q = p
n
elemente este un divizor al lui q 1, deci a
q1
= 1.
Rezult deci urmtoarea observaie:
Observaia 3.2.14. Fie F un corp nit cu q = p
n
elemente. Atunci ele-
mentele corpului F sunt rdcini ale ecuaiei
x
q
x = 0.
De asemenea n corpul F avem urmtoarea descompunere:
x
q
x =

aF
(x a).
Spre exemplu avem n corpul GF(2
2
):
x
4
x = x(x 1)(x )(x
2
),
unde "regula de calcul" este
2
= +1. Dac efectum nmulirile parantezelor
folosind aceast regul de calcul obinem ntr-adevr polinomul x
4
x.
3.2.5 Unicitatea corpurilor nite
Suntem deja n msur s demonstrm unicitatea corpurilor nite. Avem
propoziia:
Propoziia 3.2.15. Pentru ecare numr prim p i numr natural n 1
exist cel mult un singur corp nit cu p
n
elemente.
Demonstraie. Cu alte cuvinte, avem de artat cu dou corpuri nite cu ace-
lai numr de elemente sunt izomorfe. Fie F i G dou corpuri cu q = p
n
elemente. Alegem un element primitiv n F. Fie f polinomul minimal al lui
. Reamintim, c acesta este un polinom ireductibil n F
p
[x], unde F
p
= Z
p
este corpul prim al ambelor corpuri F i G. Deoarece
x
q
x =

aF
(x a) =

bG
(x b),
130 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
polinomul x
q
x este anulator (i.e.
q
= 0) pentru , deci este divizibil
cu polinomul minimal al lui , adic f|(x
q
x). Aceasta deoarece mulimea
polinoamelor anulatoare pentru este un ideal n F
p
[x], unde orice ideal ind
ideal principal, este generat de un polinom, polinomul minimal al lui , adic
chiar polinomul f.
Rezult aadar c, avem o descompunere n factori liniari al lui f n F, i
una n G. Alegem o rdcin a lui f n G. S observm c, trebuie s e
element primitiv n G. ntr-adevr, dac ordinul lui ar d mai mic strict
dect q 1, atunci am avea
d
1 = 0, deci ar rdcin pentru polinomul
x
d
1, altfel spus polinomul x
d
1 ar un polinom anulator pentru , deci
ar divizibil cu f. Cum f() = 0, am avea i
d
1 = 0, n contradicie cu
alegerea lui .
n concluzie, corespondena ntre F i G, genereaz un izomorsm
ntre grupurile ciclice F \ {0} i G\ {0}. Avem
: F G, (
k
) = (())
k
=
k
, (0) = 0,
i evident avem
(
i

j
) = (
i
) (
j
),
pentru orice i i j. Armm c aceast coresponden pstreaz i adunarea,
adic
(
i
+
j
) = (
i
) +(
j
).
Avem de analizat dou cazuri, i anume:
i
+
j
= 0 sau
i
+
j
= 0.
Fie mai nti
i
+
j
= 0, adic
i
+
j
=
k
sau

i
+
j

k
= 0.
Rezult c
f|(x
i
+x
j
x
k
),
deci avem i

i
+
j

k
= 0.
Aceasta nseamn c n acest caz avem (
i
+
j
) = (
i
) +(
j
).
Fie acum
i
+
j
= 0. Dac caracteristica p a corpurilor este 2, atunci
aceasta nseamn simplu
i
=
j
, deci nu avem ce demonstra. Dac ns
caracteristica este impar, atunci mai nti s observm c singurul element
de ordinul doi al corpurilor nite este 1, deoarece (1)
2
= 1 i cealalt
rdcin a polinomului x
2
1 = (x 1) (x + 1) este 1, al crui ordin este
1. Pe de alt parte n acest caz ambele elemente 1,
q1
2
ind de ordin 2,
trebuie s avem

q1
2
= 1.
3.2. CORPURI FINITE 131
Acum dac presupunem i > j, (fr a restrnge genaralitatea), putem scrie

i
+
j
= 0
ij
= 1
i j =
q 1
2

ij
= 1

i
+
j
= 0.
Aceasta demonstreaz c comut i cu operaia de adunare, deci este un
izomorsm de corpuri.
3.2.6 Automorsmele unui corp nit
Fie F un corp nit cu p
n
elemente, unde p este un numr prim. ntre el-
ementele corpului putem efectua operaiile de adunare i nmulire cu pro-
prietile obinuite ale acestora, deci avem dispunem i de toate formulele
obinuite care rezult din aceste reguli, printre ele i formula binomului lui
Newton. Avem n F
p
= Z
p
coecientul binomial pentru 1 i p 1
C
i
p
=
p(p 1) . . . (p i + 1)
1 2 . . . i
= 0, (3.2)
deoarece toi aceti coecieni sunt divizibili cu p. Avem aadar pentru
orice a, b GF(p
n
)
(a +b)
p
= a
p
+b
p
.
Deoarece avem i (a b)
p
= a
p
b
p
, rezult c aplicaia a a
p
este un
endomorsm de corpuri.
Am vzut mai sus c a
p
n
= a pentru orice element a al corpului nit cu
p
n
elemente. Dac a
p
= b
p
prin ridicare la puterea p de n 1 ori, obinem
a = b. Aadar endomorsmul de mai sus este injectiv. O aplicaie injectiv pe
o mulime nit n ea nsi este i surjectiv, deci endomorsmul nostru este
automorsm.
Deniia 3.2.16. Fie F un corp nit cu p
n
elemente, unde p este un numr
prim. Automorsmul : F F, denit prin (x) = x
p
se numete auto-
morsmul Frobenius al corpului.
Importana automorsmului Frobenius este dat de propoziia urmtoare.
Propoziia 3.2.17. Fie F un corp nit cu p
n
elemente, unde p este un numr
prim. Automorsmele lui F formeaz un grup ciclic de ordin n, al crui
generator este automorsmul Frobenius.
132 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Demonstraie. Automorsmele unui corp formeaz evident un grup, cu ele-
mentul neutru aplicaia identic I.
De asemenea, deoarece pentru orice element a al corpului F avem a
p
n
= a
avem i
n
= I. Dac am avea
m
= I pentru 0 < m < n, atunci am
avea a
p
m
= a pentru orice a F, deci ecuaia x
p
m
x = 0 ar avea mai multe
rdcini dect este gradul su, ceea ce este imposibil ntr-un corp. Deci ordinul
automorsmului este chiar n.
S artm c F nu mai are i alte automorsme. Vom face cteva obser-
vaii.
Observaiile 3.2.18.
1. O prim observaie imediat este faptul c orice automorsm al lui F
las invariante elementele corpului prim al lui F,
(k 1) = (1 +. . . + 1) = (1) +. . . (1) = 1 +. . . + 1 = k 1.
2. Mai interesant este c automorsmul Frobenius las invariant numai
aceste elemente. ntr-adevr, elementele lsate invariante de acest au-
tomorsm sunt cele care au proprietatea a
p
= a, deci sunt soluii ale
ecuaiei x
p
x = 0. Conform teoremei lui Fermat orice element al lui
Z
p
veric aceast ecuaie, i ecuaia nu mai poate avea i alte rdcini
datorit limitrii dat de gradul ei.
3. S mai observm c un automorsm al lui F este determinat de aciunea
lui asupra unui element primitiv al lui F. ntr-adevr, acesta genereaz
grupul multiplicativ al corpului, iar imaginea lui 0 este 0.
4. O ultim observaie este faptul c polinomul minimal al unui element
primitiv al lui F are o descompunere special exprimat cu ajutorul
automorsmului Frobenius.
S considerm un element primitiv a, i s considerm polinomul
f = (x a)(x (a))(x
2
(a)) . . . (x
n1
(a)). (3.3)
Dac extindem automorsmele Psi ale lui F asupra polinoamelor F[x],
prin (suma este nit)
(a
0
+a
1
x +a
2
x
2
+. . .) = (a
0
) + (a
1
)x + (a
2
)x
2
+. . .
atunci avem
(f) = (x (a))(x
2
(a))(x
3
(a)) . . . (x a) = f.
3.2. CORPURI FINITE 133
Aadar coecienii lui f sunt n corpul prim, i f(a) = 0 deci f este un
polinom anulator pentru a, deci divizibil cu polinomul minimal al lui a.
Acesta din urm are ns gradul n, de unde rezult el este chiar f.
Aadar polinomul minimal al unui element primitiv a are descompunerea
dat de (3.3).
Putem trece acum la demonstraia propriu-zis a propoziiei. Fie un
automorsm al lui F. Fie a un element primitiv, i f polinomul lui minimal,
cu coecieni n F
p
. Conform 1 (f) = f, pe de alt parte conform 2 i 4
(f) = (x (a))(x (a))(x
2
(a)) . . . (x
n1
(a)),
dnd o alt descompunere a lui f. Cele dou descompuneri trebuie s coincid
ns, deci
(a) =
k
(a),
pentru o anumit valoare a exponentului k, i se aplic 3.
Consecina 3.2.19. Fie p un polinom ireductibil n F
p
[x] de grad m. Dac
polinomul p are o rdcin ntr-o extensie F a corpului F
p
,atunci toate
rdcinile lui p se a n aceast extensie i ele sunt imaginile succesive ale lui
prin automorsmul Frobenius , deci p are n F urmtoarea descompunere:
p = (x )(x ())(x
2
()) . . . (x
m1
()).
Demonstraie. Mai nti s observm c,
p() = 0 p(()) = 0,
deci elementele , (),
2
(), . . . sunt rdcini ale lui p. Pe de alt parte, am
vzut mai sus c, pentru un anumit n (p
n
este numrul elementelor corpului
F), polinomul f denit
f = (x )(x ())(x
2
()) . . . (x
n1
()),
este invariant la automorsmul Frobenius, deci are coecienii n F
p
. Avem de
asemenea f() = 0, deci f este polinom anulator pentru , deci este divizibil
cu p. n consecin rdcinile lui p se a n mulimea
{, ()), . . . ,
n1
())}.
Pentru a identica rdcinile lui p n aceast mulime, s notm
e = min{k > 0 |
k
() = }.
134 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Atunci evident elementele mulimii
{, ()), . . . ,
e1
())}.
sunt distincte ntre ele, i sunt rdcinile polinomului p. S observm c, de
fapt acestea sunt toate rdcinile lui p. ntr-adevr, orice rdcin a lui p este
rdcin i a lui f, deci este de forma
i
(). Dar exponentul i poate redus
sub valoarea lui e, prin mprire la e. Mai precis, avem mprirea ntreag
i = e q +r, de unde

i
() =
r
(),
de unde rezult m = e.
S analizm puin urmtoarea construcie. Fie p un numr prim, i n i m
dou numere naturale mai mari dect 1. Dac avem un polinom ireductibil f
de grad n n F
p
[x], putem construi o extensie a lui F
p
, corpul K
1
= GF(p
n
).
Acesta este un spaiu vectorial de dimensiune n peste F
p
.
Fie acum g K
1
[x] un polinom ireductibil, de grad m. Putem construi
deci extensia K
2
= K
1
[x]/(g), un spaiu vectorial de dimensiune m peste K
1
.
Evident corpul prim al lui K
2
este tot F
p
, deci K
2
este spaiu vectorial i peste
F
p
. Ce dimensiune are acest spaiu vectorial?
Este destul de simplu de artat c dac
{a
1
, a
2
, . . . , a
n
}
este o baz a lui K
1
peste F
p
, i
{b
1
, b
2
, . . . , b
n
}
este o baz a lui K
2
peste K
1
, atunci
{a
i
b
j
| 1 i n, 1 j m}
este o baz a lui K
2
peste F
p
. Deci dimensiunea spaiului vectorial K
2
peste
F
p
este mn.
Fie acum F o extindere a corpului F
p
realizat cu ajutorul unui polinom
ireductibil de grad n. Fie G un subcorp al corpului F. Atunci G este spaiu
vectorial peste F
p
de dimensiune m, F este spaiu vectorial peste F
p
de di-
mensiune n, deci pe baza celor de mai sus este clar c m este un divizor al
lui n, deci trebuie s avem m|n. Acest fapt limiteaz existena subcorpurilor:
ntr-un corp nit cu p
n
elemente pot exista numai subcorpuri cu p
m
elemente,
unde m|n.
Se pune ntrebarea natural, dac pentru orice divizor m al lui n exist un
subcorp n GF(p
n
) avnd p
m
elemente?
3.2. CORPURI FINITE 135
Rspunsul la aceast ntrebare este dat de propoziia care va urma. nainte
de a o enuna intercalm aici o proprietate interesant a polinoamelor speciale
ale cror rdcini sunt elementele corpurile nite cu p
n
elemente.
Lema 3.2.20. Fie u
n
F
p
[x] polinomul dat de formula u
n
(x) = x
p
n
x.
Atunci avem
(u
n
, u
m
) = u
(n,m)
, unde notaia (f, g) sau (n, m) nseamn ca de obicei
cel mai mare divizor comun al celor dou polinoame respectiv numere
naturale, i
u
m
|u
n
dac i numai dac m|n.
Demonstraie. Presupunem, fr a restrnge generalitatea, c n > m. Fie
n m = d. Pe baza formulei 3.2 de la pagina 131 avem
u
p
m
(x) = (x
p
m
x)
p
= x
p
m+1
x
p
.
Repetnd ridicarea la puterea p de d ori, obinem
u
p
d
m
(x) = (x
p
m
x)
p
d
= x
p
m+d
x
p
d
= u
n
(x) u
d
(x).
Aadar dac facem mprirea ntreag n = q m + r, 0 r < m, putem
calcula cel mai mare divizor comun al polinoamelor u
n
i u
m
n felul urmtor
(u
n
, u
m
) = (u
p
nm
m
+u
nm
, u
m
) =
= (u
nm
, u
m
) =
= (u
n2m
, u
m
) = . . .
= (u
nqm
, u
m
) =
= (u
m
, u
r
) = . . .
= (u
(n,m)
, u
0
) =
= (u
(n,m)
, 0) =
= u
(n,m)
Aceasta demonstreaz prima armaie a lemei. Pentru partea a doua, e m|n.
Atunci (n, m) = m, i prima parte ne d
(u
n
, u
m
) = u
m
,
adic u
m
|u
n
. Invers, dac u
m
|u
n
atunci u
(n,m)
= (u
n
, u
m
) = u
m
, deci avem
dou polinoame egale de grade strict mai mici dect p
n
, numrul elementelor
corpului GF(p
n
). Rezult deci ca i coecienii sunt identici, adic (n, m) =
m, deci m|n.
136 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Acum vom putea demonstra propoziia:
Propoziia 3.2.21. n corpul GF(p
n
) exist pentru ecare divizor m al lui
n, (m|n) exact un subcorp de p
m
elemente.
Demonstraie. Fie F un subcorp al corpului GF(p
n
). Am vzut mai sus c,
numrul elementelor lui F este p
m
, unde m|n. Elementele acestui corp veric
ecuaia
u
m
(x) = x
p
m
x = 0.
Deci F = Inv
m
= {a GF(p
n
) |
m
(a) = a}, deci subcorpul F este unic
(elementele invariante la un automorsm ntr-un corp formeaz un subcorp).
Invers, e m|n. S dovedim existena unui subcorp al lui GF(p
n
) care are
p
m
elemente. Candidatul natural este evident F = Inv
m
. Trebuie s dovedim
doar c acest subcorp are exact p
m
elemente. Acum trebuie s folosim lema
anterioar:
u
m
|u
n
,
i u
n
se descompune n GF(p
n
) n factori liniari, deci la fel se ntmpl i cu
u
m
. Aadar u
m
are p
m
rdcini distincte n GF(p
n
), deci subcorpul F are p
m
elemente.
3.2.7 Existena unui corp cu p
n
elemente
Suntem n msur s demonstrm c pentru orice numr prim p i orice numr
natural n 2 exist un corp nit cu p
n
elemente. Se cuvine s repetm enunul
n cadrul unei propoziii.
Propoziia 3.2.22. Fie p un numr prim i n un numr natural mai mare
dect 2. Atunci exist un corp nit F, cu p
n
elemente.
Demonstraie. S considerm polinomul u
n
(x) = x
p
n
x, u
n
F
p
[x]. El se
descompune n factori ireductibili (deci primi) astfel
u
n
(x) = x
p
n
x = x (x 1) f
1
(x) f
2
(x) . . . f
k
(x).
Observaia crucial dup toate discuiile teoretice anterioare destul de nat-
ural este c, unul dintre factorii acestei descompuneri trebuie s nu e
divizibil cu nici unul din polinoamele u
m
(x) unde m|n este un divizor propriu
al lui n. ntr-adevr, nu este greu de artat, c suma gradelor tuturor divi-
zorilor ireductibili ai polinoamelor u
m
(x), unde m|n este divizor propriu, este
mai mic dect gradul lui u
n
(x).
Pentru aceasta s constatm c, pentru un m dat

f|u
m
, f ireductibil, monic
deg f = p
m
. (3.4)
3.2. CORPURI FINITE 137
ntr-adevr, F
p
[x] este inel factorial, deci orice polinom se descompune n
mod unic n factori ireductibili. n cazul nostru ns factorii nu se pot repeta!
Aceasta deoarece dac am avea un factor care se repet de cel puin dou ori,
atunci derivata formal a lui u
m
(x) ar i ea divizibil cu acest factor. ns
u

m
(x) = (x
p
m
x)

= p
m
x
p
m
1
1 = 1, ceea ce face imposibil acest fapt.
Prin nsumarea acestor egaliti pentru toi divizorii proprii ai lui n
obinem

f|u
m
, f ireductibil, monic, m|n,m<n
deg f =

m|n, m<n
p
m

m<n
p
m
=
p
n
1
p 1
< p
n
.
Din 3.4 scris pentru m = n deducem c trebuie s existe un factor ireductibil
f al lui u
n
care nu divide nici unul din polinoamele u
m
, unde m|n, i m este
divizor propriu.
Tot ce mai avem de artat este c gradul acestui polinom este chiar n i
deci construcia standard al inelului factor este corpul cutat cu p
n
elemente.
Fie deci F = F
p
[x]/(f) = GF(p
m
), unde m = deg f i s notm clasa de
resturi al lui x cu . Aadar f() = 0, dar ntru-ct f|u
n
avem i
u
n
() = 0.
Dar GF(p
m
), deci avem i
u
m
() = 0.
Rezult c, este o rdcin a polinomului
(u
n
, u
m
) = u
(n,m)
.
S lum acum n considerare faptul c f este polinom minimal al lui , deci
f|u
(n,m)
.
Dac (n, m) < n ((n, m)|n) atunci f ar divide un divizor propriu al lui u
n
,
ceea ce nu se poate, deci (n, m) = n, adic n|m.
Acum aplicm propoziia 3.2.21 de la pagina 136 pentru a avea concluzia
propoziiei.
138 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
3.2.8 Polinoame ireductibile
Am vzut n seciunile precedente, c un polinom ireductibil cu coecieni
ntr-un corp poate juca rolul unui numr indecompozabil (prim) n construcia
unei noi mulimi de numere, n care mprirea s e posibil necondiionat.
n termeni puini mai tehnici avem o analogie perfect ntre
Z, +, k[x], +,

inelul ntregilor inelul polinoamelor cu coef. ntr-un corp
numerele prime polinoame ireductibile (prime)
teorema mpririi ntregi teorema mpririi ntregi
inel Euclidian inel Euclidian
exist cel mai mare div. comun exist cel mai mare div. comun
algoritmul lui Euclid algoritmul lui Euclid
valoarea absolut a numrului gradul polinomului
descomp. unic n factori primi descomp. unic n factori ireductibili
inel principal inel principal
inelul factor mod prim -> corp inelul factor mod ireductibil -> corp
num. prim p -> corp Z
p
, p elem pol. ired. Z
p
[x] gard n -> corp p
n
elem.
Construcia corpurilor nite cu p elemente cu un numr prim p mare nece-
sit algoritmi de testare a primalitii, de generare a numerelor prime, i
pune problema factorizrii numerelor ntregi. Analog, construcia corpurilor
nite cu n mare necesit algoritmi de testare a ireductibilitii polinoamelor,
de generare a polinoamelor ireductibile, i pune problema factorizrii poli-
noamelor.
Nu ne vom aventura n tratarea sistematic a acestor problematici, ns
pentru a asigura un sentiment de confort dat de certitudinea c obiectele
matematice descrise exist cu adevrat, completm analiza noastr cu rspun-
sul la o singur ntrebare: ct de multe numere prime, respectiv ct de multe
polinoame ireductibile exist?
n ceea ce privete numerele prime s reamintim faptele clasice binecunos-
cute.
3.2. CORPURI FINITE 139
Faptele 3.2.23.
Exist o innitate de numere prime (Euclid).
Numrul numerelor prime mai mici dect n (notat (n)) este asimptotic
(n)
n
ln n
.
(Logaritmul este natural.)
Nu vom da demonstraiile acestor fapte, cititorul poate consulta practic
orice carte de teoria numerelor. S vedem care este situaia n cazul poli-
noamelor cu coecieni ntr-un corp nit.
Faptele 3.2.24.
Pentru ecare p numr prim, i ecare n exist un polinom ireductibil
n Z
p
[x] de grad n.
Notm cu I
q
(n) numrul polinoamelor ireductibile monice (coecientul
dominant este 1) de grad n din GF(q)[x], unde q este un numr prim
sau o putere a unui numr prim q = p
m
. De fapt are loc formula:
I
q
(n) =
1
n

d|n

_
n
d
_
q
d
.
Dac notm cu N
q
(n) numrul total al polinoamelor de grad exact n din
GF(q)[x], este uor de vzut c
N
q
(n) = q
n+1
q
n
.
Are loc estimarea asimptotic:
I
q
(n)
N
q
(n)

1
n
.
S schim n schimb demonstraia acestor fapte legate de polinoame ire-
ductibile.
Formula 3.4 de la pagina 136 este adevrat i pentru q = p
n
i poate
convertit uor n formula:

d|n
d I
q
(d) = q
n
, (3.5)
valabil pentru orice n N.
Aceste relaii, considerate ca ecuaii trebuie rezolvate n raport cu necunos-
cutele I
q
(n). Aceasta se face cu formula de inversare a lui Moebius, pe care o
prezentm aici n ambele variante: aditiv i multiplicativ.
140 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Deniia 3.2.25. Funcia : N N denit prin
(n) =
_

_
1, dac n = 1,
(1)
k
, dac n este un produs de k numere prime distincte,
0, dacn este divizibil cu ptratul unui numr prim,
se numete funcia lui Moebius.
Avem nevoie de urmtoarele proprieti ale funciei Moebius:
Propoziia 3.2.26.
1. Funcia lui Moebius este multiplicativ n sensul urmtor. Fie m, n nu-
mere naturale relativ prime. Atunci
(m n) = (m) (n).
2. Pentru orice numr natural n avem

d|n
(d) =
_
1, dac n = 1,
0, dac n > 1.
Demonstraie. Prima proprietate este evident din deniia funciei . A doua
este evident pentru n = 1, deci e n > 1. Fie
n = p

1
1
p

2
2
. . . p

k
k
descompunerea lui n n factori primi. Valoarea sumei este dat de suma ter-
menilor nenuli, adic

d|n
(d) =

d|p
1
p
2
...p
k
(d)
= (1) +

1ik
(p
i
) +

1i
1
<i
2
k
(p
i
1
p
i
2
) +. . . +(p
1
p
2
. . . p
k
)
= 1 +C
1
k
(1) +C
2
k
(1)
2
+. . . +C
k
k
(1)
k
= (1 + (1))
k
= 0.
Teorema 3.2.27 (Formula de inversare a lui Moebius). Formula se d de
obicei n dou variante: o formulare aditiv i o formulare multiplicativ.
3.2. CORPURI FINITE 141
Formula aditiv: Fie f, F : N G dou funcii ntr-un grup aditiv G.
Atunci
F(n) =

d|n
f(d) pentru orice n (3.6)
dac i numai dac
h(n) =

d|n

_
n
d
_
F(d) =

d|n
(d)F
_
n
d
_
pentru orice n. (3.7)
Formula multiplicativ: Fie f, F : N G dou funcii ntr-un grup
multiplicativ G. Atunci
F(n) =

d|n
f(d) pentru orice n (3.8)
dac i numai dac
h(n) =

d|n
F(d)
(
n
d
)
=

d|n
F
_
n
d
_
(d)
pentru orice n. (3.9)
Demonstraie. Presupunem c are loc relaia 3.6. Folosind propoziia 3.2.26
obinem

d|n

_
n
d
_
F(d) =

d|n
(d)F
_
n
d
_
=

d|n
(d)

c|
n
d
f(c)
=

c|n

d|
n
d
(d)f(c)
=

c|n
f(c)

d|
n
c
(d)
= f(n).
Invers, calculul este absolut similar. n ceea ce privete varianta multiplicativ,
aceasta este practic doar o schimbare a notaiei pentru operaia comutativ
valabil pentru cele dou funcii f i F.
Suntem acum n msur s demonstrm rezultatul fundamental al acestei
seciuni.
142 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Teorema 3.2.28. Numrul I
q
(n) al polinoamelor ireductibile monice de grad
n din GF(q)[x], (unde q este un numr prim sau o putere a unui numr prim
q = p
m
) veric relaiile:
1.

d|n
d I
q
(d) = q
n
,
2.
I
q
(n) =
1
n

d|n

_
n
d
_
q
d
=
1
n

d|n
(d)q
n
d
,
3.
I
q
(n) 1,
altfel spus, pentru ecare n avem cel puin un polinom ireductibil, i
4.
I
q
(n)
q
n
n
,
adic asimptotic, numrul polinoamelor ireductibile este 1/n din
numrul total de polinoame de grad n.
Demonstraie. Punctul 1 este numai o reiterare a relaiei 3.5 de la pagina 139.
Pentru a demonstra punctul principal 2 nu avem altceva de fcut dect
s aplicm formula de inversare Moebius (varianta aditiv, i G = N) pentru
funciile
f(n) = n I
q
(n),
i
F(n) = q
n
,
i s observm c relaia 3.6 este valabil datorit punctului 1.
Punctul 3 rezult din punctul 2 astfel:
I
q
(n)
1
n
_
_
q
n

1<d|n
q
n
d
_
_

1
n
_
q
n

n1

d=0
q
d
_
=
1
n
_
q
n

q
n
1
q 1
_
=
1
n
(q
n
(q
n
1)) =
1
n
> 0.
n sfrit punctul 4 este evident pe baza punctului 2.
3.2. CORPURI FINITE 143
3.2.9 Polinomul minimal i baza Grbner
Cele mai spectaculoase descoperiri matematice sunt acele rezultate care
dezvluie legturi strnse ntre domenii aparent ndeprtate. Asocierea din-
tre polinomul minimal al unui element algebric ntr-o extindere de corpuri cu
bazele Grbner ale idealelor polinomiale n inele de polinoame cu mai multe
nedeterminate poate prea la prim vedere o astfel de ntlnire neateptat.
Ea mrete n orice caz admiraia pentru "omniprezena" bazei Grbner i
utilitatea deosebit a algoritmului lui Buchberger.
Problemele pe care ni le formulm sunt urmtoarele.
Problemele 3.2.29.
1. Fie corpul nit F = GF(p
n
) construit cu ajutorul unui polinom ire-
ductibil f F
p
[x] de grad n. Dac notm ca de obicei clasa de
echivalen a lui x cu , atunci avem f() = 0 i nu exist polinom
anulator de grad mai mic n F
p
[x] pentru , adic f este polinomul min-
imal al lui . Elementele corpului F sunt polinoame de grad cel mult
n1 n . Fie a = g() i b = h() dou elemente ale lui F. S ne ream-
intim c a b se calculeaz simplu prin intermediul lui g h, nmulirea
a b prin g h(mod f), iar mprirea a/b prin a 1/b, unde inversul lui
b corespunde polinomului v, obinut cu ajutorul algoritmului lui Euclid
extins aplicat polinoamelor relativ prime f i h. ntru-ct (f, h) = 1
(h() = 0, f |h) exist u, v astfel ca uf +vh = 1 de unde 1/b = v().
S se calculeze polinomul minimal al lui
a +b,
a b,
a b,
a/b.
2. Fie acum dou polinoame ireductibile f, g F
p
[x], de grad n, m respec-
tiv. Putem face cte o extensie a lui F
p
cu ajutorul lui f i g respectiv,
notnd cu respectiv clasele de echivalen ale lui x n cele dou
extinderi. Cele dou extinderi sunt corpurile nite GF(p
n
) i GF(p
m
)
respectiv. Am vzut n seciunile precedente c exist i este unic corpul
nit cu p
k
elemente, respectiv pentru ecare divizor d|k corpul GF(p
k
)
are un singur subcorp GF(p
d
). Rezult c cele dou corpuri GF(p
n
) i
GF(p
m
) sunt subcorpurile (unice) ale corpului GF(p
nm
).
S se calculeze polinoamele minimale ale urmtoarelor elemente din acest
corp:
144 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
+,
,
,
/.
S ncepem prezentarea soluiilor acestor probleme cu enunul rezultatelor
teoretice necesare.
Propoziia 3.2.30. Fie deci corpul nit F = GF(p
n
). Fie un element
primitiv i e f F
p
[x] polinomul minimal al lui (de grad n). Fie a =
g() = a
0
+a
1
+a
2

2
+. . . +a
n1

n1
i b = h() = b
0
+b
1
+b
2

2
+. . . +
b
n1

n1
dou elemente ale lui F.
Cu ajutorul polinoamelor
g(x) = a
0
+a
1
x +a
2
x
2
+. . . +a
n1
x
n1
i
h(x) = b
0
+b
1
x +b
2
x
2
+. . . +b
n1
x
n1
din F
p
[x] construim idealele
I
a+b
= (f, y g h)
I
ab
= (f, y g +h)
I
axb
= (f, y gh)
I
a/b
= (f, hy g)
ale inelului F
p
[x, y]. Atunci polinomul minimal al lui a + b, a b, a b, a/b
este unicul polinom (monic) n variabila y, care este generator al idealului
I

F
p
[y].
Demonstraie. Vom demonstra cazul mai "dicil" a/b (celelalte sunt exerciii
uoare). ntru-ct h() = 0 exist un polinom v F
p
[x] astfel ca vh =
1mod f. Am efectuat astfel mprirea c = a/b = g()/h() = g() v(). S
considerm polinomul F = gv. Deci c = F(). Considerm homomorsmul
, dat de compunerea de aplicaii
F
p
[y] F
p
[x]/(f) F
p
()
y F + (f) c.
S[observm c, un polinom G este n ker dac i numai dac G(c) = 0, deci
polinomul minimal al lui c este un generator al nucleului lui . Acesta ns
este (f, y F) F
p
[y]. Aadar rmne s artm c (f, y F) = (f, hy g).
3.2. CORPURI FINITE 145
Pentru aceasta s observm c, yF = ygv = v(hyg)mod f deci avem
yF (f, hyg), de unde rezult incluziunea (f, yF) (f, hyg). Invers,
avem hy g = h(y gv) = h(y F)mod f. De aici rezult hy g (f, y F)
deci cealalt incluziune (f, y F) (f, hy g).
Din aceast propoziie rezult un "algoritm" de calcul al polinomului mi-
nimal al elementului c = a/b (i celelalte operaii): calculm baza Grbner
pentru idealul (f, hy g) F
p
[x, y] folosind ordonarea lexicograc n care
x > y. Polinomul acestei baze care conine numai variabila y este polinomul
minimal al lui c!
Pentru a rezolva problema a doua ne vom baza pe o propoziie analoag
pe care o dm fr demonstraie.
Propoziia 3.2.31. Fie
1
,
2
, . . . ,
n
rdcini ale polinoamelor ireductibile
f
1
, f
2
, . . . , f
n
cu coecieni n corpul F
p
. Fie
a = g(
1
,
2
, . . . ,
n
)
b = h(
1
,
2
, . . . ,
n
),
unde g, h F
p
[x
1
, x
2
, . . . , x
n
] sunt polinoame arbitrare.
Construim idealele
I
a+b
= (f
1
, f
2
, . . . , f
n
, y g h)
I
ab
= (f
1
, f
2
, . . . , f
n
, y g +h)
I
axb
= (f
1
, f
2
, . . . , f
n
, y gh)
I
a/b
= (f
1
, f
2
, . . . , f
n
, hy g)
ale inelului F
p
[x
1
, x
2
, . . . , x
n
, y]. Atunci polinomul minimal al lui c = a + b,
c = a b, c = a b, c = a/b este unicul polinom (monic) n variabila y, care
este generator al idealului I

F
p
[y].
Dac toate acestea nu sunt sucient de clare, ne va ajuta un exemplu
concret.
Exemplul 3.2.32. n corpul GF(2
6
) construit cu ajutorul polinomului
f(x) = x
6
+x + 1,
e o rdcin a lui f, i e
a =
4
+
3
+
2
+ + 1,
i
b =
3
+ + 1.
S calculm polinomul minimal al elementului c = a/b.
146 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Soluia este acest scurt program scris n Singular.
ring R=2,(x,y),lp;
ideal I=x6+x+1,y*(x3+x+1)-(x4+x3+x2+x+1);
ideal G=groebner(I);
G;
Rezultatul este
G = (y2 +y + 1, x3 +x2 +xy +x +y2 + 1)
deci polinomul minimal al lui a/b este y
2
+y + 1.
Iat acum un exemplu cu dou extinderi succesive.
Exemplul 3.2.33. Considerm polinoamele ireductibile cu coecieni n F
2
f(x) = x
2
+x + 1,
i
g(y) = y
3
+y + 1.
Fie o rdcin a lui f, i o rdcin a lui g.
S calculm polinomul minimal al elementelor +, , , / n
extensia lui F
2
cu i .
Soluia este obinut cu programul de mai jos.
ring R=2,(x,y,y),lp;
ideal I=x2+x+1,y3+y+1,z-(x+y);
groebner(I);
ideal I=x2+x+1,y3+y+1,z-(x-y);
groebner(I);
ideal I=x2+x+1,y3+y+1,z-xy;
groebner(I);
ideal I=x2+x+1,y3+y+1,yz-x);
groebner(I);
Concret polinomul minimal al lui + = este
z
6
+z
5
+z
3
+z
2
+ 1,
al lui este
z
6
+z
4
+z
2
+z + 1,
respectiv al lui / este
z
6
+z
5
+z
4
+z
2
+ 1.
Gradele acestor polinoame ind 6 = 2 3, aceste polinoame genereaz acelai
corp GF(2
6
).
3.3. CODURI CORECTOARE DE ERORI 147
3.3 Coduri corectoare de erori
D
up aceast pregtire destul de consistent care a avut totui i
motivaii intrinseci suntem n msur acum s trecem la aplicaia
anunat: coduri corectoare de erori.
n introducerea acestui capitol am vzut deja un exemplu concret de un
astfel de cod. Avnd n minte acest exemplu, vom nelege mai bine motivaia
construciilor matematice care vor urma mai jos.
Fixm de la bun nceput urmtoarele. Informaia pe care o trimitem este
organizat. Ea se exprim cu ajutorul unui alfabet, i se grupeaz n cuvinte
(blocuri) de aceeai lungime. Literele acestor cuvinte transmise se pot altera.
S analizm puin statistica acestor alterri n cazul unui canal de comunicaie
prin care transmitem informaie binar. S considerm deci c literele sunt
cifrele binare 0 i 1 i c lungimea unui cuvnt este de n de litere. S
presupunem c probabilitatea cu care pe acest canal cifra binar 0 devine la
recepie 1 este aceeai cu care cifra 1 este recepionat 0. Un astfel de canal
de comunicaie se numete canal binar simetric. S presupunem de asemenea
c probabilitatea recepionrii eronate a unei cifre binare este aceeai pentru
ecare cifr, i este independent de cifrele anterioare sau viitoare. S notm
probabilitatea recepionrii corecte a unei cifre binare cu p. Atunci ntr-o
secven de lungime n probabilitatea unui numr de t erori este
C
t
n
p
nt
(1 p)
t
.
Pentru p = 0.99 i n = 50 putem ntocmi urmtorul tabel:
t probabilitatea producerii a exact t erori cel mult t erori
0 60.50 % 60.50 %
1 30.56 % 91.06 %
2 7.56 % 98.62 %
3 1.22 % 99.84 %
4 0.145 % 99.99 %
...
S observm mai nti c probabilitatea producerii mai multor erori este mai
mic. Aceasta se ntmpl totdeauna dac pentru orice t, (0 t n1 avem
C
t+1
n
p
nt1
(1 p)
t+1
C
t
n
p
nt
(1 p)
t
< 1,
adic
n t
t + 1

1 p
p
< 1
148 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
deci
n <
p
1 p
.
Ce putem aa din acest tabel? n primul rnd putem aa, c dei proba-
bilitatea de producere a erorii este mic doar 1% totui probabilitatea
recepionrii corecte a unui cuvnt (de 50 de litere) este de doar 60.5%, adic
n medie aproape ecare al doilea cuvnt conine erori! Este clar c, fr
un mecanism de detectare i corectare a erorilor informaia recepionat este
practic neutilizabil.
Pe de alt parte vestea bun este c este foarte improbabil ca un cuvnt s
conin multe erori. n exemplul dat n tabel n medie numai unul din 10.000
de cuvinte va conine mai mult de 5 erori!
Este clar deci c, informaia util trebuie completat cu o informaie redun-
dant care s fac posibil descoperirea i corectarea erorilor. ntr-un cuvnt
de cod de n litere numai k < n litere vor codica informaia util, restul de
nk litere vor servi la implementarea mecanismelor de detectare i corectare a
erorilor, rezultnd un raport r = k/n < 1 subunitar al transmisiei informaiei
utile.
Se pune deci problema de principiu: putem oare controla detectabilitatea
erorilor, adic putem oare construi coduri care s asigure un procent orict de
mic dorim al erorilor nedetectabile? Rspunsul la aceast ntrebare este ar-
maia unei teoreme pe care Claude Shannon a publicat-o n 1948, considerat
astzi punctul de plecare al teoriei codurilor, i pe care o formulm aici (fr
demonstraie).
Teorema 3.3.1. Pentru orice canal binar simetric de comunicaie, pentru
orice > 0, pentru orice probabilitate 1 > p > 0 i orice rat util de infor-
maie r > 0 pentru care avem
r < 1 +p ln(p) + (1 p) ln(1 p),
exist un cod ale cror cuvinte au lungimea sucient de lung n i pentru care
probabilitatea recepionrii corecte a literelor codului este p dar probabilitatea
recepionrii eronate a cuvintelor este cel mult .
Demonstraia acestei teoreme nu este constructiv, ea nu furnizeaz i
o metod de construcie pentru coduri bune. Are sens aadar cutarea de
coduri care s se apropie ct mai mult de performana asigurat de teorema
lui Shannon.
n cele ce urmeaz vom prezenta cteva coduri, i vom schia i o analiza
parametrilor acestora pentru a intui n ce msur ele se apropie de performana
maxim posibil pentru o rat de eroare dat.
3.3. CODURI CORECTOARE DE ERORI 149
3.3.1 Concepte de baz
Legtura dintre corpurile nite i coduri rezid n faptul c literele alfabetului
de codicare vor numere speciale: elemente ale unui corp nit de numere!
Cuvinte ale acestui alfabet vor "cuvinte" de cod, blocuri. Iat dicionarul
corespunztor pe care-l vom folosi n continuare.
concept teoria codurilor obiect matematic
ABC (colecie simboluri) corp nit, F
q
, q = p
m
liter, simbol element al corpului nit,
i
F
q
mesaj util, vector de elemente, = (
1
,
2
, . . . ,
k
)
cuvnt cod, mesaj codicat x = (x
1
, x
2
, . . . , x
n
), n k, x
i
F
q
i transmis
mesaj recepionat, eventual diferit vector y = (y
1
, y
2
, . . . , y
n
), y
i
F
q
de cel transmis
vector eroare e = y x
n cazul n care x
1
=
1
, . . . , x
k
=
k
simbolurile x
k+1
, . . . , x
n
se numesc
simboluri de control . Conform tabelului de mai sus se impune deci o deniie.
Deniia 3.3.2. Un cod de lungime n peste corpul F
q
este o submulime
(nevid) C a spaiului vectorial F
n
q
peste F
q
.
n cursul transmisiei cuvntele de cod pot suferi modicri, deci avem
nevoie de un mecanism de evaluare a msurii acestei modicri. Se vede ime-
diat c numrul simbolurilor alterate este o msur potrivit pentru evaluarea
"distanei" ntre cele dou cuvinte de cod: cel transmis i cel recepionat.
Deniia 3.3.3. Concepte importante noi:
Dac x i y sunt cuvinte cod vom numi distan Hamming ntre ele
numrul simbolurilor diferite dintre perechile de simboluri care se core-
spund, deci
d(x, y) = {i|x
i
= y
i
}.
Dac x este un vector vom numi msura Hamming al acestui vector,
notat w(x), distana lui fa de vectorul nul, adic w(x) = d(x, 0).
Vom numi distana minim a codului C numrul
d(C) = min{d(x, y) | x, y C, x = y},
adic cea mai mic distan ntre dou cuvinte de cod.
150 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Vom numi de asemenea bil de raz r cu centru n x mulimea
S
r
(x) = {y F
n
q
| d(x, y) r},
adic mulimea vectorilor aate la distana cel mult r de vectorul x.
Se veric uor c, funcia d(x, y) are proprietile unei distane:
d(x, y) = 0 dac i numai dac x = y,
este simetric adic d(x, y) = d(y, x) i
are loc i inegalitatea triunghiului, adic d(x, z) d(x, y) +d(y, z), pen-
tru orice x, y, z F
n
q
.
Cuvntul de cod transmis x poate sosi la receptor alterat, y. Decodicarea care
dintr-un vector y recepionat restabilete cel mai probabil cuvnt de cod care a
fost transmis, se numete decodicare de probabilitate maxim. Decodicarea
care l decodic vectorul y cu ajutorul cuvntului de cod x aat cel mai
aproape de y n sensul distanei Hamming (dac exist numai unul singur), se
numete decodicare prin distan.
Am vzut mai sus c probabilitatea alterrii unui numr de 1, 2, 3, . . . sim-
boluri ale unui cuvnt de cod se micsoreaz rapid, n anumite condiii. Practic
am vzut c dac pe un canal de comunicaie binar i simetric
n <
p
1 p
,
atunci decodicarea prin cuvntul de cod cel mai apropiat este o decodicare
de probabilitate maxim! Vom pstra aceast ipotez n continuare, adic
vom considera c decodicarea prin cuvntul de cod cel mai apropiat este
i decodicare de probabilitate maxim, i vom nelege prin "decodicare"
decodicare prin cuvntul de cod cel mai apropiat.
Deniia 3.3.4. Vom spune c un cod C F
n
q
corecteaz t (t N

) erori
dac pentru orice y F
n
q
exist cel mult un cuvnt de cod x C astfel ca
d(y, x) t.
Dac avem un cod care poate corecta t erori i am transmis cuvntul de
cod x C i n cursul transmisiei se produc cel mult t erori, atunci la recepie
putem restabili mesajul deoarece x este singurul cuvnt de cod pentru care
d(y, x) t.
S observm c, pentru a putea decodica ct mai multe mesaje recepion-
ate eronat distana minim a codului, adic parametrul d = d(C) trebuie s
e ct mai mare posibil. Acesta ns atrage dup sine scderea numrului de
cuvinte cod pentru o lungime dat n a codului, ceea ce scade cantitatea de
informaie transmis. n concluzie problema de baz a teoriei codurilor este:
3.3. CODURI CORECTOARE DE ERORI 151
Problema 3.3.5. Pentru un n, d i q = p
m
dat s gsim n F
n
q
o submulime
maximal C, cu un numr de elemente ct mai mare, pentru care d(C) d.
Maximalitatea lui C nseamn, c orice vector cu care am completa
mulimea C ar avea ca efect d(C) < d. ntru-ct mulimi maximale cu
d(C) d pot mai multe, suntem interesai s gsim pe cal pentru care
numrul de elemente M = |C| este cel mai mare posibil.
Observaia 3.3.6. S observm c un cod C pentru care d(C) = d, poate
detecta d1 erori, i poate corecta
d1
2
erori (partea ntreag a lui (d1)/2).
3.3.2 Margini pentru coduri generale
Fie C un cod din F
n
q
cu distan minim d = d(C), care poate corecta t erori
i s notm numrul cuvintelor de cod cu M = |C|. ntre parametrii codului
C au loc anumite inegaliti, care prescriu valor limit intrinseci care nu pot
depite.
Propoziia 3.3.7.
1. marginea Hamming:
M(1 + (q 1)C
1
n
+C
2
n
(q 1)
2
+ + (q 1)
t
C
t
n
q
n
.
2. marginea Singleton:
M q
nd+1
.
Demonstraie. Pentru a demonstra punctul 1 s observm c numrul total al
vectorilor de msur k n F
n
q
este C
k
n
(q 1)
k
. Pe de alt parte ecare bil de
raz t cu centrul ntr-un vector-cod din C conine un numr de
1 +C
1
n
(q 1) +C
2
n
(q 1)
2
+. . . +C
t
n
(q 1)
t
vectori. ntru-ct bilele sunt disjuncte i numrul lor este M iar numrul total
al vectorilor din spaiu este q
n
, rezult inegalitatea din 1.
Pentru a demonstra punctul 2 s observm c dac din cuvintele unui cod
C de distan minim d tergem ultimele d1 simboluri, cuvintele de lungime
n d +1 astfel formate nc vor diferite ntre ele. Pe de alt parte numrul
total al vectorilor de aceast lungime este q
nd+1
, ceea ce implic 2.
Pe baza propoziiei anterioare se impun urmtoarele deniii:
Deniia 3.3.8.
Dac pentru codul C marginea Hamming este atins, atunci codul se
numete cod perfect.
Dac pentru codul C marginea Singleton este atins, atunci codul se
numete cod MDS, (Maximum Distance Separable).
152 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
3.4 Coduri liniare
A
m avansat ideea n seciunea precedent c o alegere bun pentru
cuvintele unui cod, constituie o parte din vectorii unui spaiul vectorial
nit dimensional peste un corp nit. Dac avem n minte intenia de a aeza
ct mai compact bile de raz dat cu centrul n punctele acestui spaiu, fr
s se intersecteze ns, e de ateptat ca o astfel de aezare s e i regulat
ntru-un anumit sens s ne gndim la nodurile unei reele ptratice sau
triunghiulare regulate n plan i cercuri identice aezate pe aceast reea, spre
exemplu.
O astfel de ordine poate introdus n mulimea C dac facem uz de
structura de spaiu vectorial mulimea C ar putea s e un subspaiu. Astfel
C devine o "reea" generat (n sensul chiar al combinaiilor liniare) de un set
de vectori de baz bine alei (care ar i forma baza acestui subspaiu). Un
astfel de cod se va numi cod liniar.
n termeni tehnici ideea de mai sus se realizeaz astfel. Fie H o matrice de
tip (n k, n) cu elemente din corpul nit F
q
. Presupunem c rangul matricii
H este maxim, adic n k.
Deniia 3.4.1. Codul C se numete cod liniar de tip (n, k) dac cuvintele
x ale codului veric ecuaia
H x
t
= 0,
adic sunt soluiile unui sistem liniar i omogen de ecuaii cu coecieni ntr-un
corp nit.
Numrul n se numete lungimea codului iar numrul k dimensiunea codu-
lui. Forma standard a matricii H este H = (A, I
nk
), unde I
nk
este matricea
unitate de ordin nk. Matricea H se numete matrice de control al paritii.
Dac matricea H are forma standard, codul se numete cod sistematic. Dac
q = 2, codul se numete cod liniar binar.
Evident mulimea C este un subspaiu al spaiului vectorial F
n
q
.
Propoziia 3.4.2. Pentru un cod sistematic C denit de matricea H dac
= (
1
,
2
, . . . ,
k
) = (x
1
, x
2
, . . . , x
k
) este partea util a mesajului, i
H x
t
=
_
A I
nk
_
x
t
= 0,
atunci
x =
_
I
k
A
t
_
.
Astfel codicarea mesajului util (i.e. calculul cuvntului de cod corespunztor
mesajului) se poate face prin nmulirea mesajului cu o matrice adecvat.
3.4. CODURI LINIARE 153
Demonstraie. Calculele sunt simple. Le reproducem totui aici, datorit im-
portanei conceptuale a acestora. Fie x = (x
1
, x
2
, . . . , x
n
) mesajul codicat.
Avem
H x
t
= 0
_
A I
nk
_
x
t
= 0
A
_
_
_
_
_
_
x
1
x
2
.
.
.
x
k
_
_
_
_
_
_
+
_
_
_
_
_
_
x
k+1
x
k+2
.
.
.
x
n
_
_
_
_
_
_
= 0

_
_
_
_
_
_
x
k+1
x
k+2
.
.
.
x
n
_
_
_
_
_
_
= A
_
_
_
_
_
_

2
.
.
.

k
_
_
_
_
_
_

_
_
_
_
_
_
x
1
x
2
.
.
.
x
n
_
_
_
_
_
_
=
_
I
k
A
_

_
_
_
_
_
_

2
.
.
.

k
_
_
_
_
_
_
(x
1
, x
2
, . . . , x
n
) = (
1
,
2
, . . . ,
k
)
_
I
k
A
t
_
x = G
Deniia 3.4.3. Matricea G = (I
k
, A
t
) se numete matricea generatoare
canonic pentru codul C. n general o matrice G se numete matrice genera-
toare pentru codul C dac liniile matricii G formeaz o baz a lui C.
Se veric imediat c ntre matricea generatoare i matricea de control al
paritii are loc relaia
G H
t
= 0.
Deniia 3.4.4. Dac C este un cod liniar de tipul (n, k) atunci codul
C

= {u F
n
q
|u v = 0, pentru orice v C}
se numete codul dual al lui C. Aici am notat
u v = u
1
v
1
+u
2
v
2
+. . . +u
n
v
n
,
i aa cum e de ateptat u v se numete produsul scalar al celor doi vectori.
Vectorii u i v se numesc vectori ortogonali dac u v = 0, n notaie uv.
154 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Produsul scalar este biliniar i simetric, ceea ce se veric imediat.
Observaia 3.4.5. Se observ c matricea generatoare pentru codul dual este
matricea de control al paritii pentru cod, i invers.
Demonstraie. ntr-adevr, s ne reamintim, c liniile matricii G sunt vectori
din C, i formeaz o baz pentru C (H G
t
= 0). Rangul lui H este maxim,
k, deci dimensiunea lui C este n k, egal cu numrul liniilor lui G. Deci
rangul lui G este de asemenea maxim, n k. Se vede deci c rolul lui G i H
este simetric, putem scrie i G H
t
= 0, i rangulambelormatrici este maxim:
liniile lui H sunt vectori liniar independeni, perpendiculari pe liniile lui G,
i numrul lor ind maximal, k, formeaz o baz pentru subspaiul vectorilor
perpendiculari pe liniile lui G, care este codul dual.
S menionm c este posibil ca u u = 0, fr ca u = 0, deci este posibil
ca uu fr ca vectorul u s e nul. n consecin, este posibil ca C C

=
respectiv C + C

F
n
q
, adic suma subspaiilor C i C

s nu e ntreg
spaiul. Mai mult, este posibil s avem i C = C

.
Deniia 3.4.6. Un cod C pentru care C = C

se numete cod autodual .


Vom vedea printre exemplele care urmeaz, i un cod autodual.
Este momentul deci s dm cteva exemple. Aceste exemple vor reluate
i analizate mai detaliat n seciunea 3.6 de la pagina 186, n care prezentm
un mediu de programare specializat pentru teoria codurilor algebrice, n cadrul
sistemului GAP.
Exemplele 3.4.7.
1. Fie codul binar de dimensiune k = n1 i lungime n construit n felul ur-
mtor: cuvintele de cod sunt formate din mesajul util (x
1
, x
2
, . . . , x
n1
)
i un simbolul x
n
de paritate, care este 1 dac

n1
i=1
x
i
= 1(mod 2) i
este 0 dac

n1
i=1
x
i
= 0(mod 2). Cuvntele cod x = (x
1
, x
2
, . . . , x
n
)
veric deci ecuaia
n

i=1
x
i
= 0.
Dac denim matricea cu n coloane i de o singur linie (de rang 1)
H =
_
1 1 . . . 1
_
,
atunci cuvintele codului veric ecuaia H x
t
= 0. Se vede c acest cod
detecteaz o singur eroare (sau un numr impar de erori).
3.4. CODURI LINIARE 155
2. Fie codul binar de dimensiune k i lungime n = 2k construit n felul
urmtor: cuvintele de cod sunt formate din mesajul util (x
1
, x
2
, . . . , x
k
)
repetate nc o dat. Astfel n ecare cuvnt de cod avem
x
i
= x
i+k
, pentru orice i = 1, 2, . . . , k.
Aceste relaii pot privite ca un sistem de ecuaii liniar i omogen n
necunoscutele
x = (x
1
, x
2
, . . . , x
k
, x
k+1
, . . . , x
2k
),
avnd matricea (de tip (k, 2k)) de rang k
H =
_
I
k
I
k
_
,
i va capabil de detectarea unei singure erori, fr a posibil
corectarea acesteia. S observm, c acest cod face acelai lucru ca
i codul descris n primul exemplu, ns ntr-un mod mult mai inecient:
lungimea codului este aici este 2k fa de numai k+1 din primul exemplu.
3. S construim un cod acum repetnd de dou ori mesajul util. Acesta va
un cod binar de dimensiune k i lungime n = 3k. Cuvintele de cod au
proprietatea
x
i
= x
i+k
= x
i+2k
, pentru orice i = 1, 2, . . . , k.
Aceste relaii formeaz un sistem de ecuaii liniar i omogen n necunos-
cutele
x = (x
1
, x
2
, . . . , x
k
, x
k+1
, . . . , x
2k
, x
2k+1
, . . . , x
3k
),
avnd matricea de tip (2k, 3k) i de rang 2k
H =
_
I
k
I
k
0
I
k
0 I
k
_
=
_
A I
2k
_
,
unde I
k
(respectiv I
2k
) este matricea unitate de ordinul k (respectiv 2k),
iar matricea A = (I
k
I
k
)
t
. Cuvintele codului veric din nou ecuaia
H x
t
= 0. Se vede de asemenea c acest cod detecteaz dou erori i
corecteaz o singur eroare. El se numete cod de repetiie, i este clar
c dac s-a produs o singur eroare, repetiia face posibil identicarea
i corectarea erorii.
Pentru k = 3 avem urmtorul sistem de ecuaii i.e. relaii de calcul ale
simbolurilor de control:
156 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
_

_
x
4
= x
1
x
5
= x
2
x
6
= x
3
x
7
= x
1
x
8
= x
2
x
9
= x
3
.
Matricea de control al paritii este aadar
H =
_
_
_
_
_
_
_
_
_
1 0 0 1 0 0 0 0 0
0 1 0 0 1 0 0 0 0
0 0 1 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 1
_
_
_
_
_
_
_
_
_
=
_
I
3
I
3
0
I
3
0 I
3
_
.
Matricea de generare a acestui cod este deci
G =
_
I
3
A
t
_
=
_
I
3
I
3
I
3
_
=
_
_
_
1 0 0 1 0 0 1 0 0
0 1 0 0 1 0 0 1 0
0 0 1 0 0 1 0 0 1
_
_
_.
Prin urmare o informaie util = (
1
,
2

3
) de 3 simboluri se codic
n cuvntul de cod de 9 simboluri:
x = (, , ) = G.
care este o combinaie liniar a liniilor matricii G, cu coecieni
1
,
2

3
.
4. S mai considerm un cod de repetiie binar, o variant extrem, denit
n felul urmtor. Fie k = 1, deci avem numai dou mesaje utile posibile,
0 i 1. S repetm mesajul util de n1 ori. Astfel ecare cuvnt de cod
are proprietatea x
1
= x
2
= . . . = x
n
. Considerate ca sistem de ecuaii,
aceste egaliti se descriu matricial sub forma H x
t
= 0, unde
H =
_
_
_
_
_
_
_
_
1 1 0 0 0
1 0 1 0 0
1 0 0 1 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 0 0 0 . . . 1
_
_
_
_
_
_
_
_
este o matrice de tip (n1, n), de rang evident n1. Practic vom avea
numai dou cuvinte n acest cod: (0, 0, . . . , 0) i (1, 1, . . . , 1), i se vede
3.4. CODURI LINIARE 157
c acest cod poate detecta n1 erori i poate corecta pn la (n1)/2
erori. Avem deci i un exemplu de cod care poate corecta multe erori,
dar preul pltit este raportul de informaie util mic, de numai 1/n. De
asemenea numrul cuvintelor de cod (2) este foarte mic n comparaie
cu numrul total al vectorilor (2
n
).
5. In acest exemplu e k = 3, i la cele trei simboluri ale informaiei utile

1
= x
1
,
2
= x
2
i
3
= x
3
s mai adugm alte trei simboluri de
control, calculate conform relaiilor de mai jos:
_

_
x
4
= x
1
+x
2
x
5
= x
1
+x
3
x
6
= x
2
+x
3
.
Matricea de control al paritii este aadar
H =
_
_
_
1 1 0 1 0 0
1 0 1 0 1 0
0 1 1 0 0 1
_
_
_ =
_
A I
3
_
.
Matricea de generare a acestui cod este deci
G =
_
I
3
A
t
_
=
_
_
_
1 0 0 1 1 0
0 1 0 1 0 1
0 0 1 0 1 1
_
_
_.
Prin urmare o informaie util = (
1
,
2

3
) se codic n cuvntul de
cod:
x = (
1
,
2

3
,
1
+
2
,
1
+
3
,
2
+
3
) = G,
care este o combinaie liniar a liniilor matricii G, cu coecienii

1
,
2

3
. S observm, c acest cod este capabil de detectarea a dou
erori, i de corectarea unei erori (de ce?). Aadar tie exact att, ct
tie i codul de la punctul 3, n schimb lungimea lui este numai 6 fa
de 9 al codului cu repetiie de la punctul 3. Exemplul acesta arat, c
simpla repetare a transmiterii informaiei utile nu este optim pentru
detectarea i corectarea erorilor.
6. n sfrit s considerm codul liniar binar generat de matricea genera-
toare de la nceputul acestui capitol
G =
_
_
_
_
_
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
_
_
_
_
_
. (3.10)
158 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Cuvintele de cod sunt combinaii liniare ale liniilor acestei matrici, deci
deci dimensiunea codului este 4, iar lungimea este 7. Dac neuitm i la
matricea de control al paritii al acestui exemplu
H =
_
_
_
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
_
_
_, (3.11)
se veric uor c liniile celor dou matrici sunt ortogonale, adic
G H
t
= 0,
de unde rezult c toate cuvintele de cod veric ecuaia H x
t
= 0.
Am vzut deja c, acest cod poate detecta dou erori i poate corecta
o eroare. Se vede deci c, dei att acest cod, ct i cel de la exemplul
anterior 5 corecteaz o eroare i detecteaz dou, acest cod este totui
mai bun, deoarece raportul informaiei utile n cuvintele de cod este mai
mare 4/7 fa de numai 3/6. Codul acesta nu este sistematic, aa cum
se vede din structura matricii H, care nu are forma standard.
S menionm c, pentru un cod dat nici matricea H nici matricea G nu
este unic. ntr-adevr, baza unui (sub-)spaiu vectorial nu este unic. Este
uor de vzut c, permutnd liniile matricii H (sau G) respectiv prin trans-
formri ale acestora elementare (adunarea unei linii la alta etc.) codul nu se
schimb: C = ker H = Im G n termenii algebrei liniare a aplicaiilor liniare
denite de matricile G i H rmne neschimbat. Totui, dac permutm
coloanele acestor matrici, codul se schimb.
Deniia 3.4.8. Dou coduri liniare C i C

de acelai tip (n, k) se numesc


coduri echivalente, dac exist o permutare a indicilor : {1, 2, . . . , n}
{1, 2, . . . , n}, astfel ca
(x
1
, x
2
, . . . , x
n
) C (x
(1)
, x
(2)
, . . . , x
(n)
) C

pentru orice cuvnt cod.


Pentru coduri liniare distana minim se poate calcula mai simplu.
Observaia 3.4.9. Distana minim d a unui cod liniar C este msura cea
mai mic a unui cuvnt de cod din C.
ntr-adevr, s observm c distana este invariant la translaie, adic
d(x, y) = d(x +z, y +z). De aici rezult d(x, y) = d(x y, 0) = w(x y).
Deniia 3.4.10. Un cod liniar de lungime n, de dimensiune k i de distan
minim d se numete cod de tip (n, k, d).
3.4. CODURI LINIARE 159
S notm cu mld(H) (Minimal Linear Dependent) numrul minim al
coloanelor liniar dependente ale lui H. Avem urmtoarea propoziie.
Propoziia 3.4.11. Fie H matricea de control al paritii unui cod liniar C
de tip (n, k, d), dim(C) = k < n. Atunci avem:
1. mld(H) rank(H) + 1,
2. k = n rank(H),
3. d = mld(H),
4. d < n k + 1.
Demonstraie. Punctul 1 i 2 este evident din deniia lui mld(H) respectiv
a matricii H. Pentru a demonstra punctul 3, s notm coloanele matricii H
cu c
1
, c
2
, . . . , c
n
. Pentru un cuvnt de cod x = (x
1
, x
2
, . . . , x
n
) C avem
H x
t
= x
1
c
1
+x
2
c
2
+. . . +x
n
c
n
= 0. Dac inem cont de observaia 3.4.9 de
la pagina 158, rezult d = mld(H).
Acum punctul cod:mld4 este o consecin a punctelor precedente. ntr-
adevr, k = nrank(H) nmld(H)+1 = nd+1, i de aici d nk+1.
3.4.1 Margini pentru coduri liniare
Pentru coduri liniare se pot stabili i alte relaii limitative ntre parametrii
acestora, respectiv unele dintre acestea constituie condiii suciente de exis-
ten pentru coduri liniare avnd parametrii dai.
Propoziia 3.4.12.
1. marginea Gilbert-Varshamov: Dac avem
q
nk
>
d2

i=0
C
i
n1
(q 1)
i
,
atunci exist un cod liniar de tipul (n, k) care are distana minim cel
puin d.
2. marginea Plotkin: Pentru orice cod liniar este valabil inegalitatea
d
nM(q 1)
(M 1)q
.
160 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Demonstraie. Demonstraia punctului 1 se face prin a arta c se poate con-
strui o matrice de control al paritii H care s deneasc un cod cu propri-
etatea cerut. Alegem mai nti d 1 vectori coloan liniar independeni din
F
nk
q
, lucru posibil datorit punctului 4 din propoziia 3.4.11 de la pagina 159.
Acum prin inducie, dac am ales deja j 1 d 1 coloane astfel ca oricare
d 1 dintre ele sunt liniar independente atunci numrul tuturor combinaiilor
liniare ale a cel mult d 2 vectori din aceti j 1 este
d2

i=0
C
i
j1
(q 1)
i
,
deci conform ipotezei (i a faptului c coecienii binomiali sunt cresctori n
raport cu indicele inferior) rezult c alegerea unor noi vectori este posibil
pn valoarea lui j 1 ajunge la n 1, adic valoarea lui j devine n.
S demonstrm acum punctul 2. Fie C un cod liniar de tipul (n, k) peste
F
q
i e indicele i, 0 i n ales astfel ca exist n codul C un cuvnt de
cod al crui element de ordinul i este nenul. S notm cu C
i
subspaiul lui C
format din cuvintele care au zero pe poziia i. Spaiul factor C/C
i
are evident
q elemente. Dac numrul total al cuvintelor de cod este M = |C| = q
k
unde
k este dimensiunea codului, atunci q
k1
= q
k
/q = M/|C
i
| = |C/C
i
|, deci C
i
are q
k1
elemente. Suma total a msurilor cuvintelor de cod nu depete
nq
k1
(q 1). Numrul cuvintelor de cod nenule este evident q
k
1. Avem
deci
nq
k1
(q 1) suma msurilor cuvintelor de cod d(q
k
1).
De aici obinem
d
nq
k1
(q 1)
q
k
1
=
nq
k
(q 1)
q(q
k
1)
=
nM(q 1)
(M 1)q
.
3.4.2 Codicarea i decodicarea codurilor liniare
Fie C un cod liniar de tip (n, k) peste un corp nit F
q
denit cu ajutorul
matricii de control al paritii H.
Codicarea este simpl. Dac codul este sistematic, atunci se construiete
imediat matricea generatoare a codului, i codicarea se reduce la nmulirea
matricial a prii utile a mesajului conform propoziiei 3.4.2 de la pagina 152.
Dac codul nu este sistematic se rezolv sistemul de ecuaii omogen H x
t
= 0
unde rank(H) = nk n raport cu nk variabile, i partea util a mesajului
poate mapat pe cei k parametrii ai soluiei. n ali termeni, se determin
3.4. CODURI LINIARE 161
o baz a nucleului ker(H) care va constitui matricea generatoare a codului.
Codicarea este atunci din nou o nmulire matricial.
Decodicarea n ambele cazuri ncepe prin nmulirea matricial s = H y
t
,
unde y este mesajul recepionat. Dac rezultat este s = 0, atunci y = x C,
i dnd la o parte simbolurile de control, avem mesajul util transmis.
Ce se ntmpl ns dac s = 0, adic y = x pentru ecare cuvnt de cod
x? Iat un algoritm "simplu" de decodicare. Mai nti trebuie s introducem
o msur a erorii prin urmtoarea deniie.
Deniia 3.4.13. Dac vectorul recepionat este y atunci vectorul
S(y) = H y
t
se numete sindromul lui y.
Cu ajutorului sindromului putem construi un algoritm de decodicare a
codului liniar C. S observm c, dac e = y x este eroarea propriu zis
produs n procesul transmisiei mesajului x, atunci sindromul lui y este i
sindromul erorii! ntr-adevr, H e = H (y x) = H y H x = H y 0 =
H y. Aadar mulimile de vectori y + C i e + C coincid, y + C = e + C, i
reprezint clasa de echivalen a mesajului recepionat n raport cu subspaiul
C. Bineneles sindromul este nul exact atunci cnd H y = 0, adic y este
cuvnt de cod.
Dac ne aducem aminte c, am fcut ipoteza c erori mai multe sunt mai
puin probabile, eroarea cea mai probabil trebuie identicat cu vectorul e
avnd acelai sindrom cu y, dar care are msura Hamming cea mai mic!
Iat deci algoritmul. ntocmim un tabel (se numete tabela Slepian) cu
toate clasele de echivalen y+C pentru ecare sindrom posibil avem o clas
ale vectorilor din F
n
q
, desemnnd drept reprezentani vectorul de msur
Hamming cea mai mic. Cutm apoi n acest tabel mesajul recepionat i
identicm reprezentantul e al clasei n care se a. Cuvntul de cod trimis
cel mai probabil este x = y e.
Se cuvine s dm i un exemplu concret. S ntocmim tabela Slepian pentru
unul din codurile date n exemplele 3.4.7 de la pagina 154. Normal, alegem
codul de lungime minim... deci exemplul 5. Iat tabelul (incomplet; clasele de
echivalen se a pe coloane, prima coloan este C, conine vectorii codului):
162 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
A 000 001 010 011 100 101 110 111
B 000000 000001 000010 100000 000100 010000 001000 001001
C 001110 001111 001100 101110 001010 011110 000110 000111
010101 . . . . . . .
011011 . . . . . . .
100011 . . . . . . .
101101 . . . . . . .
110110 . . . . . . .
111000 . . . . . . .
A. sindromul
B. reprezentanii claselor, codurile de msur minim
C. celelalte elemente ale claselor (tabel incomplet)
Oricum, tabelul este necesar doar pentru a selecta din ecare clas de
echivalen (coloan) vectorul de msur Hamming minim (sau unul dintre
acetia n cazul n care exist mai muli vectori de msur minim) S pre-
supunem c am recepionat mesajul y = (1, 1, 0, 0, 0, 1). Cum l decodicm?
Calculm mai nti sindromul s = S(y) prin
S(y) = H y
t
=
_
_
_
1 1 0 1 0 0
1 0 1 0 1 0
0 1 1 0 0 1
_
_
_
_
_
_
_
_
_
_
_
_
1
1
0
0
0
1
_
_
_
_
_
_
_
_
_
=
_
_
_
0
1
0
_
_
_.
Sindromul neind nul, s-au produs erori. n tabela Slepian coloana corespun-
ztoare sindromului calculat este coloana a treia, iar reprezentantul clasei de
msur Hamming minim este e = (0, 0, 0, 0, 1, 0). Cuvntul cod transmis a
fost (cu mare probabilitate) x = y e = (1, 1, 0, 0, 1, 1). Aceste este cuvntul
de cod (unic) aat la distana Hamming minim fa de cuvntul recepionat.
3.5 Coduri liniare speciale
M
etoda de decodificare descris n seciunea precedent are o im-
portan mai mult de principiu. n practic, pentru coduri mai lungi
tabelul Slepian este foarte mare, n plus selectarea reprezentantului de msur
minim este de asemenea problematic. Metode mai eciente de decodicare
presupun proprieti speciale pentru codurile liniare folosite. n seciunea care
urmeaz facem cunotin cu cteva astfel de coduri.
3.5. CODURI LINIARE SPECIALE 163
3.5.1 Coduri Hamming
Deniia 3.5.1. Fie n = 2
m
1, m 2, q = 2, i e matricea H de tipul
m(2
m
1) construit din toi vectorii coloan binari nenuli de lungime m.
Codul liniar binar denit de matricea H se numete cod Hamming binar, i se
noteaz cu C
m
.
Mai general, dac q = 2, atunci matricea H construit similar din toi
vectorii nenuli de lungime m dintre perechile de vectori n care unul este un
multiplu scalar al celuilalt reinndu-se numai unul se numete cod Hamming.
Codul C
m
este deci un cod liniar binar, de tipul (2
m
1, 2
m
1 m, 3).
ntr-adevr, deoarece 1 + 2 = 3 (sic! egalitatea trebuie vzut totui n
reprezentarea binar), numrul minim de coloane liniar dependente este 3,
deci conform punctului 3 din propoziia 3.4.11 de la pagina 159, distana
minim a codului este d = 3. Astfel codul Hamming C
m
detecteaz dou erori
i corecteaz una, conform observaiei 3.3.6 de la pagina 151. Mai general,
codul Hamming peste corpul F
q
este un cod liniar de tipul ((q
m
1)/(q
1), (q
m
1)/(q 1) m, 3). S remarcm, c un cod Hamming este denit
practic de numrul m (i bineneles corpul de scalari dat de q).
Dm ca exemplu codul C
3
, matricea de vericare a paritii i matricea
de generare a acestuia. Vom folosi programul GAP, mai precis un pachet
specializat al acestuia, GUAVA, conceput pentru ca suport pentru cercetri
n coduri algebrice corectoare de erori (vezi i seciunea 3.6 pentru mai multe
detalii).
gap> C_3:=HammingCode(3,GF(2));
a linear [7,4,3]1 Hamming (3,2) code over GF(2)
gap> Display(CheckMat(C_3));
. . . 1 1 1 1
. 1 1 . . 1 1
1 . 1 . 1 . 1
gap> Display(GeneratorMat(C_3));
1 1 1 . . . .
1 . . 1 1 . .
. 1 . 1 . 1 .
1 1 . 1 . . 1
Pentru m = 3 avem matricea de control al paritii 3.11 din exemplul 6 de la
pagina 157, reluat de la exemplul introductiv de la nceputul acestui capitol.
Analogia cu descoperirea monezii false descris acolo constituie cheia algo-
ritmului de decodicare pentru orice cod Hamming C
m
: sindromul s = S(y)
164 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
n cazul n care nu este nul citit n baza doi, este numrul de ordine
al simbolului recepionat eronat (vezi seciunea 3.6 pentru tabela Slepian al
acestui cod)!
Ideea bitului de paritate adugat la vectorul biilor utili poate fructicat
mai general. Dac aplicm aceast idee unui cod liniar de tip (n, k, d) obinem
un nou cod liniar de lungime n +1, unde ultimul simbol este suma negativ a
simbolurilor cuvntului de cod. n termenii matricii de vericare a paritii,
acest mecanism este descris n deniia care urmeaz.
Deniia 3.5.2. Dac completm matricea de vericare a paritii H a unui
cod liniar C de tipul (n, k, d) cu o coloan de zerouri, apoi cu o linie de 1,
atunci obinem o matrice

H care denete codul extins al codului C.
Astfel matricea de control al paritii pentru codului extins al codului C
3
este

H =
_
_
_
_
_
1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 0
0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0
_
_
_
_
_
.
Acest cod are tipul (8, 4, 4), deci corecteaz numai o eroare dar detecteaz trei!
Pachetul GUAVA furnizeaz matricea de vericare a paritii n forma
standard (partea dreapt este matricea unitate).
gap> C_3ext:=ExtendedCode(C_3);
a linear [8,4,4]2 extended code
gap> Display(CheckMat(C_3ext));
. 1 1 1 1 . . .
1 . 1 1 . 1 . .
1 1 . 1 . . 1 .
1 1 1 . . . . 1
gap> Display(GeneratorMat(C_3ext));
1 1 1 . . . . 1
. 1 1 1 1 . . .
. . 1 . 1 1 . 1
. . . 1 1 1 1 .
Pe lng extinderea unui cod, mai avem la dispoziie ca mecanism de generare
de noi coduri, considerarea codului dual, conform deniiei 3.4.4 de la pagina
153. Folosind acest mecanism, avem urmtoarele coduri.
Deniia 3.5.3. Codul dual al codului Hamming binar C
m
de tipul (2
m

1, 2
m
1 m, 3) se numete codul binar simplex.
3.5. CODURI LINIARE SPECIALE 165
Parametrii acestuia sunt (2
m
1, m, 2
m1
).
gap> C_BinSim:=DualCode(C_3);
a linear [7,3,4]2..3 dual code
gap> CoveringRadius(C_BinSim);
3
gap> Display(CheckMat(C_BinSim));
1 1 1 . . . .
1 . . 1 1 . .
. 1 . 1 . 1 .
1 1 . 1 . . 1
gap> Display(GeneratorMat(C_BinSim));
. 1 1 1 1 . .
1 . 1 1 . 1 .
1 1 . 1 . . 1
Deniia 3.5.4. Considerm codul extins Hamming, avnd tipul (2
m
, 2
m

1 m, 4). Codul dual al acestui cod se numete cod Reed-Muller de ordinul


nti.
Parametrii acestui cod sunt (2
m
, m+ 1, 2
m1
).
gap> C_RM:=DualCode(C_3ext);
a linear [8,4,4]2 dual code
gap> IsSelfDualCode(C_RM);
true
gap> Display(CheckMat(C_RM));
1 1 1 . . . . 1
. 1 1 1 1 . . .
. . 1 . 1 1 . 1
. . . 1 1 1 1 .
gap> Display(GeneratorMat(C_RM));
. 1 1 1 1 . . .
1 . 1 1 . 1 . .
1 1 . 1 . . 1 .
1 1 1 . . . . 1
3.5.2 Coduri liniare ciclice
Deniia 3.5.5. Un cod C F
n
q
liniar se numete cod ciclic, dac permutrile
ciclice ale cuvintelor de cod sunt tot cuvinte de cod. n formule, aceast inva-
rian a mulimii C la permutrile ciclice se exprim astfel:
(c
0
, c
1
, . . . , c
n1
) C (c
n1
, c
0
. . . , c
n2
) C.
166 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Fie c = (c
0
, c
1
, . . . , c
n1
) un vector din F
n
q
. Introducem notaia Z(c) =
(c
n1
, c
0
, . . . , c
n2
) pentru permutatrea ciclic a elementelor vectorului c.
Dac identicm spaiul vectorial F
n
q
cu spaiul factor al polinoamelor cu
coecieni n F
q
cu idealul generat de polinomul X
n
1, deci cu spaiul vecto-
rial F
q
[X]/(X
n
1), atunci se vede c permutarea ciclic a elementelor unui
vector, descris de aplicaia liniar Z corespunde n acest spaiu nmulirii cu
X, modulo X
n
1.
Avem n propoziia care urmeaz o caracterizare natural a codurilor ci-
clice. Fie C F
n
q
un cod ciclic. S denim aplicaia
f : C F
q
[X]/(X
n
1)
c = (c
0
, c
1
, . . . , c
n1
) C c
0
+c
1
X +. . . +c
n1
X
n1
F
q
[X]/(X
n
1).
Aplicaia f este evident liniar i bijectiv. S observm i faptul c, inelul
F
q
[X]/(X
n
1) este inel principal. Orice ideal al lui este generat de (imaginea
unui-) un singur polinom, i.e. este format din toi multiplii acestuia. ntr-
adevr, preimaginea unui ideal al inelului factor este ideal n F
q
[X], care ind
ideal principal, este generat de un polinom. Idealul din inelul factor este
generat astfel de imaginea acestui polinom.
Propoziia 3.5.6. Codul liniar C este ciclic exact atunci cnd imaginea lui
este ideal n inelul factor F
q
[X]/(X
n
1) (polinoame modulo X
n
1).
Demonstraie. Deoarece X
n
= 1mod (X
n
1), avem
f(Z(c)) = c
n1
+c
0
X +. . . +c
n2
X
n1
mod (X
n
1)
= c
n1
X
n
+c
0
X +. . . +c
n2
X
n1
mod (X
n
1)
= X f(c)mod (X
n
1).
Astfel f(C) este ideal n F
q
[X]/(X
n
1).
Invers, dac f(C) este ideal n F
q
[X]/(X
n
1), atunci n particular n-
mulirea cu X transform un element
c
0
+c
1
X +. . . +c
n1
X
n1
F
q
[X]/(X
n
1)
ntr-un element
X(c
0
+c
1
X +. . . +c
n1
X
n1
) =
= c
0
X +c
1
X
2
+. . . +c
n1
X
n
= c
n1
+c
0
X +. . . +c
n2
X
n1
F
q
[X]/(X
n
1)
deci odat cu c C avem i Z(c) F
n
q
. Acum dac f(C) este generat
de polinomul g, de grad m, atunci unui cod c C i corespunde f(c) =
3.5. CODURI LINIARE SPECIALE 167
h gmod (X
n
1), deci orice cod este multiplu mod (X
n
1) al polinomului
g. n particular, codul 0 reprezentat i de polinomul X
n
1 este multiplu
(mod (X
n
1)) al polinomului g, deci g|(X
n
1). ntr-adevr, dac cel mai
mare divizor comun (g, X
n
1) = d este un polinom de grad strict mai mic
dect m, atunci d = gh + (X
n
1)p = ghmod (X
n
1) deci d f(C) n
contradicie cu alegerea generatorului idealului f(C). Deci (g, X
n
1) = g
adic g|(X
n
1). Dac polinomul g este i monic (i.e. coecientul lui X
m
este
1), atunci ele este unic.
n felul acesta aplicaia f identic cuvintele de cod din C cu polinoame
de grad cel mult n1 cu coecieni din F
q
. Vom face aceast identicare fr
s ne mai referim la aplicaia f, prin urmare putem spune (n sensul acestei
identicri) c C este un ideal n F
q
[X]/(X
n
1).
S presupunem n continuare faptul c n i q sunt relativ prime, (n, q) = 1.
Deniia 3.5.7. Polinomul g care genereaz idealul C n inelul factor
F
q
[X]/(X
n
1), se numete polinom generator al codului C.
Aadar polinomul generator al codului ciclic C de lungime n este un divizor
al polinomului X
n
1. S calculm matricea generatoare a acestui cod liniar
ciclic C.
Propoziia 3.5.8. Fie C un cod liniar ciclic de lungime n i dimensiune k,
generat de polinomul g = g
0
+g
1
X +. . . +g
m
X
m
de grad m = n k. Atunci
matricea generatoare a codului C este
G =
_
_
_
_
_
g
0
g
1
. . . g
m
0 . . . 0
0 g
0
. . . g
m1
g
m
. . . 0
. . . . . . .
0 0 . . . g
0
g
1
. . . g
m
_
_
_
_
_
,
matrice avnd k linii.
Demonstraie. Ideea construciei acestei matrici este nmulirea polinomului
generator cu X. Cu un uor abuz de notaie putem scrie deci
G =
_
_
_
_
_
_
g
Xg
.
.
.
X
k1
g
_
_
_
_
_
_
168 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
S artm c aceast matrice genereaz codul C. Codul ind ciclic, i
prima linie a matricii ind cuvnt de cod, rezult c celelalte k 1 linii sunt
tot cuvinte de cod. Mai avem de artat c ultima linie permutat ciclic este
tot cuvnt de cod.
Pentru aceasta s observm c, exist un polinom h de grad k
h = h
0
+h
1
X +. . . +h
k
X
k
,
unde deci h
k
= 0, astfel ca X
n
1 = g h, sau g h = 0mod (X
n
1). Scris
aceast egalitate mai explicit este potrivit pentru exprimarea lui X
k
g:
X
k
g =
1
h
k
(h
0
g +h
1
(Xg) +. . . +h
k1
X
k1
g),
ceea ce este o combinaie liniar a celor k linii ale matricii G. Mai avem de
menionat c n mod vizibil g
m
= o matricea G are rangul k, deci este
matrice generatoare pentru codul C.
S mai facem o observaie: e informaia util = (
0
,
1
, . . . ,
k1
). S
calculm G. Avem
G =
_

0

1
. . .
k1
_

_
_
_
_
_
_
g
Xg
.
.
.
X
k1
g
_
_
_
_
_
_
=
0
g +
1
Xg +. . . +
k1
X
k1
g
= f()g.
Pe scurt, putem arma:
Propoziia 3.5.9. Codicarea mesajului este nmulirea "polinomului"
cu generatorul codului g.
Cu alte cuvinte operaia de codicare este o nmulire polinomial! Co-
durile liniare ciclice sunt ntr-adevr speciale, i au avantaje n aplicaii care
cer o codicare rapid.
S vedem cum se face decodicare n cazul codurilor liniare ciclice. n-
cepem cu o deniie.
Deniia 3.5.10. Polinomul
h =
X
n
1
g
se numete polinom de vericare a paritii al codului C.
3.5. CODURI LINIARE SPECIALE 169
Numele acestui polinom este justicat n urmtoarea propoziie.
Propoziia 3.5.11. Fie g i h polinomul generator i polinomul de vericare
a paritii respectiv pentru un cod liniar ciclic C. Atunci
c C c h = 0mod (X
n
1).
Demonstraie. Dac c C atunci exist un polinom astfel ca c = g.
Atunci c h = g h = (X
n
1) = 0mod (X
n
1), i invers.
Astfel detectarea erorii este tot o nmulire polinomial (modulo Xn 1)!
Rezultatul nul semnic lipsa erorii, iar cel nenul existena erorii.
Din egalitatea g h = X
n
1 se vede c rolul polinoamelor g i h este
interschimbabil. Mai precis are loc urmtoarea propoziie.
Propoziia 3.5.12. Fie C un cod liniar ciclic de tip (n, k), i e g polinomul
s[u generator. Atunci codul dual C

este un cod ciclic de tip (n, n k) avnd


polinomul generator
h

= X
deg(h)
h(
1
X
),
unde h =
X
n
1
g
.
Demonstraie. Notm ca mai nainte h = h
0
+ h
1
X + . . . + h
k1
X
k1
i c =
c
0
+c
1
X +. . . +c
n1
X
n1
. Coecientul lui x
i
n produsul polinoamelor c h
este

n1
j=0
c
j
h
ij
i evident exponenii puterilor lui x sunt redui modulo n.
S observm deci c matricea de vericare a paritii codului C este:
_
_
_
_
_
0 . . . 0 0 h
k
0 . . . h
1
h
0
0 . . . 0 h
k
h
k1
0 . . . h
0
0
. . . . . . . . .
h
k
. . . h
2
h
1
h
0
0 . . . 0 0
_
_
_
_
_
pentru care are loc H c
t
= 0 pentru orice cuvnt de cod. Rangul lui H este
n mod vizibil n k deci dimensiunea nucleului este n (n k) = k, de unde
rezult c H este matricea de vericare a paritii pentru codul C generat de
polinomul g.
Deniia 3.5.13. Polinomul h
k
+h
k1
X +. . . +h
0
X
k
se numete polinomul
reciproc al polinomului h.
S dm n sfrit i un exemplu care se poate urmri i fr suport de
calcul deosebit.
170 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Exemplul 3.5.14. Fie q = 2 i n = 7. Avem descompunerea X
7
1 = (X
3
+
X+1)(X
4
+X
2
+X+1). Alegem g = X
3
+X+1. Atunci h = X
4
+X
2
+X+1
iar h

= X
4
+ X
3
+ X
2
+ 1. Matricile de generare i de vericare a paritii
G respectiv H sunt:
G =
_
_
_
_
_
1 1 0 1 0 0 0
0 1 1 0 1 0 0
0 0 1 1 0 1 0
0 0 0 1 1 0 1
_
_
_
_
_
respectiv
H =
_
_
_
0 0 1 0 1 1 1
0 1 0 1 1 1 0
1 0 1 1 1 0 0
_
_
_.
Cum putem obine forme canonice pentru matricea generatoare i ma-
tricea de vericare a paritii pentru un cod ciclic C? Rspunsul este dat n
propoziia care urmeaz.
Propoziia 3.5.15. Fie C un cod liniar ciclic de lungime n i dimensiune k,
generat de polinomul g de grad m = n k. Fie r
(i)
resturile mpririlor lui
X
i
la g, i = 0, 1, . . . , (n 1), respectiv e g
(i)
= X
k
(X
i
r
(i)
). Atunci:
1. Matricea de vericare a paritii codului C este
H =
_
r
(0)
r
(1)
. . . r
(n1)
_
,
unde coloanele sunt evident coecienii polinoamelor r
(i)
.
2. Matricea generatoare a lui C este
G =
_
g
(m)
g
(m+1)
. . . g
(n1)
_
,
unde coloanele sunt coecienii polinoamelor.
Demonstraie. Pentru a demonstra 1 s observm c polinoamele X
i
r
(i)
sunt divizibile cu g, deci X
i
r
(i)
C. Polinoamele g
(i)mod (X
n
1)
sunt liniar
independente i formeaz de liniile unei matrici generatoare pentru C. S mai
observm c aceast matrice va avea i forma canonic.
Pentru punctul 2 s observm c polinoamele r
(i)
sunt diferite dou cte
dou, i matricea H are pentru orice cuvnt de cod c proprietatea:
H c
t
= c
0
r
0
+c
1
r
1
+. . . +c
n1
r
n1
= c
0
+c
1
X +. . . +c
n1
X
n1
mod (g)
= 0mod (g).
3.5. CODURI LINIARE SPECIALE 171
S vedem un exemplu concret pentru toate acestea. Vom face calculele n
GUAVA.
gap> x:=Indeterminate(GF(2),"x");
x
gap> m:=3;
3
gap> g:=x^m+x+1;
x^3+x+Z(2)^0
gap> C:=GeneratorPolCode(f,7,GF(2));
a cyclic [7,4,1..3]1 code defined by generator polynomial over GF(2)
gap> n:=7;
7
gap> k:=n-m;
4
gap> IsCyclicCode(C);
true
gap> GeneratorPol(C);
x^3+x+Z(2)^0
gap> h:=CheckPol(C);
x^4+x^2+x+Z(2)^0
gap> G:=GeneratorMat(C);
[ [ Z(2)^0, Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ],
[ 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ],
[ 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2), Z(2)^0 ] ]
gap> Display(G);
1 1 . 1 . . .
. 1 1 . 1 . .
. . 1 1 . 1 .
. . . 1 1 . 1
gap> H:=CheckMat(C);
[ [ Z(2)^0, 0*Z(2), Z(2)^0, Z(2)^0, Z(2)^0, 0*Z(2), 0*Z(2) ],
[ 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0, Z(2)^0, Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0, Z(2)^0, Z(2)^0 ] ]
gap> Display(H);
1 . 1 1 1 . .
. 1 . 1 1 1 .
. . 1 . 1 1 1
gap> for i in [m..n-1] do
Display(x^k*(x^i-(x^i mod g)) mod (x^n-1));
172 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
od;
% matricea G
x^5+x^4+Z(2)^0 % 1 0 0 0 1 1 0
x^6+x^5+x % 0 1 0 0 0 1 1
x^6+x^5+x^4+x^2 % 0 0 1 0 1 1 1
x^6+x^4+x^3 % 0 0 0 1 1 0 1
gap> for i in [0..(n-1)] do
Display(x^i mod g);
od;
% matricea H^t
Z(2)^0 % 1 0 0
x % 0 1 0
x^2 % 0 0 1
x+Z(2)^0 % 1 1 0
x^2+x % 0 1 1
x^2+x+Z(2)^0 % 1 1 1
x^2+Z(2)^0 % 1 0 1
Aadar matricea generatoare n forma canonic a codului C este
G =
_
_
_
_
_
1 0 0 0 1 1 0
0 1 0 0 0 1 1
0 0 1 0 1 1 1
0 0 0 1 1 0 1
_
_
_
_
_
=
_
I
4
A
_
.
Este interesant s remarcm mcar i pentru frumuseea legturilor din-
tre "teoria corpurilor de numere nite" i teoria codurilor corectoare de erori
urmtorul fapt:
Propoziia 3.5.16. Codurile binare Hamming sunt ciclice.
Demonstraie. Considerm corpul nit F
q
= GF(q), unde q = 2
m
. Grupul
multiplicativ F

q
al acestui corp se poate scrie cu ajutorul unui element primitiv
sub forma mulimii puterilor acestuia, (vezi spre exemplu tabelele exemplelor
de corpuri 3.2.2, de la paginile 120, 121, 123, 125 respectiv). Aadar ecare
putere a elementului primitiv se poate scrie astfel

i
= a
0
+a
1
+a
2

2
+. . . +a
m1

m1
.
Matricea format din aceti coecieni scrii pe coloane este
H =
_
1
2
. . .
2
m
1
_
,
3.5. CODURI LINIARE SPECIALE 173
o matrice de tip (m, 2
m
1) i conine toi vectorii binari nenului de lungime
m. Codul denit de H este deci codul Hamming de tipul (2
m
1, m, 3)!
Un vector de lungime n = 2
m
1, c = (c
0
, c
1
, . . . , c
n1
), este cuvnt de cod
dac H c
t
= 0, adic n termenii polinomiali c() = 0. S ne aducem aminte
acum c este rdcin numai pentru polinoamele multiplii ai polinomului
su minimal s-l notm pe acesta acum g deci g|c, adic codul C este
generat de g!
S amintim fr demonstraie i propoziia
Propoziia 3.5.17. Orice cod simplex este ciclic.
Ultima ntrebare pe care o punem acum este: cum se face corectarea erorii
n cazul codurilor liniare ciclice?
Propoziia 3.5.18. Fie codul liniar ciclic C generat de polinomul g, matricea
de vericare a paritii H. Atunci sindromul S(y) al unui mesaj recepionat
y are proprietatea
S(y) = ymod (g).
Prin urmare dac diferena e = y c fa de un cuvnt de cod c este eroarea
produs n cursul transmisiei, atunci S(y) = S(e). Dac n plus algem cuvn-
tul de cod c astfel ca deg(e) < deg(g), atunci S(y) = e.
Demonstraie. Fie y = (y
0
, y
1
, . . . , y
n1
). Atunci
S(y) = H y
t
= y
0
r
0
+y
1
r
1
+. . . +y
n1
r
n1
= y
0
+y
1
X +. . . +y
n1
X
n1
mod (g)
= ymod (g).
Pe baza acestei propoziii se observ deci c sindromul cuvntului y este
nul exact atunci cnd polinomul y este nul mod y. Aadar n loc s nmulim
mesajul recepionat cu polinomul de vericare a paritii h putem mpri cu
polinomul de generare g. Mai mult, deoarece codul este ciclic dintr-un singur
reprezentant al unei clase de echivalen se pot obine toate prin nmulire mod
X
n
1. Toate acestea se pot nsuma n urmtorul algoritm de decodicare:
Propoziia 3.5.19. Fie C un cod ciclic de lungime n generat de polinomul g
peste un corp nit F
q
. S presupunem c C poate corecta t erori.
1. Detectarea erorii. mprim mesajul recepionat y la polinomul g, i
reinem restul r. Avem deci r = S(y) = S(e) = e, unde vectorul e este
eroarea cea mai probabil.
174 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
2. Corectarea erorii.Calculm s
i
= X
i
r(mod g) pentru toi i : 0 i
(n1). Dac n lista s
i
se gsete un cuvnt s
j
de msur Hamming mai
mic dect t, atunci eroarea cea mai probabil este X
nj
s
j
mod (X
n
1).
n caz contrar eroarea nu poate corectat.
Exemplele 3.5.20. Iat i dou exemple de calcul comentate.
S considerm un polinom divizor al polinomului x
7
1. Pentru aceasta
descompunem polinomul x
7
1 n factori...bineneles cu sprijinul GAP.
gap> Factors(PolynomialRing(GF(2)),x^7-1);
[ x+Z(2)^0,
x^3+x+Z(2)^0,
x^3+x^2+Z(2)^0 ]
Vom alege ca polinom generator al unui cod ciclic de lungime 7 polinomul
g = x
3
+x + 1.
gap> x:=Indeterminate(GF(2),"x");
x
gap> g:=x^3+x+1; % polinom generator
x^3+x+Z(2)^0
gap> C:=GeneratorPolCode(g,7,GF(2)); % cod ciclic generat
a cyclic [7,4,3]1 code defined by generator pol. over GF(2)
gap> MinimumDistance(C);
3
gap> Display(GeneratorMat(C));
1 1 . 1 . . .
. 1 1 . 1 . .
. . 1 1 . 1 .
. . . 1 1 . 1
gap> Display(CheckMat(C));
1 . 1 1 1 . .
. 1 . 1 1 1 .
. . 1 . 1 1 1
gap> p:=x^6+x^4+x^3+x+1; % mesaj recepionat
x^6+x^4+x^3+x+Z(2)^0
gap> r:=p mod g;
x+Z(2)^0
gap> for i in [0..6] do Print(i," ",x^i*r mod g,"\n"); od;
0 x+Z(2)^0
3.5. CODURI LINIARE SPECIALE 175
1 x^2+x
2 x^2+x+Z(2)^0
3 x^2+Z(2)^0
4 Z(2)^0 % pol. ms. minim,
5 x % sau,
6 x^2 % sau.
gap> e:=x^3*(x^4*r mod g) mod (x^7-1); % polinom eroare...
x^3
gap> e:=x^2*(x^5*r mod g) mod (x^7-1); % sau...
x^3
gap> e:=x*(x^6*r mod g) mod (x^7-1); % sau.
x^3
gap> p-e;
x^6+x^4+x+Z(2)^0; % mesaj corectat
S considerm un polinom divizor al polinomului x
15
1. Descompunem
tot cu ajutorul GAP polinomul x
7
1 n factori.
gap> Factors(PolynomialRing(GF(2)),x^15-1);
[ x+Z(2)^0,
x^2+x+Z(2)^0,
x^4+x+Z(2)^0,
x^4+x^3+Z(2)^0,
x^4+x^3+x^2+x+Z(2)^0 ]
S alegem ca polinom generator al unui cod ciclic de lungime 15 polino-
mul
g = (x
4
+x + 1) (x
4
+x
3
+x
2
+x + 1) = x
8
+x
7
+x
6
+x
4
+ 1.
gap> g:=x^8+x^7+x^6+x^4+1; % polinom generator
x^8+x^7+x^6+x^4+Z(2)^0
gap> C:=GeneratorPolCode(g,15,GF(2)); % cod ciclic generat
a cyclic [15,7,1..5]3..5 code defined by gen. pol. over GF(2)
gap> MinimumDistance(C); % distana minim
5
gap> Display(GeneratorMat(C));
1 . . . 1 . 1 1 1 . . . . . .
. 1 . . . 1 . 1 1 1 . . . . .
. . 1 . . . 1 . 1 1 1 . . . .
. . . 1 . . . 1 . 1 1 1 . . .
176 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
. . . . 1 . . . 1 . 1 1 1 . .
. . . . . 1 . . . 1 . 1 1 1 .
. . . . . . 1 . . . 1 . 1 1 1
gap> Display(CheckMat(C));
1 1 . 1 . . . 1 . . . . . . .
. 1 1 . 1 . . . 1 . . . . . .
. . 1 1 . 1 . . . 1 . . . . .
. . . 1 1 . 1 . . . 1 . . . .
. . . . 1 1 . 1 . . . 1 . . .
. . . . . 1 1 . 1 . . . 1 . .
. . . . . . 1 1 . 1 . . . 1 .
. . . . . . . 1 1 . 1 . . . 1
gap> p:=x^5+x^4+x^3+1; % mesaj recepionat
x^5+x^4+x^3+Z(2)^0
gap> r:=p mod g;
x^5+x^4+x^3+Z(2)^0
gap> for i in [0..14] do Print(i," ",x^i*r mod g,"\n"); od;
0 x^5+x^4+x^3+Z(2)^0
1 x^6+x^5+x^4+x
2 x^7+x^6+x^5+x^2
3 x^4+x^3+Z(2)^0
4 x^5+x^4+x
5 x^6+x^5+x^2
6 x^7+x^6+x^3
7 x^6+Z(2)^0 % msur minim (2)
8 x^7+x % sau... (tot 2)
9 x^7+x^6+x^4+x^2+Z(2)^0
10 x^6+x^5+x^4+x^3+x+Z(2)^0
11 x^7+x^6+x^5+x^4+x^2+x
12 x^5+x^4+x^3+x^2+Z(2)^0
13 x^6+x^5+x^4+x^3+x
14 x^7+x^6+x^5+x^4+x^2
gap> e:=x^(15-7)*(x^7*r mod g) mod (x^15-1); % eroarea prob.,
x^14+x^8
gap> e:=x^(15-8)*(x^8*r mod g) mod (x^15-1); % sau...
x^14+x^8
gap> p-e; % mesaj trimis
x^14+x^8+x^5+x^4+x^3+1
3.5. CODURI LINIARE SPECIALE 177
3.5.3 Coduri BCH
Printre codurile ciclice cele mai performante se numr codurile BCH. Avan-
tajulprincipal pe care-l prezint aceste coduri este faptul c distana minim
a lor poate prevzut de la nceput prin construcia codului.
ncepem scurta lor prezentare prin intermediul unui exemplu, care
dezvluie oarecum ideea care se a n spatele construciei acestor coduri.
Plecm cu ideea aritmeticii binare i a codurilor Hamming, denite de
matrici de vericare a paritii care conin pe coloan toate numerele nenule
pn la 2
m
1, pentru un m dat. tim c aceste coduri au distana minim 3,
deci detecteaz dou erori i corecteaz una. Sindromul unei erori este chiar
numrul de ordine al simbolului eronat. S alegem m = 4, i deci "numerele"
corpului nit GF(2
4
) de 16 elemente.
S ne propunem construirea unui cod care corecteaz dou erori! Pentru
aceasta este natural ncercm dublarea numrul liniilor matricii de vericare
a paritii codului Hamming de lungime 15 = 2
4
1, n ideea de a avea un
sindrom al erorii mai bogat n informaie. S considerm deci un cod cu
matricea de detectare a erorii de tipul urmtor:
H =
_
1 2 . . . 15
f(1) f(2) . . . f(15)
_
,
unde numerele se neleg n forma binar scrise pe coloan, iar funcia f ne-
precizat urmeaz s e aleas corespunztor. S presupunem c vectorul y
recepionat nu conine eroare. Atunci sindromul S(y) =
_
0 f(0)
_
, i nu
avem nevoie de funcia f. S presupunem acum c avem exact o eroare n
poziia i. Acum sindromul este S(y) =
_
i f(i)
_
. Funcia f trebuie aleas
astfel c, dac pentru sindromul mesajului recepionat valoarea acestei funcii
pentru prima jumtate a sindromului este egal cu cea de a doua jumtate,
s putem ti c avem o singur eroare!
S presupunem acum c avem exact dou erori, n poziiile i i j respectiv.
Atunci sindromul va
S(y) =
_
i +j
f(i) +f(j)
_
.
Conform cerinei precedente funcia f trebuie s NU aib proprietatea f(i +
j) = f(i) + f(j), pentru a nu se confunda cu sindromul pentru o singur
eroare! Se exclude deci funcia f(i) = i, dar i funcia f(i) = i
2
, deoarece
n aritmetica binar (i + j)
2
= i
2
+ j
2
. Ne trebuie o funcie deci pentru care
sistemul de ecuaii
_
i +j = s
1
f(i) +f(j) = s
2
,
178 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
s aib soluie unic. S facem un experiment cu funcia f(i) = i
3
. Avem deci
de rezolvat sistemul
_
i +j = s
1
i
3
+j
3
= s
2
,
Avem ns (i +j)
3
= i
3
+j
3
+ij(i +j), deci i i j sunt rdcini ale unei ecuaii
de gradul doi (s
1
= 0):
X
2
+s
1
X +
s
3
1
s
2
s
1
= 0. (3.12)
Acum deoarece totul se ntmpl ntr-un corp de numere, este valabil "teoria
ecuaiei de gradul doi" adic: dac discriminantul ecuaiei este ptrat perfect
nenul, avem dou soluii diferite, deci dou erori! Dac discriminantul este
nul, avem o singur rdcin, deci suntem n cazul unei singure erori. Ca
bonus, am obinut i situaia a patra neconsiderat nc, a unui numr de
erori mai mare dect doi: dac discriminantul ecuaiei nu este ptrat perfect,
avem 3 sau mai multe erori.
Observaia 3.5.21. S observm c, folosirea polinomului reciproc polino-
mului 3.12 adic a polinomului
1 +s
1
X +X
2
s
3
1
s
2
s
1
= 0 (3.13)
este mai convenabil, deoarece gradul acestuia arat direct numrul erorilor:
pentru dou erori acesta are gradul doi, pentru o eroare are gradul unu, iar
pentru nici o eroare este constant.
S dm acum deniia general a codurilor BCH. ncepem cu o teorem
care pune bazele deniiei acestor coduri. O dm aici fr demonstraie.
Teorema 3.5.22. Fie c, d, n, q N, q = p
n
, p un numr prim, i 2 d n.
Fie m ordinul multiplicativ al lui numrului qmod n. Fie de asemenea o
rdcin primitiv de ordin n n corpul nit F
q
m i e m

i polinomul minimal
al lui
i
. Notm cu I mulimea I = {c, c + 1, . . . , c + d 2}. Fie n sfrit C
un cod ciclic de lungime n peste corpul F
q
.
Sunt echivalente urmtoarele armaii:
1. c C c(
i
) = 0, pentru orice i I.
2. Polinomul generator al codului C este cel mai mic multiplu comun al
polinoamelor m

i , i I.
3.5. CODURI LINIARE SPECIALE 179
3. Matricea de vericare a paritii codului C este
H =
_
_
_
_
_
_
1
c
. . .
c(n1)
1
c+1
. . .
(c+1)(n1)
1
.
.
.
.
.
.
.
.
.
1
c+d2
. . .
(c+d2)(n1)
_
_
_
_
_
_
Deniia 3.5.23. Codul C care are proprietile din propoziia precedent
se numete cod BCH (dup numele celor trei descoperitori, Bose, Chaudhuri,
Hocquenghem). Distana minim a acestui cod datorit chiar construciei
lui este cel puin d, i se numete distan proiectat.
Dac c = 1 atunci spunem c C este cod BCH n sens restrns.
Dac n = q
m
1, codul C se numete primitiv.
Deniia dat codului BCH este justicat de urmtoarea propoziie.
Propoziia 3.5.24. Fie C un cod BCH cu distana proiectat d. Atunci
distana minim a codului C este cel puin d.
Demonstraie. Trebuie s artm c matricea de control al paritii H al co-
dului C are cel mult d 1 coloane liniar dependente peste corpul GF(p
m
),
conform punctului 3 din propoziia 3.4.11 de la pagina 159. S alegem d 1
coloane arbitrare. Fie primele elemente ale ale acestora

ci
1
,
ci
2
, . . . ,
ci
d1
.
Subdeterminantul de ordinul d 1 este

c(i
1
+i
2
+...+i
d1
)

1 1 . . . 1

i
1

i
2
. . .
i
d1
.
.
.
.
.
.
.
.
.
.
.
.

(d2)i
1

(d2)i
2
. . .
(d2)i
d1

=
c(i
1
+i
2
+...+i
d1
)

1l<kd1
(
i
k

i
l
) = 0,
deci diferit de 0, ceea ce demonstreaz armaia propoziiei.
Cum se face codicarea i decodicarea codurilor BCH? Fie x un cuvnt
de cod i e y cuvntul recepionat. S notm ca de obicei vectorul de eroare
cu e = w v. Fie o rdcin primitiv a unitii de ordin n. Sindromul lui
y este:
S(y) = H y
t
=
_
S
c
S
c+1
. . . S
c+d2
_
t
,
180 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
unde
S
j
= y(
j
) = x(
j
) +e(
j
), c j c +d 2.
Fie exprimarea lui e sub forma polinomial
e = e
i
1
X
i
1
+e
i
2
X
i
2
+. . . +e
i
r
X
i
r
, (e
i
k
= 0, pentru orice 1 k r).
Presupunem c r (d1)/2, deci avem i 2r d. Deoarece x(
j
) = 0 pentru
orice c j c +d 2 putem scrie sitemul de ecuaii
S
j
= e(
ij
) = e
i
1

i
1
j
+e
i
2

i
2
j
+. . . +e
i
r

i
r
j
= 0,
unde necunoscutele sunt coecienii e
i
k
. S denim
s = (X
i
1
) (X
i
2
) . . . (X
i
r
)
= s
0
+s
1
X +. . . +s
r1
X
r1
+X
r
,
de unde putem scrie
s
0
+s
1

i
k
+. . . +s
r1

i
k
(r1)
+
i
k
r
= 0, pentru orice 1 k r.
Dac nmulim aceste ecuaii cu e
i
k

i
k
j
i adunnd ecuaiile obinem sistemul
de ecuaii
s
0
S
j
+s
1
S
j+1
+. . . +s
r1
S
r+j1
+S
r+j
= 0, j = c, c + 1, . . . , c +r 1,
unde necunoscutele sunt coecienii s
0
, s
1
, . . . , s
r1
. Matricea acestui sistem
de ecuaii este
S =
_
_
_
_
_
_
S
c
S
c+1
. . . S
c+r1
S
c+1
S
c+2
. . . S
c+r
.
.
.
.
.
.
.
.
.
.
.
.
S
c+r1
S
c+r
. . . S
c+2r2
_
_
_
_
_
_
.
S remarcm c S = V DV
t
, unde
V =
_
_
_
_
_
_
1 1 . . . 1

i
1

i
2
. . .
i
r
1
.
.
.
.
.
.
.
.
.

(r1)i
1

(r1)i
2
. . .
(r1)i
r
_
_
_
_
_
_
i
D =
_
_
_
_
_
_
e
i
1

ci
1
0 . . . 0
0 e
i
2

ci
2
. . . 0
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . e
i
r

ci
r
_
_
_
_
_
_
.
3.5. CODURI LINIARE SPECIALE 181
S observm acum c det(S) = 0 det(V ) = 0 i
1
, i
2
, . . . , i
r
sunt distincte
dou cte dou.
Astfel avem urmtorul algoritm de decodicare a codurilor BCH.
Propoziia 3.5.25 (Decodicarea codurilor BCH). Fie C un cod BCH cu
distana proiectat d 2t+1. Presupunem c ntr-un cuvnt de cod recepionat
y exist cel mult t erori. Decodicare va avea urmtorii pai:
1. Determinm sindromul
S(y) =
_
S
c
S
c+1
. . . S
c+d2
_
t
.
2. determinm numrul maxim r t al ecuaiilor
s
0
S
j
+s
1
S
j+1
+. . . +s
r1
S
r+j1
+S
r+j
= 0,
astfel ca matricea sistemului s e nesingular. Acest numr r este
egal cu numrul efectiv de erori n cuvntul recepionat. Rezolvm acest
sistem maximal.
3. Determinm rdcinile polinomului
s = s
0
+s
1
X +. . . +s
r1
X
r1
+X
r
.
4. Determinm poziiile erorilor rezolvnd sistemul de ecuaii
e
i
1
X
i
1
+e
i
2
X
i
2
+. . . +e
i
r
X
i
r
, (e
i
k
= 0, pentru orice 1 k r).
S dm un exemplu de calcul pentru codicare i decodicare.
Exemplul 3.5.26. Fie un element primitiv al corpului GF(2
4
), i e
4
+
+1 = 0. Fie g = x
10
+x
8
+x
5
+x
4
+x
2
+x+1 polinomul generator al unui cod
BCH de tip (15, 5). S presupunem c recepionm mesajul 110000011010000.
S determinm cuvntul de cod transmis i mesajul util.
Presupunem cel mult dou erori. Determinm sindromul erorii, deci sin-
dromul cuvntului recepionat.
S
i
= S(
i
) = e(
i
) = (
i
)
i
1
+ (
i
)
i
2
= X
i
+Y
i
,
unde am notat X =
i
1
i Y =
i
2
. Avem
S
3
1
= S
3
+XY S
1
,
182 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
de unde obinem sistemul
_
X +Y = S
1
XY = S
2
S
3
/S
1
.
Vom folosi tabela puterilor elementului primitiv din corpul nit GF(2
4
) de
la pagina 124. Obinem pentru cuvntul recepionat:
S
1
= y() =
3
+ =
9
S
2
= y(
2
) =
3
S
3
= y(
3
) =
3
+
2
+ =
11
S
4
= y(
4
) =
3
i avem de rezolvat ecuaia de gradul doi
z
2
+
9
z +
3
+
2
+ 1 = 0.
Rdcinile acestei ecuaii sunt
2
i
11
, i ntru-ct codul este binar, putem
spune imediat c avem dou erori, n poziia 2 i 11 respectiv.
Cuvntul de cod transmis este deci
111000011011000,
iar mesajul util
111000.
3.5.4 Baza Grbner i decodicarea codurilor BCH
Exist o legtur profund ntre codurile algebrice ciclice i baza Grbner ,
care este obiectul cercetrilor curente. Nu vom intra n detalii n spaiul acestei
cri, ns nu ne putem abine s nu ilustrm aceast legtur cu prezentarea
chiar i numai cu minime comentarii ale unor exemple preluate din [35].
Fie C un cod BCH care are capacitatea de corectare proiectat a t erori
i e (s
1
, s
2
, . . . , s
2t
) vectorul sindromului unui mesaj recepionat. Ideea (lui
Cooper) este de a interpreta poziiile eronate ale mesajului recepionat drept
rdcinile unui sistem de ecuaii ale sindromurilor, de forma urmtoare:
_

_
f
1
=
1
+
2
+. . . +
t
s
1
= 0
f
2
=
3
1
+
3
2
+. . . +
3
t
s
2
= 0
. . .
f
t
=
2t1
1
+
2t1
2
+. . . +
2t1
t
s
t
= 0.
(3.14)
3.5. CODURI LINIARE SPECIALE 183
n consecin, polinomul ale crui rdcini sunt erorile mesajului recepionat,
este generatorul idealului principal
_
t

i=1
g
i
f
i
| g
i
F
2
(s
1
, s
2
, . . . , s
t
)[
1
,
2
, . . . ,
t
]
_
F
2
(s
1
, s
2
, . . . , s
t
)[
1
],
prin urmare poate calculat cu algoritmul bazei Grbner ! Aceasta este n linii
mari ideea metodei de detectare a eroriilor. S vedem dou exemple concrete.
Exemplele 3.5.27.
Fie C un cod BCH binar care corecteaz t = 2 erori. Considerm inelul
de polinoame P = F
2
(s
1
, s
2
)[z
1
, z
2
] i idealul
I = (z
1
+z
2
s
1
, z
3
1
+z
3
2
s
2
).
Baza Grbner al idealului I este
{s
1
z
2
2
+s
2
1
z
2
+s
3
1
+s
2
, z
1
+z
2
+s
1
}.
Primul polinom d chiar ecuaia 3.12 de la pagina 178! Iat i programul
scris n Singular:
ring R=(2,s1,s2),(z1,z2),lp;
ideal I=z1+z2-s1,z1^3+z2^3-s2
groebner(I);
Astfel exemplul 3.5.26 de la pagina 181 se poate repeta identic aici.
Fie C un cod BCH binar care corecteaz t = 3 erori. Considerm inelul
de polinoame P = F
2
(s
1
, s
2
, s
3
)[z
1
, z
2
, y
]
i idealul
I = (z
1
+z
2
+z3 s
1
, z
3
1
+z
3
2
+z
3
3
s
2
, z
5
1
+z
5
2
+z
5
3
s
3
).
Baza Grbner al idealului I este
{(s
3
1
+s
2
) z
3
3
+ (s
4
1
+s
1
s
2
) z
2
3
+ (s
2
1
s
2
+s
3
) z
3
+
(s
6
1
+s
3
1
s
2
+s
1
s
3
+s
2
2
),
(s
3
1
+s
2
) z
2
2
+ (s
3
1
+s
2
) z
2
z
3
+ (s
4
1
+s
1
s
2
) z
2
+
(s
3
1
+s
2
) z
2
3
+ (s
4
1
+s
1
s
2
) z
3
+ (s
2
1
s
2
+s
3
),
z
1
+z
2
+z
3
+s
1
}
Primul polinom are o singur necunoscut z
3
, i este polinomul care are
drept rdcini erorile cuvntului recepionat. Programul scris n Singular
pentru calculul acestui polinom este:
184 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
ring R=(2,s1,s2,s3),(z1,z2,3),lp;
ideal I=z1+z2+z3-s1,z1^3+z2^3+z3^3-s2,z1^5+z2^5+z3^5-s3;
groebner(I);
S mai concretizm exemplul pentru a simula o eroare, dou erori sau
trei erori. Dac codul C este codul BCH de tip (15, 5, 7) i polinomul
reciproc primului polinom al bazei Grbner este (dup o normalizare a
acestuia)
(z) = 1 +s
1
z +
s
3
1
s
2
+s
3
s
3
1
+s
2
z
2
+
s
6
1
+s
3
1
s
2
+s
1
s
3
+s
2
2
s
3
1
+s
2
z
3
, (3.15)
1. S presupunem c avem o singur eroare. Fie polinomul erorii
e() =
3
. Sindromul va
_

3

9
1
_
t
Aceste componente vor concretiza polinomul 3.15 sub forma
(z) = 1 +
3
z,
deci va localiza eroarea n mod corect.
2. S presupunem acum c avem dou erori. Fie polinomul erorii
e() =
2
+
3
. Sindromul va
_

6

5
_
t
Polinomul 3.15 devine
(z) = 1 +
6
z +
5
z
2
= (1 +
2
z)(1 +
3
z),
deci din nou erorile sunt identicate.
3. n sfrit s presupunem acum c avem trei erori. Fie polinomul
erorii e() = +
2
+
3
. Sindromul va
_

11

11
0
_
t
Polinomul 3.15 devine
(z) = 1+
11
z +
13
z
2
+
6
z
3
= (1+ z)(1+
2
z)(1+
3
z),
i erorile sunt identicate.
3.5. CODURI LINIARE SPECIALE 185
3.5.5 Coduri Reed-Solomon
O form particular a codului BCH este codul RS (Reed-Solomon).
Deniia 3.5.28. Un cod BCH peste F
q
n sens restns (m = 1), care are
distana proiectat d i lungimea n = q 1 se numete cod Reed-Solomon, pe
scurt cod RS.
Propoziia 3.5.29. Polinomul generator al codului RS este
g =
d1

i=1
(x
i
),
unde este un element primitiv al corpului F
q
. Distana minim a codului
este d.
Demonstraie. Pe baza punctului 2 din teorema 3.5.22 rezult c ntr-adevr
polinomul generator al codului este cel indicat. Propoziia anterioar arat c
distana minim este cel puin d. Cum avem i inegalitatea contrar, rezult
c distana minim este d.
O construcie echivalent a codurilor RS este urmtoarea. Fie

0
,
1
, . . . ,
n1
, n elemente distincte n corpul nit F
q
, unde n q. Ma-
tricea generatoare a codului RS de tip (n, k) este matricea
G =
_
_
_
_
_
_
1 1 . . . 1

0

1
. . .
n1
.
.
.
.
.
.
.
.
.
.
.
.

k1
0

k1
1
. . .
k1
n1
_
_
_
_
_
_
.
Se poate vedea destul de uor (orice submatrice de ordin k al lui G este de tip
Vandermonde) c distana minim a acestui cod este n k + 1. Codicarea
unui mesaj util u de lungime k n cuvntul de cod c se face prin nmulirea
u G = c,
sau echivalent, prin calculul valorii polinomului u n punctele
0
,
1
, . . . ,
n1
.
O alt construcie a codurilor RS (prescurtate) este urmtoarea. Alegem
un element F
q
al crui ordin este m n. n construcia precedent
alegem
0
= 1,
1
= , . . . ,
n1
=
n1
. Atunci matricea generatoare a unui
cod RS este
G =
_
_
_
_
_
_
_
_
1 1 1 . . . 1
1
2
. . .
n1
1
2

4
. . .
2(n1)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
k1

2(k1)
. . .
(k1)(n1)
_
_
_
_
_
_
_
_
.
186 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
nc o deniie putem obine dac impunem unui cuvnt de lungime n m
privit ca polinom de grad n 1 s se anuleze n punctele ,
2
, . . . ,
nk
,
adic matricea de control a paritii pentru acest cod s e
H =
_
_
_
_
_
_
1
2
. . .
n1
1
2

4
. . .
2(n1)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
nk

2(nk)
. . .
(nk)(n1)
_
_
_
_
_
_
.
Acest cod este cod MDS, i este echivalent cu cel precedent n cazul n = m.
3.6 Aplicaii exemple n GAP - GUAVA
A
sosit momentul s punem n funciune cteva coduri, s facem cteva
exemple de codicri i decodicri. Prin erori simulate putem testa re-
spectiv ilustra capacitatea de detectare i corectare a erorilor a ctorva coduri.
Vom apela bineneles la pachetul GUAVA, deja amintit.
Pachetul GUAVA se ncarc n GAP cu comanda:
gap> LoadPackage("guava");
Va interesant s relum chiar exemplele 3.4.7 de la pagina 154, s in-
terogm parametrii codurilor i s punem n funciune algoritmii de codicare
i decodicare. Vom parcurge mai nti cele ase exemple pe rnd.
1. Prima instruciune este denirea codului. GUAVA cunoate mai multe
modaliti de denire a unui cod: prin matricea generatoare, prin ma-
tricea de vericare a paritii, prin intermediul denumirii codurilor con-
sacrate etc.
Denim aici codul prin matricea de vericare a paritii i am i
matricea generatoare.
gap> H:=Z(2)*[[1,1,1,1,1,1,1]];
[ [ Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0 ] ]
gap> Display(H);
1 1 1 1 1 1 1
gap> C:=CheckMatCode(H,GF(2));
a linear [7,6,1..2]1 code defined by check matrix over GF(2)
gap> G:=GeneratorMat(C);
[ [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ],
[ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ],
3.6. APLICAII EXEMPLE N GAP - GUAVA 187
[ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ],
[ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), Z(2)^0 ],
[ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0 ],
[ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0 ] ]
gap> Display(G);
1 . . . . . 1
. 1 . . . . 1
. . 1 . . . 1
. . . 1 . . 1
. . . . 1 . 1
. . . . . 1 1
Interogm parametrii codului.
gap> Size(C); % numrul cuvintelor de cod
64
gap> WordLength(C); % lungimea coului
7
gap> Dimension(C); % dimensiunea codului
6
gap> Redundancy(C); % numrul simbolurilor de control
1
gap> MinimumDistance(C); % distana minim
2
gap> CoveringRadius(C); % raza de acoperire
1
gap> IsLinearCode(C); % este cod liniar?
true
gap> IsMDSCode(C); % este cod MDS?
true
gap> IsPerfectCode(C); % este cod perfect?
false
gap> List(C); % lista cuvintelor cod
[ [ 0 0 0 0 0 0 0 ], [ 0 0 0 0 0 1 1 ], [ 0 0 0 0 1 0 1 ],
[ 0 0 0 0 1 1 0 ], [ 0 0 0 1 0 0 1 ], [ 0 0 0 1 0 1 0 ],
[ 0 0 0 1 1 0 0 ], [ 0 0 0 1 1 1 1 ], [ 0 0 1 0 0 0 1 ],
...
[ 1 1 1 1 0 0 0 ], [ 1 1 1 1 0 1 1 ], [ 1 1 1 1 1 0 1 ],
[ 1 1 1 1 1 1 0 ] ]
Codul dual i parametrii acestuia.
188 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
gap> Cd:=DualCode(C); % definirea codului dual
a cyclic [7,1,7]3 dual code
gap> Display(CheckMat(Cd)); % matricea verif. a parit.
1 1 . . . . .
. 1 1 . . . .
. . 1 1 . . .
. . . 1 1 . .
. . . . 1 1 .
. . . . . 1 1
gap> Display(GeneratorMat(Cd)); % matricea generatoare
1 1 1 1 1 1 1
gap> MinimumDistance(Cd); % ditana minim
7
gap> CoveringRadius(Cd); % raza de acoperire
3
Codicare i decodicare: codicarea este nmulirea mesajului util cu
matricea generatoare, respectiv adugarea la mesajul util al unui singur
simbol de control, suma mod 2 a simbolurilor mesajului util. Decodi-
care nu exist, matricea de vericare a paritii detecteaz o singur
eroare. Iat un exemplu:
gap> u:=Codeword("110110"); % mesaj util
[ 1 1 0 1 1 0 ]
gap> c:=u*G; % mesaj codificat
[ 1 1 0 1 1 0 0 ]
gap> H*c; % verificarea codului, ok
[ 0 ]
gap> c:=Codeword("100110"); % mesaj recepionat eronat
[ 1 0 0 1 1 0 ]
gap> H*c; % detectarea erorii, ok
[ 1 ]
2. Pentru acest cod GUAVA are o deniie intern.
gap> C:=RepetitionCode(7,GF(2));
a cyclic [7,1,7]3 repetition code over GF(2)
Parametrii codului sunt:
gap> Size(C); % numrul cuvintelor de cod
3.6. APLICAII EXEMPLE N GAP - GUAVA 189
2
gap> WordLength(C); % lungimea unui cuvnt de cod
7
gap> Dimension(C); % dimensiunea codului
1
gap> Redundancy(C); % numrul simbolurilor de control
6
gap> MinimumDistance(C);% distana minim
7
gap> CoveringRadius(C); % raza de acoperire
3
gap> IsLinearCode(C); % este cod liniar?
true
gap> IsMDSCode(C); % este cod MDS?
true
gap> IsPerfectCode(C); % este cod perfect?
true
gap> List(C); % lista cuvintelor de cod
[ [ 0 0 0 0 0 0 0 ], [ 1 1 1 1 1 1 1 ] ]
Codul ind perfect i avnd raza de acoperire 3 = (71)/2, orice vector
al spaiului vectorial F
7
2
se a ntr-o bil de raz cel mult 3 cu centrul
ntr-un cuvnt de cod. n acest caz simplu avantajul simplitii extreme
este c aceste proprieti pot vzute i nemijlocit avem doar dou
bile de raz 3 care conin mpreun toi vectorii spaiului. Calculm i
matricea generatoare i matricea de vericare a paritii.
gap> G:=GeneratorMat(C);
[[ Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0 ]]
gap> Display(G);
1 1 1 1 1 1 1
gap> H:=CheckMat(C);
[[ Z(2)^0, Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ],
[ 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ],
[ 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ],
[ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2), 0*Z(2) ],
[ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0 ]]
gap> Display(H);
1 1 . . . . .
. 1 1 . . . .
190 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
. . 1 1 . . .
. . . 1 1 . .
. . . . 1 1 .
. . . . . 1 1
Codul dual, matricea generatoare i matricea de vericare a paritii
pentru acesta.
gap> Cd:=DualCode(C);
a cyclic [7,6,2]1 dual code
gap> Hd:=Display(CheckMat(Cd));
1 1 1 1 1 1 1
gap> Gd:=Display(GeneratorMat(Cd));
1 1 . . . . .
. 1 1 . . . .
. . 1 1 . . .
. . . 1 1 . .
. . . . 1 1 .
. . . . . 1 1
S vedem acum o codicare i decodicare, i.e. corectare de eroare.
Pentru aceasta redenim mai nti codul prin propria lui matrice gen-
eratoare, pentru a-l face GUAVA s uite structura de cod ciclic i s-l
considere numai cu structura de cod liniar. Aceasta va avea ca efect
utilizarea implicit a algoritmului de decodicare general pentru coduri
liniare, bazat pe calcului sindromului.
gap> C1:=GeneratorMatCode(G,GF(2));
a linear [7,1,7]3 code defined by generator matrix over GF(2)
gap> C1=C;
true
Mesaje utile posibile sunt numai dou: 0 i 1. Cele dou cuvinte de cod
sunt pur i simplu repetrile acestor simboluri de nc ase ori. Decodi-
carea unui cuvnt recepionat se face prin cuvntul de cod cu care are
mai multe coincidene.
gap> u:=Codeword("1"); % mesajul util
[ 1 ]
gap> c:=u*G; % cuvntul de cod generat
[ 1 1 1 1 1 1 1 ]
3.6. APLICAII EXEMPLE N GAP - GUAVA 191
gap> H*c; % testarea cuvntului, ok
[ 0 0 0 0 0 0 ]
gap> List(C); % lista cuvintelor de cod
[ [ 0 0 0 0 0 0 0 ], [ 1 1 1 1 1 1 1 ] ]
gap> c:=Codeword("1011100"); % mesaj eronat, simulat
[ 1 0 1 1 1 0 0 ]
gap> Decodeword(C,c); % decodificare
[ 1 1 1 1 1 1 1 ]
gap> c:=Codeword("1001100"); % mesaj eronat, simulat
[ 1 0 0 1 1 0 0 ]
gap> Decodeword(C,c); % decodificare
[ 0 0 0 0 0 0 0 ]
3. Codul de repetiie dubl. Denim mai nti matricea de vericare a
paritii, apoi codul liniar determinat de aceast matrice.
gap> H:=Z(2)*[[1, 0, 0, 1, 0, 0],
[0, 1, 0, 0, 1, 0],
[0, 0, 1, 0, 0, 1]];
[ [ Z(2)^0, 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ],
[ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), Z(2)^0 ] ]
gap> Display(H);
1 . . 1 . .
. 1 . . 1 .
. . 1 . . 1
gap> C:=CheckMatCode(H,GF(2));
a linear [6,3,1..2]2..3 code defined by check matrix over GF(2)
Iat i parametrii acestui cod:
gap> Size(C); % numrul cuvintelor de cod
8
gap> WordLength(C); % lungimea coului
6
gap> Dimension(C); % dimensiunea codului
3
gap> Redundancy(C); % numrul simbolurilor de control
3
gap> MinimumDistance(C); % distana minim
2
gap> CoveringRadius(C); % raza de acoperire
3
192 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
gap> IsLinearCode(C); % este cod liniar?
true
gap> IsMDSCode(C); % este cod MDS?
false
gap> IsPerfectCode(C); % este cod perfect?
false
gap> List(C); % lista cuvintelor cod
[ [ 0 0 0 0 0 0 ], [ 0 0 1 0 0 1 ],
[ 0 1 0 0 1 0 ], [ 0 1 1 0 1 1 ],
[ 1 0 0 1 0 0 ], [ 1 0 1 1 0 1 ],
[ 1 1 0 1 1 0 ], [ 1 1 1 1 1 1 ] ]
Matricea generatoare este:
gap> G:=GeneratorMat(C); % matricea generatoare
[ [ Z(2)^0, 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ],
[ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), Z(2)^0 ] ]
gap> Display(G);
1 . . 1 . .
. 1 . . 1 .
. . 1 . . 1
Codul dual i parametrii acestuia:
gap> Cd:=DualCode(C); % Codul dual
a cyclic [6,3,1..2]2..3 dual code
gap> C=Cd; % C=dualul lui C?
true
gap> IsSelfDualCode(C); % este cod auto-dual?
true
gap> Gd:=Display(GeneratorMat(Cd));
1 . . 1 . .
. 1 . . 1 .
. . 1 . . 1
gap> Hd:=Display(CheckMat(Cd));
1 . . 1 . .
. 1 . . 1 .
. . 1 . . 1
gap> MinimumDistance(Cd); %...pt codul dual
3.6. APLICAII EXEMPLE N GAP - GUAVA 193
2
gap> CoveringRadius(Cd); %...pt codul dual
3
Codicarea este o simpl nmulire matricial. Decodicarea este posi-
bil doar ntmpltor: distana minim 2 nu asigur a decodicare unic.
gap> u:=Codeword("110"); % mesajul util
[ 1 1 0 ]
gap> c:=u*G; % mesajul codificat
[ 1 1 0 1 1 0 ]
gap> H*c; % verificare, este cuvnt de cod
[ 0 0 0 ]
gap> Decodeword(C,c); % decodificare identic
[ 1 1 0 1 1 0 ]
gap> c:=Codeword("100110"); % eroare simulat n poziia 3
[ 1 0 0 1 1 0 ]
gap> H*c; % eroarea este detectat
[ 0 1 0 ]
gap> Decodeword(C,c); % decodificat "corect"
[ 1 1 0 1 1 0 ]
gap> c:=Codeword("110111"); % eroare simulat n poziia 6
[ 1 1 0 1 1 1 ]
gap> H*c; % eroarea este detectat
[ 0 0 1 ]
gap> Decodeword(C,c); % decodificat "incorect"
[ 1 1 1 1 1 1 ]
4. Codul de repetiie tripl. Denirea matricii de vericare a paritii, i a
codului. Aeaz matricea generatoare.
gap> H:=Z(2)*[[1, 0, 0, 1, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 1, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 1, 0],
[0, 0, 1, 0, 0, 0, 0, 0, 1]];;
gap> Display(H);
1 . . 1 . . . . .
. 1 . . 1 . . . .
. . 1 . . 1 . . .
194 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
1 . . . . . 1 . .
. 1 . . . . . 1 .
. . 1 . . . . . 1
gap> C:=CheckMatCode(H,GF(2));
a linear [9,3,1..3]3 code defined by check matrix over GF(2)
gap> G:=Display(GeneratorMat(C));
1 . . 1 . . 1 . .
. 1 . . 1 . . 1 .
. . 1 . . 1 . . 1
Parametrii codului:
gap> Size(C); % numrul cuvintelor de cod
8
gap> WordLength(C); % lungimea coului
9
gap> Dimension(C); % dimensiunea codului
3
gap> Redundancy(C); % numrul simbolurilor de control
6
gap> MinimumDistance(C); % distana minim
3
gap> CoveringRadius(C); % raza de acoperire
3
gap> IsLinearCode(C); % este cod liniar?
true
gap> IsMDSCode(C); % este cod MDS?
false
gap> IsPerfectCode(C); % este cod perfect?
false
gap> List(C); % lista cuvintelor cod
[ [ 0 0 0 0 0 0 0 0 0 ], [ 0 0 1 0 0 1 0 0 1 ],
[ 0 1 0 0 1 0 0 1 0 ], [ 0 1 1 0 1 1 0 1 1 ],
[ 1 0 0 1 0 0 1 0 0 ], [ 1 0 1 1 0 1 1 0 1 ],
[ 1 1 0 1 1 0 1 1 0 ], [ 1 1 1 1 1 1 1 1 1 ] ]
Codul dual i parametrii acestuia:
gap> Cd:=DualCode(C); % codul dual
a cyclic [9,6,1..2]1..3 dual code
gap> Display(GeneratorMat(Cd)); % matricea generatoare
3.6. APLICAII EXEMPLE N GAP - GUAVA 195
1 . . 1 . . . . .
. 1 . . 1 . . . .
. . 1 . . 1 . . .
. . . 1 . . 1 . .
. . . . 1 . . 1 .
. . . . . 1 . . 1
gap> Display(CheckMat(Cd)); % matr. verif. parit.
1 . . 1 . . 1 . .
. 1 . . 1 . . 1 .
. . 1 . . 1 . . 1
gap> MinimumDistance(Cd); % distana minim
2
gap> CoveringRadius(Cd); % raza de acoperire
3
Iat i exemple de codicare i decodicare. Codicarea este numai o
nmulire matricial. Distana minim ind 3, este posibil corectarea
unei singure erori.
gap> u:=Codeword("110"); % mesajul util
[ 1 1 0 ]
gap> c:=u*G; % mesajul codificat
[ 1 1 0 1 1 0 1 1 0 ]
gap> H*c; % verificare, e cuvnt de cod
[ 0 0 0 0 0 0 ]
gap> Decodeword(C,c); % decodificare corect
[ 1 1 0 1 1 0 1 1 0 ]
gap> c:=Codeword("100110110"); % eroare simulat, poziia 2
[ 1 0 0 1 1 0 1 1 0 ]
gap> H*c; % eroarea este detectat
[ 0 1 0 0 1 0 ]
gap> Decodeword(C,c); % i decodificat corect
[ 1 1 0 1 1 0 1 1 0 ]
5. Acest cod are urmtoarea matrice de vericare a paritii i matrice de
generare:
gap> H:=Z(2)*[[1,1,0,1,0,0],[1,0,1,0,1,0],[0,1,1,0,0,1]];
[ [ Z(2)^0, Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ],
[ Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2) ],
[ 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2), 0*Z(2), Z(2)^0 ] ]
196 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
gap> Display(H);
1 1 . 1 . .
1 . 1 . 1 .
. 1 1 . . 1
gap> C:=CheckMatCode(H,GF(2));
a linear [6,3,1..3]2 code defined by check matrix over GF(2)
gap> G:=GeneratorMat(C);
<an immutable 3x6 matrix over GF2>
gap> Display(G);
1 . . 1 1 .
. 1 . 1 . 1
. . 1 . 1 1
Urmtoarele comenzi aeaz parametrii codului:
gap> Size(C); % numrul cuvintelor de cod
8
gap> WordLength(C); % lungimea coului
6
gap> Dimension(C); % dimensiunea codului
3
gap> Redundancy(C); % numrul simbolurilor de control
3
gap> MinimumDistance(C); % distana minim
3
gap> CoveringRadius(C); % raza de acoperire
2
gap> IsLinearCode(C); % este cod liniar?
true
gap> IsMDSCode(C); % este cod MDS?
false
gap> IsPerfectCode(C); % este cod perfect?
false
gap> List(C); % lista cuvintelor cod
[ [ 0 0 0 0 0 0 ], [ 0 0 1 0 1 1 ],
[ 0 1 0 1 0 1 ], [ 0 1 1 1 1 0 ],
[ 1 0 0 1 1 0 ], [ 1 0 1 1 0 1 ],
[ 1 1 0 0 1 1 ], [ 1 1 1 0 0 0 ] ]
Iat un exemplu de codicare i de decodicare. Codul corecteaz o
singur eroare.
3.6. APLICAII EXEMPLE N GAP - GUAVA 197
gap> Cd:=DualCode(C); % codul dual
a linear [6,3,1..3]2 dual code
gap> Display(CheckMat(Cd)); % matr. verif. parit.
1 . . 1 1 .
. 1 . 1 . 1
. . 1 . 1 1
gap> Display(GeneratorMat(Cd)); % matricea genratoare
1 1 . 1 . .
1 . 1 . 1 .
. 1 1 . . 1
gap> IsSelfDualCode(C); % este cod autodual?
false
gap> MinimumDistance(Cd); % distana minim
3
gap> CoveringRadius(Cd); % raza de acoperire
2
gap> u:=Codeword("110"); % mesajul util
[ 1 1 0 ]
gap> c:=u*G; % mesajul codificat
[ 1 1 0 0 1 1 ]
gap> H*c; % verificare, este cuvnt de cod
[ 0 0 0 ]
gap> Decodeword(C,c); % decodificare identic
[ 1 1 0 0 1 1 ]
gap> c:=Codeword("100011"); % eroare simulat n poziia 2
[ 1 0 0 0 1 1 ]
gap> H*c; % avem eroare, eroare detectat
[ 1 0 1 ]
gap> Decodeword(C,c); % decodificat corect
[ 1 1 0 0 1 1 ]
6. n nal ultimul exemplu (6) de la pagina 157.
gap> H:=Z(2)*[[0,0,0,1,1,1,1],[0,1,1,0,0,1,1],[1,0,1,0,1,0,1]];
[ [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0, Z(2)^0, Z(2)^0 ],
[ 0*Z(2), Z(2)^0, Z(2)^0, 0*Z(2), 0*Z(2), Z(2)^0, Z(2)^0 ],
[ Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0 ] ]
gap> Display(H);
. . . 1 1 1 1
. 1 1 . . 1 1
198 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
1 . 1 . 1 . 1
gap> C:=CheckMatCode(H,GF(2));
a linear [7,4,1..3]1 code defined by check matrix over GF(2)
gap> G:=GeneratorMat(C);
<an immutable 4x7 matrix over GF2>
gap> Display(G);
1 1 1 . . . .
1 . . 1 1 . .
. 1 . 1 . 1 .
1 1 . 1 . . 1
gap> Size(C); % numrul cuvintelor de cod
16
gap> WordLength(C); % lungimea coului
7
gap> Dimension(C); % dimensiunea codului
4
gap> Redundancy(C); % numrul simbolurilor de control
3
gap> MinimumDistance(C); % distana minim
3
gap> CoveringRadius(C); % raza de acoperire
1
gap> IsLinearCode(C); % este cod liniar?
true
gap> IsMDSCode(C); % este cod MDS?
false
gap> IsPerfectCode(C); % este cod perfect?
true
gap> List(C); % lista cuvintelor cod
[ [ 0 0 0 0 0 0 0 ], [ 0 0 0 1 1 1 1 ],
[ 0 0 1 0 1 1 0 ], [ 0 0 1 1 0 0 1 ],
[ 0 1 1 1 1 0 0 ], [ 0 1 1 0 0 1 1 ],
[ 0 1 0 1 0 1 0 ], [ 0 1 0 0 1 0 1 ],
[ 1 1 1 0 0 0 0 ], [ 1 1 1 1 1 1 1 ],
[ 1 1 0 0 1 1 0 ], [ 1 1 0 1 0 0 1 ],
[ 1 0 0 1 1 0 0 ], [ 1 0 0 0 0 1 1 ],
[ 1 0 1 1 0 1 0 ], [ 1 0 1 0 1 0 1 ] ]
Tabela Slepian, cu reprezentanii claselor de echivalen se poate obine
tot cu ajutorul pachetului GUAVA. Prima coloan conine vectorii eroare
3.6. APLICAII EXEMPLE N GAP - GUAVA 199
de msur minim. Prima linie corespunde cuvintelor codului, acestea
i numai acestea au sindromul nul.
gap> SyndromeTable(C);
[ [ [ 0 0 0 0 0 0 0 ], [ 0 0 0 ] ],
[ [ 1 0 0 0 0 0 0 ], [ 0 0 1 ] ],
[ [ 0 1 0 0 0 0 0 ], [ 0 1 0 ] ],
[ [ 0 0 1 0 0 0 0 ], [ 0 1 1 ] ],
[ [ 0 0 0 1 0 0 0 ], [ 1 0 0 ] ],
[ [ 0 0 0 0 1 0 0 ], [ 1 0 1 ] ],
[ [ 0 0 0 0 0 1 0 ], [ 1 1 0 ] ],
[ [ 0 0 0 0 0 0 1 ], [ 1 1 1 ] ] ]
gap> Cd:=DualCode(C); % codul dual
a linear [7,3,1..4]2..3 dual code
gap> Display(CheckMat(Cd)); % matr. verif. parit.
1 1 1 . . . .
1 . . 1 1 . .
. 1 . 1 . 1 .
1 1 . 1 . . 1
gap> Display(GeneratorMat(Cd)); % matricea genratoare
. 1 1 1 1 . .
1 . 1 1 . 1 .
1 1 . 1 . . 1
gap> MinimumDistance(Cd); % distana minim
4
gap> CoveringRadius(Cd); % raza de acoperire
3
Exemplu de codicare i decodicare.
gap> u:=Codeword("110"); % mesajul util
[ 1 1 0 ]
gap> c:=u*G; % mesajul codificat
[ 0 1 1 1 1 0 0 ]
gap> H*c; % verificare, este cuvnt de cod
[ 0 0 0 ]
gap> Decodeword(C,c); % decodificare identic
[ 0 1 1 1 1 0 0 ]
gap> c:=Codeword("0101100");% eroare simulat n poziia 3
[ 0 1 0 1 1 0 0 ]
200 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
gap> Syndrome(C,c); % sindromul arat poziia erorii
[ 0 1 1 ]
gap> Decodeword(C,c); % decodificat corect
[ 0 1 1 1 1 0 0 ]
Linia a patra a tabelului sindromurilor arat c vectorul de eroare este
[ 0 0 0 1 0 0 0 ]
care sczut din mesajul eronat reface cuvntul de cod al mesajului.
S dm i un exemplu n care utilizm faciliti specice ale GUAVA
numeroase coduri sunt deja implementate i pot invocate prin numele lor.
gap> C:=HammingCode(4,GF(2));
a linear [15,11,3]1 Hamming (4,2) code over GF(2)
gap> Display(GeneratorMat(C));
1 1 1 . . . . . . . . . . . .
1 . . 1 1 . . . . . . . . . .
. 1 . 1 . 1 . . . . . . . . .
1 1 . 1 . . 1 . . . . . . . .
1 . . . . . . 1 1 . . . . . .
. 1 . . . . . 1 . 1 . . . . .
1 1 . . . . . 1 . . 1 . . . .
. . . 1 . . . 1 . . . 1 . . .
1 . . 1 . . . 1 . . . . 1 . .
. 1 . 1 . . . 1 . . . . . 1 .
1 1 . 1 . . . 1 . . . . . . 1
gap> Display(CheckMat(C));
. . . . . . . 1 1 1 1 1 1 1 1
. . . 1 1 1 1 . . . . 1 1 1 1
. 1 1 . . 1 1 . . 1 1 . . 1 1
1 . 1 . 1 . 1 . 1 . 1 . 1 . 1
gap> G:=GeneratorMat(C);;
gap> u:=Codeword("11000110011"); % codificarea mesajului
[ 1 1 0 0 0 1 1 0 0 1 1 ] % util "u"
gap> c:=u*G; % este inmulirea cu
[ 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 ] % matricea de generare
gap> c1:=Codeword("011110000110010"); % simulm o eroare
[ 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 ] % n poziia 15
gap> Decodeword(C,c1); % decodificare cu
[ 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 ] % algoritmul lui GUAVA
3.6. APLICAII EXEMPLE N GAP - GUAVA 201
3.6.1 Utilizarea codurilor
Cercetarea matematic n domeniul codurilor algebrice continu. Scopul ur-
mrit este descoperirea de coduri ct mai apropiate de limitele teoretice, de
marginile impuse de teorie, respectiv analiza codurilor care se pot construi
prin mijloace deja avute la dispoziie. Nu am amintit nimic despre coduri
bazate pe geometrie algebric (coduri AG), i despre coduri convoluionale.
n ncheiere s menionm fr comentarii o problem nc deschis din
domeniul teoriei codurilor corectoare de erori: nu se tie dac exist sau nu
un cod binar auto-dual de tipul (72, 36, 16) (pentru detalii vezi [35]).
S enumerm acum cteva din utilizrile codurilor corectoare de erori, din
care se poate intui importana acestui capitol de matematic pentru diverse
domenii inginereti.
Coduri BCH sunt utilizate de sistemele de comunicaii europene i
transatlantice. Mesajul util are lungimea de 231 de simboluri i este
utilizat un polinom generator de grad 24, astfel lungimea cuvntului de
cod este 231 + 24 = 255. Codul detecteaz cel puin 6 erori.
O aplicaie interesant a codurilor RS este codicarea informaiei pe
(astzi nc) cel mai utilizat (cel puin n distribuirea muzicii de cali-
tate HiFi) suport de memorie, compact discul, CD. El folosete dou
coduri RS peste corpul GF(2
8
) avnd distana minim 5. Codicarea
i decodicare este subtil n sensul c este ncorporat i un mecanism
de corectare a zgreturilor i.e. a blocurilor compacte de erori prin
distribuirea structurii cuvintelor de cod pe poriuni zice mai mari. Ast-
fel deteriorri locale care distrug poriuni insemnate totui nu afecteaz
decodicarea intact a informaiei de pe CD.
Codul Reed-Solomon (7, 2) a fost folosit de satelitul US Defense Depart-
ment Tactical Satel lite
Codul Reed-Solomon (31, 15) este folosit n comunicaiile militare tac-
tice.
Reeaua INTELSAT V folosete codul BCH (127, 112) care detecteaz
3 i corecteaz 3 erori.
Memoriile digitale foto folosesc un cod Reed-Solomon de lungime 63
peste corpul nit F
2
6.
Un cod ciclic (CRC) era folosit la corectarea erorilor de citire ale infor-
maiilor nregistrate pe benzi magnetice.
202 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Sondele spaiale Mariner ale NASA foloseau codul Reed-Muller
(32, 6, 16) la transmiterea codicat a fotograilor din spaiul cosmic.
Coduluri binare de tip (2
k
, k, 2
k1
) Walsh-Hadamard (ortogonale) sunt
folosite n telefonia mobil celular pentru identicarea staiilor mobile
active n cadrul unei staii xe. Lungimea tipic a codului este de 64 de
bii.
Un cod Goley de tip (23, 12) este folosit la transmisiile canalelor de
televiziune prin satelit. Acesta are distana minim 7 deci poate corecta
3 erori. Acesta este un cod perfect.
Coduri ciclice CRC (Cyclic Redundancy Code) sunt larg folosite n elec-
tronic (pentru semnalarea erorilor, n canale bidirecionale de comu-
nicaie). Ele sunt cablate n circuite integrate care apar ca i compo-
nente din care sunt construite elemente ale sistemelor de calcul i de
comunicaie. Iat cteva exemple de polinoame generatoare cablate:
x
16
+x
12
+x
5
+1 (SNC 2653, INTEL 82586,INTEL 8274), x
16
+x
15
+x
2
+1
(INTEL 82586,INTEL 8274), x
32
+x
26
+x
23
+x
22
+x
16
+x
12
+x
11
+
x
10
+x
8
+x
7
+x
5
+x
4
+x
2
+x
+
1 (INTEL 82586, aplicaia LAN Eth-
ernet), x
8
+ x
7
+ x
6
+ x
4
+ 1 i x
23
+ x
18
+ x
16
+ x
7
+ x
2
+ 1 (EEA),
x
12
+x
11
+x
3
+x
2
+x
+
1 (CRC-12, IBM) etc.
3.7 Probleme propuse
1. S se determine elementele primitive ale corpurilor F
7
, F
11
, F
13
, F
17
i
F
19
.
Indicaie: Trebuie gsit un generator al grupului multiplicativ al corpu-
lui. Pentru corpul F
7
acest grup are 6 elemente, deci avem nevoie de un
element de ordin 6. 2
3
= 1mod 7, deci 2 nu este de ordin 7. 3
2
= 1mod 7
i 3
3
= 1mod 7 deci doar 3
6
= 1mod 7 deci 3 este un element primitiv.
Deoarece 4
3
= 1mod 7, 4 nu este element primitiv. 5
2
= 1mod 7, i
5
3
= 1mod 7 deci vom avea 5
6
= 1mod 7 deci 5 este element primitiv.
n sfrit, 6 = 1mod 7 deci 6 are ordinul 2. Elementele primitive sunt
deci 3 i 5. (Se observ c 5 = 3
1
.)
Alt soluie (n GAP): Pentru ecare a = 2, 3, . . . , 6 se ruleaz ciclul for
de mai jos. Elementul a este element primitiv dac i numai dac doar
ultima putere are valoarea 1.
for i in [1..6] do
p:=a^i;
3.7. PROBLEME PROPUSE 203
Print(p,"\n");
od;
2. n care din inelul de polinoame peste coecieni din corpurile F
2
, F
3
,
F
5
, F
7
, F
17
este polinomul x
2
+ 1 ireductibil?
Indicaie: Polinomul ind de gradul 2, el este ireductibil exact atunci,
cnd nu are rdcini. Se testeaz toate elementele corpului dat.
Alt soluie n Singular:
ring R=2,x,dp;
poly f=x2+1;
factorize(f);
// -> factorii lui f, si multiplicitatile acestora
...i nc una n GAP:
x:=Indeterminate(GF(2),"x");
f:=x^2+1;
Factors(f);
% -> factorii lui f, factorii multiplii sunt repetate
3. S se determine toate polinoamele ireductibile de grad 2 n inelul de
polinoame peste coecieni din corpurile F
5
, F
7
, F
11
i F
17
.
Indicaie: Polinoamele ind de gradul 2, ele sunt ireductibile exact
atunci, cnd nu au rdcini. Se testeaz toate polinoamele de grad 2
cu toate elementele corpului dat.
4. Cte polinoame monice ireductibile de grad 3 i de grad 4 exist n inele
de polinoame GF(2
3
)[x], GF(3
2
)[x] i GF(11)[x]? Dai cte un exemplu
de astfel de polinom!
Indicaie: Se folosete teorema 3.2.28 de la pagina 142.
5. S se determine polinomul minimal (peste corpul prim GF(p)) pentru
elementele de mai jos (din corpul nit GF(p
n
)).
5-1. = 5 GF(17).
5-2. =
3
+ + 1 GF(2
4
), corp generat de polinomul ireductibil
x
4
+x + 1.
5-3. =
5
+ + 1 GF(2
6
), corp generat de polinomul ireductibil
x
6
+x + 1.
5-4. = +1 GF(3
2
), corp generat de polinomul ireductibil x
2
+x+2.
5-5. =
2
+ + 1 GF(3
2
), corp generat de polinomul ireductibil
x
3
x + 2.
204 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Indicaie: Se calculeaz puterile succesive ,
p
,
p
2
,
p
3
, . . . pn cnd
obinem
p
d
= . Polinomul minimal al lui este polinomul de grad d
calculat prin (x )(x
2
) (x
d1
).
6. S se studieze n mediul de programare GAP-GUAVA codul ciclic de
lungime 8, generat de polinomul x
2
+Z(3)
0
. S se determine:
(a). Distana minim.
(b). Polinomul de vericare a paritii.
(c). Matricea generatoare.
(d). Matricea de control.
(e). S se verice dac sunt cuvinte de cod i dac nu s se decodice
cuvintele x
5
x
3
+x i x
4
+x
3
+x
2
x.
7. S se studieze n mediul de programare GAP-GUAVA codul ciclic de
lungime 31, generat de polinomul x
5
+x
2
+ 1. S se determine:
(a). Distana minim.
(b). Polinomul de vericare a paritii.
(c). Matricea generatoare.
(d). Matricea de control.
(e). S se verice dac sunt cuvinte de cod i dac nu s se decodice
cuvintele x
25
+x
20
+x
19
+x
18
+x
17
+x
15
+x
13
+x
9
+x
4
+x
3
+x
i x
30
+x
25
+x
22
+x
19
+x
10
+x
6
+x
5
+x
3
+x.
8. S se studieze n mediul de programare GAP-GUAVA codul ciclic de
lungime 31, al crui polinom de vericare a paritii este x
1
0+x
8
+x
7
+
x
5
+x
3
+x
2
+Z(2)
0
. S se determine:
(a). Distana minim.
(b). Polinomul generator.
(c). Matricea generatoare.
(d). Matricea de control.
(e). S se verice dac sunt cuvinte de cod i dac nu s se decodice
cuvintele x
30
+x
29
+x
27
+x
26
+x
25
+x
23
+x
21
+x
16
+x
13
+x
11
+
x
10
+x
7
+x
6
+x
5
+x
4
+x
3
i x
28
+x
27
+x
25
+x
23
+x
22
+x
21
+x
20
+x
19
+x
18
+x
17
+x
11
+
x
9
+x
8
+x
7
+x
6
+x
5
+x
3
+x +Z(2)
0
.
Bibliograe
[1] ***, GAP - Groups, Algorithms, Programming - a System for Computa-
tional Discrete Algebra, version 4.4 (2010)
http://www.gap-system.org/
http://www.gap-system.org/Doc/manuals.html
[2] ***, GUAVA - A GAP4 Package for computing with error-correcting codes,
Version 3.10, 2009
http://www.gap-system.org/Manuals/pkg/guava3.10/htm/chap0.html
[3] ***, Singular, A Computer Algebra System for Polynomial Computations,
HTML User Manual for Singular Version 3-1-2, Oct 2010
http://www.singular.uni-kl.de/
http://www.singular.uni-kl.de/Manual/latest/index.htm
[4] ***, Singular libraries - Coding Theory,
http://www.singular.uni-kl.de/Manual/latest/sing1400.htmSEC1476
[5] ***, Singular libraries - Symbolic-numerical Solving,
http://www.singular.uni-kl.de/Manual/latest/sing1316.htmSEC1392
[6] W. W. Adams, Ph. Loustaunau, An Introduction to Groebner Bases, Gra-
duate Studies in Mathematics, vol 3,
American Mathematical Society, 1996
[7] Th. Becker, V. Weispfenning, Grbner bases: a Computational Approach
to Commutative Algebra,
Springer Verlag, New York, 1993
[8] J. Borwein, D. Bayley, R. Girgensohn, Experimentation in Mathematics -
Computational Path to Discovery,
A.K. Peters, Natick, Massachusetts, 2004
205
206 BIBLIOGRAFIE
[9] J. Borwein, D. Bayley, Mathematics bz Experiment - Plausible Reasoning
in the 21st Century,
A.K. Peters, Natick, Massachusetts, 2004
[10] S.Bulygin, R. Pellikaan, Bounded distance decoding of Linear error-
correcting codes with Grbner bases,
Journal of Symbolic Computation 44 (2009), pp. 1626-1643
[11] C. K. Chui, Multivariate splines
SIAM, Philadelphia, PA, (1988)
[12] D. Cox, J. Little, D. OShea, Ideals, varieties, and algorithms, An Intro-
duction to Computational Algebraic Geometry and Commutative Algebra,
Springer Verlag, New York, (third edition) 2007
[13] I. Creang, D. Simovici, Teoria codurilor,
Editura Didactic i Pedagogic, Bucureti, 1975
[14] S. Crivei, A. Mrcu, Ch. Screa, Cs. Sznt, Computational Algebra
with Applications to Coding Theory and Criptography,
Editura Fundaiei pentru Studii Europene, Cluj-Napoca, 2006
[15] W. Decker, C. Lossen, Computing in Algebraic Geometry - A Quick Start
using Singular,
Springer Verlag, Berlin, 2006
[16] J. von zur Gathen, Modern Computer Algebra,
second edition, Cambridge University Press, 2003
[17] G.-M. Greuel, G. Pster, A Singular introduction to commutative algebra,
Springer-Verlag, Berlin, 2002, 2008
[18] L. Gyr, S. Gyri, I. Vajda, Informci s kdelmlet,
Typotex Kiad, 2000
[19] D.W. Hardy, F. Richman, C.L. Walker, Applied Algebra, Codes, Ciphers,
and Discrete Algorithms, second edition,
Chapman and Hall/CRC, Broken Sound Parkway, 2009
[20] B. Hasset, Introduction to Algebraic Geometry,
Cambridge University Press, 2007
[21] A. Horvth, Proving Geometric Theorems via Grbner Bases Theory,
Buletinul tiinic al Universitii Baia Mare, seria B, Matematica-
Informatica, vol XIV (2000), nr 1, pp. 49-58.
BIBLIOGRAFIE 207
[22] A. Horvth, B. Finta, Finding Roots of Nonlinear Systems of Equations
on a Domain, Mathematica Pannonica, 15/1 (2004), pp. 37-44
[23] A. Horvth, B. Finta, Solving Nonlinear Systems of Equations on a Do-
main, Bulletins for Applied and Computer Mathematics, BAM-1973, vol.
XLIV, nr.4, 2002 Technical University of Budapest, (XCIX), pp. 129-135.
[24] W. C. Human, V. Pless, Fundamentals of Error-Correcting Codes,
Cambridge University Press, 2003
[25] D. Ionescu, Codicare i coduri,
Editura Tehnic, Bucureti, 1981
[26] R.Lidl, H. Niederreiter, The Finite Fields,
Cambridge University Press, second edition reprinted, 2000
[27] F.J. Macwilliams, N.J.A. Sloane, The Theory of Error-Correcting Codes,
North-Holland, Amsterdam, 1977
[28] A. Marcus, Komputeralgebra,
Egyetemi Kiad, Kolozsvr, 2005
[29] Gh. Micula, S. Micula, Handbook of Splines, Kluwer Academic Publishers,
Dordrecht, Boston, London, 1999
[30] T. Mora, Solving Polynomial Equation Systems I,
Cambridge University Press, 2003
[31] T. Murphy, Finite Fields,
Trinity College, University of Dublin, Course 373, 2003
[32] V. Pless, Introduction to the Theory of Error Correcting Codes,
John Wiley and Sons, New York, 1998
[33] H.E. Rose, Linear Algebra - A Pure Mathematical Approach,
Birkhuser Verlag, Basel, 2002
[34] L.L. Schumaker, Spline functions: basic theory,
John Wiley and Sons, New York, 1981
[35] M. Sala et all, Grbner Bases, Coding and Cryptography,
Cambridge University Press, 2003
[36] S. s. Kuo, Numerical Methods and Computers,
Addison-Wesley, London, (1965)
208 BIBLIOGRAFIE
[37] D. D. Stancu, The Remainder of certain Linear Approximation Formulas
in Two Variables,
J. SIAM Numer. Anal., Ser. B, Vol 1, USA, (1964), pp. 137-153
[38] W. V. Vasconcelos, Computational Methods in Commutative Algebra and
Algebraic Geometry,
Springer Verlag, Berlin, 1998
List de guri
1 Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.1 V (xy (x2 +y2 25)) i V (xy(x3 20x 15 y2)) . . . . . 20
1.2 V (x2 y2 +z2) i V (x2y z2), "Withney umbrella." . . . . 21
1.3 V (z3 zx2 +y2) i V (z4 zx2 +y2) . . . . . . . . . . . . . 21
1.4 O quartic i A
3
= V (x
3
y2 z2). . . . . . . . . . . . . . . 22
1.5 D
5
= V (x(x
3
+y2) +z2) i E
6
= V (x4 +y3 +z2). . . . . . . 22
1.6 E
7
= V (y(x3 +y2) +z2) i E
8
= V (x5 +y3 +z2). . . . . . . 23
1.7 Patru cercuri (A) . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1.8 Patru cercuri (B) . . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.9 Patru cercuri (C) . . . . . . . . . . . . . . . . . . . . . . . . . . 60
209
Glosar
Grbner
baz, 51
automorsm
Frobenius, 131
baz
Grbner , 51
Grbner
minimal, 53
redus, 53
pentru ideal, 25
bil, 150
Bose, Chaudhuri, Hocquenghem
cod, 179
canal binar simetric, 147
cel mai mare divizor comun, 27
cod, 149
autodual, 154
BCH, 179
n sens restrns, 179
primitiv, 179
binar
Hamming, 163
simplex, 164
dimensiunea lui, 152
dual, 153
echivalent, 158
extins, 164
liniar, 152
binar, 152
lungimea lui, 152
MDS, 151
perfect, 151
Reed-Muller, 165
RS, 185
sistematic, 152
tipul lui, 158
coecient
al monomului, 18
corp
algebric nchis, 73
caracteristica unui, 127
de fracii, 35
de fracii raionale, 36
extensie de, 120
subcorp prim al, 127
decodicare
de probabilitate maxim, 150
prin distan, 150
distan
Hamming, 149
minim, 149
proiectat, 179
divizor, 26
al lui 0, 24
comun cel mai mare, 27
domeniu de integritate, 25
element
asociat n divizibilitate, 26
divizor al lui 0, 24
inversabil, 25
ireductibil, 45
prim, 45
primitiv, 129
210
GLOSAR 211
regulat, 25
unitate, 25
extensie de corp, 120
funcie
Moebius, 140
Gilbert-Varshamov
margine, 159
grad
al polinomului, 18
total al monomului, 18
Hamming
cod, 163
binar, 163
distan, 149
msur, 149
margine, 151
ideal, 25
al termenilor principali, 50
baz pentru, 25
ctul lor, 28
denit de varietate, 37
generat, 25
nit, 25
intersecia lor, 28
maximal, 32
monomial, 49
prim, 46
principal, 26
produsul lor, 28
radicalul lui, 28
suma lor, 28
inel, 24
comutativ, 24
de fracii, 35
domeniu de integritate, 25
factor, 32
factorial, 46
local, 33
Noetherian, 37
principal, 26
unitar, 24
msur Hamming, 149
margine
Gilbert-Varshamov, 159
Hamming, 151
Plotkin, 159
Sigleton, 151
matrice
de control, 107, 152
de vericare, 107
forma standard, 152
generatoare, 106, 153
canonic, 153
monom, 18
coecientul lui, 18
gradul total, 18
principal, 49
mulime
a termenilor principali, 50
Noether
inel, 37
ordonare
lexicograc, 48
graduat, 48
invers graduat, 48
monomial, 47
Plotkin
margine, 159
polinom, 18
anulator, 120
coecient principal, 49
de vericare a paritii, 168
generator, 167
gradul lui, 18, 49
monic, 139
reciproc, 169
212 GLOSAR
termen al, 18
termen principal, 49
produs scalar, 153
rang
matricii, 70
extinse, 70
Reed-Muller
cod, 165
Reed-Solomon
cod, 185
rezult
generic, 55
strict, 55
simbol
de control, 149
sindrom, 161
Singleton
margine, 151
Singular, 20, 21, 56, 57
surf, 21
sistem
multipicativ, 33
Slepian
tabela, 161
spaiu
an, 19
surf, 21
tabela Slepian, 161
termen
al polinomului, 18
varietate
an, 20
denit de ideal, 37
vector
ortogonal, 153