© EDP 2010. © Horváth Alexandru ISBN 978-973-3-3370-7
Director general: Dáné Károly András Redactor-şef: Dan Dumitru Copertă: Otilia-Elena Borş
Memoriei p rinµilor mei
Prefaµ
A ceast carte se dore³te a � o introducere într-un domeniu almatematicii, care de abia î³i �xeaz contururile: matematicacomputaµional . Pentru a risipi de la bun început neînµelegerile,trebuie precizat faptul, c sensul termenului "computaµional"
nu se rezum aici la calcul numeric, ³i în nici un caz nu se refer la metode decalcul numeric aproximativ.
Termenul "computaµional" acoper � în percepµia autorului � mai degrab str dania de a face efective rezultatele clasice sau noi ale întregii matema-tici. Pentru a � mai explicit, cititorul este invitat a se gândi spre exem-plu la problema "calculului" structurii unui grup, sau chiar la problemavalid rii/invalid rii unui enunµ, care exprim o proprietate de geometrie eu-clidian plan , în limbaj clasic numit teorem .
Aceast str danie de a face construcµiile ideatice ale matematicii cât maioperaµionale este favorizat cu succes de mijloacele de calcul din ce în ce maiperformante de care dispunem. Aceste mijloace ne permit, pe de o parte, s implement m algoritmi din ce în ce mai so�sticaµi, pe de alt parte, l rgescesenµial aria experiment rilor în cercetarea fundamental matematic . Au-torul s-a str duit ca acest impact al posibilit µii calculelor efective � impactcare forµeaz chiar schimbarea de paradigme, ³i regândirea unor concepte fun-damentale ale ³tiinµei, cum ar � o "demonstraµie matematic " � s transpar cât mai pregnant în paginile acestei c rµi.
Algebra computaµional reprezint un capitol relativ nou al matematicii,dar sintagma simbolizeaz o direcµie de dezvoltare recent deosebit de vigu-roas a întregii matematici. Momentul de na³tere � evident convenµional ³isubiectiv � poate � considerat descoperirea bazei Gröbner ³i a algoritmu-lui de calcul al acesteia de c tre Bruno Buchberger în 1965. În clasi�careacapitolelor 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 "computaµional", înleg tur cu, practic, toate capitolele majore ale matematicii, sugerând o am-
5
6
ploare deosebit a studiului aspectelor computaµionale. Sintagma "algebr computaµional " se extinde generic, într-o oarecare m sur , asupra tuturoracestora, fapt care justi�c apariµia în paginile unui aceluia³i volum a diver-sit µilor de aplicaµii, a³a cum se întâmpl ³i în cazul volumului de faµ .
Cartea conµine, în afara unui capitol introductiv, trei capitole majore de-dicate câte unui domeniu de aplicaµie a algebrei computaµionale.
Primul capitol vizeaz demonstrarea automat a teoremelor de geometrieeuclidian elementar , ³i se orienteaz oarecum c tre specializarea de "geome-trie algebric computaµional ". Fundamentarea se constituie asfel din algebracomutativ v zut dinspre geometria algebric .
Al doilea capitol trateaz subiectul mereu viu al rezolv rii sistemelor deecuaµii polinomiale, studiu care în esenµ , µine tot de geometria algebric , îns aici ne ocup m doar de câteva aspecte computaµionale legate de descriereamulµimii soluµiilor, cu exempli�c ri preponderent pentru cazul num rului �nitde soluµii.
Al treilea capitol vizeaz teoria codurilor algebrice corectoare de erori, carese construie³te pe teoria corpurilor �nite, prin urmare pe ansamblu su�cientde mult algebr computaµional pentru a � inclus în aceast prezentare.
Capitolele sunt relativ independente, îns exist cel puµin o punte de leg -tur între ele: prezenµa efectiv ³i utilizarea bazei Gröbner ³i a algoritmului decalcul al acesteia. O caracteristic unitar a textului este prezenµa calculelorefective prin prezentarea a numeroase exemple concrete. Aceste calcule suntefectuate în dou medii de programare folosite, pe alocuri, chiar ³i concomi-tent. Este vorba de GAP ³i Singular, pachete de programe deosebite, accesibileliber pe internet, utilizate în cercetarea matematic fundamental , rod al efor-tului unor colective de matematicieni de prim rang ³i al unui numeros cercde utilizatori care contribuie ³i la permanenta dezvoltare a acestora. Carteanu conµine îns nicio iniµiere în folosirea acestora, documentaµiile care însoµescaceste pachete sunt oricum accesabile de pe internet, cititorii dornici s testezeexemplele prezentate pot oricând s se l mureasc în privinµa chestiunilor desintax ale comenzilor, dar ³i de facilit µile lor complete la zi. Capitolele suntînsoµite de problemele propuse, a c ror rezolvare implic ³i aceste programe.
În încheierea acestei scurte prefeµe, datorez cititorului o m rturisire: carteade faµ nu se na³te neap rat ³i exclusiv din imperativul de a comunica expe-rienµe acumulate, ci ³i din propria nevoie a autorului de a înv µa. Autorulîmp rt ³e³te ideea c încercarea de a-i înv µa pe alµii este o cale de aprofun-dare a cuno³tinµelor proprii. Consider a³adar �ecare cititor al acestor paginidrept un partener, care m însoµe³te în c l toria � sper fascinant � pe care opropun prin rândurile de faµ .
Autorul
Cuprins
Introducere 9
1 Teoreme de geometrie pe calculator 17
1.1 Concepte de baz . . . . . . . . . . . . . . . . . . . . . . . . . . 171.1.1 Polinoame cu mai multe variabile . . . . . . . . . . . . . 171.1.2 Variet µi a�ne . . . . . . . . . . . . . . . . . . . . . . . . 201.1.3 Ideale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.1.4 Inel factor. Inel de fracµii. Localizare . . . . . . . . . . . 311.1.5 Leg tura dintre variet µile a�ne ³i ideale . . . . . . . . . 36
1.2 Construcµia bazei Gröbner . . . . . . . . . . . . . . . . . . . . . 411.2.1 Împ rµirea polinoamelor cu o variabil . . . . . . . . . . 411.2.2 Împ rµirea polinoamelor cu mai multe variabile . . . . . 451.2.3 Ideale monomiale . . . . . . . . . . . . . . . . . . . . . . 471.2.4 Baze Gröbner . . . . . . . . . . . . . . . . . . . . . . . . 501.2.5 Algoritmul lui Buchberger . . . . . . . . . . . . . . . . . 52
1.3 Demonstraµia teoremelor de geometrie . . . . . . . . . . . . . . 541.4 Aplicaµii � Exemple în Singular . . . . . . . . . . . . . . . . . . 561.5 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2 Rezolvarea sistemelor de ecuaµii 67
2.1 Sisteme de ecuaµii polinomiale . . . . . . . . . . . . . . . . . . . 672.1.1 Sisteme liniare . . . . . . . . . . . . . . . . . . . . . . . 682.1.2 Teorema lui Hilbert a zerourilor . . . . . . . . . . . . . . 692.1.3 Sisteme neliniare . . . . . . . . . . . . . . . . . . . . . . 722.1.4 Sisteme cu un num r �nit de soluµii . . . . . . . . . . . 73
2.2 Aplicaµii � Exemple in Singular . . . . . . . . . . . . . . . . . . 752.2.1 Sisteme de ecuaµii liniare . . . . . . . . . . . . . . . . . . 752.2.2 Sisteme de ecuaµii neliniare . . . . . . . . . . . . . . . . 78
2.3 Rezolvarea numeric a unui sistem nepolinomial . . . . . . . . . 922.3.1 Exemplu cu aproximare Bernstein . . . . . . . . . . . . 93
7
8 CUPRINS
2.3.2 Exemplu cu aproximare spline . . . . . . . . . . . . . . . 952.4 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3 Coduri corectoare de erori 101
3.1 Un exemplu concret . . . . . . . . . . . . . . . . . . . . . . . . 1023.1.1 O prim utilizare a programului GAP în coduri . . . . . 105
3.2 Corpuri �nite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083.2.1 O problem de concurs în informatic . . . . . . . . . . 1083.2.2 Construirea corpurilor �nite . . . . . . . . . . . . . . . . 1153.2.3 Caracteristica unui corp �nit . . . . . . . . . . . . . . . 1223.2.4 Grupul multiplicativ al unui corp �nit . . . . . . . . . . 1233.2.5 Unicitatea corpurilor �nite . . . . . . . . . . . . . . . . . 1253.2.6 Automor�smele unui corp �nit . . . . . . . . . . . . . . 1273.2.7 Existenµa unui corp cu pn elemente . . . . . . . . . . . . 1323.2.8 Polinoame ireductibile . . . . . . . . . . . . . . . . . . . 1343.2.9 Polinomul minimal ³i baza Gröbner . . . . . . . . . . . . 139
3.3 Coduri corectoare de erori . . . . . . . . . . . . . . . . . . . . . 1433.3.1 Concepte de baz . . . . . . . . . . . . . . . . . . . . . . 1453.3.2 Margini pentru coduri generale . . . . . . . . . . . . . . 147
3.4 Coduri liniare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1483.4.1 Margini pentru coduri liniare . . . . . . . . . . . . . . . 1553.4.2 Codi�carea ³i decodi�carea codurilor liniare . . . . . . . 156
3.5 Coduri liniare speciale . . . . . . . . . . . . . . . . . . . . . . . 1583.5.1 Coduri Hamming . . . . . . . . . . . . . . . . . . . . . . 1593.5.2 Coduri liniare ciclice . . . . . . . . . . . . . . . . . . . . 1613.5.3 Coduri BCH . . . . . . . . . . . . . . . . . . . . . . . . 1733.5.4 Baza Gröbner ³i decodi�carea codurilor BCH . . . . . . 1783.5.5 Coduri Reed-Solomon . . . . . . . . . . . . . . . . . . . 180
3.6 Aplicaµii � exemple în GAP - GUAVA . . . . . . . . . . . . . . 1823.6.1 Utilizarea codurilor . . . . . . . . . . . . . . . . . . . . . 197
3.7 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Bibliogra�e 201
List de �guri 205
Glosar 206
Introducere
S începem cu sfâr³itul. Pentru a incita curiozitatea cititoru-lui presupunem c am parcurs deja câteva zeci de pagini deteorie ³i am ajuns la aplicaµii. S ilustr m deci, ce ³tiu algorit-mii pe care îi vom cunoa³te în continuare, ³i la ce rezultate ne
vor conduce fundament rile teoretice care urmeaz .Prima problem pe care o consider m este problema rezolv rii sistemelor
de ecuaµii algebrice. Iat ³i câteva exemple.Consider m mai întâi un sistem liniar.
x − y − z − u + 2v = 32x + y − z − u − 3v = −33x + 2y + z + 2u + v = 14x + y − z − 3u + 3v = 9x + y + z + u + v = 2
Se ³tie c , metoda lui Gauss de rezolvare a unui asemenea sistem de ecuaµiiconst în eliminarea pe rând a variabilelor, mai precis, se exprim o variabil dintr-o ecuaµie, apoi se înlocuie³te în (se elimin din) celelalte ecuaµii, ³i serepet acest pas, pân când se termin variabilele, sau ecuaµiile. În cazulnostru se obµine cam a³a ceva:
x + y + z + u + v = 2
3y + 5z + 7u + v = −1z − 4u + 5v = 16
3u − v = −7v = 1
Sistemul iniµial se transform astfel într-un sistem "triunghiular", care serezolv prin determinarea valorilor variabilelor exprimate, în ordine invers .
9
10 Introducere
Aceste valori sunt: v = 1u = −2z = 3y = −1x = 1.
Frumuseµea este faptul c acest rezultat a fost obµinut de un algoritm im-plementat într-un pachet de software specializat pentru algebr ³i geometriealgebric computaµional , Singular. Acesta este disponibil gratuit pe internet.
Programul scris în Singular pentru rezolvarea sistemului de mai sus esteurm torul:
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);
Instrucµiunea cheie este groebner, cea care face triangularizarea sistemului.Despre algoritmul care se a� în spatele acesteia vom mai vorbi pe larg încapitolele ce urmeaz . Instrucµiunea solve calculeaz soluµiile în mulµimeanumerelor complexe, ³i are în spate ³i metode numerice aproximative de calcul.
S lu m un alt exemplu. Se dau dou (sau mai multe) polinoame de osingur variabil . Se cere cel mai mare divizor comun al lor.
Iat un exemplu concret. S se calculeze cel mai mare divizor comun alpolinoamelor:
p1 = x20 − 1,p2 = x120 − 1,p3 = x5 + x4 + x3 + x2 + x+ 1.
Nimic deosebit, str vechiul algoritm al lui Euclid se descurc cu aceast problem : am putea calcula cel mai mare divizor comun al lui p1 ³i p2, apoicel mai mare divizor comun al acestuia cu p3, ³i avem rezultatul.
Noi vom folosi totu³i o alt metod . Scriem în Singular urm torul 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);
Instrucµiunea cheie este tot groebner, ³i ne furnizeaz rezultatul:
(p1, p2, p3) = x+ 1.
Partea cea mai spectaculoas îns de-abia acum începe. Consider m unsistem de ecuaµii polinomiale neliniar. Ne propunem spre exemplu s rezolv murm torul sistem:
x3 − 3xy + 3z2 = 1x2z + 3yz2 − z2 = 3−x2z + 2y2 + z3 = 2
Poate p rea 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 ecuaµii polinomiale de osingur variabil , de grad superior.
Se ³tie c formule de rezolvare � implicând pe lâng operaµiile de baz ³i extragerea de r d cin � i.e. exprimarea explicit a soluµiei ecuaµiei cuajutorul coe�cienµilor, exist doar pentru ecuaµii de ordin 4 inclusiv. Esteclar, c situaµia pentru sisteme de ecuaµii algebrice neliniare nu poate � maibun decât pentru ecuaµii de o singur necunoscut . Faptul îns , c rezolvareasistemelor cu mai multe necunoscute se reduce la rezolvarea ecuaµiilor, este cutotul 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
729z21 + 2916z20 − 3645z19 − 14094z18 − 25677z17
−32400z16 − 31482z15 + 16344z14 + 88686z13 + 42056z12
−118191z11 − 199656z10 − 75580z9 + 89238z8 + 151884z7
+129122z6 + 48708z5 − 16038z4 − 41256z3 − 17496z2 + 5832 = 02232410395758457512330353365018920y
+62953278157657061878263952050306z20
+328637503773493952207748257766195z19
−62397440973359733749716933302465z18
−1771894988021516305832097520091391z17
−3282192153596917521513297834207264z16
−4853135198394541361739678228691389z15
−4781168509603021473439992260622447z14
−475503506424356564667271411785366z13
+10895074263712307248945699738718043z12
+10885321992788471886332698014740002z11
−10048957321797036014384419174098447z10
−29016557864084728430842957672957731z9
−20818642913693083613050943983927706z8
+7370805159208119974747905321937016z7
+22490449340981635887207889673569842z6
+24423399071228492619080343470514460z5
+11594581064876178787291365792620682z4
−1477844013372536320473869906881950z3
−7325270924681631854820377218307094z2
−6896584960128782739286342791723108z+526517724286697003778697349660892 = 0
43182x−481824y6z − 481824y6 + 1058076y5z2
+1384380y5z + 165696y5 − 240912y4z4
+649494y4z3 + 1802826y4z2 + 2173528y4z+1927296y4 + 529038y3z5 + 449790y3z4
−806016y3z3 − 524802y3z2 − 3004020y3z−1845048y3 + 445203y2z6 + 901413y2z5
+1167564y2z4 + 598378y2z3 − 2073066y2z2
−1286810y2z − 4290012y2 − 121200yz7 − 444432yz6
+98967yz5 − 524238yz4 + 105078yz3 − 547668yz2
+1619640yz + 1679352y + 40400z7 − 305323z6 − 375117z5
−251184z4 − 2051753z3 + 390696z2 − 419288z + 2844540 = 0
Introducere 13
Am inclus aici sistemul transformat, mai mult pentru a impresiona ³i toto-dat pentru a crea un sentiment de admiraµie vizavi de algoritmul care poaterealiza aceast performanµ .
S observ m c prima ecuaµie conµine doar necunoscuta z ³i este o ecuaµiealgebric de gradul 21, deci are 21 de r d cini. Remarcabil este acum faptul,c a doua ecuaµie conµine un singur y, ³i în rest numai puteri ale lui z (evidentcu exponent cel mult 20)! A³adar pentru �ecare valoare a lui z, avem ³i câteun y. În sfâr³it a treia ecuaµie are un singur x, ³i ceilalµi termeni îl conµinnumai pe y ³i z.
Astfel problema rezolv rii sistemului iniµial s-a transformat în problemarezolv rii unui sistem "triunghiular" (în sensul celor spuse mai sus) ³i practics-a redus la problema rezolv rii unei ecuaµii algebrice de grad superior. În acestmoment pot intra pe scen clasicele metode de rezolvare numeric aproximativ a ecuaµiilor algebrice. Pachetul Singular conµine asemenea metode. Soluµiilesistemului arat cam a³a:
x y z
1 −0.072062 + i · 0.952039 0.94443− i · 0.648006 1.070608 + i · 0.573752 −0.072062− i · 0.952039 0.94443 + i · 0.648006 1.070608− i · 0.573753 −0.848005 + i · 1.618178 −0.483605 + i · 0.669006 0.349704− i · 1.5743774 −0.848005− i · 1.618178 −0.483605− i · 0.669006 0.349704 + i · 1.5743775 0.721738 + i · 0.179155 −1.119805 + i · 0.183733 0.101215− i · 0.787526 0.721738− i · 0.179155 −1.119805− i · 0.183733 0.101215 + i · 0.787527 −0.0229623 + i · 1.663995 −1.199549− i · 0.368324 −0.353684− i · 0.6638388 −0.0229623 + i · 1.663995 −1.199549 + i · 0.368324 −0.353684 + i · 0.6638389 −0.447467 + i · 2.451932 −1.6714− i · 0.721403 −0.657404− i · 0.49235610 −0.447467− i · 2.451932 −1.6714 + i · 0.721403 −0.657404 + i · 0.49235611 −1.418637− i · 0.490479 0.733779− i · 0.72217 −0.781963− i · 1.03097312 −1.418637 + i · 0.490479 0.733779 + i · 0.72217 −0.781963 + i · 1.03097313 1.367663− i · 1.832259 −1.053835− i · 1.465191 −0.790929− i · 0.82425314 1.367663 + i · 1.832259 −1.053835 + i · 1.465191 −0.790929 + i · 0.82425315 0.697941 + i · 0.407091 1.229042− i · 0.0362325 −1.107462− i · 0.13509716 0.697941− i · 0.407091 1.229042 + i · 0.0362325 −1.107462 + i · 0.13509717 −2.673561 −0.393312 2.78478418 1 1 119 −2.03556 1.414218 0.5158120 2.097668 1.4258 0.49746321 −4.344962 1.795171 −4.458227
Remarcaµi soluµia 18, ea este un fel de control, întrucât ea a fost de laînceput încorporat în sistemul de ecuaµii: coe�cienµii au fost ale³i astfel caaceasta s �e una din soluµii.
14 Introducere
Urm torul exemplu pe care-l amintim aici este problema g sirii ecuaµieiimplicite pentru curbe în plan ³i suprafeµe în spaµiu.
Fie spre exemplu curba din plan dat prin ecuaµiile parametrice{x = t2−1
t2+1
y = 2tt2+1
Problema este g sirea ecuaµiei implicite a acestei curbe. Iat soluµia dat de"calculator" prin intermediul programului de mai jos � care apeleaz evidentinstrucµiunea atotcuprinz toare 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 obµine � conform a³tept rilor � ecuaµia cercului: x2 + y2 = 1.
Pân aici nimic spectaculos. Dar dac curba este dat de ecuaµiile urm toare?{x = t4+t2−t−1
t4+t2+1
y = t3−t+2t4+t2+1
Acum ecuaµia implicit este:
90701x16 + 447554x15y + 2023428x14y2 + 4503660x13y3 + 10096072x12y4 +10447462x11y5 + 17470008x10y6 + 16556976x9y7 + 20935280x8y8 +17106146x7y9 + 14775850x6y10 + 8973146x5y11 + 5150058x4y12 +2114208x3y13+774389x2y14+172476xy15+32361y16+34047x15−288034x14y+60178x13y2− 1200159x12y3+1927237x11y4− 10014527x10y5− 5322620x9y6−18463460x8y7−13965529x7y8−17943051x6y9−11235129x5y10−7848518x4y11
− 3443299x3y12 − 1471855x2y13 − 320929xy14 − 76567y15 + 10354x14 −123155x13y + 629218x12y2 − 1674363x11y3 + 3241421x10y4 − 3527140x9y5 +1668464x8y6 − 3208231x7y7 + 1533200x6y8 + 211816x5y9 + 1087280x4y10 +743647x3y11 + 514924x2y12 + 60620xy13 + 30884y14 − 106x13 + 2650x11y2 −3922x10y3 − 23956x9y4 +57452x8y5 +60526x7y6 − 252068x6y7 +35616x5y8 +313336x4y9−107590x3y10−101866x2y11+13390xy12+3693y13+106y12 = 0.
Suprafaµa dat parametric x = u2+v
u4+v2+1
y = u−vu4+v2+1
z = u−v2
u4+v2+1
Introducere 15
are ecuaµia implicit :
3x8 − 4x7y + 4x6y2 + 82x5y3 + 173x4y4 + 182x3y5 + 122x2y6 + 50xy7 + 9y8 −12x6yz − 110x5y2z − 272x4y3z − 342x3y4z − 248x2y5z − 98xy6z − 16y7z +10x6z2 +40x5yz2 +112x4y2z2 +178x3y3z2 +160x2y4z2 +80xy5z2 +20y6z2 −4x4yz3−34x3y2z3−56x2y3z3−44xy4z3−16y5z3+3x4z4+12x3yz4+24x2y2z4+24xy3z4+12y4z4−2x7+6x6y+28x5y2+46x4y3+22x3y4−18x2y5−22xy6−6y7−2x6z−28x5yz−44x4y2z−12x3y3z+36x2y4z+40xy5z+16y6z+2x5z2+6x4yz2−22x3y2z2−48x2y3z2−50xy4z2−24y5z2+2x4z3+8x3yz3+22x2y2z3+28xy3z3 +20y4z3 +4x4y2 +4x3y3 +3x2y4 +4xy5 +3y6 − 8x3y2z− 12x2y3z−18xy4z − 12y5z + 4x2y2z2 + 8xy3z2 + 11y4z2 − 2xy4 − 2y5 + 2y4z = 0.
S mai vedem o aplicaµie, de data aceasta una de cu totul alt tip: demon-straµia automat a teoremelor de geometrie euclidian plan .
Iat ³i aici un exemplu, prezentat f r preg tirile necesare înµelegerii de-taliilor.
// Problem :// Fie ABCD un p trat. Împ rµim// latura CD în 3 p rµi egale:// DE=EF=FC.// Dreapta AE taie latura BC în punctul G.// Fie H mijlocul segmentului AG.// Atunci:// DH este jum tate din diagonala p tratului.// (Sursa: N.M.Examen Fac. Mat. Bucure³ti,// 1961,enunµ parµial)
Problema de geometrie se trensform în limbaj algebric, folosind un sistemde coordonate. Aici am ales drept axe laturile AB ³i AD ale p tratului.
Programul scris în Singular arat astfel:
// u - latura p tratului// ...a³adar coordonatele vârfurilor p tratului sunt:// A(0,0), B(u,0), C(u,u), D(0,u)// Consider m punctele// E(x1,u), G(u,x2), H(x3,x4)// ³i transpunem condiµiile geometrice:// h1 - condiµia de coliniaritate a punctelor A,E,G.// h2 - condiµia de coliniaritate a punctelor A,H,G.// h3 - H mijlocul segmentului AG.// h4 - DE este 1/3 din DC.// g - concluzia: DH este jum tatea diagonalei.
16 Introducere
A u B
D CE 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 instrucµiunea-minune groebner întoarce rezultatul 1, atunci teoremaeste adev rat , în caz conrar este fals ! Pentru problema noastr rezultatuleste 1, deci teorema este demonstrat !
Consider m, c aceste exemple sunt mai mult ca su�ciente pentru a motivaconµinutul 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 strânse ³i fecunde cu algebra sunt mai noi, ³i au la originecoordonatizarea descoperit de Descartes.
În acest capitol va � vorba de leg turi descoperite mai recent, denumite ast zigeometrie algebric . Vom face o introducere în geometria algebric com-putaµional , care se bazeaz esenµial pe teoria bazelor Gröbner . Contextulgeneral va � în acela³i timp algebric ³i geometric. Din punct de vedere al-gebric, obiectele de studiu vor � idealele inelelor de polinoame cu mai multevariabile, iar din punct de vedere geometric, variet µile a�ne sau proiective.
1.1 Concepte de baz
Î n aceast secµiune reamintim câteva concepte de baz ale algebrei poli-noamelor cu mai multe variabile, precum ³i a noµiunilor geometrice aferente
acestora, a variet µilor algebrice.
1.1.1 Polinoame cu mai multe variabile
Polinoamele sunt expresii algebrice construite din variabile ³i numere (coe�-cienµi) cu ajutorul operaµiilor de adunare, sc dere ³i înmulµire.
Prin urmare aceste trei operaµii se pot efectua neîngr dit ³i între polinoame.Pentru a putea încerca împ rµirea (cu rest) a polinoamelor este convenabil caîntre coe�cienµii acestora s dispunem ³i de împ rµire neîngr dit , în termeni
17
18 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
tehnici mulµimea coe�cienµilor este bine s formeze un corp de numere. Cor-purile de numere cele mai familiare sunt:
• corpul numerelor raµionale Q
• corpul numerelor reale R
• corpul numerelor complexe C
• corpri de numere algebrice, ex. Q(√2)
• corpuri �nite, ex. Z2,Z3,Z5.
Aceste corpuri de numere le vom avea în vedere ³i în realizarea computaµio-nal a polinoamelor. Ocazional, vor mai apare ³i corpuri de fracµii raµionale,dar ele vor avea o prezentare satisf c toare în locul respectiv.
În cele ce urmeaz cititorul este invitat s gândeasc în primul rând corpulnumerelor complexe drept corp al coe�cienµilor.
De�niµie 1.1.1. Un monom în variabilele x1, x2, . . . , xn este un produs deforma
xα = xα11 · xα2
2 · · · · · xαnn ,
unde exponenµii sunt întregi nenegativi. Suma acestora |α| = α1+α2+· · ·+αn
se nume³te gradul total al monomului.
D m acum o de�niµie formal pentru noµiunea de polinom.
De�niµie 1.1.2. Un polinom f în variabilele x1, x2, . . . , xn cu coe�cienµi încorpul k este o combinaµie liniar �nit de monoame, cu coe�cienµi din k,adic
f =∑α
aαxα, aα ∈ k,
unde α = (α1, α2, . . . , αn). Mulµimea acestor polinoame se noteaz cu k[x] =k[x1, x2, . . . , xn].
Urm toarea de�niµie practic �xeaz o terminologie.
De�niµie 1.1.3. Fie f =∑
α aαxα un polinom în k[x].
• Num rul aα ∈ k se nume³te coe�cientul lui xα.
• Dac aα = 0, aαxα se nume³te termen al polinomului.
• Gradul polinomului, notat deg(f) este maxα{|α|; α = 0}.
1.1. CONCEPTE DE BAZ� 19
De�niµie 1.1.4. Se nume³te spaµiu a�n n-dimensional peste corpul k
kn = {(a1, a2, . . . , an); ai ∈ k, i = 1, 2, . . . , n}.
Cu ajutorul unui polinom de n variabile putem de�ni o funcµie pe spaµiul a�nn-dimensional, folosind "formula" polinomului pentru calculul valorii funcµiei.Mai exact polinomul f =
∑α aαx
α din k[x1, x2, . . . , xn] de�ne³te o funcµie
f : kn → k,
prin asocierea lui (a1, a2, . . . , an) cu f(a1, a2, . . . , an), valoare a polinomului cese obµine prin înlocuirea lui x1 cu a1, a lui x2 cu a2, etc.
Se pune imediat întrebarea, în ce m sur polinomul ³i funcµia polinomial asociat se determin reciproc? Întrucât diferenµei polinoamelor corespundediferenµa funcµiilor, ³i polinomul nul (cu toµi coe�cienµii nuli) de�ne³te evidentfuncµia identic nul , întrebarea de mai sus se reformuleaz astfel: exist oarepolinoame nenule, care s de�neasc funcµia polinomial identic nul ?
R spunsul la aceast întrebare este negativ � cum ne a³tept m de altfel �doar în cazul corpurilor in�nite. Dac un corp k este �nit, ³i spre exemplu aren elemente, c1, c2, . . . , cn, atunci polinomul f(x) = (x−c1)·(x−c2)·· · ··(x−cn)are gradul n, deci este nenul în k[x], ³i evident de�ne³te funcµia polinomial nul pe k.
Are loc deci urm toarea propoziµie.
Propoziµie 1.1.5. Fie k un corp in�nit ³i f ∈ k[x1, x2, . . . , xn] un polinom.Atunci f = 0 în k[x1, x2, . . . , xn] dac ³i numai dac f : kn → k, este funcµiaidentic nul .
Demonstraµie. Dac polinomul este nul, funcµia polinomial este evident nul .Invers, raµionamentul este o inducµie dup num rul variabilelor n. Pentru n = 1�e polinomul de grad m,
f = cmxm + cm−1xm−1 + · · ·+ c1x+ c0.
Corpul k �ind in�nit, putem considera m + 1 valori, a0, a1, . . . , am, distictedou câte dou . Presupunând, c funcµia polinomial este nul , egalit µilef(a0) = 0, f(a1) = 0, . . . , f(am) = 0 formeaz un sistem de ecuaµii omogen,necunoscutele �ind cei m coe�cienµi ai polinomului. Determinantul acestuisistem este ∣∣∣∣∣∣∣∣
am0 am−10 . . . a0 1
am1 am−11 . . . a1 1
. . . . . . . . . . . . . . .amm am−1
m . . . am 1
∣∣∣∣∣∣∣∣ =∏i<j
(ai − aj) = 0,
20 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
un determinant de tip Vandermonde, diferit de 0. Prin urmare singura soluµiea sistemului este cel nul, deci toµi coe�cienµii polinomului, în concluzie ³i poli-nomul, este 0.
Pasul inductiv este simplu, ³i este l sat pe seama cititorului.
1.1.2 Variet µi a�ne
Trecând la punctul de vedere geometric, trebuie s începem cu o de�niµiefundamental .
De�niµie 1.1.6. Fie f1, f2, . . . , fm polinoame în variabilele x1, x2, . . . , xn cucoe�cienµi în corpul k. Se nume³te varietate a�n de�nit de aceste polinoame,mulµimea zerourilor comune ale lor, adic mulµimea notat V (f1, f2, . . . , fm)dat prin
{(a1, a2, . . . , an) : fi(a1, a2, . . . , an) = 0, pentru orice i = 1, 2, . . . ,m}.
Pentru a accentua caracterul geometric al acestei noµiuni s consider mni³te exemple, pentru care putem face ³i reprezent ri gra�ce. Va trebui decis consider m corpul k = R al scalarilor reali.
Iat mai întâi câteva exemple de variet µi plane.
Exemplu 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 obµinut reprezentarea gra�c din �guraal turat 1.1.2. În exemplele care urmeaz se schimb doar rândul în care sede�ne³te idealul I generat de polinomul corespunz tor 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 deo parte componente ale variet µii algebrice, dar are ³i rolul unui "truc", princare am inclus axele de coordonate în varietatea algebric reprezentat .
Iat acum câteva exemple de variet µi în spaµiu. Acestea pot � puncte,curbe, sau suprafeµe, respectiv reuniuni ale acestora. În general zerourile unuipolinom cu trei variabile reale este o suprafaµ . Programul surf apelat dinSingular este capabil s reprezinte gra�cul acestor suprafeµe chiar din ecuaµialor implicit .
Exemplu 1.1.8.
Figura 1.2: V (x2− y2 + z2) ³i V (x2y − z2), "Withney umbrella."
Exemplele care urmeaz prezint singularit µi izolate ale unor suprafeµe.
Exemplu 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 câteva suprafeµe de interes special. Mai întâi o suprafaµ cuartic (ecuaµie de grad 4), având num rul maxim de singularit µi.
Apoi o serie de suprafeµe de interes pentru clasi�carea singularit µiilorsuprafeµelor complexe (aici varianta lor în spaµiul real). Prima este o sin-gularitate de tip A3. Ecuaµia implicit a unei singularit µi de tipul Ak esteAk = V (xk+1 − y2− z2), k >= 1. Aici k = 3.
Exemplu 1.1.10. O quartic C = V (x4 + y4 + z4 + 1− x2− y2− z2− y2z2− z2x2− x2y2),
respectiv singularitatea de tipulAk = V (xk+1 − y2− z2), k >= 1.
Figura 1.4: O quartic ³i A3 = V (x3 − y2− z2).
Exemplu 1.1.11. Iat ³i celelalte singularit µi de tip ADE.Dk = V (x(xk−2 + y2) + z2).E6 = V (x4 + y3 + z2).E7 = V (y(x3 + y2) + z2).E8 = V (x5 + y3 + z2).
Figura 1.5: D5 = V (x(x3 + y2) + z2) ³i E6 = V (x4 + y3 + z2).
1.1. CONCEPTE DE BAZ� 23
Figura 1.6: E7 = V (y(x3 + y2) + z2) ³i E8 = V (x5 + y3 + z2).
Revenind la aspecte teoretice, s ne aducem aminte de întreb rile pe carele punem în leg tur cu problema rezolv rii unui sistem de ecuaµii liniare:Are sistemul soluµii sau nu (sunt ecuaµiile sistemului compatibile)? Dac are,atunci are o singur soluµie, sau mai multe (sistemul este determinat, saunedeterminat)?
Pentru un sistem de ecuaµii polinomiale neliniar, � deci în leg tur cu ovarietate algebric , � întreb rile se formuleaz similar:
• Sunt ecuaµiile compatibile sau nu?
• Dac sistemul este compatibil, are un num r �nit de soluµii sau nu?
• Dac num rul soluµiilor nu este �nit, care este dimensiunea geometric a mulµimii soluµiilor (num rul parametrilor liberi independenµi)?
Pentru a contura r spunsuri la aceste întreb ri, mai avem nevoie de unconcept de baz , cel introdus în secµiunea urm toare.
Mai înainte îns , s vedem ce operaµii putem face cu variet µile algebrice?Mai concret, este reuniunea, respectiv intersecµia a dou variet µi algebrice toto varietate algebric ? R spunsul este dat în urm toarea propoziµie.
Propoziµie 1.1.12. Fie V ³i W variet µi a�ne în kn. Atunci V ∪W ³i V ∩Wsunt variet µi a�ne.
Demonstraµie. Demonstraµia acestor propriet µi este una constructiv . Putemda explicit sistemul de ecuaµii polinomiale, ale c ror soluµii sunt reuniunea,respectiv intersecµia celor dou variet µi. Fie V = V (f1, f2, . . . , fk) ³i W =V (g1, g2, . . . , gl). Atunci:
V ∪W = V (figj ; i = 1, . . . , k, j = 1, . . . , l)
V ∩W = V (f1, f2, . . . , fk, g1, g2, . . . , gl).
24 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Este clar c V,W ⊆ V (figj), deci V ∪ W ⊆ V (figj). Invers, �e(a1, a2, . . . , an) ∈ V (figj) pentru orice i, j. Dac acest punct este în V , atunciV (figj) ⊆ V ∪ W. Dac îns acest punct nu se a� în V , atunci pentru m -car un indice i0 avem fi0(a1, a2, . . . , an) = 0. Îns fi0gj(a1, a2, . . . , an) = 0pentru orice j, deci gj(a1, a2, . . . , an) = 0 pentru orice j, ceea ce arat c (a1, a2, . . . , an) ∈ W. Prin urmare V (figj ; i = 1, . . . , k, j = 1, . . . , l) ⊆ V ∪W.
Cealalt egalitate este imediat .
1.1.3 Ideale
Vom introduce în aceast secµiune, corespondentul algebric al conceptului ge-ometric de varietate a�n . Acesta este conceptul de ideal.
S începem cu de�niµia conceptului abstract de inel.
De�niµie 1.1.13. O mulµime A înzestrat cu o operaµie de adunare notat ′+′,³i o operaµie de înmulµire compatibil cu aceasta (distributiv faµ de aceasta)notat ′·′, pentru care (A,+) este grup comutativ, ³i (A, ·) este semigrup, senume³te inel .
Inelul este comutativ dac înmulµirea este comutativ , ³i este unitar , dac înmulµirea are element unitate.
În cele ce urmeaz prin inel vom înµelege un inel comutativ ³i unitar, f r a mai preciza explicit aceste propriet µi.
Observaµia fundamental pentru contextul nostru este formulat în urm -toarea propoziµie:
Propoziµie 1.1.14. Fie k un corp comutativ. Atunci k[x1, x2, . . . , xn] este uninel comutativ.
Demonstraµie. Veri�carea propriet µilor care de�nesc structura de inel esteimediat ³i este l sat pe seama cititorului.
S remarc m faptul c singura diferenµ în de�niµia unui inel faµ dede�niµia unui corp este c aici nu mai pretindem existenµa unui invers pentru�ecare element nenul. Altfel spus, un corp este un inel în care �ecare elementnenul este inversabil. Rezult de aici c problemele legate de divizibilate î³ig sesc ca mediu general ³i abstract de studiu, structura de inel.
O prim clasi�care a elementelor unui inel este dat prin intermediul con-ceptelor urm toare:
De�niµie 1.1.15. Fie A un inel comutativ ³i unitar. Un element f ∈ A, f = 0se nume³te divizor al lui 0 dac exist g ∈ A, g = 0 astfel încât f · g = 0.
1.1. CONCEPTE DE BAZ� 25
Un element f ∈ A, f = 0 se nume³te inversabil sau unitate dac exist g ∈ A, g = 0 astfel încât f · g = 1.
Un element nenul, care nu este divizor al lui zero se nume³te regulat . Uninel în care nu exist divizori ai lui zero se nume³te domeniu de integritate.
Evident, elementele inversabile sunt ³i regulate. De asemenea este u³orde v zut c într-un inel �nit orice element regulat f , este inversabil. Pentruaceasta este su�cient s consider m aplicaµia φ : A → A dat de φ(g) = fg.Din fg = fh rezult f(g − h) = 0 deci g − h = 0, sau g = h. A³adar φeste injectiv , deci ³i surjectiv , de unde rezult c exist b ∈ A astfel caf(b) = ab = 1, ceea ce înseamn c a este inversabi.
De�nim acum conceptul de ideal.
De�niµie 1.1.16. O submulµime nevid I ⊆ A al inelului A se nume³te idealdac are propriet µile
(1) Dac f, g ∈ I atunci f − g ∈ I.
(2) Dac f ∈ I µi h ∈ A, atunci hf ∈ I.
O prim observaµie imediat este faptul c în de�niµie în locul condiµieif − g ∈ I, se poate lua echivalent condiµia f + g ∈ I. De asemenea, se vede c elementul 0 face parte din orice ideal.
O dat cu de�nirea unui concept se pune automat problema caracteriz riiobiectelor pe care aceast concept le descrie. Altfel spus, este natural s d mexemple caracteristice de ideale. S menµion m totu³i, c aceast abordare,de³i tipic pentru orice prezentare, ascunde ideile care au dus la cristalizareatreptat a conceptului respectiv, ³i nici m car nu se refer în mod necesar lacontextul original care a generat aceast cristalizare. În cazul de faµ pentruconceptul de ideal rolul determinant a avut efortul de a demonstra mareateorem a lui Fermat, îns detaliile acestei istorii ne-ar duce prea departe deideile pe care le urm rim aici.
Revenind la exemple carecteristice de ideale, d m urm toarea propoziµie.
Propoziµie 1.1.17. Fie A un inel ³i f1, f2, . . . , fm ∈ A. Atunci mulµimea
< f1, f2, . . . , fm >= {g1f1 + g2f2 + · · ·+ gmfm| gi ∈ A, i = 1, . . . ,m}
este ideal în inelul A.
Acest ideal se nume³te idealul generat de elementele f1, f2, . . . , fm. De aseme-nea dac I =< f1, f2, . . . , fm >, atunci spunem c elementele f1, f2, . . . , fmformeaz o baz pentru I. În acest caz idealul I se nume³te �nit generat .
Evident un ideal �nit generat are mai multe baze. Dintre bazele unui ideala³a numitele baze Gröbner au propriet µi speciale, despre care va � vorba însecµiunile care urmeaz .
26 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
De�niµie 1.1.18. Un ideal de forma I =< f > se nume³te ideal principal .Un inel în care orice ideal este principal se nume³te inel principal .
Exemple de inele principale sunt date în urm toarea propoziµie:
Propoziµie 1.1.19. Inelul Z al întregilor ³i inelul polinoamelor de o nedeter-minat cu coe�cienµi într-un corp sunt inele principale.
Demonstraµie. Fie I un ideal în Z. Dac I = {0}, atunci I = 0 · Z =< 0 >³i suntem gata. Dac I = {0}, atunci I conµine atât numere pozitive cât ³inegative, deoarece odat cu un num r din I ³i opusul acestuia (multiplul cu−1) este în I. Fie n cel mai mic num r întreg strict pozitiv din I. Atunci esteclar c n · Z ⊆ I. Invers, �e x ∈ I arbitrar. Pe baza teoremei fundamentale aaritmeticii, exist un cât q ³i un rest r unic astfel ca
x = n · q + r, 0 ≤ r < n.
Din egalitatea r = x− n · q se cite³te c r ∈ I, ceea ce nu e posibil � conformalegerii lui n � decât dac r = 0. Astfel x ∈ n ·Z, deci I ⊆ n ·Z. Rezult decic I = n · Z.
Pentru inelul polinoamelor cu coe�cienµi într-un corp demonstraµia esteidentic în esenµ . Diferenµa const în faptul c se compar gradele poli-noamelor, ³i se folose³te teorema împ rµirii întregi a polinoamelor, care asigur � ca ³i în cazul numerelor întregi � existenµa ³i unicitatea câtului ³i restuluiîmp rµirii.
Aceast propoziµie este important mai ales prin consecinµa ei dat înpropoziµia 1.1.23 de la pagina 27. Pentru preg tirea enunµului acesteia tre-buie s de�nim conceptul abstract de cel mai mare divizor comun.
De�niµie 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 dividreciproc, adic a|b ³i b|a.
Relaµia de divizibilitate este evident re�exiv ³i tranzitiv . De asemenea, sevede imediat, c elementele a ³i b sunt asociate dac ³i numai dac a = bu,unde u este un element inversabil. Într-adev r, dac u este inversabil atunciexist 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, sauuv = 1, deci u este inversabil.
1.1. CONCEPTE DE BAZ� 27
De�niµie 1.1.21. Fie A un domeniu de integritate, ³i a, b ∈ A. Un elementd ∈ A se nume³te 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 sensulrelaµiei de divizibilitate.
S observ m, c cel mai mare divizor comun a dou elemente nu este unic.Mai precis, dac d1 ³i d2 este �ecare cel mai mare divizor comun al elementelora ³i b, atunci d1 ³i d2 sunt elemente asociate, deoarece din de�niµia celui maimare divizor comun 1.1.21(ii) rezult imediat, c d1 ³i d2 se divid reciproc.Expresia d = (a, b) conµine a³adar un u³or abuz de notaµie.
Î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 întâi o observaµie.
Observaµie 1.1.22. Într-un domeniu de integritate
< d >=< d′ >,
dac ³i numai dac elementele d ³i d′ sunt asociate.
Demonstraµie. Într-adev r, 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 elementeled ³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′ >. A³adar dac d³i d′ sunt asociate, atunci < d >=< d′ >.
Iat ³i caracterizarea celui mai mare divizor comun în domenii de integritate(aici Z).
Propoziµie 1.1.23. Fie a, b, d ∈ Z trei numere întregi. Num rul d este celmai 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 ∈ Zastfel ca d = ax+ by, ³i invers, dac d = ax+ by, ³i d este un divizor comunal 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 când 1 are oreprezentare de forma 1 = ax+ by, unde x, y sunt numere întregi potrivite.
28 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Demonstraµie. Fie d = (a, b). Din d|a ³i d|b rezult c a·Z ⊆ d·Z ³i b·Z ⊆ d·Z,deci ³i a ·Z+ b ·Z ⊆ d ·Z. Dar pe baza propoziµiei 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 relaµia de de�niµie a lui d′ sevede îns c d′ este un divizor comun al lui a ³i b, deci avem ³i d′|d. A³adar 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 · Zrezult 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 undivizor al lui d, deci d este un cel mai mare divizor.
Restul a�rmaµiilor din enunµ sunt simple consecinµe ale celor de mai sus.
S vedem acum ce operaµii putem efectua cu ideale. Intersecµia a dou ideale este ideal, întrucât propriet µi care se de�nesc numai cu ajutorul cuan-ti�catorului universal ("pentru orice"), se mo³tenesc la intersecµia mulµimilor.Este u³or de v zut îns , c reuniunea idealelor nu este în general ideal.
De�niµie 1.1.24. Fie I ³i J ideale în A. De�nim suma, produsul , intersecµia³i câtul 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 >= {f1g1 + f2g2 + · · ·+ fmgm| fi ∈ I, gi ∈ 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 intersecµia idealelor,
• I : J = {f | f ∈ A astfel ca pentru orice g ∈ J, fg ∈ I} este câtul ide-alelor,
•√I = {f | f ∈ A, ³i exist n > 0, astfel încât fn ∈ I} este radicalul
idealului I.
Se arat u³or, c suma, produsul, intersecµia ³i câtul a dou ideale, conformde�niµiei de mai sus, este tot un ideal. Deasemenea ³i radicalul unui ideal estetot un ideal.
Propriet µi simple ale acestora sunt date în observaµiile care urmeaz .
1.1. CONCEPTE DE BAZ� 29
Observaµii 1.1.25. Fie I ³i J dou ideale.
• I + J este cel mai mic ideal care conµine idealul I ³i J.
• I ∩ J este cel mai mare ideal care este conµinut în idealul I ³i J.
• I ∪ J este ideal dac ³i numai dac I ⊆ J sau J ⊆ I.
• Dac I =< f1, f2, . . . , fk > ³i J =< g1, g2, . . . , gl >, atunci I + J =< f1, f2, . . . , fk, g1, g2, . . . , gl > .
• Dac I =< f1, f2, . . . , fk > ³i J =< g1, g2, . . . , gl >, atunci IJ =< figj | i = 1, . . . , k, j = 1, . . . , l > .
Demonstraµiile acestor propriet µi sunt simple, ³i sunt l sate pe seama citi-torului.
Alte propriet µi sunt date în propoziµiile care urmeaz .
Propoziµie 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.
Demonstraµie.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 de�niµia unui ideal. DeciI : I = A.
Punctul (b): I ⊆ I : A este clar din de�niµia 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, (deoareceIJ ⊆ 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. Inversrezult din 1 ∈ A.
Propoziµie 1.1.27. Fie I, J,K, I1, I2, J1, J2 ideale în A. Atunci
(a) (I1 ∩ I2) : J = (I1 : J) ∩ (I2 : J).
(b) I : (J1 + J2) = (I : J1) ∩ (I : J2).
30 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
(c) (I : J) : K = I : (JK).
Demonstraµie.Punctul (a): Din I1 ∩ I2 ⊆ I1, I2 rezult c I1 ∩ I2 : J ⊆ I1 : J, I2 : J, deci
I1∩I2 : J ⊆ I1 : J∩I2 : J. Invers, �e f ∈ I1 : J∩I2 : J. Atunci f ∈ I1 : J, I2 : J,deci fg ∈ I1, I2, pentru orice g ∈ J. Rezult c fg ∈ I1 ∩ I2 pentru orice g ∈ J,prin urmare f ∈ (I1 ∩ I2) : J, deci I1 ∩ I2 : J ⊇ I1 : J ∩ I2 : J. A³adarI1 ∩ I2 : J = I1 : J ∩ I2 : J.
Punctul (b): Din J1+J2 ⊇ J1, J2 rezult c I : (J1+J2) ⊆ (I : J1), (I : J2),deci I : (J1 + J2) ⊆ (I : J1) ∩ (I : J2). Invers, �e f ∈ (I : J1) ∩ (I : J2), decif ∈ (I : J1) ³i f ∈ (I : J2). Rezult c fg ∈ I ³i fh ∈ I pentru orice g ∈ J1³i h ∈ J2, de unde fg + fh = f(g + h) ∈ I, deci f ∈ I : (J1 + J2). Avem deciI : (J1 + J2) ⊇ (I : J1) ∩ (I : J2), deci ³i I : (J1 + J2) = (I : J1) ∩ (I : J2).
Punctul (c): Începem cu o observaµie: Fie I ³i J =< g1, g2, . . . , gk >ideale în A. Atunci I : J = {f ∈ A| fgi ∈ I, i = 1, 2, . . . , k}. Într-adev r,I : J ⊆ {f ∈ A| fgi ∈ I, i = 1, 2, . . . , k}, din cauza incluziunii bazei în idealulgenerat de aceasta. Pe de alt parte îns dac fgi ∈ I, i = 1, 2, . . . , k atunci ³ifg ∈ I pentru orice g = h1g1+h2g2+ · · ·+hkgk ∈ J, deci I : J ⊇ {f ∈ A| fgi ∈I, i = 1, 2, . . . , k}. Acest raµionament se extinde neschimbat pentru cazul cândJ =< gj | j ∈ IJ > este un ideal generat de orice familie de polinoame.
S introducem acum o notaµie: J ·K = {gh| g ∈ J, h ∈ K}.Trecând la demonstraµia 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 observaµiei de mai înainte� cu f(KJ) ⊆ I, echivalent cu f ∈ I : (KJ) sau f ∈ I : (JK). Prin urmare(I : J) : K = I : (JK).
Propoziµie 1.1.28. Fie I, J ideale în A. Atunci
(a) I ⊆√I.
(b) Dac I ⊆ J atunci√I ⊆
√J.
(c)√IJ =
√I ∩ J =
√I ∩
√J.
(d)√I + J =
√√I +
√J.
(e)√√
I =√I.
Demonstraµie.Punctul (a): f1 = f ∈ I pentru orice f ∈ I, deci I ⊆
√I.
Punctul (b): Dac f ∈√I atunci exist n ≥ 1 astfel ca fn ∈ I deci fn ∈ J ,
de unde f ∈√J. A³adar
√I ⊆
√J.
1.1. CONCEPTE DE BAZ� 31
Punctul (c): S observ m c IJ ⊆ I, J deci IJ ⊆ I ∩ J de unde pe bazapunctului precedent
√IJ =
√I ∩ J.
Similar, I ∩ J ⊆ I, J , deci√I ∩ J ⊆
√I,√J , deci
√I ∩ J ⊆
√I ∩
√J.
Pentru a încheia demonstraµia, �e f ∈√I ∩
√J, deci f ∈
√I,√J. Prin
urmare exist k ³i l, astfel încât fk ∈ I ³i f l ∈ J , de unde fk+l = fkf l ∈ IJdeci f ∈
√IJ. De aici avem
√I ∩
√J ⊆
√IJ.
Toate acestea arat c √IJ =
√I ∩ J =
√I ∩
√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 ⊇√I. Invers, �e f ∈√√
I. Atunci fk ∈√I deci (fk)l ∈ I, pentru k ³i l întregi pozitivi, potrivit
ale³i. A³adar fkl ∈ I, deci f ∈√I ceea ce înseamn
√√I ⊆
√I. În concluzie√√
I =√I.
1.1.4 Inel factor. Inel de fracµii. Localizare
Un procedeu de construcµie de inele din inele deja construite este considerareainelelor factor. Pe analogia situaµiei de la grupuri � unde un subgrup normalde�ne³te o relaµie de congruenµ compatibil cu operaµia din grup � un idealva de�ni o relaµie de congruenµ compatibil cu cele dou operaµii din inel.Clasele de echivalenµ faµ de aceast relaµie de echivalenµ vor de�ni inelulfactor.
Exemplul caracteristic care trebuie avut în vedere este aritmetica claselorde resturi ale numerelor întregi.
Propoziµie 1.1.29. Fie I ⊆ A un ideal. Relaµia notat f ∼ g, ³i de�nit prin
f ∼ g dac f − g ∈ I,
este o relaµie de echivalenµ pe A compatibil cu operaµiile de adunare ³i în-mulµire din A.
Demonstraµie. Relaµia ∼ este o relaµie de echivalenµ dac este
• re�exiv , 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 operaµiile de adunare ³i înmulµire înseamn
• dac f ∼ h ³i g ∼ k, atunci f + g ∼ h+ k pentru orice f, g, h, k ∈ A ³i
• dac f ∼ h ³i g ∼ k, atunci fg ∼ hk pentru orice f, g, h, k ∈ A.
32 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Toate aceste propriet µi sunt imediate folosind de�niµia noµiunii de ideal.
Propoziµia de mai sus st la baza de�niµiei care urmeaz . S not m clasa deechivalenµ a polinomului f cu
f = {g | g ∼ f ; g ∈ A} = f + I.
În concluzie propoziµia anterioar se reformuleaz astfel: mulµimea claselor deechivalenµ are structura unui inel.
De�niµie 1.1.30. Mulµimea claselor de echivalenµ date de relaµia deechivalenµ de�nit de idealul I se noteaz cu A/I, ³i se nume³te inelul factorde�nit de idealul I.
S observ m totu³i c aceast de�niµie, ca ³i propoziµia precedent nu serefer în mod speci�c la inele de polinoame, ele sunt valabile în contextulgeneral al teoriei inelelor.
De�niµie 1.1.31. Fie I un ideal în A. Idealul I se nume³te maximal , dac este element maximal în muµimea ordonat de incluziune a idealelor proprii aleinelului 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 observaµia c reuniunea idealelor unui ³ir ascendent deideale este un ideal, care include (este mai mare decât) toate idealele ³irului.
S vedem acum cum se caracterizeaz idealele maximale cu ajutorul ineluluifactor, de�nit de ace³tia. Avem urm toarea propoziµie:
Propoziµie 1.1.32. Un ideal M al lui A este maximal dac ³i numai dac inelul factor A/M este corp.
Demonstraµie. Fie M ideal maximal în A. Fie f = f +M un element nenul alinelului factor A/M , adic f ∈ M. Idealul I generat de f ³i M , este deci strictmai mare decât M . Acesta �ind maximal, rezult c I = A, deci rezult c 1 ∈ A are o reprezentare de forma 1 = gf + h unde h ∈ M. Trecând la clasede echivalenµe, avem 1 = gf , deci f = f +M este inversabil, deci inelul factoreste 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. Avematunci f = 0 deci exist g astfel ca gf = 1 sau 1− gf ∈ M ⊆ I. Din egalitatea1 = (1− gf) + gf rezult c 1 ∈ I adic I = A. Rezult deci c M este idealmaximal.
1.1. CONCEPTE DE BAZ� 33
De�niµie 1.1.33. Un inel care are un singur ideal maximal se nume³te inellocal .
Introducerea conceptului de inel local are o justi�care geometric : este legat de studiul propriet µilor variet µilor a�ne în jurul unui punct al lor.
O caracterizare a inelelor locale este dat în urm toarea propoziµie:
Propoziµie 1.1.34. Un inel este local dac ³i numai dac elementele nein-versabile ale inelului formeaz un ideal.
Demonstraµie. Dac un ideal conµine un element inversabil, atunci îl conµine ³ipe 1, deci conµine orice element al inelului, a³adar coincide cu acesta. Rezult c dac elementele neinversabile formeaz un ideal, atunci acesta este cel maimare, deci ³i maximal. Menµion m, c orice inel conµine elemente neinversabile,întrucât 0 este neinversabil (inelul trebuie s aib totu³i cel puµin 2 elemente).
Invers, Fie A un inel local ³i M singurul s u ideal maximal. S not mmulµimea 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 , decielementele neinversabile formeaz un ideal (maximal).
În cele ce urmeaz de�nim inelul de fracµii, într-un context mai general, deciinelul considerat nu este neap rat un inel de polinoame. Aceast construcµieextinde ideea construcµiei numerelor raµionale din numere întregi: mai întîi sede�nesc fracµiile, apoi operaµiile cu acestea, iar în �nal conceptul de num rraµional apare cu ajutorul echivalenµei între fracµii, dat de posibilitatea desimpli�care ³i ampli�care.
De�niµie 1.1.35. Fie A un inel comutativ ³i unitar. O submulµime S a luiA care este sub-semigrup multiplicativ, se nume³te sistem multiplicativ sausistem multiplicativ închis al lui A.
Fie acum S un sistem multiplicativ închis al inelului A. Presupunem c elementele lui S sunt regulate. De�nim o relaµie notat ∼ pe mulµimea A× Sprin
(a1, s1) ∼ (a2, s2) dac a1s2 = a2s1.
Propoziµie 1.1.36. Relaµia ∼ este o relaµie de echivalenµ , compatibil cuoperaµia de înmulµire din inelul A.
Demonstraµie. Relaµia ∼ este o relaµie de echivalenµ pentru c
• re�exiv , adic (a, s) ∼ (a, s) pentru orice (a, s) ∈ A× S,
34 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
• simetric , adic dac (a1, s1) ∼ (a2, s2) atunci (a2, s2) ∼ (a1, s1), pentruorice (a1, s1), (a2, s2) ∈ A× S ³i
• tranzitiv adic dac (a1, s1) ∼ (a2, s2) ³i (a2, s2) ∼ (a3, s3) atunci(a1, s1) ∼ (a3, s3), pentru orice (a1, s1), (a2, s2), (a3, s3) ∈ A× S.
Compatibilitatea cu operaµia de înmulµire înseamn
• dac (a1, s1) ∼ (a′1, s′1) ³i (a2, s2) ∼ (a′2, s
′2), atunci (a1a2, s1s2) ∼
(a′1a′2, s
′1s
′2) pentru orice (a1, s1), (a
′1, s
′1), (a2, s2), (a
′2, s
′2) ∈ A× S.
Toate aceste propriet µi sunt imediate folosind de�niµia relaµiei ∼.
S observ m, c (s, s) ∼ (p, p) pentru orice s, p ∈ S, ³i de asemenea (a, s) ∼(ap, sp), pentru orice (a, s) ∈ A× S, ³i p ∈ S.
Vom nota clasele de resturi în raport cu relaµia de echivalenµ ∼ prin
a/s = (a, s) = {(a′, s′) ∈ A× S | (a′, s′) ∼ (a, s)}.
S observ m, c aceast construcµie imit de�nirea unei împ rµiri, prinintroducerea unui raport formal între elemente, numitorul acestui raport �-ind considerat dintr-un sistem multiplicativ, pentru a permite apoi de�nireaprodusului a dou asemenea rapoarte.
La adunarea fracµiilor îns numitorii se înmulµesc între ei, a³adar se poateb nui c adunarea din inel se extinde ³i pentru aceste "fracµii". O formulareprecis a acestor idei este dat în urm toarea propoziµie:
Propoziµie 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 mulµimeaclaselor de resturi notat
AS = {(a, s) | (a, s) ∈ A× S}
formeaz un monoid în raport cu înmulµirea de�nit pe componente alereprezentanµilor claselor de echivalenµ .
Mai mult, aplicaµia
iS : A → AS , de�nit prin iS(a) = (as, s), s ∈ S
este injectiv , prin ea adunarea din A se extinde în mod unic, astfel ca AS
s devin un inel, în care A este scufundat prin homomor�smul injectiv iS.Elementul s ∈ S în de�niµia lui iS este arbitrar �xat, el poate � ales ³i 1, încazul în care 1 ∈ S.
1.1. CONCEPTE DE BAZ� 35
Demonstraµie. În primul rând s observ m, c înmulµirea de�nit pe com-ponente ale reprezentanµilor claselor este o înmulµire bine de�nit a claselor:rezultatul înmulµirii nu depinde de reprezentantul ales. Acest fapt este o con-secinµ a ultimei propriet µi a relaµiei de echivalenµ ∼ prezentat mai sus.
Dac iS(a) = iS(b), deci (as, s) ∼ (bp, p) atunci asp = bps deci a = b, deunde rezult injectivitatea aplicaµiei iS .
Pentru a extinde adunarea din A prin intermediul injecµiei iS , pe care dorims -l facem homomor�sm de inele, calcul m în felul urm tor:
(a1, s1) ∼ (a1s2, s1s2) = (a1s2s, s)(s, s1s2s),
(a2, s2) ∼ (a2s1, s1s2) = (a2s1s, s)(s, s1s2s).
Pentru a p stra distributivitatea înmulµirii faµ de adunare în AS va trebuis de�nim suma reprezentanµilor celor dou clase de echivalenµ astfel
(a1, s1) + (a2, s2) ∼ (a1s2s, s)(s, s1s2s) + (a2s1s, s)(s, s1s2s)
= ((a1s2s, s) + (a2s1s, s))(s, s1s2s)
= (iS(a1s2) + iS(a2s1))(s, s1s2s)
= iS(a1s2 + a2s1)(s, s1s2s)
= ((a1s2 + a2s1)s, s)(s, s1s2s)
= (a1s2 + a2s1, s1s2).
De aici rezult ³i de�niµia compatibil cu relaµia ∼ a adun rii claselor, pe dealt parte rezult ³i unicitatea acestei sume:
(a1, s1) + (a2, s2) = (a1s2 + a2s1, s1s2).
Se arat acum prin simpla veri�care a propriet µilor c adunarea este binede�nit (rezultatul unei adun ri nu depinde de reprezentanµii ale³i), este aso-ciativ , comutativ , are element nul, ³i anume (0, s), respectiv �ecare elementare un opus, −(a, s) = (−a, s). Deasemenea prin veri�care direct se arat c înmulµirea este distributiv faµ de adunarea astfel de�nit ³i în �nal tot prinveri�care direct rezult ³i faptul c iS este homomor�sm de inele.
De�niµie 1.1.38. Inelul AS cu operaµiile de adunare ³i înmulµire de�nite maisus se nume³te inelul de fracµii asociat sistemului multiplicativ S, ³i se mainoteaz S−1A.
Dac A este un domeniu de integritate (nu are divizori ai lui 0) atuncielementele nenule A∗ formeaz evident un sistem S multiplicativ (maximal).În acest caz S−1A este un corp comutativ. Acest corp este numit corpul defracµii al inelului A.
36 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Exemple 1.1.39. S d m ³i câteva exemple.
• ZZ∗ = Q, corpul numerelor raµionale este corpul de fracµii al ineluluiîntregilor.
• Corpul de fracµii al inelului polinoamelor cu n necunoscute este corpulde fracµii raµionale, notat
K(x1, x2, . . . , xn) = {f/g | f, g ∈ k[x1, x2, . . . , xn]}.
1.1.5 Leg tura dintre variet µile a�ne ³i ideale
În aceast secµiune vom investiga leg tura dintre cele dou concepte funda-mentale introduse pân acum: conceptul cu caracter geometric de varietatea�n , ³i conceptul algebric de ideal.
O varietate a�n este de�nit ca mulµimea zerourilor unui set de ecuaµiialgebrice, vezi de�niµia 1.1.6 de pe pagina 20. Ne intereseaz în ce mod putemschimba setul de ecuaµii, f r ca mulµimea zerourilor comune acestora s seschimbe? Evident, înlocuirea unei ecuaµii cu ecuaµia obµinut din suma acesteiacu o alt ecuaµie nu va schimba mulµimea zerourilor comune acestora. Putemîns descrie toate seturile de ecuaµii echivalente cu un set de ecuaµii dat?
Conceptul de ideal ne va da r spunsul la aceast întrebare. Practic urm -toarea propoziµie constituie un r spuns satisf c tor.
Propoziµie 1.1.40. Fie f1, f2, . . . , fk ∈ k[x1, x2, . . . , xn] ³i g1, g2, . . . , gl ∈k[x1, x2, . . . , xn] dou seturi de polinoame. Dac ele genereaz acela³i ideal,atunci mulµimea zerourilor comune celor dou seturi de polinoame coincid.Reformulat puµin mai formal: dac
< f1, f2, . . . , fk >=< g1, g2, . . . , gl >
atunciV (f1, f2, . . . , fk) = V (g1, g2, . . . , gl).
Pentru idealul generat de un set de polinoame vezi propoziµia 1.1.17 de pepagina 25 ³i comentariul care urmeaz dup ea.
Demonstraµie. O prim observaµie este faptul c pe baza acestei propoziµii ovarietate a�n trebuie asociat practic unui ideal: dat un ideal, alegem o baz a acestuia, ³i avem un set de ecuaµii care determin varietatea dat .
Fie V = V (f1, f2, . . . , fk) ³i �e I =< f1, f2, . . . , fk >. Atunci V estemulµimea zerourilor comune ale tuturor polinoamelor din I, adic V ={(a1, a2, . . . , an) ∈ kn | f(a1, a2, . . . , an) = 0, pentru orice f ∈ I}.
Într-adev r, dac not m W = {(a1, a2, . . . , an) ∈ kn | f(a1, a2, . . . , an) =0, pentru orice f ∈ I}, avem evident W ⊆ V . Fie acum (a1, a2, . . . , an) ∈ V ,
1.1. CONCEPTE DE BAZ� 37
adic fi(a1, a2, . . . , an) = 0 pentru orice i = 1, 2, . . . , k, ³i �e f ∈ I arbitrar.Avem f = g1f1 + g2f2 + · · · + gkfk, pentru anumite polinoame g1, g2, . . . , gkpotrivit alese, deci f(a1, a2, . . . , an) = 0, de unde rezult V ⊆ W , deci inde�nitiv V = W .
Vom vedea în secµiunile care urmeaz , c orice ideal de polinoame cu maimulte variabile admite o baz �nit , deci num rul ecuaµiilor care de�nesc ovarietate poate � într-adev r limitat la un num r �nit de ecuaµii.
Demonstraµia anterioar sugereaz urm toarele de�niµii:
De�niµie 1.1.41. Fie I un ideal în k[x1, x2, . . . , xn] ³i �e V o varietate a�n .Vom de�ni ³i vom nota varietatea de�nit de idealul I
V (I) = {(a1, a2, . . . , an) ∈ kn | f(a1, a2, . . . , an) = 0, pentru orice f ∈ I},
respectiv idealul de�nit de varietatea a�n V
I(V ) = {f ∈ k[x1, x2, . . . , xn] | f(a) = 0, pentru orice a ∈ V },
unde am notat a = (a1, a2, . . . , an).
Cu aceste notaµii începem investigaµia propriet µilor asocierilor V −→ I(V )respectiv I −→ V (I). Primele propriet µi ale acestora sunt date în urm toareapropoziµie:
Propoziµie 1.1.42. Fie V o varietate a�n . Atunci I(V ) este un ideal înk[x1, x2, . . . , xn].
Demonstraµie. Evident, dac dou polinoame f ³i g se anuleaz pe punctele luiV 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[x1, x2, . . . , xn] produsulgf se va anula pe punctele lui V .
Se pune acum întrebarea analoag : Dat un ideal de polinoame I în ine-lul k[x1, x2, . . . , xn], este V (I) o varietate a�n ? R spunsul este a�rmativ,³i se bazeaz pe teorema lui Hilbert a bazei, care a�rm c orice ideal înk[x1, x2, . . . , xn] este �nit generat. S trecem la detaliile acestui crucial rezul-tat. Începem cu o de�niµie care se refer natural la proprietatea a�at îndiscuµie, ³i pe care o plas m iar ³i într-un context abstract general:
De�niµie 1.1.43. Fie A un inel comutativ. Spunem c A este Noetherian,dac orice ideal al s u este �nit generat.
O caracterizare a inelelor Noetheriene este dat în urm toarea propoziµie:
38 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Propoziµie 1.1.44. Un inel A este Noetherian dac ³i numai dac orice ³irascendent de ideale ale sale este staµionar, adic dac Ik, k ∈ N sunt ideale alelui A astfel ca
I1 ⊆ I2 ⊆ I3 ⊆ . . .
atunci exist un indice l astfel ca
Il = Il+1 = Il+2 = . . .
sau altfel spus, nu exist în inelul A ³iruri in�nite de ideale strict cresc toare.
Demonstraµie. Fie A un inel Noetherian. Consider m un ³ir ascendent in�nitde ideale
I1 ⊆ I2 ⊆ I3 ⊆ . . .
ale lui A. Fie idealul I = ∪∞i=1Ik (o astfel de reuniune de ideale este ideal). El
este �nit generat, deciI =< f1, f2, . . . , fk > .
Acum �ecare element f1, f2, . . . , fk se a� în câte unul din idealele ³irului as-cendent de ideale, deci toate se a� în cel cu indicele cel mai mare dintreacestea. Astfel ³i I este inclus în acesta, ³i este clar c ³irul de ideale devinedeci staµionar.
Invers, �e I un ideal în A ³i presupunem c orice ³ir ascendent de idealeeste staµionar în A. Fie f1 ∈ I, ³i alegem recursiv fi+1 ∈ I \ Ii unde Ii =<f1, f2, . . . , fi >. Este clar c ³irul Ii este un ³ir strict ascendent de ideale, ³iel �ind staµionar trebuie s �e �nit, deci dup un anumit rang k, fk+1 nu maiexist . De aici rezult c I =< f1, f2, . . . , fk >, deci I este �nit generat.
Teorema care urmeaz clari�c relaµia dintre idealele inelului de polinoamek[x1, x2, . . . , xn] ³i variet µile a�ne. R mânem pentru moment tot la enunµulpentru contextul abstract.
Teorem 1.1.45 (Teorema lui Hilbert a bazei). Fie A un inel comutativ. Dac A este Noetherian atunci ³i A[x] este Noetherian.
Demonstraµie. Fie I un ideal în A[x]. Trebuie s ar t m, c I este �nit generat.Consider m ³irul de elemente din I în construit în felul urm tor: Alegem
f1 = 0 din I astfel ca deg(f1) s �e minim, ³i apoi recursiv pentru i ≥ 1 alegemfi+1 ∈ I\ < f1, f2, . . . , fi > tot de grad minim.
Dac la un anumit indice alegerea lui fi+1 nu mai e posibil , atunci I =<f1, f2, . . . , fi >, ³i idealul I este �nit generat, ³i suntem gata.
Dac admitem, c procesul de construcµie al termenilor ³irului ar � nelim-itat, atunci raµionamentul se continu astfel: Fie ai coe�cientul termenului
1.1. CONCEPTE DE BAZ� 39
principal (de grad cel mai mare) al polinomul fi. Idealul generat de ace³tiaJ =< a1, a2, . . . , > este un ideal în A. Acest inel �ind Noetherian, idealul Jeste �nit generat, ³i anume chiar de primele k elemente a1, a2, . . . , ak. Aceast ultim proprietate se vede din faptul c ³irul de ideale Ji =< a1, a2, . . . , ai >este ascendent ³i conform propoziµiei anterioare 1.1.44 el este staµionar, deciîncepând de la un anumit indice k, avem Jk = Jk+1 = Jk+2 = . . . , deci în fapt
J =< a1, a2, . . . , ak > . (1.1)
A�rm m acum, c I =< f1, f2, . . . , fk >. Într-adev r, dac am avea incluz-iune strict < f1, f2, . . . , fk >⊂ I, atunci procesul de alegere al polinoamelorar continua cel puµin înc un pas, ³i am avea înc un element nenul de gradminim fk+1 ∈ I\ < f1, f2, . . . , fk >. Observaµia crucial acum este c gradulpolinomului fk+1 este egal sau mai mare decât gradul oric rui polinom alesanterior, f1, f2, . . . , fk. Prin urmare cu ajutorul acestora putem construi unpolinom de acela³i grad, ba chiar are acela³i termen principal ca ³i fk+1, darcare este în idealul generat de ace³tia, < f1, f2, . . . , fk >.
Explicit acest polinom se construie³te astfel. Coe�cientul termenului degrad maxim al lui fk+1 este ak+1 ∈ J , ³i conform celor de mai sus (relaµia 1.1)avem
ak+1 =k∑
i=1
ciai.
pentru anumiµi coe�cienµi ci ∈ A, i = 1, . . . , k, potrivit ale³i. Polinomul
g =k∑
i=1
cifixdeg(fk+1)−deg(fi)
este evident un polinom în idealul < f1, f2, . . . , fk >, deci ³i în I. Astfel,polinomul fk+1 − g este în I, nu este în < f1, f2, . . . , fk >, ³i are gradul strictmai mic decât gradul lui fk+1, ceea ce contrazice alegerea lui fk+1. A³adarpolinomul fk+1 nu exist , deci
I =< f1, f2, . . . , fk > .
Consecinµ 1.1.46. Fie k un corp. Atunci orice ideal al inelului de polinoamek[x1, x2, . . . , xn] este �nit generat.
Demonstraµie. Corpul k este un inel în care exist numai dou ideale: {0}³i corpul k însu³i. Primul este generat de elementul 0, al doilea de ele-mentul 1, deci toate idealele lui k sunt �nit generate. Prin urmare k este
40 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Noetherian. Acum aplic m recursiv Teorema lui Hilbert a bazei, (teorema1.1.45), ³i obµinem k[x1], k[x1, x2] = k[x1][x2], ... ³i în �nal k[x1, x2, . . . , xn] =k[x1, . . . , xn−1][xn] este �ecare inel Noetherian.
A³adar orice ideal al inelului k[x1, x2, . . . , xn] este �nit generat.
Analog propoziµiei 1.1.42 de pe pagina 37 este urm toarea propoziµie:
Propoziµie 1.1.47. Fie I un ideal în k[x1, x2, . . . , xn]. Atunci V (I) este ovarietate a�n .
Demonstraµie. Conform consecinµei 1.1.46 idealul I este �nit generat, deciI =< f1, f2, . . . , fk >. S ar t m c V (I) = V (f1, f2, . . . , fk). IncluziuneaV (I) ⊆ V (f1, f2, . . . , fk) este clar .
Fie (a1, a2, . . . , an) ∈ V (f1, f2, . . . , fk). Fie f ∈ V (I) arbitrar. Întru-cât fse poate scrie sub forma f = g1f1 + g2f2 + · · · + gkfk, ³i deoarece fi(a) = 0pentru orice i = 1, 2, . . . , k avem f(a) = 0. A³adar (a1, a2, . . . , an) ∈ V (I),deci V (f1, f2, . . . , fk) ⊆ V (I). În concluzie V (I) = V (f1, f2, . . . , fk).
S începem concret acum investigaµia propriet µilor corespondenµei ideal�varietate a�n , respectiv varietate a�n �ideal. O prim proprietate este dat în urm toarea propoziµie.
Propoziµie 1.1.48. Corespondenµele (vezi de�niµia 1.1.41 de pe pagina 37)
V −→ I(V )
³iI −→ V (I)
sunt antimonotone, adic dac V1 ⊆ V2, atunci I(V2) ⊆ I(V1), respectiv dac I1 ⊆ I2, atunci V (I2) ⊆ V (I1).
În plus, corespondenµa V −→ I(V ) este injectiv , ³i V (I(V )) = V .
Demonstraµie. Fie V1 ⊆ V2. Este clar c orice polinom care se anuleaz pe omulµime de puncte, se anuleaz ³i pe o submulµime a acesteia, deci I(V2) ⊆I(V1).
Invers, �e I1 ⊆ I2. Mulµimea zerourilor comune a mai multor polinoameeste mai mic , deci este clar c V (I2) ⊆ V (I1).Pentru a demonstra egalitatea V (I(V )) = V s observ m, c incluziuneaV ⊆ V (I(V )) este o consecinµ imediat a de�niµiilor, întru-cât orice f ∈ I(V )se anuleaz pe V . În cel lalt sens, �e V = V (f1, f2, . . . , fk). Atuncif1, f2, . . . , fk ∈ I(V ) deci avem ³i < f1, f2, . . . , fk >∈ I(V ). Dar pe de oparte V = V (f1, f2, . . . , fk) = V (< f1, f2, . . . , fk >) conform demonstraµieipropoziµiei 1.1.40 de pe pagina 36, pe de alt parte asocierea variet µii la idealeste antimonoton , deci V (I(V )) ⊆ V . În concluzie V (I(V )) = V . De aicirezult ³i injectivitatea asocierii idealului.
1.2. CONSTRUC�IA BAZEI GRÖBNER 41
Leg tura dintre operaµiile cu ideale ³i operaµiile cu variet µile a�ne poate� studiat în detaliu. Se constat spre exemplu c , sumei a dou ideale îicorespunde intersecµia variet µilor a�ne asociate acestora, iar produsului a dou ideale îi corespunde reuniunea variet µilor a�ne asociate. În acest fel se poateconstrui un veritabil dicµionar de algebr �geometrie, care permite studiereafenomenelor geometrice cu mijloace algebrice ³i invers.
1.2 Construcµia bazei Gröbner
V om prezenta în aceast secµiune fundamentul algebric � teoretic ³ialgoritmic � al investigaµiei variet µilor a�ne. Acest fundament este baza
Gröbner . �tim deja c orice ideal al inelului k[x1, x2, . . . , xn] are o baz �nit .O baza Gröbner este o baz cu propriet µi speciale, care genereaz acela³iideal. Ea se poate calcula plecând de la baza dat cu ajutorul unui algoritm,algoritmul Buchberger.
1.2.1 Împ rµirea polinoamelor cu o variabil
Structura de inel a mulµimii polinoamelor k[x1, x2, . . . , xn] înseamn � exprimatîntr-un limbaj vag ³i degajat � posibilitatea adun rii, sc derii ³i înmulµiriineîngr dite a polinoamelor între ele. Exact ca ³i în cazul numerelor întregi, sepune a³adar problema studierii împ rµirii.
S vedem mai întâi câteva exemple. Împ rµim 37 la 5, în inelul întregilor.Obµinem câtul 7, ³i restul 2.
37 5- 35 7 7 · 5 = 35
2
A³adar 37 = 7 · 5 + 2, sau în exprimarea academic 37 = 2( mod 5),respectiv 37−2 ∈< 5 >, adic diferenµa dintre 37 ³i 2 se a� în idealul generatde 5 în inelul întregilor.Similar, în inelul Q[x] al polinoamelor de o nedeterminat x, cu coe�cienµi încorpul numerelor raµionale Q, polinomul x2+3x+3 împ rµit la x+1 d câtulx+ 2 ³i restul 1.
x2 + 3x+ 3 x+ 1(-) x2 + 3x+ 2 x+ 2 (x+ 2) · (x+ 1) = x2 + 3x+ 2
1
Avem deci relaµia x2 + 3x+ 3 = (x+ 1) · (x+ 2) + 1, sau x2 + 3x+ 3 = 1(mod (x+ 1)), respectiv x2 + 3x+ 3− 1 ∈< x+ 1 >, adic x2 + 3x+ 2 se a� în idealul generat de polinomul x+ 1.
42 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
În ambele exemple câtul ³i restul sunt univoc determinate de deîmp rµitul³i împ rµitorul dat: condiµia ca restul s �e strict mai mic decât împ rµitorul15 (dar pozitiv), respectiv gradul polinomului rest s �e strict mai mic decâtgradul împ rµitorului x + 1 determin valoarea câtului ³i al restului în modunic (vezi teorema fundamental a aritmeticii respectiv teorema împ rµirii poli-noamelor de o singur nedeterminat ).
Ce s-ar întâmpla dac am împ rµi un num r întreg (sau un polinom) lamai multe numere (mai multe polinoame)?
S începem cu o "împ rµire" de numere întregi. Împ rµim spre exemplu 87la 15 ³i 6. Un sens al acestei "împ rµiri" neobi³nuite poate � reg sit în "proba"împ rµirii: 87 = 15 · x + 6 · y + r, unde x, y sunt cele dou câturi iar r esteun rest, care urmeaz toate s �e determinate. Am spus un rest ³i nu restuldeoarece nu ³tim înc dac acest rest este unic!
S examin m cazul exemplului nostru de "împ rµire". 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 doarcâteva din posibilit µile de exprimare a "deîmp rµitului" 87 cu ajutorul uneicombinaµii liniare a celor doi "împ rµitori" 15 ³i 6.
1.2. CONSTRUC�IA BAZEI GRÖBNER 43
Putem obµine chiar ³i restul 0, spre exemplu în modul urm tor:
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 coe�cienµiîn corpul numerelor raµionale Q, "împ rµim" polinomul f = 2x3 − x − 1 lapolinoamele g = x2 − x ³i h = x2 − 1. Avem printre altele urm toarele schemede împ rµire:
2x3 − x− 1 x2 − x x2 − 1(-) x3 − x x x · (x2 − 1) = x3 − x
x3 − 1(-) x3 − x2 x x · (x2 − x) = x3 − x2
x2 − 1x2 − x 1 1 · (x2 − x) = x2 − xx− 1
2x3 − x− 1 x2 − x x2 − 1(-) x3 − x x x · (x2 − 1) = x3 − x
x3 − 1(-) x3 − x2 x x · (x2 − x) = x3 − x2
x2 − 1x2 − 1 1 1 · (x2 − 1) = x2 − 10
Acestea pot da deci "câturile" x+ 1 ³i x iar restul x− 1, deoarece
f = (x+ 1) · g + x · h+ (x− 1),
dar ³i "câturile" 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 generatde polinoamele g ³i h, I =< g, h >.
Sunt oare unice câturile ³i restul obµinute în aceste "împ rµiri"? Exemplelede mai sus arat c ele nu sunt unice, chiar dac impunem condiµia ca restuls �e mai mic decât cel mai mic dintre numere, respectiv gradul restului s �emai mic decât gradul celui mai mic dintre împ rµitori!
44 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Pot � f cute oare câturile ³i restul unice? R spunsul este a�rmativ. Ideeade baz este reducerea "împ rµirii" la mai multe numere (respectiv polinoame)la împ rµirea obi³nuit la un singur num r respectiv un singur polinom!
Procedeul se bazeaz pe propoziµia 1.1.19 de pe pagina 26. Într-adev r,inelul întregilor precum ³i inelul polinoamelor cu o nedeterminat ³i coe�cienµiîntr-un corp este inel principal, prin urmare idealul generat de dou sau maimulte elemente poate � generat ³i de un singur element. Pe baza propoziµiei1.1.23 de la pagina 27 acest element este chiar cel mai mare divizor comun al"împ rµitorilor".
S vedem cum transform m concret împ rµirile din exemplele noastre an-terioare.
În exemplul numeric avem (15, 6) = 3, deci 15Z + 6Z = 3Z. Astfel "îm-p rµirea echivalent " este
87 3- 87 29 29 · 3 = 87
0
unde câtul ³i restul sunt unice! Pe baza unei exprim ri al celui mai mare divizorcomun sub forma unei combinaµii liniare ale celor dou numere de genul
3 = 1 · 15− 2 · 6,
orice exprimare ("împ rµire") a lui 87 ca o combinaµie liniar a lui 15 ³i 6 poate� redus la restul unic al împ rµirii, 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:
(x2 − 1, x2 − x) = x− 1,
deci împ rµirea echivalent � în care câtul ³i restul sunt unic determinate �este urm toarea
2x3 − x− 1 x− 1(-) 2x3 − x− 1 2x2 + 2x+ 1 (2x2 + 2x+ 1) · (x− 1) = 2x3 − x− 1
0.
1.2. CONSTRUC�IA BAZEI GRÖBNER 45
La fel ca pentru numere întregi, ³i în acest caz exprimarea celor dou polinoamesub forma unor combinaµii liniare a celor doi "împ rµitori" are ca efect faptulc , orice "împ rµire" poate � redus la o împ rµire care are restul unic, în cazulnostru 0.
Menµion m aici, c cel mai mare divizor comun, precum ³i "coe�cienµii"combinaµiei liniare care îl exprim pe acesta cu ajutorul numerelor (poli-noamelor) date, se calculeaz efectiv cu algoritmului lui Euclid extins.
1.2.2 Împ rµirea polinoamelor cu mai multe variabile
S trecem acum la împ rµirea polinoamelor cu mai multe variabile (n >= 2).Se pune întrebarea în ce m sur cele de mai sus sunt valabile ³i în acest noucontext? Mai precis, putem formula urm toarele întreb ri:
• Este inelul polinoamelor k[x1, x2, . . . , xn] un inel principal?
• În inelul k[x1, x2, . . . , xn] funcµioneaz algoritmul lui Euclid?
• Exist descompunere în factori ireductibili pentru orice polinom dink[x1, x2, . . . , xn], ³i dac da, este unic oare o astfel de descompunere?
• Exist un cel mai mare divizor comun pentru oricare dou polinoame dink[x1, x2, . . . , xn]?
R spunsul la primele dou întreb ri este u³or. Un raµionament simplu(detaliile sunt l sate pe seama cititorului) arat c în inelul K[x, y] idealulI =< x, y > generat de cele dou variabile nu este principal, adic nu poate �generat de un singur polinom.
Întru-cât orice inel euclidian este ³i principal, inelul de polinoame cu maimulte variabile nu este euclidian. Este deci natural s ne întreb m cât dedeparte este acest inel de inelele euclidiene, respectiv cum poate � facut îm-p rµirea polinoamelor cu p strarea a cât mai mult din proprietatea de unicitatea câturilor ³i a restului.
Pentru a r spunde la celelalte dou întreb ri este momentul s d m câtevade�niµii noi ³i reamintim câteva rezultate de baz ale algebrei comutative.
De�niµie 1.2.1. Fie A un inel comutativ unitar f r divizori ai lui zero.Spunem c un element a ∈ A este ireductibil , dac nu poate � scris ca unprodus de dou elemente ambele neinversabile, adic dac a = bc atunci b sauc este inversabil (unitate).
De�niµie 1.2.2. Fie A un inel comutativ unitar f r 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|bsau p|c.
Un ideal propriu P ⊂ A se nume³te ideal prim dac conµine un produsde elemente numai dac conµine unul din factorii acestuia, adic dac ab ∈ Patunci a ∈ P sau b ∈ P .
Se observ c un element prim este ³i ireductibil (exerciµiu) pe când inversîn general nu este adev rat (contraexemple se pot da în inele în care descom-punerea în factori ireductibili nu este unic !).
De�niµie 1.2.3. Fie A un inel comutativ unitar f r divizori ai lui zero. InelulA se nume³te factorial (sau inel cu descompunere unic în factori), orice ele-ment 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 scriea = q1 ·q2 ·. . .·qn, unde elementele qi sunt ireductibile, ³i dac a = p1 ·p2 ·. . .·pmeste o alt reprezentare în produs de elemente ireductibile, atunci m = n³i pi = qi, dup o eventual permutare a indicilor (³i ignorarea/colectareaeventualelor elemente inversabile).
Observaµie 1.2.4. Orice ideal maximal este ideal prim.
Demonstraµie. Fie M un ideal maximal în inelul unitar comutativ A. Pre-supunem c ab ∈ M . Trebuie s ar t m c M conµine 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 forma1 = ax +m, unde m ∈ M . Obµinem de aici b = abx +mb ∈ M , deci M esteprim.
Are loc urm toarea propoziµie important .
Propoziµie 1.2.5. Dac A este un inel factorial, atunci A[x] este totinel factorial. În consecinµ inelul polinoamelor cu mai multe variabilek[x1, x2, . . . , xn] este factorial.
Pentru demonstraµie trimitem cititorul la oricare din tratatele clasice dealgebr .
Putem acum r spunde ³i la celelalte dou întreb ri. Întru-cât orice corpeste inel factorial (în mod banal), inelul polinoamelor cu una sau mai multevariabile k[x1, x2, . . . , xn] 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. Else poate de�ni chiar cu ajutorul descompunerii celor dou elemente în factoriireductibili (deci primi) în modul obi³nuit: se aleg toµi factorii comuni (i.e.
1.2. CONSTRUC�IA BAZEI GRÖBNER 47
asociaµi în divizibilitate) la puterea cea mai mic la care acestea apar în celedou descompuneri.
S trecem acum la formularea problemei "împ rµirii" în inelulk[x1, x2, . . . , xn]. Fie idealul I =< f1, f2, . . . , fk >. S reamintim c oriceideal 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[x1, x2, . . . , xn] un polinom. Dorim s exprim m acest polinomca o "combinaµie liniar " a polinoamelor f1, f2, . . . , fk, admiµând un rest, cualte cuvinte dorim s investig m în ce m sur f aparµine idealului I? Formal,c ut m o exprimare de forma
f = f1 · q1 + f2 · q2 + . . .+ fk · qk + r,
în care vom numi (aici) polinoamele q1, q2, . . . , qk drept "câturi", iar polinomulr "rest" al "împ rµirii".
Pentru aceasta este clar c avem nevoie mai întâi de o ordonare a termenilorunui polinom. În secµiunea care urmeaz investig m posibilit µile de ordonareale monoamelor.
1.2.3 Ideale monomiale
Este clar c pentru a stabili o relaµie de ordine între monoamele polinoamelorinelului k[x1, x2, . . . , xn], care au forma
xα = xα11 xα2
2 · · ·xαnn ,
este necesar ³i su�cient s stabilim o astfel de relaµie între exponenµii (i.e.multiexponenµii) acestora,
α = (α1, α2, . . . , αn)
deci s de�nim o ordonare pe mulµimea Nn. Este natural s cerem ca aceast relaµie de ordonare s �e total (oricare dou monoame s �e comparabile) ³is �e compatibil cu înmulµirea monoamelor (înmulµirea a dou monoame cuun al treilea s nu afecteze relaµia de ordine existent între acestea).
Pentru a putea s �e aplicat într-un algoritm de împ rµire, în care prinsc deri succesive gradele monoamelor vor descre³te în raport cu aceast or-donare, pentru a asigurat terminarea algoritmului într-un num r �nit de pa³i,va trebui s cerem s nu existe ³iruri in�nite de exponenµi strict descresc tori.
Toate aceste criterii merit o de�niµie proprie.
De�niµie 1.2.6. O relaµie de ordine > pe Nn se nume³te ordonare monomial dac are urm toarele trei propriet µi:
48 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
• este o relaµie total (ordonare liniar ),
• dac α > β atunci α+ γ > β + γ,
• este o relaµie de bineordonare, adic orice submulµime nevid are un celmai mic element.
A treia proprietate este evident echivalent cu faptul c orice ³ir strict de-scresc tor este �nit.
Se pune acum problema dac exist asemenea relaµii de ordine pe mulµimeaNn ³i eventual cum se caracterizeaz ele. Pentru a r spunde la prima între-bare vom da câteva exemple de ordon ri monomiale pe care le vom reg si ³iîn împlement rile algoritmilor polinoamelor cu mai multe variabile. În ceea ceprive³te cea de a doua întrebare menµion m aici doar faptul c problema carac-teriz rii este rezolvat ³i orice ordonare monomial este descris de o matrice,având anumite propriet µi.
De�niµie 1.2.7. Relaµie de ordine > pe Nn de�nit astfel: α > β dac îndiferenµa α−β prima component nenul din stânga este pozitiv , se nume³teordonare lexicogra�c (notat , dac contextul cere în mod explicit, >lex).
Se poate veri�ca u³or, c aceast ordonare este ordonare monomial .Introducem urm toarea notaµie pentru exprimarea "gradul total" al unui
monom:|α| = α1 + α2 + . . .+ αn.
De�niµie 1.2.8. Relaµia de ordine > pe Nn de�nit astfel: α > β dac
• |α| > |β| sau
• dac |α| = |β| atunci în diferenµa α − β prima component nenul dinstânga este pozitiv ,
se nume³te ordonare lexicogra�c graduat (notat uneori >grlex).
�i înc o ordonare utilizat mai des este urm toarea.
De�niµie 1.2.9. Relaµia de ordine > pe Nn de�nit prin: α > β dac
• |α| > |β| sau
• dac |α| = |β| atunci în diferenµa α − β prima component nenul dindreapta este negativ ,
se nume³te ordonare invers lexicogra�c graduat (notat >invgrlex).
Exemple 1.2.10. S d m câteva exemple.
1.2. CONSTRUC�IA BAZEI GRÖBNER 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 � prefer m în mod uzual ordinea descresc toare � dar putemrede�ni ³i conceptele obi³nuite la polinoame cu o singur variabil de termen-³i coe�cient principal respectiv gradul unui polinom.
De�niµie 1.2.11. Fie f un polinom nenul în k[x1, x2, . . . , xn] ³i �e > o or-donare monomial . Atunci:
(1) gradul polinomului f este
mdeg(f) = max{α ∈ Nn : aα = 0},
(2) coe�cientul principal al lui f este
LC(f) = amdeg(f) ∈ k,
(3) monomul principal al lui f este
LM(f) = xmdeg(f) ∈ k,
(4) iar termenul principal al lui f este
LT(f) = LC(f) · LM(f).
De�niµia care urmeaz va � important în de�nirea bazei Gröbner .
De�niµie 1.2.12. Un ideal I ⊂ k[x1, x2, . . . , xn] se nume³te ideal monomialdac exist o submulµime de multiexponenµi A ⊂ Nn astfel ca I este formatdin toate polinoamele ale c ror termeni sunt monoame având multiexponentuldin A. Vom nota un ideal monomial deci I =< xα : α ∈ A >.
D m f r demonstraµie o caracterizare important a idealelor monomiale:
Propoziµie 1.2.13 (lema lui Dickson). Fie I un ideal monomial înk[x1, x2, . . . , xn]. Atunci I este generat de o mulµime �nit de monoame.
În sfâr³it vom mai avea nevoie de o de�niµie.
50 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
De�niµie 1.2.14. Fie I ⊂ k[x1, x2, . . . , xn] un ideal nenul.
(1) De�nim ³i not m mulµimea 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 acesteelemente LT(I), care va � notat prin < LT(I) >.
Este u³or de v zut c idealul termenilor principali al unui ideal I este unideal monomial ³i este �nit generat de mulµimea termenilor principali ai unuiset �nit de polinoame ale idealului I.
1.2.4 Baze Gröbner
Având la dispoziµie ordon rile monomiale, putem trece la experimentarea "îm-p rµirilor" polinoamelor la un set �nit de divizori. Vom folosi ordonarea ceamai la îndemân , ordonarea lexicogra�c . Iat un exemplu. Fie f = 2x2y"deîmp rµitul" iar "împ rµitorii" f1 = x2 − x ³i f2 = xy + y.
2x2y x2 − x xy + y(-) 2x2y − 2xy 2y 2y · (x2 − x) = 2x2y − 2xy
2xy(-) 2xy + 2y 2 2 · (xy + y) = 2xy + 2y
−2y
A³adar, putem scrie "proba" împ rµirii:
2x2y = 2y · (x2 − x) + 2 · (xy + y) + (−2y).
Restul −2y ne-ar putea sugera c f nu este o combinaµie a polinoamelor f1³i f2, altfel spus f nu este în idealul generat de f1 ³i f2. S nu tragem îns concluzii pripite. S efectu m acum acela³i procedeu schimbând ordinea celordoi împ rµitori. Vom obµine:
2x2y x2 − x xy + y(-) 2x2y + 2xy 2x 2x · (xy + y) = 2x2y + 2xy
−2xy(-) −2xy − 2y -2 −2 · (xy + y) = −2xy − 2y
2y
De data aceasta am obµinut urm toarea reprezentare a lui f :
2x2y = 0 · (x2 − x) + (2x− 2) · (xy + y) + 2y.
1.2. CONSTRUC�IA BAZEI GRÖBNER 51
Din nou avem un rest, dar diferit de cel anterior. În consecinµ procedeul deîmp rµire depinde pîn ³i de ordinea în care alegem între împ rµitori în procesulde generare a resturilor parµiale.
O alt observaµie pentru care nu d m acum o ilustraµie este criteriul determinare a împ rµirii. Se poate imagina u³or c generarea resturilor nu trebuies se opreasc atunci când termenul principal al restului parµial nu mai estedivizibil cu nici unul dintre termenii principali ai împ rµitorilor. Într-un astfelde moment putem a³eza acest termen rest, ³i putem cuntinua împ rµirea cuurm torul termen al restului parµial. Doar când nici unul dintre termeniirestului parµial nu mai este divizibil cu termenii principali ai împ rµitorilor,procedeul se opre³te. Proprietatea ordon rii monomiale ne asigur c acestase va întâmpla dup un num r �nit de pa³i.Revenind la exemplul nostru, urmeaz surpriza:
2x2 = y · (x2 − x) + x · (xy + y),
deci f = y · f1 + x · f2, ceea ce înseamn c f ∈< f1, f2 >, sau în limbajulnostru degajat, f este "divizibil" cu f1, f2!
Se pune deci problema natural : cum poate � salvat algoritmul nostru deîmp rµire? R spunsul este urm torul: schimbând împ rµitorii! Mai precis, vatrebui s -i schimb m în mod potrivit, f r s schimb m idealul generat de ei!Setul nou potrivit, care face decidabil problema apartenenµei lui f la idealulI generat de împ rµitori, deci pentru care restul împ rµirii este în cazul nostru0, este baza Gröbner !
Pentru idealul nostru I acesta este G = {x2 − x, y}. Se veri�c u³or c aceasta este o baz echivalent : genereaz acela³i ideal I! Într-adev r, dac not m g1 = x2 − x ³i g2 = y, atunci avem exprim rile reciproce:{
f1 = g1f2 = (x+ 1) · g2,
³i {g1 = f1g2 = 1
2y · f1 + (−12x+ 1)f2,
deci este clar c I =< f1, f2 >=< g1, g2 >.Este momentul s d m de�niµia bazei Gröbner .
De�niµie 1.2.15. Fie I un ideal în k[x1, x2, . . . , xn]. O mulµime �nit depolinoame G = {g1, . . . , gk} din I se nume³te baz Gröbner pentru idealul I,dac
< LT(g1), . . . ,LT(gk) >=< LT(I) > .
52 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
O u³oar adaptare a demonstraµiei dat pentru teorema lui Hilbert a bazeine permite s enunµ m propoziµia urm toare:
Propoziµie 1.2.16. Orice ideal I din k[x1, x2, . . . , xn] are o baz Gröbner .Aceasta este în acela³i timp o baz pentru I, adic I este generat de polinoameledin baza Gröbner .
S demonstr m aici în schimb urm toarea propoziµie, care ne convinge c într-adev r baza Gröbner este cea care asigur unicitatea restului împ rµirii.
Propoziµie 1.2.17. Consider m un ideal I în k[x1, x2, . . . , xn] ³i o baz Gröb-ner G = {g1, g2, . . . , gk} pentru acest ideal. Fie f ∈ k[x1, x2, . . . , xn] un poli-nom arbitrar. Atunci exist polinoamele g ∈ I ³i r ∈ k[x1, x2, . . . , xn] cuurm toarele propriet µi:
• f = g + r (împ rµirea),
• nici unul din termenii lui r nu este divizibil cu vre-unul din termeniiprincipali ai polinoamelor bazei, LT(g1), . . . ,LT(gk) (criteriul opririi îm-p rµirii) ³i
• r este unic cu aceste dou propriet µi.
Demonstraµie. Existenµa lui g ³i r cu primele dou propriet µi este dat chiarde algoritmul împ rµirii. 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 Gröbner avem < LT(T ) >=< LT(G) >, ceea ce nu esteposibil decât dac r′ − r = 0, deci unicitatea lui r este demonstrat .
1.2.5 Algoritmul lui Buchberger
Baza Gröbner a fost introdus de Buchberger în teza sa de doctorat ³i denumit astfel în onoarea conduc torului tezei. Buchberger a dat în aceast tez ³i unalgoritm de calcul al acestei baze. Algoritmul pleac de la o baz a idealului, unset �nit de polinoame, ³i într-un num r �nit de pa³i calculeaz o baz Gröbnerpentru idealul dat.
Suntem datori s schiµ m acest algoritm. Fie deci I =< f1, f2, . . . , fk >= 0un ideal. Iat algoritmul lui Buchberger:
Input: F = (f1, f2, . . . , fk)Output: G = (g1, g2, . . . , gl), o baz Gröbner pentru I, astfel ca F ⊂ G
G := Frepeat
G′ := G
1.2. CONSTRUC�IA BAZEI GRÖBNER 53
for (p, q), p, q ∈ G′, p = qS := S(p, q) mod G′
if S = 0 then G := G ∪ {S}until G = G′
Notaµia S := S(p, q) mod G′ trebuie explicat . Fie xγ c.m.m.m.c almonoamelor 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 împ rµirii.S observ m c algoritmul de mai sus calculeaz o baz Gröbner care poate
conµine polinoame "inutile". Mai precis avem urm toarea remarc , a c reidemonstraµie este imediat din de�niµia bazei Gröbner .
Observaµie 1.2.18. Fie G o baz Gröbner pentru idealul I. Fie g ∈ G unpolinom astfel ca LT(g) ∈ LT(G \ {g}. Atunci G \ {g} este tot o baz Gröbnerpentru I.
Rezult de aici c putem elimina aceast redundanµ din baza Gröbnercalculat cu ajutorul algoritmului lui Buchberger.
De�niµie 1.2.19. O baz Gröbner G pentru idealul I se nume³te minimal ,dac :
• LC(g) = 1 pentru orice g ∈ G, ³i
• LT(g) ∈< LT(G \ {g} > pentru orice g ∈ G.
Având la dispoziµie o baz Gröbner pentru un ideal I putem elimina pascu pas polinoamele care violeaz proprietatea de minimalitate a bazei. Sevede îns u³or c aceast eliminare poate � f cut în multe moduri, deci bazaGröbner obµinut nu este unic . Putem îns face o "reducere" mai substanµial a bazei Gröbner , care va avea ³i o proprietate de unicitate!
De�niµie 1.2.20. O baz Gröbner G pentru idealul I se nume³te redus , dac :
• LC(g) = 1 pentru orice g ∈ G, ³i
• nici unul din monoamele lui g nu se a� în < LT(G \ {g} > pentru oriceg ∈ G.
De�niµia de mai sus este justi�cat de propoziµia care urmeaz .
Propoziµie 1.2.21. Fix m o ordonare monomial în k[x1, x2, . . . , xn], ³i �e Iun ideal nenul. Atunci baza Gröbner redus a lui I este unic .
54 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Demonstraµie. S de�nim în aceast demonstraµie un polinom g ∈ G ca �indredus în G dac nici un monom al lui g nu este în < LT(G \ {g} >. Evident,reducerea lui G se va termina, când �ecare element al lui este redus în el.
O prim observaµie imediat este c dac un polinom g ∈ G este redus înG, atunci ele este redus în orice alt baz Gröbner minimal din care face ³iel parte, ³i care are acela³i set de termeni principali.
A doua observaµie este faptul c orice polinom g al unei baze Gröbnerminimale G poate � înlocuit cu restul împ rµirii acestuia la G \ {g}, (adic gmod (G \ {g})), aceasta �ind tot a baz Gröbner minimal . Aceasta rezult direct din algoritmul lui Buchberger, deoarece LT(g) = LT(g mod (G \ {g})).
În �ne s mai observ m c g mod (G\{g}) este redus pentru baza Gröbnerobµinut prin dislocarea din G a lui g ³i cooptarea în locul lui al lui g mod (G\{g}).
Aceste observaµii arat c procesul de reducere a unei baze Gröbner prineliminarea respectiv dislocarea elementelor sale conform cu observaµiilor ante-rioare conduce la o baz Gröbner redus .
Trebuie s mai analiz m deci unicitatea bazei reduse. Fie G1 ³i G2 dou baze Gröbner reduse pentru I. Este u³or de v zut c mulµimea termenilorprincipali coincid, deci LT(G1) = LT(G2). Fie g1 ∈ G1 arbitrar. Atunci exist g2 ∈ G2 astfel ca LT(g1) = LT(g2). Va trebui s ar t m c g1 = g2.
Pentru aceasta s consider m diferenµa g1 − g2. Aceasta �ind în idealul Iavem (g1− g2) mod G1 = 0. Dar deoarece LT(g1) = LT(g2), ace³ti termeni seanuleaz în diferenµ , iar termenii r ma³i nu sunt divizibili cu nici un monomdin LT(G1) = LT(G2), deoarece G1 ³i G2 sunt baze Gröbner reduse pentru I.A³adar (g1 − g2) mod G1 = (g1 − g2). Rezult c g1 = g2.
Din cele de mai sus rezult un criteriu algoritmic de a decide egalitatea adou ideale.
Observaµie 1.2.22. Seturile de polinoame {f1, f2, . . . , fk} ³i {g1, g2, . . . , gl}genereaz acela³i ideal, dac bazele Gröbner reduse ale celor dou ideale gen-erate coincid.
1.3 Demonstraµia teoremelor de geometrie
S trecem acum la una din cele mai spectaculoase aplicaµii ale aces-tui algoritm: demonstraµia teoremelor de geometrie euclidian plan .
Prezentarea noastr încearc s �e cât mai scurt , pentru a da loc unor ex-emple edi�catoare. Evident, materialul inclus aici nu este decât o iniµiere înacest domeniu, ³i are drept scop principal trezirea interesului pentru apro-fundarea acestor tehnici. Este întotdeauna fascinant � în opinia autorului �
1.3. DEMONSTRA�IA TEOREMELOR DE GEOMETRIE 55
descoperirea unor leg turi profunde între diverse ramuri ale matematicii, încazul de faµ între algebr ³i geometrie!
În continuare ne �x m contextul presupunând urm toarele fapte: propri-et µile geometrice admise sunt cele care se pot exprima prin ecuaµii polinomiale(nu neap rat liniare!). Acestea se obµin cu ajutorul coordonatiz rii. Dateleproblemei geometrice vor � variabile algebrice, ele putând � de dou tipuri:cele arbitrare (acestea vor � notate cu litera u, ³i sunt parametrii construcµi-ilor geometrice f cute în ipoteza enunµului) ³i cele legate de propriet µile geo-metrice date (notate cu x), num rul acestora din urm �ind egal cu num rulpropriet µilor. Presupunem deci c �ecare proprietate se exprim cu ajutorulunei ecuaµii algebrice (în general neliniare), iar polinoamele acestea vor � no-tate cu h. Proprietatea care exprim concluzia enunµului este ³i ea o ecuaµiepolinomial , notat cu g.
Iat descrierea sumar a metodei. Începem cu o de�niµie.
De�niµie 1.3.1. Concluzia g rezult strict din ipotezele h1, . . . , hn, dac g ∈I(V ) ⊂ R[u1, . . . , um, x1, . . . , xn], unde V este varietatea a�n generat deh1, . . . , hn, i.e. mulµimea zerourilor acestui set de polinoame.
Avem urm toarea propoziµie.
Propoziµie 1.3.2. Dac g este în√< h1, . . . , hn >, atunci g rezult strict din
ipotezele h1, . . . , hn.
Pentru demonstraµie trimitem la [12]. În continuare avem nevoie de ode�niµie care exprim leg tura dintre independenµa algebric a parametrilor ³idegenerarea condiµiilor geometrice.
De�niµie 1.3.3. Concluzia g rezult generic din ipotezele h1, . . . , hn, dac g ∈ I(V ′) ⊂ R[u1, . . . , um, x1, . . . , xn], unde V ′ este reuniunea acelor com-ponente ale variet µii a�ne V generat de h1, . . . , hn pe care ui sunt algebricindependente.
Reamintim, c independenµa algebric a variabilelor ui pe o varietate a�n ireductibil înseamn c nu exist polinom nenul având numai aceste variabilecare s se anuleze identic pe aceast varietate. În mod uzual în teoremelegeometrice concluzia exprim o proprietate geometric generic , i.e. situaµiadegenerat a propriet µilor din ipoteze se exclude.
Urm toarea teorem reprezint cheia aplic rii teoriei bazelor Gröbner îndemonstrarea teoremelor de geometrie (vezi [12]).
Teorem 1.3.4. Concluzia g rezult generic din ipotezele h1, . . . , hn, dac unadin condiµiile echivalente urm toare este îndeplinit :
56 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
(1) Exist un polinom nenul c(u1, . . . , um) ∈ R[u1, . . . , um] astfel ca
c · g ∈√H,
unde H =< h1, . . . , hn >⊂ R[u1, . . . , um, x1, . . . , xn].
(2) Dac not m H =< h1, . . . , hn >⊂ R(u1, . . . , um)[x1, . . . , xn], atunci
g ∈√
H.
(3) 1 este baza Gröbner (redus ) a idealului
< h1, . . . , hn, 1− yg >⊂ R(u1, . . . , um)[x1, . . . , xn, y].
În exemplele care urmeaz rolul principal va juca condiµia (3) care se vareg si ³i în comenzile din codul surs al programului Singular, pe care-l vomfolosi în aplicaµii.
1.4 Aplicaµii � Exemple în Singular
S vedem acum, cum arat toate acestea în Singular . Acest pachet esteconstruit pe baza furnizat de teoria inelelor de polinoame cu mai multe
variabile ³i are ca scop iniµial furnizarea suportului computaµional pentru in-vestigaµii în teoria singularit µiilor. Este accesibil liber pe internet la adresahttp://www.singular.uni-kl.de/ de unde se poate obµine versiunea 3.1.1, la carea ajuns în momentul redact rii 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 coe�cienµi poate �:
• Corpul numerelor raµionale Q, cu reprezentarea numerelor întregi în pre-cizie in�nit .
• Zp unde p este un num r prim mai mic decât 2147483629.• Un corp �nit GF(pn), unde p este un num r prim, ³i pn ≤ 215.• Extinderi transcendente ale lui Q ³i Zp.• Extinderi algebrice simple ale lui Q ³i Zp.• Corpul numerelor reale ³i complexe (cu reprezentarea numerelor în vir-gul mobil , cu precizie in�nit ).
1.4. APLICA�II � EXEMPLE ÎN SINGULAR 57
Exemple 1.4.1. De�nim în Singular inelele de polinoame:
(1) Q[x, y, z],(2) Z5[x],(3) Z11(a, b)[x, y, z],(4) Z2[a]/(a
3 + a+ 1)[x, y].(5) R[x, y, z].
Iat ³i secvenµele de program corespunz toare:
// (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 zecimalering R=(real,50),(x,y),dp;R;
Comanda (4) spre exemplu de�ne³te 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 � semnal m de pe acum � nu vom insista asupra sintaxeicomenzilor programelor pe care le folosim pentru exempli�c ri ³i rezolvareaexerciµiilor. Aceste programe dispun de un ajutor (help) extensiv ³i acoperitor,pentru ca cititorul dornic s pun în funcµiune matematica prezentat , s sel mureasc asupra acestor aspecte � din punctul de vedere al scopului urm ritde textul de faµ � neesenµiale.
58 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
S consider m urm toarea teorem de geometrie plan .
Teorem 1.4.2. Fie A, B, C ³i D patru puncte arbitrare în planul euclidian.Presupunem c ele sunt câte trei necoliniare, ³i nici unul nu este ortocentrultriunghiului format de celelalte trei puncte. Consider m cele patru cercuri alecelor nou puncte (numit ³i cercul Euler sau cercul Feuerbach) al celor patrutriunghiuri formate de punctele date. Cele patru cercuri au un punct comun.
A
B
C
D
Figura 1.7: Patru cercuri (A)
Demonstraµia acestei teoreme este conµinut în codul surs Singular de maijos. Comentariile din cod trebuie s �e su�ciente pentru a înµelege constituireaacestui program.
Aceast teorem se bazeaz pe o teorem a lui Brianchon-Poncelet (1820),care a�rm c centrul unei hiperbole echilaterale care trece prin trei punctedate, se a� pe cercul celor nou puncte al triunghilui.
A³adar punctul de intersecµie al celor patru cercuri este centrul hiperboleiechilaterale determinat unic de cele patru puncte date.
// --------------------------------------------------------//
1.4. APLICA�II � 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)// Ecuaµia unui cerc Euler conµine 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 condiµii h1=0, h2=0, h3=0...// În final (x1,x2) sunt coordonatele punctului de intersecµie.//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 Gröbner este 1, deci teorema este adev rat :groebner(I);// --------------------------------------------------------
Programul va întoarce 1, deci teorema este demonstrat . (De fapt în loculcomenzii groebner(I) se folose³te o variant modi�cat , std(I), prescurtare dela "standard bases". Pentru detalii vezi [12]).
Autorul nu a g sit referinµe pentru urm toarea variant a precedentului rezul-tat vechi.
60 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Teorem 1.4.3. Fie A, B, C ³i D patru puncte arbitrare în planul euclidian,ca în teorema precedent . Consider m cele patru cercuri care trec prin cele câtetrei picioare ale perpendicularelor duse dintr-un punct pe laturile triunghiuluiformat 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 intersecµie coincid! Demonstraµia esteun exerciµiu de programare în Singular, l sat 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 gra�c variet µile a�ne � din R2 � ³i s se precizeze câtmai multe informaµii despre natura ³i dimensiunea acestora.
1-1. V (x2 − 2y).1-2. V ((x2 − 2y) · (2x− y2)).1-3. V (xy(x2 − 2y) · (2x− y2 + 1)).1-4. V (x− 2y + 1) ∩ V (2x− y2).1-5. V (x2 − 2y) ∩ V (2x− y2).
2. S se reprezinte gra�c variet µile a�ne � din R3 � ³i s se precizeze deasemenea cât mai multe informaµii despre natura ³i dimensiunea acestora.
2-1. V (x2 + y2 − z2 − 1).2-2. V (x2 − y2 − z2 − 1).2-3. V (x2 − y2 − z).2-4. V (x2 + y2 − 1).2-5. V (x2 − y2 − 1).2-6. V ((x2 − 2y) · (2x− y2)).2-7. V ((x2 − 2y) · (2x− z2)).2-8. V (xyz(x2 − 2y)).2-9. V (x− 2y + z + 1) ∩ V (2x− y − z + 2).2-10. V (x2 − 2y) ∩ V (x− y + z + 1).
3. S se stabileasc dac apartenenµele de mai jos sunt adev rate sau nu îninelul R[x, y] respectiv R[x, y, z].
3-1. x6 + y6 ∈< x3 + x2y, xy3 + y4 >.3-2. x6 − y6 ∈< x3 + x2y, xy3 + y4 >.3-3. x6 + y6 ∈< x3 + y3, x2 + y2 >.3-4. x2 + y2 ∈< x3 + y3, x2 + y2 >.3-5. x2y2 ∈< x3 + y3, x2 + y2 >.3-6. x3 + yz2 ∈< x3 + y3, xy + yz, y2 − z2 >.3-7. x2 + y2 + z2 ∈< x3 + y3, xy + yz, y2 − z2 >.3-8. x3 + y4 + z5 ∈< x3 + y3, xy + yz, y2 − z2 >.3-9. xyz ∈< x3 + y3 + z3, xy + yz + zx, x2 + y2 + z2 >.3-10. x+ y + z ∈< x3 + y3 + z3, xy + yz + zx, x2 + y2 + z2 >.3-11. x7 + y7 + z7 ∈< x3 + y3 + z3, xy + yz + zx, x2 + y2 + z2 >.
Indicaµie:
ring R=0,(x,y),dp;ideal I=x3+x2y,xy3+y4;ideal J=std(I);poly f=x6+y6;reduce(f,J);// -> 0: f este in I// -> diferit de 0: f nu este in I
62 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
4. S se stabileasc care din relaµiile (posibil mai multe)
(a). I ⊆ J .(b). I ⊇ J .(c). I = J .(d). I ⊆ J .(e). I ⊇ J .
au loc pentru urm toarele 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 =< x2, x+ y >.4-3. I =< x2, y2, xy >, J =< x+ y, x3y3 >.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 >.
Indicaµie:
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 "câturile" împ rµirii polinomului f la idealulI, ³i s se scrie "proba" împ rµirii.
5-1. f = x+ 3y, I =< x+ 2y, 2x− y >.5-2. f = x3y3, I =< x2 + y, x+ y2 >.5-3. f = x3 + y3 + z3, I =< x+ y + z, x2 + y2 + z2 >.
Indicaµie:
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);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
1.5. PROBLEME PROPUSE 63
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 ecuaµiile implicite ale curbelor ³i suprafeµelor de�niteparametric de ecuaµiile date (parametrii sunt t, u, v...).
6-1. x = 2t2, y = t3.6-2. x = t2 + t+ 1, y = t3.6-3. x = t2, y = t3, z = t5.6-4. x = uv, y = uv2, z = u2 (aceast suprafaµ se nume³te umbrela lui
Whitney).6-5. x = u+ v, y = u− v, z = u2 − v2.6-6. x = u+ v, y = u− v, z = u2 + v2.6-7. x = u+ v, y = uv, z = u2 + v2.6-8. x = u2 + v2, y = u2 − v2, z = 2uv.6-9. x = 1 + u2 + v, y = 1− u− v2, z = u2 + v2.
Indicaµie:
ring R=0,(t,x,y),dp;ideal I=x-2t2,y-t3;ideal J=eliminate(I,t);J;// -> J este generat de ecuaµiile implicite
7. S se stabileasc dac polinomul dat este sau nu un element al radicaluluiidealului dat.
7-1. f = x+ y, I =< x2, xy, y2 >.7-2. f = x− y, I =< x3, x2y, xy2, y3 >.7-3. f = x+ y + z, I =< x6, xy2, y3, z4 + xyz >.7-4. f = x+ y + z, I =< x9, xy8, y9, xyz >.7-5. f = x2 + y2 + z2, I =< x9, xy8, z9, xyz >.
64 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Indicaµie:
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 urm tor dat.
8-1. I =< x2, xy, y2 >.8-2. I =< x3, x2y, xy2, y3 >.8-3. I =< x4, y3 >.8-4. I =< x2 + xy, y3 >.8-5. I =< x6, xy2, y3, z4 + xyz >.8-6. I =< x9, xy8, y9, xyz >.8-7. I =< x9, xy8, z9, xyz >.
Indicaµie:
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 intersecµia idealelor, I ∩ J pentru idealele urm toare.
9-1. I =< x2, xy, y2 >, J =< x3 >.9-2. I =< x3, x2y, xy2, y3 >, J =< x3, y3 >.9-3. I =< x4, y3 >, J =< x2 + y3 >.9-4. I =< x2 + xy, y3 >, J =< x4, z2 >.9-5. I =< x3, xy2 >, J =< z >.9-6. I =< x5, xy, xy >, J =< x, xz >.9-7. I =< x3 + xy2, xyz >, J =< x+ y, x+ z >.9-8. I =< x+ y2, z >, J =< x+ y, z >.9-9. I =< x+ y + z, xyz >, J =< x+ y, x+ z, y + z >.
1.5. PROBLEME PROPUSE 65
Indicaµie:
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 câtul idealelor, I : J pentru idealele urm toare.
10-1. I =< x2, xy >, J =< x3 >.10-2. I =< x, y >, J =< x3, y3 >.10-3. I =< x3, y3 >, J =< x, y >.10-4. I =< x2, y >, J =< x, z2 >.10-5. I =< x3, xy, z2 >, J =< z >.10-6. I =< x3, xy, z2 >, J =< x, z >.10-7. < x, z >, J = I =< x3, xy, z2 >.
Indicaµie:
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 dependenµa algebric a polinoamelor date, ³i în cazul de-pendenµei algebrice s se determine polinomul care realizeaz aceast de-pendenµ . (Reamintim c polinoamele f1, f2, . . . , fk ∈ k[x1, x2, . . . , xn]sunt algebric dependente dac exist un polinom g ∈ K[y1, y2, . . . , yk]astfel ca g(f1, f2, . . . , fk) = 0.)
11-1. f1 = 2x+ y, f2 = x− 3y, f3 = 5x+ 7y.11-2. f1 = x+ y, f2 = x− y, f3 = x2 − y2.11-3. f1 = x+ y, f2 = x− y, f3 = x2 + y2.11-4. f1 = x+ y + z, f2 = x2 + y2 + z2, f3 = xy + xz + yz.11-5. f1 = x+ y, f2 = xy, f3 = x5 + y5.11-6. f1 = x+ y, f2 = xy, f3 = x5 − y5.
66 CAPITOLUL 1. TEOREME DE GEOMETRIE PE CALCULATOR
Indicaµie:
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) variabilesetring(S); // selecteaza acest inelker; // listeaza relatiile de dependenta
12. S se demonstreze teoremele urm toare � folosind programe scrise înSingular.
12-1. Teorema lui Pitagora.12-2. Reciproca teoremei lui Pitagora.12-3. Teorema în lµimilor.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 a�rmaµii,corespunz toare �gurilor (B) ³i (C) respectiv.
Capitolul 2
Rezolvarea sistemelor de ecuaµii
E cuaµiile polinomiale cu o singur variabil se studiaz încadrul unor capitole de matematic care nu intr în obiectiveleprezentului volum. Sisteme de ecuaµii am întâlnit îns în capi-tolul precedent: am v zut c mulµimea soluµiilor unui sistem de
ecuaµii algebrice este un obiect "geometric" numit varietate a�n . Ecuaµiileunui sistem pot � schimbate dup anumite reguli cu p strarea mulµimii soluµi-ilor sistemului, ecuaµiile (polinoamele) obµinute în acest fel dau na³tere la unobiect algebric, numit ideal. Am v zut de asemenea c aceast corespondenµ varietate algebric � ideal, este pro�tabil din punctul de vedere al studiuluiambelor obiecte.
În acest capitol vom încerca s fructi�c m acest studiu în direcµia studiuluirezolvabilit µii sistemelor de ecuaµii algebrice.
2.1 Sisteme de ecuaµii polinomiale
S istemele de ecuaµii pe care le vom considera în acest capitol vor �formate din ecuaµii polinomiale. Coe�cienµii vor � elementele unui corp
de numere. În exemplele concrete vor � numere raµionale, numere reale, clasede resturi modulo un num r prim, sau extensii algebrice �nite ale acestora.Forma general a unui astfel de sistem este deci
f1(x1, x2, . . . , xn) = 0
f2(x1, x2, . . . , xn) = 0
. . .
fm(x1, x2, . . . , xn) = 0
(2.1)
67
68 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
unde x1, x2, . . . , xn sunt necunoscutele sistemului iar f1, f2, . . . , fm ∈K[x1, x2, . . . , xn] sunt polinoame cu coe�cienµi în corpul de numere K.
2.1.1 Sisteme liniare
Cele mai simple sisteme de ecuaµii sunt cele liniare. În acest caz polinoamelef1, f2, . . . , fm sunt liniare, deci au forma
f = a1x1 + a2x2 + . . .+ anxn − b,
unde numerele a1, a2, . . . , an, b ∈ K sunt elemente ale corpului de numere K.Teoria acestor sisteme este binecunoscut . Sunt posibile trei situaµii: sis-
temul are soluµie unic , sistemul are o in�nitate de soluµii (ace³tia sunt funcµiiliniare de un num r �nit de parametrii), respectiv sistemul nu are soluµii.Toate aceste situaµii sunt decise de rangul matricii coe�cienµilor sistemului ³ide rangul matricii extinse, adic rangurile matricilor:
A =
a11 a12 . . . a1na21 a22 . . . a2n...
.... . .
...am1 am2 . . . amn
respectiv
A =
a11 a12 . . . a1n b1a21 a22 . . . a2n b2...
.... . .
......
am1 am2 . . . amn bm
.
Reamintim c rangul unei matrici este num rul 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 urm tor. Not mr = rank(A) ³i r = rank(A). Atunci avem:
r = r sistem compatibil are soluµiir = n sistem determinat soluµie unic r < n sistem nedeterminat in�nitate parametric de soluµii
r < r sistem incompatibil nu are soluµii
În toate cazurile anterioare, dac r < m atunci un num r de m − r ecuaµiipotrivit alese sunt combinaµii liniare ale celorlalte r ecuaµii, deci aceste ecuaµiipot � eliminate din sistem f r ca rezolvabilitatea ³i soluµiile sistemului s �eafectate. În secµiunea de aplicaµii d m exemple pentru �ecare caz.
2.1. SISTEME DE ECUA�II POLINOMIALE 69
2.1.2 Teorema lui Hilbert a zerourilor
Înainte de a intra în studiul sistemelor de ecuaµii neliniare va trebui s contin-u m analiza "dicµionarului" algebr -geometrie început în capitolul precedent.S ne aducem aminte a³adar, c mulµimea soluµiilor unui sistem de ecuaµiipolinomiale se nume³te varietate algebric . Polinoamele care de�nesc sistemulde ecuaµii de�nesc ³i un ideal, ³i orice polinom al acestui ideal se anuleaz pepunctele acestei variet µi.
Invers, dat un ideal de polinoame � conform teoremei lui Hilbert a bazei(vezi teorema 1.1.45 de la pagina 38), mai precis a consecinµei acesteia careurmeaz dup teorem � acest ideal este �nit generat, deci exist un sistemformat dintr-un num r �nit de ecuaµii, ale c ror r d cini comune sunt puncteleîn care se anuleaz toate polinoamele idealului (propoziµia 1.1.47 e la pagina40).
Am v zut de asemenea c atât corespondenµa varietate-ideal, cât ³i core-spondenµa ideal-varietate este antimonoton (vezi propoziµia 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 m sur o variatea�n asociat unui ideal determin idealul din care provine.
Avem evident I(V (I)) ⊇ I. Este u³or de v zut pe un contraexemplu simpluc incluziunea este strict . Într-adev r, �e n = 1, I = (x2), deci V (I) = {0}³i deci I(V (I)) = (x) ' I. Teorema lui Hilbert a zerourilor clari�c tocmaiaceast incluziune strict .
Înainte de a enunµa teorema lui Hilbert a zerourilor demonstr m dou lemecare vor � folosite în demonstraµia acesteia respectiv vom demonstra ³i formaslab a acestei teoreme.
Lem 2.1.1. Fie I un ideal propriu în k[x1, x2, . . . , xn]. Atunci exist un idealmaximal m $ k[x1, x2, . . . , xn] care îl conµine pe I.
Demonstraµie. Într-adev r, ad ugând unul câte unul elemente ale inelului laidealul I ³i generând astfel un ³ir strict ascendent de ideale � acesta �ind �nit,la un moment dat el coincide cu întreg inelul k[x1, x2, . . . , xn]. Idealul construitîn pasul anterior acestui moment este evident maximal ³i conµine idealul I.
Ideea de mai sus reluat mai explicit arat astfel. �tim din teorema luiHilbert a bazei (teorema 1.1.45 de la pagina 38) c inelul k[x1, x2, . . . , xn] esteNoetherian, ³i conform propoziµiei 1.1.44 de la pagina 38 aceasta înseamn c orice ³ir de ideale ascendent este staµionar sau altfel spus orice ³ir de idealestrict ascendent este �nit.
Consider m idealul I1 = I. Acesta �ind ideal propriu, exist un ele-ment f1 ∈ k[x1, x2, . . . , xn] \ I1. Idealul generat I2 =< f1, I1 > este ori
70 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
întreg inelul ori ideal propriu. A³adar ori I1 ⊃ I este maximal ori exist f2 ∈ k[x1, x2, . . . , xn] \ I2. Raµionamentul se repet , ³i se obµine astfel un ³irstrict ascendent de ideale I1 & I2 & . . ., care �ind �nit, exist un indice kpentru care Ik = k[x1, x2, . . . , xn]. Atunci m = Ik−1 este idealul maximal careîl conµine pe I.
Idealele maximale ale inelelor de polinoame cu coe�cienµi într-un corp al-gebric închis (e su�cient s ne limit m aici la corpul numerelor complexe) auo form particular . S ne aducem aminte c asocierea la un ideal a uneivariet µi algebrice este antimonoton : cu cât idealul este mai mare, cu atâtvarietatea este mai mic . Nu este chiar atât de surprinz tor a³adar c unuiideal maximal îi va corespunde cea mai "mic " varietate algebric : punctul.Dac coordonatele acestuia sunt (a1, a2, . . . , an), atunci funcµiile polinomialecele mai simple care se anuleaz în acest punct sunt cele liniare. Avem a³adarurm toarea a�rmaµie:
Lem 2.1.2. Fie m un ideal maximal (deci propriu) în k[x1, x2, . . . , xn].Atunci exist un punct (a1, a2, . . . , an) ∈ kn astfel ca
m =< x1 − a1, x2 − a2, . . . , xn − an >,
adic idealul maximal este generat de polinoamele de gradul întâi xi − ai.
Demonstraµie. Demonstraµia nu este chiar simpl . Red m aici o idee a demon-straµiei pentru a sublinia atât plauzibilitatea rezultatului cât ³i di�cultateademonstraµiei îns ³i. Pentru orice i, 1 ≤ i ≤ n intersecµia m ∩ k[xi] nu estevid , adic idealul maximal conµine pentru �ecare variabil un polinom înnumai variabila respectiv (aceasta este partea di�cil a demonstraµiei, vezi[?]). Acest polinom nu poate � o constant nenul , deoarece atunci am aveam = k[x1, x2, . . . , xn]. Corpul k �ind algebric închis acest polinom de grad celpuµin 1 se descompune în factori liniari. Dar idealul m �ind maximal este ³iprim, deci conµine unul din factorii acestei descompuneri, s spunem factorul(xi−ai). Prin urmare idealulm conµine idealul< x1−a1, x2−a2, . . . , xn−an > .Acesta îns este un ideal maximal, deci avem egalitatea din enunµ.
Teorema lui Hilbert a zerourilor în forma sa slab (week Nullstellensatz)are urm torul enunµ:
Teorem 2.1.3 (Teorema lui Hilbert a zerourilor � forma slab ). Fie k uncorp algebric închis. Fie I un ideal în k[x1, x2, . . . , xn], pentru care V (I) = ∅.Atunci I = k[x1, x2, . . . , xn].
Demonstraµie. A�rmaµia teoremei se poate reformula astfel: dac idealulI ⊂ k[x1, x2, . . . , xn] este ideal propriu, atunci V (I) = ∅. Fie m un ideal
2.1. SISTEME DE ECUA�II POLINOMIALE 71
maximal care îl conµine pe I � acesta exist conform lemei 2.1.1. Atunciconform lemei 2.1.2 exist un punct (a1, a2, . . . , an) ∈ kn astfel ca m =<x1−a1, x2−a2, . . . , xn−an >. Atunci punctul (a1, a2, . . . , an) este o r d cin comun a polinoamelor din m deci ³i a polinoamelor din I.
În sfâr³it teorema lui Hilbert a zerourilor � dup cum am pus la vedere înînceputul acestei secµiuni are urm torul enunµ:
Teorem 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[x1, x2, . . . , xn]. Atunci
I(V (I)) =√I.
Demonstraµie. Incluziunea I(V (I)) ⊇√I este simpl . Într-adev r, 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)).Demonstr m 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 {g1, g2, . . . , gs} un sistem de generatori ai lui I. S not m totodat R = k[x1, x2, . . . , xn]. Consider m a nou variabil y. Consider m în inelul depolinoame R[y] = k[x1, x2, . . . , xn, y] idealul
J =< I, yf − 1 > .
Pentru orice punct (a1, a2, . . . , an, b) în varietatea algebric a�n V (J) avembf(a1, a2, . . . , an) = 1 ³i gi(a1, a2, . . . , an) = 0, pentru orice i = 1, . . . , s. De aiciîns se deduce c (a1, a2, . . . , an) ∈ V (I) ³i f(a1, a2, . . . , an) = 0, în contradicµiecu alegerea lui f . Prin urmare un asemenea punct (a1, a2, . . . , an, b) nu exist ,deci V (J) = ∅, ³i forma slab a teoremei lui Hilbert a zerourilor implic 1 ∈ J .Astfel rezult c exist polinoamele h1, h2, . . . , hs, h ∈ R[y] astfel ca
1 = h1 · g1 + h2 · g2 + . . .+ hs · gs + h · (yf − 1).
Aceast egalitate v zut în corpul de fracµii raµionale k(x1, x2, . . . , xn, y) nepermite s substituim y cu 1/f , de unde vom obµine
1 =s∑
i=1
hi(x1, x2, . . . , xn,1
f) · gi.
Acum nu mai avem decât s elimin m numitorul printr-o înmulµire corespun-z toare ³i vom obµine c a exist o putere a lui f care este o combinaµie ageneratorilor lui I, deci f ∈
√I.
72 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
2.1.3 Sisteme neliniare
Scopul principal al acestui capitol este studiul sistemelor de ecuaµii neliniarepolinomiale. A³adar în 2.1 de la pagina 67 polinoamele f vor � neliniare: vor� sume de monoame ale variabilelor, de diverse grade.
A³a cum vom vedea în cele ce urmeaz , studiul acestor sisteme ne va con-duce la trei alternative similare cu cele de la sisteme liniare, ³i anume: sis-tem compatibil � cu o in�nitate de soluµii, sau cu un num r �nit de soluµii� respectiv sistem incompatibil, deci f r soluµie. Interesant este îns faptulc toate aceste alternative pot � recunoscute efectiv cu ajutorul algoritmuluibazei Gröbner ! S vedem acum ³i detaliile.
Ca un rezultat imediat s observ m c teorema lui Hilbert a zerourilorîn forma slab permite s caracteriz m (inclusiv algoritmic!) rezolvabilitateaunui sistem de ecuaµii polinomiale neliniare.
Propoziµie 2.1.5. Un sistem de ecuaµii algebrice de forma 2.1 are soluµii exactatunci când idealul generat de polinoamele care îl de�nesc este propriu (nu esteîntregul inel de polinoame în cele n variabile).
Altfel spus, un sistem algebric este incompatibil dac ³i numai dac bazaGröbner al idealului generat de polinoamele care de�nesc sistemul conµine poli-nomul constant 1.
Demonstraµie. Enunµul propoziµiei este doar a reformulare a teoremei luiHilbert a zerourilor în forma slab . Pentru cea de a doua variant , s ob-serv m c dac un ideal al unui inel conµine elementul unitate, atunci conµineorice element, adic coincide cu inelul, deci nu este ideal propriu (³i invers).
�tim a³adar s decidem dac un sistem de ecuaµii polinomial are sau nusoluµie. În cazul în care sistemul are soluµii, se pune problema dac num rulacestora este �nit sau in�nit.
S relu m în acest scop ideile din propoziµia 1.2.17 de la pagina 52 subforma unui enunµ care este practic o reformulare a acesteia.
Propoziµie 2.1.6. Fie I un ideal în k[x1, x2, . . . , xn], ³i �e o ordonare mono-mial �xat în acest inel. Atunci:
• Orice f ∈ k[x1, x2, . . . , xn] este congruent modulo I cu un unic polinomr, care este o combinaµie liniar cu coe�cienµi numerici ai unor monoamedin complementara mulµimii < LT(I) >, adic din mulµimea de monoame{xα |xα ∈< LT(I) >}.
• Elementele mulµimii {xα |xα ∈< LT(I) >} sunt liniar independente mod-ulo I, adic din
∑α cαx
α = 0 mod I, rezult cα = 0 pentru orice α.
2.1. SISTEME DE ECUA�II POLINOMIALE 73
Demonstraµie. Fie G baza Gröbner pentru I. Atunci existenµa ³i unicitatea luir este garantat de propoziµia 1.2.17. Algoritmul de împ rµire a polinoamelorcu mai multe nedeterminate � vezi condiµia de terminare a algoritmului �asigur faptul c r este o combinaµie liniar a doar monoame din mulµimea{xα |xα ∈< LT(I) >}.
Partea a doua este o consecinµ a unicit µii restului tot de la propoziµia1.2.17.
A�rmaµiile conµinute în propoziµia precedent pot � acum reinterpretate îninelul factor k[x1, x2, . . . , xn]/I. Prin urmare avem:
Corolar 2.1.7. Fie I ∈ k[x1, x2, . . . , xn] un ideal. Atunci inelul factork[x1, x2, . . . , xn]/I � ca spaµiu vectorial peste corpul k � este izomorf cu spaµiulvectorial generat de mulµimea de monoame {xα |xα ∈< LT(I) >}. În particu-lar clasa unui polinom f ∈ k[x1, x2, . . . , xn]/I este reprezentat în mod standardde restul (unic determinat) al împ rµirii lui f la baza Gröbner al lui I. Aceast reprezentare a claselor este compatibil cu operaµiile de adunare ³i de înmulµirea polinoamelor.
Într-adev r, restul împ rµirii sumei este suma resturilor, iar restul împ rµiriiunui produs este produsul resturilor, mai precis restul împ rµirii acestui produs.
2.1.4 Sisteme cu un num r �nit de soluµii
Partea frumoas a celor discutate mai sus este c toate acestea pot � con-vertite u³or într-un criteriu algoritmic de a decide dac un sistem de ecuaµiipolinomiale are un num r �nit de soluµii (vezi [12]).
Propoziµie 2.1.8. Fie V = V (I) o varietate a�n în Cn. Fix m o ordonaremonomial în C[x1, x2, . . . , xn]. Atunci urm toarele a�rmaµii sunt echivalente.
1. V este o mulµime �nit .
2. Pentru �ecare i, 1 ≤ i ≤ n, exist un exponent mi ≥ 0, astfel ca xmii ∈<
LT(I) >.
3. Fie G o baz Gröbner pentru I. Atunci pentru �ecare i, 1 ≤ i ≤ n, exist un mi ≥ 0, astfel ca xmi
i = LM(gi), pentru un element potrivit al bazeigi ∈ G.
4. C-spaµiul vectorial generat de de mulµimea de monoame {xα |xα ∈<LT(I) >} este �nit dimensional.
5. C-spaµiul vectorial C[x1, x2, . . . , xn]/I este �nit dimensional.
74 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
Demonstraµie. (1)⇒(2). Fie mai întâi V = ∅. Atunci 1 ∈ I (conform teo-remei lui Hilbert a zerourilor, forma slab ), ³i putem alege mi = 0 pentruorice 1 ≤ i ≤ n. Dac îns V este nevid, atunci pentru �ecare coordonat iculegem numerele complexe (distincte) a1, a2, . . . , ak care apar ca ³i valori alecoordonatei i ale punctelor din V ³i construim polinomul de o variabil
f(xi) =
k∏j=1
(xi − aj).
Prin construcµie, polinomul f se anuleaz în punctele lui V , deci f ∈ I(V ). Pebaza teoremei lui Hilbert a zerourilor exist deci m ≥ 1 astfel ca fm ∈ I. Daraceasta ne arat imediat c termenul principal al lui fm � o putere a lui xi �este în < LT(I) >.
(2)⇒(3). Fie mi ≥ 0, astfel ca xmii ∈< LT(I) >. Dac G este o baz
Gröbner pentru I, atunci < LT(I) >=< LT(g) | g ∈ G >. Rezult c exist un polinom gi ∈ G astfel ca LT(gi) s divid xmi
i , deci LT(gi) este o putere alui xi.
(3)⇒(2). Aceasta rezult din de�niµia lui LT(G).(2)⇒(4). Dac o putere mi a �ec rei necunoscute xi este în < LT(I) >,
atunci monoamele din complementul lui< LT(I) > au exponentul lui xi limitatde mi, deci num rul total al acestora este m rginit de m1 ·m2 · . . . ·mn.
(4)⇒(5). Este a�rmaµia corolarului 2.1.7 de la pagina 73.(5)⇒(1). Pentru a ar ta c V este o mulµime �nit , este su�cient s ar t m
c proiecµia ei pe �ecare ax de coordonat este �nit . Fix m deci un indicei, ³i consider m clasa de echivalenµ [xji ] în C[x1, x2, . . . , xn]/I, pentru toatevalorile naturale ale exponentului. Deoarece C[x1, x2, . . . , xn]/I este �nit di-mensional, aceste clase de echivalenµ sunt liniar dependente, deci exist orelaµie de forma
m∑j=0
cj [xji ] = [
m∑j=0
cjxji ] = [0],
unde nu toµi coe�cienµii sunt nuli. Aceast egalitate înseamn c ∑m
j=0 cjxji ∈
I. Un polinom de grad m are cel mult m r d cini distincte în C, deci avemun num r �nit de valori ale coordonatei în direcµia i.
Putem caracteriza acum sistemele de ecuaµii cu un num r �nit de soluµii.
Teorem 2.1.9. Fie I un idealul generat în C[x1, x2, . . . , xn] de polinoamelecare de�nesc sistemul de ecuaµii 2.1. Fie G o baz Gröbner pentru I. Sistemulde ecuaµii are un num r �nit de soluµii exact atunci când pentru �ecare i exist un mi mi ≥ 0, astfel ca xmi
i = LM(gi), pentru un polinom gi ∈ G al bazei.
2.2. APLICA�II � EXEMPLE IN SINGULAR 75
Demonstraµie. Rezult direct din punctul (3) al propoziµiei anterioare 2.1.8.
Se vede în plus, c o margine superioar a num rului de soluµii a sistemuluide ecuaµii, este dat de produsul acestor exponenµi. Menµion m c egalitate areloc dac idealul I este ideal radical, adic I =
√I.
2.2 Aplicaµii � Exemple in Singular
P rezent m în aceast secµiune un num r mai mare de exemple.Toate acestea utilizeaz mediul de programare oferit de Singular ³i ape-
leaz algoritmul bazei Gröbner . Vom da atât programul scris în Singular, cât³i rezultatul rul rii acestuia.
2.2.1 Sisteme de ecuaµii liniare
D m aici câteva exemple de sisteme liniare, care ilustreaz toate tipurile �compatibil determinat/nedeterminat, respectiv incompatibil � al acestor sis-teme.
Sistem de ecuaµii, 3 necunoscute, gradul 1, compatibil determinat
//// Sistem de ecuaµii 3 necunoscute, gradul 1, coeficienti in Q//// are un num r finit de soluµii//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;
// scriere intr-un fisier, codificare LaTeXLIB "latex.lib";string file = "file.tex";int TeXwidth = 0;opentex(file);texobj(file,I);texobj(file,J);closetex(file);
76 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
// rezolvarea efectiva a sistemuluioption(redSB);simplify(std(I),1);
// pregatire pentru un alt sistemkill R;
Sistemul de ecuaµii iniµial:2x + y − z = −1x − 3y − 2z = −6x − y + z = 2
Sistemul de ecuaµii echivalent, care se poate rezolva, având forma "triunghi-ular " (descris de idealul J):
z = 22y + 3z = 8
x − y + z = 2
Soluµia sistemului este: x = 1y = 1z = 2
Sistem de ecuaµii, 3 necunoscute, gradul 1, incompatibil
//// Sistem de ecuaµii, 3 necunoscute, gradul 1, coeficienti in Q// baza Gröbner este 1,// nu are soluµii//ring R = 0,(x,y,z),lp;ideal I = 2x+y-2z+2,x-y-z-2,x+2y-z-5;groebner(I);
Sistemul de ecuaµii iniµial:2x + y − 2z = −2x − y − z = 2x + 2y − z = 5
Baza Gröbner este 1. Prin urmare sistemul este incompatibil.
2.2. APLICA�II � EXEMPLE IN SINGULAR 77
Sistem de ecuaµii, 3 necunoscute, gradul 1, compatibil, nedeterminat
//// Sistem de ecuaµii, 3 necunoscute, gradul 1, coeficienti in Q//// are o infinitate de soluµii, 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 ecuaµii iniµial:2x + y + 2z = −2x − 3y + 2z = 53x − 2y + 4z = 3
Sistemul de ecuaµii echivalent, de forma "triunghiular ":{7y − 2z = −12
3x − 2y + 4z = 3
Sistemul este nedeterminat, z este parametru. Soluµia este:x = −8/7α− 1/7y = 2/7α+ 12/7z = α
Sistem de ecuaµii, 3 necunoscute, gradul 1, cu 1 parametru
//// Sistem de ecuaµii, 3 necunoscute, gradul 1, 1 parametru// coeficienti in Q(a)//// are un num r finit de soluµii//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);
78 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
Sistemul de ecuaµii iniµial, parametric:2x + ay − 2z = −a2
ax + y − 2z = 2ax − y + az = 4a− 1
Sistemul de ecuaµii echivalent:(a3 − 2a+ 2)z + (−3a3 + 4a2 + 12a− 2) = 0(a3 − 2a+ 2)y + (a4 − 2a2 + 22a− 4) = 0(a3 − 2a+ 2)x+ (−3a3 − 6a2 + 14a− 2) = 0
Soluµia sistemului se obµine prin împ rµirea cu coe�cientul necunoscutelor.
Sistem de ecuaµii, 3 necunoscute, gradul 1, 2 parametrii
//// Sistem de ecuaµii, 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 ecuaµii iniµial, cu 2 parametrii:5x + y − 2z = −2x − 3y − 2z = 1x − y + 7z = 4
Sistemul de ecuaµii echivalent:z = 1y = −3x = 5
2.2.2 Sisteme de ecuaµii neliniare
Sistem de ecuaµii, 2 necunoscute, gradul 2
//// Sistem de ecuaµii, 2 necunoscute, gradul 2, coeficienti in Q// aducere la forma triunghiulara// are soluµie//ring R = 0,(x,y),lp;
2.2. APLICA�II � EXEMPLE IN SINGULAR 79
ideal I = xy-x-y-22,x2+y2+3x+3y-88;groebner(I);
Sistemul de ecuaµii iniµial:
{xy − x− y = 22x2 + 3x+ y2 + 3y = 88
Sistemul de ecuaµii echivalent, de forma "triunghiular ":
{y4 + y3 − 89y2 + 286y + 330 = 023x+ y3 + 2y2 − 87y + 176 = 0
Sistem de ecuaµii, 3 necunoscute, gradul 2
//// Sistem de ecuaµii 3 necunoscute, gradul 2// aducere la forma triunghiular //// termenii principali ai bazei Gröbner nu conµin toate// necunoscutele la câte o putere convenabil , prin urmare// sistemul are o infinitate de soluµii//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 ecuaµii dat:
xy + xz − x+ z2 = 2xy2 + 2xz − 3x+ y + z = 1y3 + y2z + 2yz − 3y + 2z2 − 3z = 0
Sistemul de ecuaµii echivalent, având forma "triunghiular ":
z6 + 2z5 − 7z4 − 8z3 + 15z2 + 8z − 10 = 0y + z4 + 2z3 − 5z2 − 3z + 5 = 0xz2 − 2x− yz2 + 3y + z3 − z2 − z + 1 = 0
sistemul are o in�nitate de soluµii.
80 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
Sistem de ecuaµii, 2 necunoscute, gradul 2, cu 1 parametru
//// Sistem de ecuaµii 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 ecuaµii iniµial, parametric:
{axy − x+ y = −axy + x+ y = −2
Sistemul de ecuaµii echivalent, de forma "triunghiular ":
{(a− 1)y2 + (a− 2)y − (a+ 2) = 0−(a+ 1)x− (a− 1)y − a = 0
Sistem de ecuaµii, 3 necunoscute, gradul 2, incompatibil
//// Sistem de ecuaµii 3 necunoscute, gradul 2, coeficienti in Q// Dac baza Gröbner este 1, atunci ³i numai atunci// sistemul de ecuaµii nu are soluµii// nu are soluµii//ring R = 0,(x,y,z),lp;ideal I = x2y+4y2-17,2xy-3y2+8,xy2-5xy+1;groebner(I);
Sistemul de ecuaµii dat:
x2y + 4y2 = 172xy − 3y2 = −8xy2 − 5xy = −1
Baza Gröbner este 1, deci sistemul nu are soluµie.
2.2. APLICA�II � EXEMPLE IN SINGULAR 81
Sistem de ecuaµii, 3 necunoscute, gradul 2, num r �nit de soluµii
//// Sistem de ecuaµii, 3 necunoscute, gradul 2, coeficienti in Q//// termenii principali ai bazei Gröbner conµin toate necunoscutele// la câte o putere convenabil ...// sistemul are un num r finit de soluµii//ring R = 0,(x,y,z),lp;ideal I = 2xy+yz-27,3yz-2xz-25,xz-xy-4;groebner(I);
Sistemul de ecuaµii iniµial:2xy + yz = 27−2xz + 3yz = 25−xy + xz = 4
Sistemul de ecuaµii echivalent, de form "triunghiular ":z2 − 25 = 05y − 3z = 030x− 3y2z + 25y = 0
Sistemul are un num r �nit (dou ) soluµii (2 < 3× 2× 3).
Sistem de ecuaµii, 3 necunoscute, gradul 3
//// Sistem de ecuaµii, 3 necunoscute, gradul 3, coeficienti in Q//// are un num r finit de soluµii//ring R = 0,(x,y,z),lp;ideal I = 2x2+xy2-2z+2,x3-3zy-2z-25+z,x3-y3+xz-4;groebner(I);
Sistemul de ecuaµii dat:2x2 + xy2 − 2z + 2 = 0x3 − 3yz − z − 25 = 0x3 + xz − y3 − 4 = 0
Sistemul de ecuaµii echivalent:
82 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
486z13 + 840294z12 + 2179519z11 − 18625847z10−−66952171z9 − 7843427z8 + 864097117z7 + 8298367485z6+
+25162261044z5 − 22542925824z4 − 487702971614z3−−723757819752z2 + 2144327757537z + 4109489307937 = 0
77868818920376452884002811866907927673441157293810718339707101119008169629924900821074y−
−316596417365893513431871954655956175686913855729382559718764947097089412685574z12−
−546866011870061631830086149553761652704609914070317456131250225276053752487210842z11−
−506265571539125034328107265791380861696769344759638472523854301571083149345549117z10+
+12035253269677046587539530663243242579900239127645919306621852750963467045157880067z9+
+21836099404337043463298656198062721725265110037556553500984050074577338350969027336z8−
−15976435100265801555591297364861581681284875131652370380435238355883589904576870620z7−
−491858694157017886759882740856242150024435214828609356548339447678061044391805476356z6−
−4547731012299438430399486296727284507537002149137493051746934356874890912603084713661z5−
−9327763490789532911836051672446234989487360511203537630956287478096418183048087158993z4+
+22074279066510888443725021661194684080526833593253821243194012994480276581591309059380z3+
+256557590565714416943576658869393209368803656394454537686316620821332822604623919532697z2+
+30241778865372650692751774511807740516361159056991713443488775463490120854023159339556z−
−1116574640642650517254952303223042003058428039235345713199512234484182234329397469281893 = 0
154238x− 2440y6 + 4782y5 + 3477y4z + 21090y4−−1730y3z + 37457y3 + 366y2z2 − 72397y2z − 4891y2−
−272yz2 − 115170yz − 457590y − 8714z2 − 64132z − 691370 = 0
Sistemul are un num r �nit (mai exact 13) soluµii (13 < 3× 3× 3).
2.2. APLICA�II � EXEMPLE IN SINGULAR 83
Sistem de ecuaµii, 3 necunoscute, gradul 3
//// Sistem de ecuaµii 3 necunoscute, gradul 3, coeficienti in Q//// are un num r finit de soluµii//// 27 soluµii//ring R = 0,(x,y,z),lp;ideal I = x3-y3-z2+1,y3-z3-2,z3-x3+x2y-5;groebner(I);
Sistemul de ecuaµii iniµial:x3 − y3 − z2 = −1
y3 − z3 = 2−x3 + x2y + z3 = 5
Sistemul de ecuaµii echivalent, de forma "triunghiular ":
z9 + 2z8 + z7 + 3z6 + 6z5 − 16z4 + 5z3 − 104z2 = 214
y3 − z3 = 226510x− 9y4z5 − 122y4z4 − 50y4z3 + 818y4z2+
+51y4z − 3778y4 − 9yz7 − 131yz6 − 154yz5 + 886yz4−−532yz3 − 4031yz2 + 219yz + 7168y = 0
În �ne, sistemul are num rul cel mai mare posibil de soluµii, 27 = 3×3×3.
Sistem de ecuaµii, 3 necunoscute, gradul 4
//// Sistem de ecuaµii 3 necunoscute, gradul 4//// are un num r finit de soluµii//// 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);
84 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
Sistemul de ecuaµii dat:
x3 − y3 − z2 = −1
y4 − z3 = 2−x3 + x2y + z3 = 5
Sistemul echivalent este:
z36 − 12z35 + 66z34 − 259z33 + 999z32 − 3488z31++9987z30 − 26924z29 + 71037z28 − 164116z27 + 359443z26−
−780638z25 + 1522005z24 − 2868548z23 + 5334964z22−−9004370z21 + 14960556z20 − 24199784z19 + 35734788z18−
−52610260z17 + 74313032z16 − 95421684z15 + 124149152z14−−153093600z13 + 166826600z12 − 193202392z11++205778048z10 − 183765969z9 + 197770992z8−−170755968z7 + 123037466z6 − 137062368z5+
+73700992z4 − 49132044z3 + 65651520z2 + 30689784 = 0
54175812527227677578937850059775495948584375611905207387944543099287040000y−
−38040725900610625515711522654817823865797278257309017260913123255939z35+
+490198400501144742354695108750377701491564890301772523468574460255845z34−
−2910942286049931696213517023987261719649727091767734546848226339326909z33+
+11894109713643975734705869323519740312667694310575376779427135535697288z32−
−44776611822160692360844844939628485898829142555306938628944226550656845z31+
+155481032106091955235618175888045998356975249687775422634405962696466767z30−
−453925669452102709794358138333732483280913563754486955176336819707784974z29+
+1199154705455785651931907656116527787425036735498124374853234801665372318z28−
−3060965035284861979556205845465449619177060505747972131636339074865585217z27+
2.2. APLICA�II � EXEMPLE IN SINGULAR 85
+7061417681628377658868907249732071693114423499847330734744479426938761255z26−
−15081300421293293069446704551618037480042215193220677488620802875205959942z25+
+31422540745976920810116047111391970108142595134265674320061835871812036188z24−
−60522153066189393243649271868901757915549540470011983282747242353580588979z23+
+110164401681394388896911248883884296975432656308392873955296908293520677469z22−
−196054373944301284242043010489125964899733600938851600354007242789634115963z21+
+324535592506944280136405443212958710199613453549327322753893192609477691039z20−
−514245835856854922228146149985885797367655445996926529523751328479118237561z19+
+793693832095180314625421525269560263653275970371691784743928623618909791499z18−
−1136371513113947114599155747871740781392561631343844084708931468958221009189z17+
+1567780156213778817820948407410934251220481285449339713493801987059899410867z16−
−2098511191135196330288654057773142737941510478411959109990677659894275330729z15+
+2566292793749237251927076900165048757754414933382597382131543433641385881023z14−
−3043565675070583019766542664640203279167238360158696282168131798217396619317z13+
+3524657612232504892799269211975458812200031801318093855638821081195101975431z12−
−3588890760534762872669581142459364247809381102128601393425703381436599648933z11+
+3638674763244057274532276604955506031985670425970582777868195266618253468607z10−
−3653449422196564336096487819114681530704444573911469343775803672178271701973z9+
+2953394391326199874505721890458993339373026194836154089366418183800006905530z8−
86 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
−2695337429691567543509627563039813196876826367114242860078910200928419409678z7+
+2310741356479626245316910394232130063681648949199517700353367450118256943706z6−
−1227566154947272957135733717442594055391938438093570514249623863941654919532z5+
+1258261769574668095200338346351073718210631082130150274552967957610159749828z4−
−792393052250852353861702261514644310895862492263359648244917536941034339692z3+
+206420917632076173539312189584954666865392013564015533912916656529156102472z2−
−545032840828031924370745138552277174455467026003060892852426931006456412376z−
−47757519436113782469341353363503277170890921231329052188185989675769736632 = 0
62991746510x+ 15680280y7z4 − 15384600y7z3++228629170y7z2 − 751931950y7z − 148004780y7−−54880980y6z5 − 28475370y6z4 − 952677110y6z3+
+1255557380y6z2 + 333425400y6z + 4144133840y6++8084508y5z6 + 184487376y5z5 − 50366107y5z4−
−7779821886y5z3 + 2109920478y5z2 − 862842666y5z++27763204727y5 − 31360560y4z7 + 81363558y4z6−
−1072320383y4z5 + 1684477410y4z4 + 3136861377y4z3++3398577110y4z2 − 4970014728y4z − 18905747224y4++109761960y3z8 − 131212620y3z7 + 1799884240y3z6−
−6149990770y3z5 + 3373349980y3z4 − 13439494530y3z3++23467200680y3z2 − 639717540y3z + 25160812600y3−
−4042254y2z9 − 113620797y2z8 + 107139602y2z7++3297002108y2z6 − 6747256212y2z5 + 2933764325y2z4−
−26334378960y2z3 + 22610651624y2z2 − 1070851684y2z++55112549848y2 + 15680280yz10 − 58383186yz9 + 490325587yz8−
−1805926200yz7 + 272802136yz6 + 683921420yz5++8931171310yz4 + 3761772605yz3 − 12212905339yz2−
−9866757747yz − 16027982146y − 54880980z11 + 120487290z10−−985148780z9 + 4192131790z8 − 5317148760z7 + 12605234180z6−
−30092670300z5 + 19097764840z4 − 40862175200z3++56844430720z2 − 544519360z + 52097682560 = 0
2.2. APLICA�II � EXEMPLE IN SINGULAR 87
Sistem de ecuaµii omogen, 2 necunoscute, gradul 2, parametric
//// Sistem de ecuaµii 2 necunoscute, gradul 2, polinom omogen,// 8 parametrii// are soluµie, 4 soluµii în general// se va rezolva o ecuaµie 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 ecuaµii iniµial, omogen general de gradul 2:{ax2 + 2bxy + cy2 = dex2 + 2fxy + gy2 = h
Sistemul echivalent este:
(a2g2 − 4abfg − 2aceg + 4acf2 + 4b2eg − 4bcef + c2e2)y4−−(2a2gh− 4abfh− 2aceh− 2adeg + 4adf2 + 4b2eh− 4bdef + 2cde2)y2+
+(a2h2 + 2adeh− d2e2) = 0
(2a2fh− 2abeh− 2adef + 2bde2)x++(a2g2 − 4abfg − 2aceg + 4acf2 + 4b2eg − 4bcef + c2e2)y3−
−(a2gh− 4abfh− aceh− adeg + 4adf2 + 4b2eh− 4bdef + cde2)y = 0
Sistem de ecuaµii omogen, 2 necunoscute, gradul 3, parametric
//// Sistem de ecuaµii 2 necunoscute, gradul 3, polinom omogen,// 10 parametrii// are soluµie, în general 9 soluµii//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 ecuaµii iniµial, general, omogen de gradul 3:{ax3 + bx2y + cxy2 + dy3 = efx3 + gx2y + hxy2 + ky3 = l
Sistemul de ecuaµii echivalent este:
88 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
−(a3k3 − a2bhk2 − 2a2cgk2 + a2ch2k− 3a2dfk2 +3a2dghk− a2dh3 + ab2gk2 +3abcfk2−abcghk−abdfhk−2abdg2k+abdgh2−2ac2fhk+ac2g2k+acdfgk+2acdfh2 − acdg2h+3ad2f2k− 3ad2fgh+ ad2g3 − b3fk2 + b2cfhk+2b2dfgk−b2dfh2 − bc2fgk − 3bcdf2k + bcdfgh + 2bd2f2h − bd2fg2 + c3f2k − c2df2h +cd2f2g − d3f3)y9 ++(3a3k2l−2a2bhkl−4a2cgkl+a2ch2l−6a2dfkl+3a2dghl−3a2efk2+3a2eghk−a2eh3 + 2ab2gkl+ 6abcfkl− abcghl− abdfhl− 2abdg2l− abefhk − 2abeg2k +abegh2 − 2ac2fhl+ ac2g2l+ acdfgl+ acefgk+ 2acefh2 − aceg2h+ 3ad2f2l+6adef2k−6adefgh+2adeg3−2b3fkl+ b2cfhl+2b2dfgl+2b2efgk− b2efh2−bc2fgl − 3bcdf2l − 3bcef2k + bcefgh+ 4bdef2h− 2bdefg2 + c3f2l − c2ef2h+2cdef2g − 3d2ef3)y6 −−(3a3kl2−a2bhl2−2a2cgl2−3a2dfl2−6a2efkl+3a2eghl+ab2gl2+3abcfl2−abefhl − 2abeg2l + acefgl + 6adef2l + 3ae2f2k − 3ae2fgh + ae2g3 − b3fl2 +2b2efgl − 3bcef2l + 2be2f2h− be2fg2 + ce2f2g − 3de2f3)y3 ++(a3l3 + 3a2efl2 − 3ae2f2l + e3f3) = 0
−(a5h3l2−2a4bgh2l2−3a4cfh2l2+a4cg2hl2+a4dg3l2−2a4efh3l−a4eg3kl+a4eg2h2l + 2a3b2fh2l2 + a3b2g2hl2 + 2a3bcfghl2 − a3bcg3l2 − 3a3bdfg2l2 +3a3befg2kl+ 2a3befgh2l− a3beg3hl+ 3a3c2f2hl2 − a3c2fg2l2 + 6a3cef2h2l−4a3cefg2hl + a3ceg4l − a3defg3l + a3e2f2h3 + a3e2fg3k − a3e2fg2h2 −2a2b3fghl2 − 3a2b2cf2hl2 + 2a2b2cfg2l2 + 3a2b2df2gl2 − 3a2b2ef2gkl −3a2b2ef2h2l+a2b2efg2hl−a2bcefg3l+3a2bdef2g2l−3a2be2f2g2k+a2be2fg3h−a2c3f3l2− 6a2c2ef3hl+3a2c2ef2g2l− 3a2ce2f3h2+3a2ce2f2g2h−a2ce2fg4+ab4f2hl2−ab3cf2gl2−ab3df3l2+ab3ef3kl+ab3ef2ghl+ab2c2f3l2+4ab2cef3hl−ab2cef2g2l−3ab2def3gl+3ab2e2f3gk+ab2e2f3h2−2ab2e2f2g2h−2abc2ef3gl−2abce2f3gh + 2abce2f2g3 + 2ac3ef4l + 3ac2e2f4h − 2ac2e2f3g2 − b4ef3hl +b3cef3gl+ b3def4l− b3e2f4k + b3e2f3gh− b2c2ef4l− b2ce2f4h− b2ce2f3g2 +2bc2e2f4g − c3e2f5)x−−(a5gk4 − a5h2k3 − a4bfk4 + a4bh3k2 + 2a4cfhk3 − 3a4cg2k3 + 3a4cgh2k2 −a4ch4k − 4a4dfgk3 + 3a4dfh2k2 + 3a4dg2hk2 − 4a4dgh3k + a4dh5 +a3b2g2k3 − 2a3b2gh2k2 +6a3bcfgk3 − 6a3bcfh2k2 − 2a3bcg2hk2 +2a3bcgh3k+4a3bdf2k3 − 6a3bdfghk2 + 2a3bdfh3k − 2a3bdg3k2 + 6a3bdg2h2k − 2a3bdgh4 −a3c2f2k3− 6a3c2fghk2+4a3c2fh3k+3a3c2g3k2− 2a3c2g2h2k− 6a3cdf2hk2+6a3cdfg2k2+6a3cdfgh2k− 4a3cdfh4− 4a3cdg3hk+2a3cdg2h3+6a3d2f2gk2−3a3d2f2h2k − 6a3d2fg2hk + 4a3d2fgh3 + a3d2g4k − a3d2g3h2 − 2a2b3fgk3 +2a2b3fh2k2+a2b3g2hk2−3a2b2cf2k3+8a2b2cfghk2−2a2b2cfh3k−a2b2cg3k2−a2b2cg2h2k + 3a2b2df2hk2 + 3a2b2dfg2k2 − 8a2b2dfgh2k + 2a2b2dfh4 −2a2b2dg3hk + a2b2dg2h3 + 9a2bc2f2hk2 − 7a2bc2fg2k2 − 2a2bc2fgh2k +2a2bc2g3hk − 12a2bcdf2gk2 + 4a2bcdfg2hk + 2a2bcdfgh3 + 2a2bcdg4k −2a2bcdg3h2 − 6a2bd2f3k2 + 12a2bd2f2ghk − 3a2bd2f2h3 − 3a2bd2fg2h2 +a2bd2g4h+ 3a2c3f2gk2 − 6a2c3f2h2k + 4a2c3fg2hk − a2c3g4k + 3a2c2df3k2 +
2.2. APLICA�II � EXEMPLE IN SINGULAR 89
6a2c2df2h3−2a2c2dfg3k−4a2c2dfg2h2+a2c2dg4h+6a2cd2f3hk−3a2cd2f2g2k−9a2cd2f2gh2 +6a2cd2fg3h− a2cd2g5 − 4a2d3f3gk+ a2d3f3h2 +3a2d3f2g2h−a2d3fg4 + ab4f2k3 − 2ab4fghk2 − 6ab3cf2hk2 + 2ab3cfg2k2 + 2ab3cfgh2k +2ab3df2h2k + 4ab3dfg2hk − 2ab3dfgh3 + 3ab2c2f2gk2 + 4ab2c2f2h2k −4ab2c2fg2hk + 6ab2cdf3k2 − 4ab2cdf2ghk − 4ab2cdf2h3 − 4ab2cdfg3k +4ab2cdfg2h2 − 6ab2d2f3hk − 3ab2d2f2g2k + 7ab2d2f2gh2 − 2ab2d2fg3h −4abc3f3k2−2abc3f2ghk+2abc3fg3k−6abc2df3hk+8abc2df2g2k+2abc2df2gh2−2abc2dfg3h+6abcd2f3gk+6abcd2f3h2−8abcd2f2g2h+2abcd2fg4+4abd3f4k−6abd3f3gh + 2abd3f2g3 + 4ac4f3hk − 2ac4f2g2k − 2ac3df3gk − 4ac3df3h2 +2ac3df2g2h − 3ac2d2f4k + 6ac2d2f3gh − 2ac2d2f2g3 − 2acd3f4h + ad4f4g +b5f2hk2 − b4cf2gk2 − b4cf2h2k− b4df3k2 − 2b4df2ghk+ b4df2h3 + b3c2f3k2 +2b3c2f2ghk+4b3cdf3hk+2b3cdf2g2k− 2b3cdf2gh2+2b3d2f3gk− 3b3d2f3h2+b3d2f2g2h− 2b2c3f3hk− b2c3f2g2k− 6b2c2df3gk+ 2b2c2df3h2 + b2c2df2g2h−3b2cd2f4k + 2b2cd2f3gh − b2cd2f2g3 + 3b2d3f4h − b2d3f3g2 + 2bc4f3gk +4bc3df4k − 2bc3df3gh − 3bc2d2f4h + 2bc2d2f3g2 − bd4f5 − c5f4k + c4df4h −c3d2f4g + c2d3f5)y7 ++(2a5gk3l − 3a5h2k2l − 2a4bfk3l + 2a4bghk2l + 2a4bh3kl + 6a4cfhk2l −5a4cg2k2l+4a4cgh2kl−a4ch4l−6a4dfgk2l+6a4dfh2kl−2a4dgh3l−2a4efgk3+3a4efh2k2 + 3a4eg2hk2 − 4a4egh3k + a4eh5 − 2a3b2fhk2l + a3b2g2k2l −4a3b2gh2kl+8a3bcfgk2l−10a3bcfh2kl−2a3bcg2hkl+2a3bcgh3l+6a3bdf2k2l−4a3bdfghkl+4a3bdg2h2l+2a3bef2k3−8a3befghk2+2a3befh3k−2a3beg3k2+6a3beg2h2k − 2a3begh4 − 3a3c2f2k2l − 8a3c2fghkl + 4a3c2fh3l + 4a3c2g3kl −2a3c2g2h2l−12a3cdf2hkl+10a3cdfg2kl+2a3cdfgh2l−2a3cdg3hl−6a3cef2hk2+2a3cefg2k2+8a3cefgh2k−4a3cefh4−4a3ceg3hk+2a3ceg2h3+6a3d2f2gkl−3a3d2f2h2l−a3d2g4l+6a3def2gk2−6a3def2h2k−6a3defg2hk+6a3defgh3+2a3deg4k−2a3deg3h2−2a2b3fgk2l+4a2b3fh2kl+2a2b3g2hkl−3a2b2cf2k2l+12a2b2cfghkl − 2a2b2cfh3l − 2a2b2cg3kl − a2b2cg2h2l + 4a2b2df2hkl −2a2b2dfg2kl − 4a2b2dfgh2l − 2a2b2dg3hl + 5a2b2ef2hk2 + 5a2b2efg2k2 −8a2b2efgh2k + 2a2b2efh4 − 2a2b2eg3hk + a2b2eg2h3 + 14a2bc2f2hkl −10a2bc2fg2kl − 2a2bc2fgh2l + 2a2bc2g3hl − 16a2bcdf2gkl + 4a2bcdf2h2l +2a2bcdg4l − 2a2bcef2gk2 − 2a2bcef2h2k + 2a2bcefg2hk + 2a2bcefgh3 +2a2bceg4k−2a2bceg3h2−6a2bd2f3kl+2a2bd2f2ghl+4a2bd2fg3l−6a2bdef3k2+16a2bdef2ghk − 4a2bdef2h3 − 4a2bdefg3k − 4a2bdefg2h2 + 2a2bdeg4h +4a2c3f2gkl− 6a2c3f2h2l+ 4a2c3fg2hl− a2c3g4l+ 6a2c2df3kl+2a2c2df2ghl−2a2c2dfg3l+3a2c2ef3k2−4a2c2ef2ghk+6a2c2ef2h3−4a2c2efg2h2+a2c2eg4h+6a2cd2f3hl − 5a2cd2f2g2l + 12a2cdef3hk − 4a2cdef2g2k − 14a2cdef2gh2 +10a2cdefg3h−2a2cdeg5−2a2d3f3gl−6a2d2ef3gk+3a2d2ef3h2+3a2d2ef2g2h−a2d2efg4 + ab4f2k2l− 4ab4fghkl− 10ab3cf2hkl+ 4ab3cfg2kl+ 2ab3cfgh2l+4ab3df2gkl+4ab3dfg2hl−4ab3ef2gk2+2ab3ef2h2k+4ab3efg2hk−2ab3efgh3+4ab2c2f2gkl + 4ab2c2f2h2l − 4ab2c2fg2hl + 6ab2cdf3kl − 2ab2cdf2ghl −4ab2cdfg3l − 4ab2cef2h3 − 4ab2cefg3k + 4ab2cefg2h2 − 2ab2d2f3hl −
90 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
5ab2d2f2g2l − 10ab2def3hk + 2ab2def2g2k + 10ab2def2gh2 − 4ab2defg3h −6abc3f3kl−2abc3f2ghl+2abc3fg3l−8abc2df3hl+8abc2df2g2l−2abc2ef3hk+4abc2ef2g2k + 2abc2ef2gh2 − 2abc2efg3h + 8abcd2f3gl + 4abcdef3gk +8abcdef3h2−12abcdef2g2h+4abcdefg4+2abd3f4l+6abd2ef4k−8abd2ef3gh+2abd2ef2g3 + 4ac4f3hl − 2ac4f2g2l − 2ac3df3gl − 4ac3ef3h2 + 2ac3ef2g2h −3ac2d2f4l−6ac2def4k+10ac2def3gh−4ac2def2g3−6acd2ef4h+2acd2ef3g2+2ad3ef4g+2b5f2hkl−2b4cf2gkl−b4cf2h2l−2b4df3kl−2b4df2ghl+b4ef3k2−2b4ef2ghk + b4ef2h3 + 2b3c2f3kl + 2b3c2f2ghl + 4b3cdf3hl + 2b3cdf2g2l +2b3cef3hk+2b3cef2g2k−2b3cef2gh2+2b3d2f3gl−4b3def3h2+2b3def2g2h−2b2c3f3hl− b2c3f2g2l− 6b2c2df3gl− 4b2c2ef3gk+ 2b2c2ef3h2 + b2c2ef2g2h−3b2cd2f4l + 2b2cdef3gh − 2b2cdef2g3 + 5b2d2ef4h − b2d2ef3g2 + 2bc4f3gl +4bc3df4l + 2bc3ef4k − 2bc3ef3gh − 4bc2def4h + 4bc2def3g2 − 2bcd2ef4g −2bd3ef5 − c5f4l + c4ef4h− 2c3def4g + 3c2d2ef5)y4 −−(a5gk2l2−2a5h2kl2−a4bfk2l2+2a4bghkl2+a4bh3l2+4a4cfhkl2−2a4cg2kl2+a4cgh2l2 − 2a4dfgkl2 + 2a4dfh2l2 − a4dg2hl2 − 2a4efgk2l + 4a4efh2kl +a4eg2hkl − 2a4egh3l − 2a3b2fhkl2 − 2a3b2gh2l2 + 2a3bcfgkl2 − 4a3bcfh2l2 +2a3bdf2kl2 + a3bdg3l2 + 2a3bef2k2l − 6a3befghkl − a3beg3kl + 4a3beg2h2l −2a3c2f2kl2 − 2a3c2fghl2 + a3c2g3l2 − 4a3cdf2hl2 + 3a3cdfg2l2 − 8a3cef2hkl+3a3cefg2kl+4a3cefgh2l−2a3ceg3hl+a3d2f2gl2+4a3def2gkl−4a3def2h2l+a3defg2hl − a3deg4l + a3e2f2gk2 − 2a3e2f2h2k − a3e2fg2hk + 2a3e2fgh3 +a3e2g4k − a3e2g3h2 + 2a2b3fh2l2 + a2b3g2hl2 + 4a2b2cfghl2 − a2b2cg3l2 +a2b2df2hl2 − 3a2b2dfg2l2 + 5a2b2ef2hkl + 3a2b2efg2kl − 4a2b2efgh2l −2a2b2eg3hl + 5a2bc2f2hl2 − 3a2bc2fg2l2 − 4a2bcdf2gl2 − 2a2bcef2gkl +2a2bcef2h2l−2a2bcefg2hl+2a2bceg4l−a2bd2f3l2−4a2bdef3kl+2a2bdef2ghl+3a2bdefg3l−a2be2f3k2+4a2be2f2ghk−a2be2f2h3−3a2be2fg3k−a2be2fg2h2+a2be2g4h+ a2c3f2gl2 +2a2c2df3l2 +4a2c2ef3kl− 2a2c2ef2ghl+8a2cdef3hl−5a2cdef2g2l + 4a2ce2f3hk − a2ce2f2g2k − 5a2ce2f2gh2 + 4a2ce2fg3h −a2ce2g5 − 2a2d2ef3gl− 2a2de2f3gk+ 2a2de2f3h2 − 2ab4fghl2 − 4ab3cf2hl2 +2ab3cfg2l2+3ab3df2gl2− 3ab3ef2gkl+4ab3efg2hl+ ab2c2f2gl2+ ab2cdf3l2−ab2cef3kl+2ab2cef2ghl−4ab2cefg3l−3ab2def3hl−3ab2def2g2l−3ab2e2f3hk+3ab2e2f2g2k + 3ab2e2f2gh2 − 2ab2e2fg3h − 2abc3f3l2 − 4abc2ef3hl +4abc2ef2g2l+6abcdef3gl+2abce2f3h2−4abce2f2g2h+2abce2fg4+2abd2ef4l+2abde2f4k−2abde2f3gh−4ac2def4l−2ac2e2f4k+4ac2e2f3gh−2ac2e2f2g3−4acde2f4h+2acde2f3g2+ad2e2f4g+ b5f2hl2− b4cf2gl2− b4df3l2+ b4ef3kl−2b4ef2ghl+b3c2f3l2+2b3cef3hl+2b3cef2g2l+b3def3gl−b3e2f3gk−b3e2f3h2+b3e2f2g2h − 4b2c2ef3gl − b2cdef4l + b2ce2f4k − b2ce2f2g3 + 2b2de2f4h +2bc3ef4l−bc2e2f4h+2bc2e2f3g2−2bcde2f4g−bd2e2f5−c3e2f4g+2c2de2f5)y =0.
2.2. APLICA�II � EXEMPLE IN SINGULAR 91
Sistem de ecuaµii, coe�cienµi complec³i algebrici
//// Sistem de ecuaµii cu coeficienµi 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 Z7(i)[X,Y ]):
{x3y + x2y − (i+ 1)x2 + ixy2 + (i− 2)xy − (i+ 1)x− (i− 1)y + (i+ 3) = 0
x3y − (i+ 1)x2 + (3i− 2)xy − (i+ 2) = 0
Sistemul echivalent este:{−y5 − y4 − (i− 2)y3 + (i− 3)y2 − iy + (2i+ 1) = 0
−(2i− 2)x+ (2i+ 2)y4 + 3y3 + (i+ 2)y2 + y − 3i = 0
Sistem de 2 ecuaµii, 2 necunoscute, coe�cienµi complec³i 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 ecuaµii dat este (coe�cienµi din Q(i)):
{x3y + x2y − (i+ 1)x2 + ixy2 + (i− 2)xy − (i+ 1)x− (i− 1)y + (i+ 3) = 0
x3y − (i+ 1)x2 + (3i− 2)xy − (i− 5) = 0
Sistemul echivalent este:
92 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
2y5 − 12y4 − (5i− 31)y3+
(12i− 36)y2 − (19i− 21)y + (24i+ 12) = 0−(44i− 100)x−
−(12i− 16)y4 + (56i− 88)y3 − (146i− 170)y2++(196i− 132)y − (206i− 14) = 0
2.3 Rezolvarea numeric a unui sistem nepolinomial
În aceast secµiune facem o incursiune scurt în afara domeniului variet µiloralgebrice. Tot ce discut m aici are doar o valoare informativ ³i teoria prezen-tat nu va � fundamentat în toate am nuntele sale. Practic accentul cade pecele dou exemple, care ilustreaz su�cient de clar ideea expus .
Pentru sistemele de ecuaµii neliniare nepolinomiale nu exist metode derezolvare globale (cel puµin dup cuno³tinµele autorului prezentei c rµi). Totce 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 aproximaµii pentru soluµii care se a� în "raza de atracµie" a punctului de start al iteraµiei. Repetând construireaacestor ³iruri cu alte ³i alte puncte de start, obµinem � eventual � alte soluµiiale sistemului.
Cum trebuie ales punctul de start al iteraµiei? Câte soluµii are un sistemdat într-un domeniu �nit dat? La aceste întreb ri nu avem r spunsuri generale.
În cele de mai jos vom ar ta prin exemple concrete c teoria bazelor Gröb-ner poate � aplicat ³i în acest context, astfel ca vom putea da r spunsuri re-zonabile ³i la aceste întreb ri. Ideea de baz este simpl : aproxim m sistemulneliniar dat pe un domeniu, cu sisteme de ecuaµii polinomiale pe subdomeniiconvenabil alese. Rezolv m sistemele neliniare polinomiale cu metoda bazeiGröbner , ³i folosim soluµiile g site ca puncte de start pentru metode iterativeclasice pentru a obµine soluµiile numerice cu precizia dorit .
Formal avem deci urm toarea problem . Fie sistemul de ecuaµii neliniar:f1(x1, x2, . . . , xn) = 0
f2(x1, x2, . . . , xn) = 0
. . .
fn(x1, x2, . . . , xn) = 0
unde f1, . . . , fn sunt funcµii de�nite ³i diferenµiabile pe un domeniu dreptunghi-ular D ⊂ Rn.
Problem 2.3.1. Presupunem c sistemul de ecuaµii de mai sus are un num r�nit de soluµii în domeniul D. Presupunem de asemenea c matricea Iacobi
2.3. REZOLVAREA NUMERIC� A UNUI SISTEM NEPOLINOMIAL 93
F = (f1, . . . , fn) este nesingular în aceste puncte de r d cin . S se g seasc toate (!) aceste puncte cu o precizie dat .
2.3.1 Exemplu cu aproximare Bernstein
Metoda de rezolvare numeric propus în [23] are urm torii pa³i:Pasul 1. Se aproximeaz funcµiile fi cu polinoame (Bernstein [37] sau
spline).
Teorem 2.3.2. Fie domeniul D =∏n
k=1[0, 1] ³i �e Bm operatorul Bernsteinde�nit de
(Bmf)(x) =
m∑i1=0
m∑i2=0
· · ·m∑
in=0
f(i1m,i2m, . . . ,
inm) ·
n∏j=1
Cijm · xijj · (1− xj)
m−ij ,
unde x = (x1, x2, . . . , xn) ∈ D ³i f este o funcµie continu pe D.Atunci limm→∞ ||Bmf − f ||∞ = 0.
Aproxim m fi cu Bmfi pentru orice i = 1, . . . , n.Pasul 2. Se aplic algoritmul de calcul al bazei Gröbner sistemului poli-
nomial de ecuaµii Bmfi = 0, i = 1, . . . , n pentru a obµine sistemul echivalent"triunghiular".
Pasul 3. Se aplic o metod numeric standard pentru rezolvarea ecuaµieipolinomiale cu o singur necunoscut . (În exemplele care vor urma am utilizatmetoda Bairstow's ([36]), dar sistemele CAS dispun de metode incorporatepentru rezolvarea numeric a sistemelor algebrice neliniare). Se reµin soluµiilereale din intervalul [0, 1]. Se calculeaz toate soluµiile sistemului triunghiulardin domeniul D.
Pasul 4. Se ra�neaz soluµiile g site în pasul anterior folosindu-se acestevalori ca puncte de start pentru metode numerice iterative standard apli-cate sistemului iniµial. (În exemplele de mai jos am folosit metoda Newton-Kantorovich).
Exemplu 2.3.3. S se g seasc toate soluµiile din [0, 1] × [0, 1] × [0, 1] alesistemului de ecuaµii:
z = cos(x+ y)
z = x2 + y2
z = x+ y − 1
4
94 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
Rezolvare:Pasul 1. m = 2,
28x2y2 + 170x2y − 216x2 + 170xy2 − 864xy
−244x− 1000z − 216y2 − 244y + 1000 = 0
−x2 + z − y2 = 0
−4x+ 4z − 4y + 1 = 0
Pasul 2.
3136y8 + 31808y7 + 178784y6 − 1139456y5 + 2960232y4
+3963400y3 + 15306185y2 − 17019304y + 1317904 = 0
239377264285440264z
+38801387759680y7
+361771065106752y6
+2064375688512992y5
−13760573122605696y4
+64582070537855400y3
−18298549871869160y2
−21651628400988375y
−144393016743385558 = 0
−4x+ 4z − 4y + 1 = 0
Soluµiile sistemului algebric sunt:Pasul 3.
x1 = 0.1, y1 = 0.777, z1 = 0.627
x2 = 0.81, y2 = 0.084, z2 = 0.644
Pasul 4.
x1 = 0.093, y1 = 0.791, z1 = 0.634
x2 = 0.791, y2 = 0.093, z2 = 0.634
2.3. REZOLVAREA NUMERIC� A UNUI SISTEM NEPOLINOMIAL 95
2.3.2 Exemplu cu aproximare spline
Presupunem de la început n = 2. De asemenea presupunem c domeniulD estede forma [a, b]× [c, d]. Alegem nodurile echidistante a = x0 < x1 < . . . xN = b³i c = y0 < y1 < . . . yM = d. Not m Dij = [xi, xi+1]× [yj , yj+1] ³i
h =b− a
N, l =
d− c
M.
Vom considera funcµii spline bicubice, care sunt polinomiale de grad treiîn ambele variabile pe porµiuni, ³i interpoleaz valorile funcµiei diferenµiabilef : D → R în nodurile (xi, yj) ³i a valorilor derivatelor parµiale de ordinul întâiD1,0f ³i D0,1f în acelea³i noduri.
De fapt se determin funcµia spline bicubic S(f) în dou variabile avândurm toarele propriet µi:
(1) pe dreptunghiul Dij avem
S(f)(x, y) = Si,j(f)(x, y) =∑
α,β=0,α+β≤4
Aα,βi,j (x− xi)
α(y − yj)β
(2) în nodurile (xi, yj), i = 0, 1, . . . , N , j = 0, 1, . . . ,M avem
Dr,sS(f)(xi, yj) = Dr,sf(xi, yj) := f(r,s)ij
unde r + s ≤ 1 ³i Dr,s este operatorul de derivare parµial .
S reiter m teorema 2.3 din [29] (se poate consulta ³i [11] sau [34]).
Teorem 2.3.4. Dac A2,2i,j = 0 atunci exist o funcµie spline bicubic S(f)
care satisface condiµiile (1) ³i (2) pe domeniul D.
Mai mult, S(f) poate � construit efectiv. Iat expresia acesteia. Not m:
t =x− xi
h, v =
y − yjl
,
pentru o pereche �xat de indici (i, j) ³i punctul (x, y) ∈ Di,j . Putem exprimafuncµia spline bicubic S(f) pe subdomeniul Di,j în felul urm tor:
96 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
Si,j(f)(x, y) =
(1− v) · (Φ1(t)fi,j +Φ2(t)fi+1,j +Φ3(t)hf(1,0)i,j +Φ4(t)hf
(1,0)i+1,j)
+v · (Φ1(t)fi,j+1 +Φ2(t)fi+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)(fi,j+1 − fi,j − lf(0,1)i,j+1)
+t(fi+1,j+1 − fi+1,j − lf(0,1)i+1,j+1))
+(1− v)((1− t)(−fi,j+1 + fi,j + lf(0,1)i,j )
+t(−fi+1,j+1 + fi+1,j + lf(0,1)i+1,j))),
unde
Φ1(t) = (1− t)2(1 + 2t),
Φ2(t) = t2(3− 2t),
Φ3(t) = t(1− t)2,
Φ4(t) = −t2(1− t).
Fiecare funcµie f1 ³i f2 poate � aproximat deci cu astfel de funcµii spline,a³adar în locul sistemului neliniar nepolinomial
F (x, y) = 0
vom avea un num r de N ·M sisteme polinomiale de forma{S(f1)(x1, x2) = 0
S(f2)(x1, x2) = 0,
unde x = (x1, x2) ∈ Di,j pentru �ecare subdomeniu Dij , i = 0, 1, . . . , N − 1 ³ij = 0, 1, . . . ,M − 1.
Metoda din [22] are urm torii pa³i:Pasul 1. Se aproximeaz funcµiile diferenµiabile fi cu funcµii spline, ca mai
sus.Pasul 2. Se aplic algoritmul bazei Gröbner pentru cele N · M sisteme
polinomiale {Si,j(f1)(x1, x2) = 0
Si,j(f2)(x1, x2) = 0,
de unde pentru �ecare subdomeniuDij , i = 0, 1, . . . , N−1 ³i j = 0, 1, . . . ,M−1se obµine un sistem "triunghiular" echivalent.
2.3. REZOLVAREA NUMERIC� A UNUI SISTEM NEPOLINOMIAL 97
Pasul 3. Se rezolv numeric aceste sisteme cu metode standard. Se reµinsoluµiile reale din subdomenii.
Pasul 4. Soluµiile aproximative de lapasul anterior se consider ca punctede start pentru metode iterative numerice standard de reyolvare a sistemelorneliniare.
S relu m exemplul anterior în acest context.
Exerciµiu 2.3.5. cos(x+ y)− x− y +
1
4= 0
x2 + y2 − x− y +1
4= 0
Soluµie:Pasul 1. Alegem N = 3 ³i M = 3. Formula de aproximare cu funcµii
spline ne d 3 × 3 = 9 sisteme polinomiale. Primul din ele, pentru i = 0 ³ij = 0 sau D0,0 = [0, 0.333]× [0, 0.333] avem
1.564 ∗ 10−1x3y + 2.757 ∗ 10−2x3 + 8.394 ∗ 10−2x2y
−5.046 ∗ 10−1x2 + 1.564 ∗ 10−1xy3 + 8.391 ∗ 10−2xy2
−1.027xy − x+ 2.757 ∗ 10−2y3 − 5.046 ∗ 10−1y2 − y + 1.250 = 0
x2 − x+ y2 − y + 2.500 ∗ 10−1 = 0
Pentru i = 0 ³i j = 1, sau D0,1 = [0, 0.333]× [0.333, 0.666] avem
1.301 ∗ 10−1x3y + 3.643 ∗ 10−2x3 + 2.414 ∗ 10−1x2y
−5.570 ∗ 10−1x2 + 1.300 ∗ 10−1xy3 + 1.114 ∗ 10−1xy2
−1.086xy − 9.824 ∗ 10−1x+ 7.969 ∗ 10−2y3 − 5.563 ∗ 10−1y2
−9.829 ∗ 10−1y + 1.248 = 0
x2 − x+ y2 − y + 2.500 ∗ 10−1 = 0
Pentru i = 0 ³i j = 2, sau D0,2 = [0, 0.333]× [0.666, 1] avem
8.940 ∗ 10−2x3y + 6.349 ∗ 10−2x3 + 3.722 ∗ 10−1x2y
−6.443 ∗ 10−1x2 + 8.934 ∗ 10−2xy3 + 1.934 ∗ 10−1xy2
−1.180xy − 9.439 ∗ 10−1x+ 1.230 ∗ 10−1y3 − 6.422 ∗ 10−1y2
−9.261 ∗ 10−1y + 1.236 = 0
x2 − x+ y2 − y + 2.500 ∗ 10−1 = 0
98 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
Pasul 2. y − 9.239 ∗ 10−2 = 0
x+ 1.716 ∗ 10−2y5 − 1.076 ∗ 10−1y4
+3.785 ∗ 10−1y3 − 1.969 ∗ 10−1y2
+9.593 ∗ 10−1y − 8.771 ∗ 10−1 = 0
y6 − 4.633y5 + 1.185 ∗ 10y4 + 1.495y3
+3.531 ∗ 10y2 − 3.707 ∗ 10y + 3.043 = 0
x+ 2.048 ∗ 10−2y5 − 1.070 ∗ 10−1y4
+4.079 ∗ 10−1y3 − 3.297 ∗ 10−1y2
+1.042y − 8.772 ∗ 10−1 = 0
y6 − 4.244y5 + 1.025 ∗ 10y4
−6.669 ∗ 10−1y3 + 2.922 ∗ 10y2
−2.930 ∗ 10y + 2.291 = 0
x+ 2.416 ∗ 10−2y5 − 1.153 ∗ 10−1y4
+4.322 ∗ 10−1y3 − 3.864 ∗ 10−1y2
+1.062y − 8.678 ∗ 10−1 = 0
Pasul 3.
Pentru primul sistem soluµia este: (0.797, 0.09239) ∈ D0,0.Pentru cel de al doilea obµinem dou soluµii reale (0.786, 0.09) ³i
(0.093, 0.791), care nu aparµin domeniului D0,1.Al treilea sistem are dou soluµii reale: (0.78, 0.085) ∈ D0,2 dar
(0.093, 0.791) ∈ D0,2.Pasul 4.
Metoda Newton cu punctul de start obµinut anterior d : (0.093, 0.791) ∈D0,2. Celelalte ³ase sisteme mai dau înc o soluµie, simetric faµ de ceaobµinut deja.
2.4 Probleme propuse
1. S se rezolve sistemele de ecuaµii cu coe�cienµi în corpul numerelorraµionale, Q.
1-1. {2x− 3y = −1
x− 2y = −1
2.4. PROBLEME PROPUSE 99
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
Indicaµie:
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 coe�cienµi complec³i.
2-1. {2x2 − 3y2 = −1
x− 2y = −1
2-2. {2x− 3y = −1
x2 − 2y2 = −1
100 CAPITOLUL 2. REZOLVAREA SISTEMELOR DE ECUA�II
2-3. {2x2 − 3y2 = −1
x2 − 2y2 = −1
2-4. {2x5 − 3y4 = −1
x3 − 2y2 = −1
2-5. 2x2 − 3y2 + 2z2 = 1
x2 − 2y3 − xz2 = −2
x2y − 2zy2 − yz3 = −2
2-6. {(x+ y − 1)(2x− 3y − 1) = 0
(x+ 5y − 2)(4x+ 2y − 1) = 0
2-7. {(x2 + x− 2)(2x− 3y − 1) = 0
x3 + xy − y − 1 = 0
2-8. {(x2 + x− 2)(2x− 3y − 1) = 0
x3 + xy − y + 1 = 0
2-9. {x7 + xy4 − 3y3 = −1
x3y + xy4 − y7 = 1
Indicaµie:
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
Capitolul 3
Coduri corectoare de erori
N umerele raµionale, numerele reale ³i numerele complexe, îm-preun cu operaµiile de adunare ³i înmulµire între ele, avândpropriet µi algebrice naturale obi³nuite constituie exemple destructuri numite corpuri. Corpul numerelor reale este o ex-
tindere a corpului numerelor raµionale, iar corpul numerelor complexe este oextindere a acestuia din urm . În acest capitol vom vedea mai în detaliu as-pectele speci�ce ale extinderilor corpurilor �nite. Câteva dintre de�niµiile ³irezultatele întâlnite deja sunt reiterate ³i în acest context, pentru a asigura orelativ independenµ a lecturii capitolelor.
Mai înainte îns � a³a cum am mai procedat ³i în alte capitole ale acesteic rµi � s începem cu sfâr³itul. S vedem ³i aici o problem su�cient de concret ³i incitant , pentru a motiva efortul îndreptat pentru înfrângerea di�cult µilorparcurgerii ³i înµelegerii construcµiilor teoretice care vor urma.
S presupunem c dorim s transmitem un mesaj printr-un canal de co-municaµie, care nu poate garanta certitudinea nealter rii mesajului nostru. Caorice sistem technic, el poate altera mesajul, �e ³i într-o m sur mic . Dac lareceptor sose³te mesajul "gre³eal de tipar", mesajul corect poate � reconsti-tuit eventual din context, cu condiµia ca acest context s nu �e o examinare ladistanµ a unor studenµi la materia numit Ortogra�a limbii române. Contex-tul poate s lipseasc îns cu des vâr³ire, spre exemplu în cazul unei secvenµede mesaj codi�cat de genul "AGECGKTSDTMVKUFTEWDXTFSAKL", încare literele semni�c niveluri de gri, ale unei porµiuni de imagine transmis de o sond spaµial înregistrat de pe suprafaµa unei planete.
Pretenµia noastr este cu alte cuvinte de a codi�ca informaµia util astfelîncât, dac în cursul transmiterii se produc unele alter ri, acestea s poat �detectate, ³i � de ce nu � ³i corectate! Este posibil oare a³a ceva? Vom ar tape un exemplu concret, c este posibil!
101
102 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
3.1 Un exemplu concret
S presupunem c dorim s transmitem o informaµie util constând dinpatru cifre binare 0 sau 1 a c ror semni�caµie nu este important pentru
noi, ele putînd reprezenta orice informaµie convenit ca �ind inteligent ³iinteligibil între cei doi parteneri ai transmisiei, respectiv expeditorul/cel caretransmite ³i destinatarul/cel care recepteaz .
Fie acest mesaj spre exemplu
u = ”1011”.
Înainte de a-l transmite s complet m mesajul cu alte trei cifre binare în modulurm tor. S consider m matricea de generare
G =
1 0 0 0 0 1 10 1 0 0 1 0 10 0 1 0 1 1 00 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 regulilearitmeticii (mod 2) � ³i astfel obµinem 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 estecapabil de "minuni": dac oricare din cele 7 cifre este recepµionat eronat,adic se recepteaz 1 în loc de 0 sau 0 în loc de 1 undeva în acest secvenµ ,atunci nu numai c faptul alter rii poate � descoperit, dar mai mult, putemspeci�ca ³i locul exact al alter rii, ³i astfel eroarea poate � corectat !
S simul m o eroare. S presupunem spre exemplu c receptorul a înregis-trat 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 103
Este acest mesaj corect? Dac nu, unde este gre³ala, care este cifra alterat ?Iat cum putem depista cifra alterat . Consider m matricea
H =
0 0 0 1 1 1 10 1 1 0 0 1 11 0 1 0 1 0 1
,
pe care o vom numi matrice de control al parit µii , sau matrice de veri�carea parit µii . Cu ajutorul acesteia vom detecta eroarea, dac ea s-a produs.Privim acum mesajul recepµionat v ca un vector, astfel
vt =
1010010
³i îl înmulµim cu matricea H. S not m rezultatul înmulµirii cu s = H · vt.Acesta este
s =
100
.
Tot ce avem de f cut acum este s citim rezultatul de sus în jos în baza doi, ³iastfel obµinem 100 adic num rul 4. Cifra a patra este eronat !
Cititorul mai puµin credul poate veri�ca faptul c , oricare cifr ar � fostalterat din cele 7 cifre, procedeul funcµioneaz , matricea detectoare e bun înacest scop.
Dup corectarea erorii mesajul corect este
v =(1 0 1 1 0 1 0
).
Acum putem ignora cele 3 cifre adiµionale, ³i obµinem mesajul original nealteratnotat cu u.
S observ m, c procedeul nostru poate detecta ³i corecta cel mult o eroarede o cifr binar .
Se nasc în mod natural urm toarele întreb ri incitante: cum pot � constru-ite astfel de matrici-minune G ³i H? Sau ³i mai fundamental: pe ce fundamentteoretic pot � inventate astfel de mecanisme de detectare ³i corectare a eror-ilor? Dezideratul este evident de a obµine o capacitate de detectare ³i corectarecât mai mare cu un num r de cifre adiµionale cât mai mic posibil.
104 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Toate acestea pot � fundamentate ³i realizate cu ajutorul extensiei concep-tului de num r. O nou mulµime de numere utilizabil minunat în acest scopse nume³te... corp �nit! În secµiunea 3.2 de pe pagina 108 începem studiulsistematic al acestora.
Exerciµii 3.1.1.
1. Scrieµi un program în GAP pentru efectuarea tuturor calculelor de maisus.
2. Testaµi ³i alte mesaje utile, respectiv simulaµi erori în diverse poziµii,efectuînd toate calculele cu ajutorului acestui program.
3. Daµi un r spuns argumentat la întrebarea: Dac în mesajul recepµionatnu se detecteaz eroare, putem � siguri c nu s-a produs nici o eroare încursul transmisiei?
Problem 3.1.2. Încercaµi s daµi o explicaµie, de ce funcµioneaz corect acestmecanism de detectare ³i corectare a erorilor de cel mult o cifr binar (f r s citiµi mai întâi indicaµia de mai jos)!
Indicaµie Observaµi faptul c matricea H are drept coloane numerele de la 1la 7 reprezentate în baza 2. C utaµi o analogie între modul de determinare acifrei binare eronate ³i o soluµie posibil dat problemei de mai jos.
Problem 3.1.3. Între 8 monezi � care în aparenµ par identice � exist b nuiala, c una este fals , ea, dac exist , are o greutate puµin mai mare decâto moned veritabil . S presupunem c dispunem de un cântar cu braµe egalecu care putem efectua doar m sur tori de comparaµie a greut µilor. Întrebareaeste: sunt oare su�ciente 3 cânt riri potrivite pentru a detecta existenµa uneimonezi false, ³i a chiar a identi�c rii ei, în caz c exist ?
O soluµie posibil este urm toarea: numerot m monezile cu numerele dela 0 la 7, apoi efectu m 3 cânt riri, comparând gruprurile de monezi 0,1,2,3 ³i4,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. Cântarul r mâne înechilibru dac nu avem moned fals . Îns în cazul unei monezi false, braµulcare coboar al cântarului indic pe rând cifrele binare ale num rului de ordineal monezii false: înclinare la stânga î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,70→ 000 4→ 100 0→ 000 2→ 010 0→ 000 1→ 0011→ 001 5→ 101 1→ 001 3→ 011 2→ 010 3→ 0112→ 010 6→ 110 4→ 100 6→ 110 4→ 100 5→ 1013→ 011 7→ 111 5→ 101 7→ 111 6→ 110 7→ 111
3.1. UN EXEMPLU CONCRET 105
3.1.1 O prim utilizare a programului GAP în coduri
�tim deja c mediul de programare GAP este interpretor, adic a³teapt comenzi pe un prompter, pe care le execut imediat. Un set de instrucµi-uni succesive poate � salvat într-un �³ier, ³i executat la o singur comand ,prin înc rcarea �³ierului.
S facem o introducere brusc în programarea elementar a pachetuluiGAP, prin intermediul prezent rii unui exemplu de program surs comentat,scris în acest mediu. Programul de mai jos scris în limbajul de programareoferit de GAP este cu siguranµ u³or de descifrat. Numele �³ierului este progr.g³i va � înc rcat ³i executat la comanda Read("progr.g"); tastat pe prompterul
gap>
dup ce acest �³ier a fost copiat în catalogul \bin existent în catalogul-r d cin în care a fost instalat programul GAP.
###################################################################### progr.g## program în GAP## Un prim exemplu de utilizare a programului GAP în coduri####################################################################
#################################################################### Funcµie de conversie a num rului de ordine## input: s - o matrice 3x1, cu elemente din Z(2)## output: convs - un num r între 0..7####convs:=function(s)local k,i;k:=0;for i in [1..3] do
if s[i][1]=1*Z(2) thenk:=k*2+1;
elsek:=k*2+0;
fi;od;return k;end;;
106 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
###################################################################### Programul principal:#### Semnificaµia 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 recepµionat## (eventual) eronat, (matrice-linie, tip 1x7)## s - vector, locul erorii, (matrice coloan , tip 3x1)####################################################################
## Definiµia 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 parit µii (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 utilu:=[[1, 0, 1, 1]]*One(F);
## Mesajul transmisv:=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 107
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 eroriv[1][4]:=1 - v[1][4];Print("\n simularea erorii ³i \n v - mesajul recepµionat \n\n");Display(v);
## Descoperirea eroriis:=H*TransposedMat(v);Print("\n s - descoperirea erorii \n\n");Display(s);
## Corectarea erorii## cifra binar eronat are num rul de ordine kk:=conv(s);Print("\n ...cifra recepµionat eronat este, \n\n");Display(k);
Print("\n ...corectarea erorii, \n\n");if k > 0 thenv[1][k]:=1-v[1][k];
elsePrint("\n Mesajul probabil nu conµine erori \n\n");
fi;Display(v);
## Reconstituire mesajului original, primele 4 cifreu:=v{[1]}{[1,2,3,4]};Print("\n ...³i în sfâr³it mesajul original este \n\n");Display(u);##################################################################
108 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 num r prim sunt de fapt corpuri �nite cu p
elemente. Acesta se datoreaz faptului c clasele de resturi nenule în acest cazsunt inversabile. Într-adev r, dac a este nenul ³i a < p, atunci a este relativprim cu p, deci cel mai mare divizor comun al lor este (a, p) = 1. Algorit-mul extins al lui Euclid asigur existenµa a dou numere întregi b, c, astfel caab+ pc = 1. Trecînd la clase de resturi, rezult ab = 1 mod (p), adic a esteinversabil.
Concluzia este c "numerele" dintr-o clas de resturi de modul prim suntla fel de potrivite ca numerele raµionale, reale sau complexe în orice context încare avem de efectuat numai cele patru operaµii de baz : adunarea, sc derea,înmulµirea ³i împ rµirea. (Atenµie, analogia funcµioneaz strict pân la cele pa-tru operaµii amintite, ne lipse³te spre exemplu ordonarea numerelor, obi³nuit ³i speci�c spre exemplu la numerele raµionale!)
Este oare lista Zp unde p este un num r prim, lista complet a corpurilor�nite? R spunsul la aceast întrebare este NU: exist ³i corpuri cu alt num rde elemente, spre exemplu 4, 9, 8, 16 etc. (dar nu ³i cu 6 elemente!).
În subsecµiunea care urmeaz începem aceste investigaµii, tot în spiritul "cudi�cultatea faµ -în-faµ ", adic s vedem mai întâi fenomenul care st la bazaconstrucµiei corpurilor �nite.
3.2.1 O problem de concurs în informatic
La un concurs înformatic autorul acestei c rµi a propus urm toarea problem .
Problem 3.2.1. Se d mulµimea formal in�nit
F = {0, 1, a, a2, a3, a4, ...},
unde simbolul a nu este nici 0 nici 1. Presupunem c operaµiile de adunare (+)³i de înmulµire (·) cu propriet µile lor obi³nuite pot � efectuate între elementeleacestei mulµimi F , spre exemplu a · a = a2, 1 · a = a, 0 + a = a, 0 · a = 0,a · (1 + a2) = a + a3 etc. În acest mod se genereaz expresii algebrice, careconµin simbolul a.
Presupunem c mai avem ³i dou reguli speci�ce de calcul:
1 + 1 = 0
³i
a6 = a+ 1,
3.2. CORPURI FINITE 109
care afecteaz � ³i probabil simpli�c � aceste expresii algebrice.Se cere scrierea unui program � în orice limbaj care v st la dispoziµie � cares calculeze:
• cea mai mic valoare pozitiv a lui n pentru care an = 1, conform acestorreguli de calcul (a0 = 1 prin convenµie), ³i
• a22 + a43, ca un element al mulµimii iniµiale F , ³i
• r dacinile din F ale ecuaµiei x2 + a · x+ a2 = 0.
Înainte de a începe discuµia soluµiei acestei probleme, se impun câteva ob-servaµii preliminare.
Observaµii 3.2.2.
• Numerele 0 ³i 1 genereaz prin adunare ³i sc dere toate numerele întregi(³i numai acestea). Spre exemplu 1+1 = 2, 1+1+1 = 3, etc., respectiv0− 1 = −1, −1− 1 = −2, etc.
• În prima instanµ operaµiile de adunare ³i înmulµire aplicate elementelormulµimii F conduc la expresii polinomiale de tipul
c0 + c1 · a+ c2 · a2 + . . .+ ak · ak, (3.1)
unde ci sunt numere întregi.
• Dac µinem cont de ipoteza special legat de adunarea lui 1, atuncicercul gener rii numerelor se închide la 0 ³i 1. Acestea sunt singurelenumere întregi posibile. Practic numerele vor � elemente ale clasei deresturi modulo 2, dac µinem cont ³i de structura dat de adunarea ³iînmulµirea acestora.
• Apriori, nu este evident câtu³i de puµin, dac operaµia de adunare înmulµimea F este sau nu operaµie intern a mulµimii F . Ea este intern în mulµimea generat de F cu operaµiile de adunare µi înmulµire, adic mulµimea expresiilor 3.1 (polinoamelor cu nedeterminata a, ³i coe�cienµinumere întregi sau clase de resturi modulo 2).
• Puterile lui a se pot transforma în polinoame ale nedeterminatei a. Spreexemplu a6 = a + 1, a7 = a6 · a = (a + 1) · a = a2 + a, a8 = a3 + a2,a9 = a4 + a3, a10 = a5 + a4, etc.
• Dac facem transform rile pân la cap t, gradele acestor polinoame nudep ³esc 5. Spre exemplu a11 = a6 + a5 = a+ 1 + a5 = a5 + a+ 1, etc.
110 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Consecinµ 3.2.3.
• Setul de coe�cienµi numerici posibili este �nit, {0, 1}, iar setulmonoamelor este de asemenea �nit, {1, a, a2, a3, a4, a5}, prin urmare setulpolinoamelor generat de F este �nit.
• În particular, mulµimea F este �nit .
Se pun acum în mod natural urm toarele întreb ri.
Probleme 3.2.4.
• Este mulµimea polinoamelor generate de mulµimea F mulµimea tuturorpolinoamelor (nenule) cu coe�cienµi din Z2 de grad cel mult 5?
• Este mulµimea F � cu elementele rescrise ca polinoame de grad cel mult5 � submulµime proprie a mulµimii tuturor polinoamelor de grad cel mult5?
S observ m c , dac r spunsul la prima întrebare este DA, iar la a douaeste NU, atunci ambele operaµii � adunarea ³i înmulµirea � în mulµimea Fdevin operaµii interne.
S trecem la rezolvarea problemei 3.2.1 de pe pagina 108. Calcul m puterilesuccesive ale lui a folosind ³i regulile speciale de calcul. Obµinem urm torultabel, care con�rm observaµiile de mai sus.
an exprimarea polinomial vectorul coe�cienµilora0 1 (1, 0, 0, 0, 0, 0)a1 a (0, 1, 0, 0, 0, 0)a2 a2 (0, 0, 1, 0, 0, 0). . . . . . . . .a6 a+ 1 (1, 1, 0, 0, 0, 0)a7 a2 + a (0, 1, 1, 0, 0, 0). . . . . . . . .a22 a5 + a4 + a2 + 1 (1, 0, 1, 0, 1, 1). . . . . . . . .a43 a5 + a4 + a2 + a+ 1 (1, 1, 1, 0, 1, 1). . . . . . . . .a61 a5 + a4 + 1 (1, 0, 0, 0, 1, 1)a62 a5 + 1 (1, 0, 0, 0, 0, 1)
a63 1 (1, 0, 0, 0, 0, 0)
3.2. CORPURI FINITE 111
Tabelul este �nit, i.e. puterile lui a se repet periodic!Ce se mai poate a�a din acest tabel? Iat câteva fapte care se pot citi
direct din acest tabel (din tabelul complet, evident).
• Prima coloan poate � utilizat pentru a efectua u³or înmulµirile. În-mulµirile se reduc evident la adunarea ( mod 63) a exponenµilor.
• Coloana a treia poate � utilizat pentru a efectua u³or adun rile. Acestease reduc de fapt la adunarea ( mod 2) a vectorilor.
• Propriet µi structurale pot � citite de asemenea din acest tabel: toatepolinoamele (nenule) cu coe�cienµi în Z2 de grad mai mic decât 6 aparîn acest tabel!
� Prin urmare r spunsul la întrebarea 3.2.4 de pe pagina 110 este DA:toate cele 63 de polinoame nenule de grad mai mic decât 6 apar caputeri ale lui a!
� iar r spunsul la întrebarea 3.2.4 de pe pagina 110 este NU: mulµimeaF coincide ³i ea cu toate aceste polinoame!
• Cel mai important îns este urm torul fapt, citit tot din tabel: Fiecareelement al mulµimii F are un invers (multiplicativ)! Într-adev r a−1 =a62, etc. (deoarece ak · a63−k = a63 = 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"; // fi³ier 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 -} // outfileclose(l); // închide fi³ierul outfile
Iat ³i rezultatul rul rii programului scris în Singular, a�at în �³ierul numit"out�le". Acesta se poate deschide cu orice editor de texte.
112 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
a^0 = 1a^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"); // define³te fi³ier "logfile"a:=Indeterminate(GF(2),"a");; // variabila "a", peste Z_2f:=a^6+a+1;; // define³te poinomul ffor i in [0..63] do // ciclu, exponentul lui "a"
elem:=a^i mod f; // calculeaz a^i mod fDisplay(elem); // afi³eaz
od; // (scrie ³i în fi³ier)OutputLogTo(); // închide fi³ierul "logfile"
3.2. CORPURI FINITE 113
Rezultatul rul rii variantei programului de listare în mediul de progra-mare GAP, a�at în �sierul numit "log�le" este reprodus mai jos. (Constanta"Z(2)^0" din acest �³ier, preferat de GAP, trebuie înlocuit cu varianta maipuµin exact dar mult mai prietenoas "1".)
Z(2)^0 = Z(2)^0a = aa^2 = a^2a^3 = a^3a^4 = a^4a^5 = a^5a^6 = a+Z(2)^0a^7 = a^2+aa^8 = a^3+a^2a^9 = a^4+a^3a^10 = a^5+a^4a^11 = a^5+a+Z(2)^0a^12 = a^2+Z(2)^0a^13 = a^3+aa^14 = a^4+a^2a^15 = a^5+a^3a^16 = a^4+a+Z(2)^0a^17 = a^5+a^2+aa^18 = a^3+a^2+a+Z(2)^0a^19 = a^4+a^3+a^2+aa^20 = a^5+a^4+a^3+a^2a^21 = a^5+a^4+a^3+a+Z(2)^0a^22 = a^5+a^4+a^2+Z(2)^0a^23 = a^5+a^3+Z(2)^0a^24 = a^4+Z(2)^0a^25 = a^5+aa^26 = a^2+a+Z(2)^0a^27 = a^3+a^2+aa^28 = a^4+a^3+a^2a^29 = a^5+a^4+a^3a^30 = a^5+a^4+a+Z(2)^0a^31 = a^5+a^2+Z(2)^0
a^32 = a^3+Z(2)^0a^33 = a^4+aa^34 = a^5+a^2a^35 = a^3+a+Z(2)^0a^36 = a^4+a^2+aa^37 = a^5+a^3+a^2a^38 = a^4+a^3+a+Z(2)^0a^39 = a^5+a^4+a^2+aa^40 = a^5+a^3+a^2+a+Z(2)^0a^41 = a^4+a^3+a^2+Z(2)^0a^42 = a^5+a^4+a^3+aa^43 = a^5+a^4+a^2+a+Z(2)^0a^44 = a^5+a^3+a^2+Z(2)^0a^45 = a^4+a^3+Z(2)^0a^46 = a^5+a^4+aa^47 = a^5+a^2+a+Z(2)^0a^48 = a^3+a^2+Z(2)^0a^49 = a^4+a^3+aa^50 = a^5+a^4+a^2a^51 = a^5+a^3+a+Z(2)^0a^52 = a^4+a^2+Z(2)^0a^53 = a^5+a^3+aa^54 = a^4+a^2+a+Z(2)^0a^55 = a^5+a^3+a^2+aa^56 = a^4+a^3+a^2+a+Z(2)^0a^57 = a^5+a^4+a^3+a^2+aa^58 = a^5+a^4+a^3+a^2+a+Z(2)^0a^59 = a^5+a^4+a^3+a^2+Z(2)^0a^60 = a^5+a^4+a^3+Z(2)^0a^61 = a^5+a^4+Z(2)^0a^62 = a^5+Z(2)^0a^63 = Z(2)^0
114 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Soluµia problemei 3.2.1 de pe pagina 108.
• Cea mai mic valoare pozitiv pentru n pentru care an = 1 este (conformlistelor de mai sus)
63.
• În mulµimea F avem (conform listelor, veri�caµi)
a22 + a43 = a.
• Dac observ m c 22 + 43 = 65 = 63 + 2, atunci putem scrie a22 ·a43 = a2. Aceasta ne aminte³te de relaµiile lui Viete, privind r d cinile³i coe�cienµii unei ecuaµii algebrice. Calculul
(x− a22) · (x− a43) = x2 − (a22 + a43) · x+ a22 · a43
= x2 − a · x+ a2
= x2 + a · x+ a2,
arat c a22 ³i a43 sunt r d cini ale ecuaµiei date. Faptul c nu mai exist ³i alte soluµii rezult prin testarea tuturor celorlalte elemente ale lui F ,sau... din propoziµia de mai jos!
Propriet µile mulµimii F , constatate mai sus, pot � formulate condensat într-opropoziµie.
Propoziµie 3.2.5. Mulµimea F cu operaµiile de adunare ³i înmulµire de�niteca mai sus formeaz o structur de corp (�nit).
Deoarece într-un corp orice element nenul este inversabil, nu exist divizoriai lui 0 (de ce?), deci din egalitatea x2+a ·x+a2 = (x−a22) · (x−a43) = 0 varezulta ori x = a22 ori x = a43. Reamintim, c se nume³te divizor al lui 0 unelement nenul pentru care exist un alt element nenul astfel ca produsul celordou este nul.
Ca fapt divers, includem aici ³i comanda Singular (continuare a comenzilorde listare) pentru descompunerea polinomului/rezolvarea ecuaµiei x2 + a · x+a2 = 0, precum ³i rezultatul întors de aceast comand . Se recunosc � conformlistei puterilor lui a � cele dou r d cini a43 respectiv a22!
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 115
Întrebarea natural care se pune acum este: de ce relaµia special a6 = a+1presupus pentru simbolul a a avut pân la urm drept consecinµ proprietateastructural puternic a lui F?
R spunsul în sine este simplu:
Fapt 3.2.6. În inelul de polinoame Z2[a] polinomul a6−a− 1 este ireductibil !
Se pune acum urm toarea întrebare de fond. Cum pot � construite astfelde mulµimi F , care s funcµioneze ca ³i corpuri de numere �nite? R spunsul laaceast întrebare cere dezvoltarea ideilor matematice care se ascunde în spateleacestui mecanism... teoria corpurilor �nite ³i a polinoamelor cu coe�cienµi înaceste corpuri.
3.2.2 Construirea corpurilor �nite
Fie p un num r prim. Clasele de resturi modulo p, notat Zp formeaz cuadunarea ³i înmulµirea natural (de�nite prin intermediul reprezentanµi arbi-trar ale³i) un corp. Datorit faptului c p este num r prim, �ecare elementnenul din Zp are un invers. Avem deci exemple de corpuri cu un num r �nitde elemente, mai exact pentru �ecare num r prim p avem un corp �nit cu pelemente notat ³i Fp sau GF(p) (Galois Field, în onoarea lui Everist Galois).
Pe de alt parte propoziµia 1.1.32 de pe pagina 32 este o modalitate degenerare de corpuri: inelul factor al unui inel (comutativ, unitar, f r divizoriai lui zero) cu un ideal maximal al s u este corp.
S consider m deci un corp k. Inelul k[x] al polinoamelor de o nedetermi-nat x, cu coe�cienµi î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] esteeuclidian (funcµioneaz teorema/algoritmul împ rµirii cu rest al polinoamelor,cu restul de grad minim unic!), deci este ³i principal. A³adar orice ideal în k[x]este ideal principal (vezi propoziµia 1.1.19 de pe pagina 26), deci este generatde un polinom.
S alegem un polinom ireductibil f (nenul). Fie idealul I = (f) formatdin toate polinoamele divizibile cu f . A�rm m, c idealul I este maximal!Într-adev r, Fie J , un ideal mai mare, I ⊂ J . El trebuie s �e deasemeneaideal principal, deci J = (g). Rezult c f ∈ J deci f = gh. Acum deoarecef este ireductibil g nu poate � un divizor propriu al lui f , deci ori g = 1 (sauorice constant nenul ) ori g = f (sau g = cf , unde c este o constant nenul din k). A³adar, ori J = (1) = k[x] ori J = (f) = I, deci I = (f) este maximal.
Am demonstrat a³adar c inelul factor K = k[x]/(f), unde f este unpolinom ireductibil, este un corp! Fie acum k unul din corpurile �nite k = Fp,unde p este un num r prim, ³i �e f un polinom ireductibil de grad n ≥ 2 cucoe�cienµi din k (presupunem c exist un asemenea polinom). Inelul factor
116 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
�ind format de clasele de resturi, elementele acestuia sunt reprezentate deresturile posibile ale împ rµirilor cu polinomul f , adic sunt toate polinoamelede grad cel mult n − 1. Num rul acestora este exact pn (un polinom de gradcel mult n− 1 are exact n coe�cienµi, ale³i independent unii de alµii din cele pelemente ale lui Fp). În concluzie, corpul K = Fp[x]/(f) are pn elemente, decieste un corp �nit! Dac not m clasa de echivalenµ a lui x cu a se vede c Keste un k spaµiu vectorial în care {1, a, a2, . . . , an−1} este o baz .
Avem ³i f(a) = 0, deci polinomul f are o r d cin în K. Se vede c k esteun subcorp al lui K. Spunem c K este o extensie a lui k.
Fie b ∈ K arbitrar. Elementele 1, b, b2, . . . , bn nu pot � liniar independente,deci exist c0, c1, . . . , cn ∈ k nu toate nule astfel ca c0+c1b+c2b
2+. . .+cnbn = 0,
altfel spus polinomul g = c0 + c1x+ c2x2 + . . .+ cnx
n are în K r d cina b. Unasemenea polinom se nume³te polinom anulator pentru b. Mulµimea acestoraeste un ideal în inelul k[x], care este inel Euclidian, deci principal, de underezult c acest ideal este generat de un polinom gb.
Polinomul minimal al lui a în k[x] este chiar f ! Într-adev r, f este anulatorpentru a, deci divizibil cu fa ∈ k[x], dar f este ireductibil deci fa = f .
Consideraµiile de mai sus constituie demonstraµia urm toarei propoziµii.
Propoziµie 3.2.7. Fie f un polinom ireductibil de grad n ≥ 2 în inelul Zp[x],unde p este un num r prim. Atunci inelul factor Zp[x]/(f) este un corp �nit,cu pn elemente.
Se pune imediat urm toarea întrebare: cât de general este aceast con-strucµie? R spunsul este fascinant. Toate corpurile �nite se pot construi înmodul ar tat mai sus! Di�cultatea a³adar se mut la problema factoriz rii ³i lastabilirea "primalit µii", polinoamelor cu coe�cienµi în Fp respectiv a gener riide polinoame ireductibile de grad dat n!
Pentru ca raµionamentul de mai sus s nu �e gol de conµinut � în lipsapolinoamelor ireductibile � vom da câteva exemple concrete.
Corpul GF(22)
Corpul coe�cienµilor este F2. Avem nevoie de un polinom ireductibil de gradul2. Polinoame de grad 2 sunt patru: x2 = x·x, x2+1 = (x+1)2, x2+x = x·(x+1)³i x2+x+1 = x·(x+1)+1. Acesta din urm este ireductibil! Într-adev r, dac ar � reductibil, ar avea doi factori de gradul unu, deci ar avea dou r d ciniîn F2 = {0, 1}. Îns , nici 0, nici 1 nu este r d cin pentru acest polinom(substituµia acestora ne convinge imediat), a³adar polinomul este ireductibil.
S not m clasa de echivalenµ a lui x în inelul factor F2[x]/(x2 + x+1) cu
α. A³adar α2 + α+ 1 = 0 sau α2 = α+ 1 sau α · (α+ 1) = 1 etc.
3.2. CORPURI FINITE 117
Corpul de 22 = 4 elemente astfel generat se noteaz GF(22) ³i el areurm toarele elemente: {0, 1, α, α + 1}, corespunz toare tuturor resturilor degrad cel mult 1.
S mai consemn m, c α3 = α2 · α = (α + 1) · α = α2 + α = 1, ceea ceera de a³teptat, deoarece în grupul multiplicativ al unui corp �nit � conformteoremei lui Lagrange � ordinul oric rui element este un divizor al ordinuluigrupului, în cazul nostru acesta �ind 4− 1 = 3. Avem tabela
1 = 1a = aa^2 = a+1----------------a^3 = 1
Aceast tabel ne poate servi la efectuarea operaµiilor: prima coloan estepropice pentru a face înmulµirile (adunarea modulo 3 a exponenµilor), iar ceade a doua pentru a face adun rile (adunarea modulo 2 a coe�cienµilor poli-noamelor în α).
Corpul GF(23)
Corpul coe�cienµilor este tot F2. Avem nevoie acum de un polinom ireductibilde gradul 3. Polinoame de grad 3 sunt opt: x3 + x2, x3 + x2 + 1, x3 + x2 + x,x3 + x2 + x+ 1, x3 + x, x3 + x+ 1, x3 + 1 ³i x3.
Dac un polinom de gradul 3 este reductibil, atunci are un factor de gradulunu, deci are o r d cin . Prin testarea direct a celor opt polinoame existentedepist m dou dintre ele care nu au r d cini în F2: x3 + x + 1 respectivx3 + x2 + 1.
Not m clasa de echivalenµ a lui x în inelul factor F2[x]/(x3 + x+1) cu α.
A³adar α3 + α+ 1 = 0 sau α3 = α+ 1 sau α · (α2 + 1) = 1 etc.
Corpul de 23 = 8 elemente astfel generat se noteaz GF(23). El are urm -toarele elemente: {0, 1, α, α+ 1, α2, α2 + 1, α2 + α, α2 + α+ 1}, corespunz tortuturor resturilor de grad cel mult 2 posibili.
S mai consemn m, c ar � de a³teptat α7 = 1, deoarece în grupul mul-tiplicativ al corpului �nit � conform teoremei lui Lagrange � ordinul oric ruielement este un divizor al ordinului grupului, în cazul nostru 8−1 = 7. Putemefectua calculul lui α7 manual, dar mai elegant este s apel m la un mediu deprogramare adecvat � GAP.
118 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
1 = 1a = aa^2 = a^2a^3 = a+1a^4 = a^2+aa^5 = a^2+a+1a^6 = a^2+1--------------------a^7 = 1
Am substituit elementul unitate "Z(2)^0" cu mai laconicul 1. Tabela estede fapt tabela condensat a operaµiilor: prima coloan ne serve³te pentruînmulµiri (adunarea modulo 7 a exponenµilor), iar cea de a doua pentru adun ri(adunarea modulo 2 a coe�cienµilor polinoamelor în α).
Ce s-ar � întâmplat dac am � ales cel lalt polinom ireductibil, x3+x2+1?S observ m c cele dou polinoame sunt reciproce � inversele r d cinilor unuiasunt r d cini ale celuilalt. A³adar β = 1/α = 1 + α2 = α6 este o r d cin aacestui polinom.S not m f = x3 + x+ 1 ∈ Z2[x] ³i g = x3 + x2 + 1 ∈ Z2[x]. Fie α o r d cin a polinomului f , deci α3 + α+ 1 = 0 respectiv �e β o r d cin a polinomuluig, deci β3 + β2 + 1 = 0. Fie F = Z2[x]/(f) = Z2[α] ³i G = Z2[x]/(g) = Z2[β].S construim un izomor�sm explicit între F ³i G.
�tim deja c F = {0, 1, α, α2, . . . , α6} ³i s observ m mai întâi c avem³i G = {0, 1, β, β2, . . . , β6}, respectiv la fel ca pentru α avem ³i β7 = 1. Overi�care 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 inspiraµie pentru aceste descompuneri r mîne pentru momentnedezv luit , va � divulgat mai târziu (în subsecµiunea 3.2.6, de pe pagina127). În corpul G avem descompunerea:
g = (x− β) · (x− β2) · (x− β4)
f = (x− β3) · (x− β6) · (x− β5).
Un izomor�sm de corpuri las polinoamele cu coe�cienµii în Z2 invariante,deci duce o r d cin a unui polinom tot într-o r d cin a aceluia³i polinom. Pede alt parte r d cinile unui polinom ireductibil "nu se disting" între ele, deci or d cin a lui f (ca polinom cu r d cini din F ) poate � pus în corespondenµ cu oricare dintre r d cinile lui f (ca polinom cu r d cini din G). A³adarcorespondenµa
3.2. CORPURI FINITE 119
α −→ β3
(ca ³i celelalte dou posibilit µi cu β5 ³i β6) are ³ansa de a genereaz unizomor�sm φ : F −→ G, prin relaµia
φ(αk) = β3k mod 7, k = 1 . . . 6,
� relaµie obligatorie pentru a transforma corect înmulµirea din F . Evidentφ(0) = 0, prin de�niµie. S menµion m aici c toate r d cinile lui f dinF sunt generatoarele grupului multiplicativ al acestuia, precum ³i r d cinileacestuia din G sunt generatoare pentru grupul multiplicativ al acestuia dinurm . Interesant este îns c φ se comport corect ³i faµ de adunare, adic φ(αk + αl) = φ(αk) + φ(αl), pentru orice k, l! L s m pentru moment demon-straµia general a acestui fapt, în acest caz particular cititorul poate face ver-i�carea manual sau asistat de calculator. Reproducem aici numai tabele cuajutorul c rora aceste veri�c ri sunt u³oare.
a^0 = 1a^1 = aa^2 = a^2a^3 = a+1a^4 = a^2+aa^5 = a^2+a+1a^6 = a^2+1----------------a^7 = 1
b^0 = 1b^1 = bb^2 = b^2b^3 = b^2+1b^4 = b^2+b+1b^5 = b+1b^6 = b^2+b----------------b^7 = 1
Corpul GF(24)
Consider m polinoamele cu coe�cienµi din F2. Ne trebuie un polinom ire-ductibil de gradul 4. Polinoame de grad 4 sunt 16, invit m cititorul s leenumere.
Dac un polinom de gradul 4 este reductibil, atunci are un factor de gradulunu (deci are o r d cin în F2), sau un factor de gradul doi. Prin testareadirect a divizibilit µii celor 16 polinoame cu polinoamele de grad unu ³i doi,descoperim polinoamele ireductibile de grad patru: x4 + x + 1, x4 + x3 + 1respectiv x4 + x3 + x2 + x+ 1.
S not m clasa de echivalenµ a lui x în inelul factor F2[x]/(x4 + x+1) cu
α. A³adar α4 + α+ 1 = 0 sau α4 = α+ 1 sau α · (α3 + 1) = 1 etc.Inelul factor Z2[α] este un corp de 24 = 16 elemente, se noteaz GF(24) ³i
are urm toarele elemente: GF(24) = {c0+c1α+c2α2+c3α
3 | c0, . . . , c3 ∈ Z2},adic toate resturilor de grad cel mult 3 posibili.
120 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
1 = 1a = aa^2 = a^2a^3 = a^3a^4 = a+1a^5 = a^2+aa^6 = a^3+a^2a^7 = a^3+a+1a^8 = a^2+1a^9 = a^3+aa^10 = a^2+a+1a^11 = a^3+a^2+aa^12 = a^3+a^2+a+1a^13 = a^3+a^2+1a^14 = a^3+1--------------------a^15 = 1
Tabelul de mai sus conµine lista puterilor lui α. Am substituit elementul uni-tate "Z(2)^0" ³i aici cu 1. Lista arat c ordinul elementului α în grupulmultiplicativ al elementelor nenule, (grup ciclic de ordin 24 − 1 = 15) este 15,deci este un generator al grupului.
Dac am � ales polinomul x4 + x3 + 1 pentru generarea corpului de 16elemente, situaµia era similar . Dac îns alegem polinomul ireductibil x4 +x3+x2+x+1, clasa de echivalenµ a lui x notat α nu va mai � un generatoral grupului multiplicativ!
1 = 1a = aa^2 = a^2a^3 = a^3a^4 = a^3+a^2+a+1--------------------a^5 = 1
În schimb tabelul de mai jos arat c α + 1 este un generator al grupuluimultiplicativ al corpului. Acest element este o r d cin a polinomului x4 +x3 + 1, ceea ce se veri�c simplu prin calcul direct.
3.2. CORPURI FINITE 121
(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(26)
Acest corp este chiar corpul prezentat în secµiunea 3.2.1 de pe pagina 108! Totce avem de f cut este s veri�c m faptul c polinomul x6 + x+ 1 ∈ Z2[x] esteireductibil. Gradul polinomului �ind mic, testarea tuturor polinoamelor degrad cel mult trei ne convinge de ireductibilitate. În plus, clase de echivalenµ a necunoscutei este un generator al grupului multiplicativ al corpului.
Corpul GF(32)
Corpul de coe�cienµi este F3 = {−1, 0, 1} (1 + 1 = −1). Avem nevoie de unpolinom ireductibil de gradul 2. Polinoame de grad 2 sunt 18 = (3 + 3 · 2) · 2.Polinoamele reductibile sunt: ±x2 = (±x) · (±x), ±x · (x ± 1) = ±x2 ± x,±(x± 1) · (x± 1) = ±(x2±x+1),±(x2− 1). A³adar polinoamele x2+x− 1 ³ix2 + 1 sunt ireductibile (Ele nu se anuleaz pentru nici unul dintre numerele−1, 0, 1).
Alegem unul dintre aceste polinoame, spre exemplu x2+1. S not m clasade echivalenµ a lui x în inelul factor F3[x]/(x
2 + 1) cu i. A³adar i2 + 1 = 0sau i2 = −1.
Corpul de 32 = 9 elemente generat se noteaz GF(32) ³i are urm toareleelemente: {−1, 0, 1, i, i ± 1,−i,−i ± 1}, corespunz toare tuturor resturilor degrad cel mult 1.
S calcul m ordinul elementului i în grupul multiplicativ al corpului. Eleste doar 4, oarecum conform a³tept rilor. S calcul m ³i ordinul lui 1 + i. El
122 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
este maximal, adic 8.
i^0 = 1i^1 = ii^2 = -1i^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 secµiunea precedent am dat o modalitate general de construcµie a cor-purilor �nite.
S observ m c pasul de construcµie se poate aplica în lanµ: odat construitun corp, putem considera polinoame cu coe�cienµi în acest corp, apoi putemc uta polinoame ireductibile peste acest corp, ³i construcµia se repet .
Se pune întrebarea natural , cât de general este aceast construcµie, dintretoate corpurile �nite câte se pot construi în acest mod?
R spunsul la aceast întrebare este simplu, dar argumentaµia puµin mai lung .Pentru �ecare num r prim p ³i num r natural n ≥ 2 exist un singur corp cupn elemente!
Începînd cu aceast secµiune vom începe s parcurgem deci drumul oare-cum invers celui parcurs pentru construirea corpurilor �nite: din propriet µilestructurale ale corpurilor �nite vom deduce existenµa ³i unicitatea (pâna laizomor�sm) a corpurilor cu pn elemente.
Fie deci F un corp �nit. Cum orice corp conµine 0 (elementul neutru laadunare) ³i 1 (elementul neutru la înmulµire) care difer între ele (altfel corpular avea un singur element, ³i deci numai o singur operaµie, caz exclus ca �indneinteresant), putem s c ut m cel mai mic subcorp, care conµine aceste dou elemente.
3.2. CORPURI FINITE 123
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 repetiµiide valori. Dac r · 1 = s · 1, r < s, atunci avem 0 = (s − r) · 1. Este u³or dev zut de aici c mulµimea I = {n ∈ Z |n · 1 = 0 este un ideal (nenul!) în Z((−n) · 1 = −(n · 1)). Inelul întregilor este inel principal, deci acest ideal esteformat din multiplii unui num r p. Dac p = r · s, unde r ³i s sunt divizoriproprii, atunci 0 = p · 1 = (rs) · 1 = (r · 1) · (s · 1) ³i cum corpul nu aredivizori ai lui zero avem r · 1 = 0 sau s · 1 = 0, adic r sau s este multiplual lui p, ceea ce este contradicµie. Rezult deci c p este num r prim. Din(nm) · 1 = (n · 1) · (m · 1) rezult c φ : Zp −→ F , φ(n) = n · 1 este unhomomor�sm de corpuri. Acest homomor�sm este injectiv, a³a cum rezult din chiar raµionamentul de mai sus. De altfel orice homomor�sm de corpurieste injectiv. Într-adev r, 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 ocontradicµie.
A³adar Zp poate � privit ca un subcorp al corpului F . Din toate acestease desprinde urm toarea de�niµie.
De�niµie 3.2.8. Fie F un corp �nit. Subcorpul generat de 1, izomorf cu Zp,unde p este num r prim, se nume³te subcorpul prim al lui F . Num rul prim pse nume³te caracteristica corpului F .
3.2.4 Grupul multiplicativ al unui corp �nit
Mai întâi s facem o observaµie important .
Observaµie 3.2.9. Orice corp �nit este spaµiu vectorial peste corpul s u prim.Mai general, orice corp este spaµiu vectorial peste orice subcorp al s u.
Demonstraµia acestor fapte este imediat . Aceast simpl observaµie îns are o consecinµ important .
Consecinµ 3.2.10. Num rul elementelor unui corp �nit este o putere a unuinum r prim, pn. Ordinul grupului multiplicativ al unui corp �nit este pn − 1.
124 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Într-adev r, Fie Fp corpul prim al corpului F , unde p este num r prim.Alegem o baz a lui F , {a1, a2, . . . , an}. Num rul elementelor spaµiului vecto-rial F peste Fp este evident pn. Grup multiplicativ al lui F este F ∗ = F \ {0},deci are ordinul pn − 1.
Conform teoremei lui Lagrange, ordinul �ec rui element al grupului multi-plicativ al lui F este un divizor al ordinului grupului, deci dac not m q = pn,atunci pentru orice element a al lui F ∗ avem
aq−1 = 1.
A³adar orice element nenul al corpului F este r d cin a polinomuluixq−1 − 1, cu coe�cienµi în Fp. Situaµia speci�c aici este faptul c o ecuaµiepolinomial cu coe�cienµi într-un corp nu poate avea mai multe r d cini decâtgradul polinomului. Într-adev r, conform teoremei lui Bezout, dac un poli-nom de grad n are o r d cin a, atunci ele este divizibil cu x − a, ³i celelalter d cini ale sale sunt r d cini ale câtului împ rµirii cu x− a, deci r d cini aleunui polinom de grad n− 1.
Consecinµa acestei situaµii speci�ce este faptul c grupul multiplicativ alunui corp are o structur mai simpl , ³i anume este un grup ciclic. S ar t macest fapt.
Lem 3.2.11. Dac un grup �nit comutativ G are n elemente, ³i pentru �ecaredivizor al acestuia, m|n, ecuaµia xm − 1 = 0 are exact m soluµii în G, atuncigrupul G este ciclic.
Demonstraµie. Mai întîi �e n = pk. Atunci este clar c trebuie s avem unelement de ordin pk în grup, în caz contrar toate cele n = pk > pk−1 elementeleale grupului ar � r d cini ale ecuaµiei xp
k−1 −1 = 0, ceea ce contrazice ipoteza.Fie acum pk|n. Soluµiile ecuaµiei xpk = 1 în G formeaz un subgrup, deci
avem un grup cu un num r de elemente putere a unui num r prim ³i careevident veri�c ipoteza. Conform celor de mai sus acest subgrup este ciclic.Fie acum n = pk11 · pk22 · . . . · pkmm descompunerea lui n în factori primi dis-tincµi. Conform celor de mai sus exist în G elementele a1, a2, . . . am de ordink1, k2, . . . , km respectiv. Elementul a1 · a2 · . . . · am are ordinul n. Într-adev r,s observ m dac a, b ∈ G sunt dou elemente de ordin p, q respectiv dingrupul 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)pq = (ap)q · (bq)p = 1 · 1 = 1, deci d|pq.
Pe de alt parte putem scrie ³i 1 = (ab)d = ((ab)d)p = (ap)d · bpd = bpd deunde q|pd. Dar (p, q) = 1 deci q|d. Similar p|d, ³i din nou datorit faptuluic (p, q) = 1 rezult c pq|d. Avem deci d = pq. Aplicând acest fapt în lanµrezult în �nal c grupul G are un generator, deci este ciclic.
3.2. CORPURI FINITE 125
Putem enunµa deci propoziµia urm toare.
Propoziµie 3.2.12. Grupul multiplicativ al unui corp �nit cu q = pn elementeeste ciclic ³i are q − 1 elemente.
De�niµie 3.2.13. Un generator al grupului multiplicativ ciclic al unui corp�nit F se nume³te element primitiv în corpul F .
Toate tabelele de operaµii calculate în secµiunea precedent furnizeaz ex-emple de elemente primitive în corpurile date. Spre exemplu 1 + i ∈ GF(32)este un element primitiv în acest corp.
Din teorema lui Lagrange rezult c ordinul oric rui element nenul a alcorpului F de q = pn elemente este un divizor al lui q − 1, deci aq−1 = 1.Rezult deci urm toarea observaµie:
Observaµie 3.2.14. Fie F un corp �nit cu q = pn elemente. Atunci elementelecorpului F sunt r d cini ale ecuaµiei
xq − x = 0.
De asemenea în corpul F avem urm toarea descompunere:
xq − x =∏a∈F
(x− a).
Spre exemplu avem în corpul GF(22):
x4 − x = x(x− 1)(x− α)(x− α2),
unde "regula de calcul" este α2 = α+1. Dac efectu m înmulµirile parantezelorfolosind aceast regul de calcul obµinem într-adev r polinomul x4 − x.
3.2.5 Unicitatea corpurilor �nite
Suntem deja în m sur s demonstr m unicitatea corpurilor �nite. Avempropoziµia:
Propoziµie 3.2.15. Pentru �ecare num r prim p ³i num r natural n ≥ 1exist cel mult un singur corp �nit cu pn elemente.
Demonstraµie. Cu alte cuvinte, avem de ar tat cu dou corpuri �nite cu ace-la³i num r de elemente sunt izomorfe. Fie F ³i G dou corpuri cu q = pn
elemente. Alegem un element primitiv α în F . Fie f polinomul minimal al lui
126 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
α. Reamintim, c acesta este un polinom ireductibil în Fp[x], unde Fp = Zp
este corpul prim al ambelor corpuri F ³i G. Deoarece
xq − x =∏a∈F
(x− a) =∏b∈G
(x− b),
polinomul xq − x este anulator (i.e.αq − α = 0) pentru α, deci este divizibilcu polinomul minimal al lui α, adic f |(xq − x). Aceasta deoarece mulµimeapolinoamelor anulatoare pentru α este un ideal în Fp[x], unde orice ideal �indideal principal, este generat de un polinom, polinomul minimal al lui α, adic chiar polinomul f .
Rezult a³adar c , avem o descompunere în factori liniari al lui f în F , ³iuna în G. Alegem o r d cin β a lui f în G. S observ m c , β trebuie s �eelement primitiv în G. Într-adev r, dac ordinul lui β ar � d mai mic strictdecât q− 1, atunci am avea βd − 1 = 0, deci β ar � r d cin pentru polinomulxd − 1, altfel spus polinomul xd − 1 ar � un polinom anulator pentru β, deciar � divizibil cu f . Cum f(α) = 0, am avea ³i αd − 1 = 0, în contradicµie cualegerea lui α.
În concluzie, corespondenµa α −→ β între F ³i G, genereaz un izomor�smφ î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. A�rm m c aceast corespondenµ p streaz ³i adunarea,adic
φ(αi + αj) = φ(αi) + φ(αj).
Avem de analizat dou cazuri, ³i anume: αi + αj = 0 sau αi + αj = 0.Fie mai întâi αi + αj = 0, adic αi + αj = αk sau
αi + αj − αk = 0.
Rezult c f |(xi + xj − xk),
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 întâi s observ m c singurul element de
3.2. CORPURI FINITE 127
ordinul doi al corpurilor �nite este −1, deoarece (−1)2 = 1 ³i cealalt r d cin a polinomului x2 − 1 = (x− 1) · (x+1) este 1, al c rui ordin este 1. Pe de alt parte în acest caz ambele elemente −1, α
q−12 �ind de ordin 2, trebuie s avem
αq−12 = −1.
Acum dac presupunem i > j, (f r a restrânge genaralitatea), putem scrie
αi + αj = 0 ⇒ αi−j = −1
⇒ i− j =q − 1
2
⇒ βi−j = −1
⇒ βi + βj = 0.
Aceasta demonstreaz c φ comut ³i cu operaµia de adunare, deci este unizomor�sm de corpuri.
3.2.6 Automor�smele unui corp �nit
Fie F un corp �nit cu pn elemente, unde p este un num r prim. Între elementelecorpului putem efectua operaµiile de adunare ³i înmulµire cu propriet µile obi³-nuite ale acestora, deci avem dispunem ³i de toate formulele obi³nuite carerezult din aceste reguli, printre ele ³i formula binomului lui Newton. Avem înFp = Zp coe�cientul binomial pentru 1 ≤ i ≤ p− 1
Cip =
p(p− 1) . . . (p− i+ 1)
1 · 2 · . . . · i= 0, (3.2)
deoarece toµi ace³ti coe�cienµi sunt divizibili cu p. Avem a³adar pentruorice a, b ∈ GF(pn)
(a+ b)p = ap + bp.
Deoarece avem ³i (a · b)p = ap · bp, rezult c aplicaµia a −→ ap este unendomor�sm de corpuri.
Am v zut mai sus c apn= a pentru orice element a al corpului �nit cu
pn elemente. Dac ap = bp prin ridicare la puterea p de n − 1 ori, obµinema = b. A³adar endomor�smul de mai sus este injectiv. O aplicaµie injectiv peo mulµime �nit în ea îns ³i este ³i surjectiv , deci endomor�smul nostru esteautomor�sm.
De�niµie 3.2.16. Fie F un corp �nit cu pn elemente, unde p este un num rprim. Automor�smul Φ : F −→ F , de�nit prin Φ(x) = xp se nume³te auto-mor�smul Frobenius al corpului.
128 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Importanµa automor�smului Frobenius este dat de propoziµia urm toare.
Propoziµie 3.2.17. Fie F un corp �nit cu pn elemente, unde p este un num rprim. Automor�smele lui F formeaz un grup ciclic de ordin n, al c rui gen-erator este automor�smul Frobenius.
Demonstraµie. Automor�smele unui corp formeaz evident un grup, cu ele-mentul neutru aplicaµia identic I.
De asemenea, deoarece pentru orice element a al corpului F avem apn= a
avem ³i Φn = I. Dac am avea Φm = I pentru 0 < m < n, atunci amavea ap
m= a pentru orice a ∈ F , deci ecuaµia xp
m − x = 0 ar avea mai multer d cini decât este gradul s u, ceea ce este imposibil într-un corp. Deci ordinulautomor�smului Φ este chiar n.
S ar t m c F nu mai are ³i alte automor�sme. Vom face câteva observaµii.
Observaµii 3.2.18.
1. O prim observaµie imediat este faptul c orice automor�sm Ψ al lui Flas invariante elementele corpului prim al lui F ,
Ψ(k · 1) = Ψ(1 + . . .+ 1) = Ψ(1) + . . .Ψ(1) = 1 + . . .+ 1 = k · 1.
2. Mai interesant este c automor�smul Frobenius las invariant numaiaceste elemente. Într-adev r, elementele l sate invariante de acest au-tomor�sm sunt cele care au proprietatea ap = a, deci sunt soluµii aleecuaµiei xp − x = 0. Conform teoremei lui Fermat orice element al luiZp veri�c aceast ecuaµie, ³i ecuaµia nu mai poate avea ³i alte r d cinidatorit limit rii dat de gradul ei.
3. S mai observ m c un automor�sm al lui F este determinat de acµiunealui asupra unui element primitiv al lui F . Într-adev r, acesta genereaz grupul multiplicativ al corpului, iar imaginea lui 0 este 0.
4. O ultim observaµie este faptul c polinomul minimal al unui elementprimitiv al lui F are o descompunere special exprimat cu ajutorulautomor�smului Frobenius.
S consider m un element primitiv a, ³i s consider m polinomul
f = (x− a)(x− Φ(a))(x− Φ2(a)) . . . (x− Φn−1(a)). (3.3)
Dac extindem automor�smele Psi ale lui F asupra polinoamelor F [x],prin (suma este �nit )
Ψ(a0 + a1x+ a2x2 + . . .) = Ψ(a0) + Ψ(a1)x+Ψ(a2)x
2 + . . .
3.2. CORPURI FINITE 129
atunci avem
Φ(f) = (x− Φ(a))(x− Φ2(a))(x− Φ3(a)) . . . (x− a) = f.
A³adar coe�cienµii lui f sunt în corpul prim, ³i f(a) = 0 deci f este unpolinom 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 .
A³adar polinomul minimal al unui element primitiv a are descompunereadat de (3.3).
Putem trece acum la demonstraµia propriu-zis a propoziµiei. Fie Ψ unautomor�sm al lui F . Fie a un element primitiv, ³i f polinomul lui minimal,cu coe�cienµi în Fp. Conform 1 Ψ(f) = f , pe de alt parte conform 2 ³i 4
Ψ(f) = (x−Ψ(a))(x−ΨΦ(a))(x−ΨΦ2(a)) . . . (x−ΨΦn−1(a)),
dând 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.
Consecinµ 3.2.19. Fie p un polinom ireductibil în Fp[x] de grad m. Dac polinomul p are o r d cin α într-o extensie F a corpului Fp,atunci toater d cinile lui p se a� în aceast extensie ³i ele sunt imaginile succesive ale luiα prin automor�smul Frobenius Φ, deci p are în F urm toarea descompunere:
p = (x− α)(x− Φ(α))(x− Φ2(α)) . . . (x− Φm−1(α)).
Demonstraµie. Mai întâi s observ m c ,
p(α) = 0 ⇒ p(Φ(α)) = 0,
deci elementele α,Φ(α),Φ2(α), . . . sunt r d cini ale lui p. Pe de alt parte, amv zut mai sus c , pentru un anumit n (pn este num rul elementelor corpuluiF ), polinomul f de�nit
f = (x− α)(x− Φ(α))(x− Φ2(α)) . . . (x− Φn−1(α)),
este invariant la automor�smul Frobenius, deci are coe�cienµii în Fp. Avem deasemenea f(α) = 0, deci f este polinom anulator pentru α, deci este divizibilcu p. În consecinµ r d cinile lui p se a� în mulµimea
{α,Φ(α)), . . . ,Φn−1(α))}.
130 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Pentru a identi�ca r d cinile lui p în aceast mulµime, s not m
e = min{k > 0 | Φk(α) = α}.
Atunci evident elementele mulµimii
{α,Φ(α)), . . . ,Φe−1(α))}.
sunt distincte între ele, ³i sunt r d cinile polinomului p. S observ m c , defapt acestea sunt toate r d cinile lui p. Într-adev r, orice r d cin a lui p ester d cin ³i a lui f , deci este de forma Φi(α). Dar exponentul i poate � redussub valoarea lui e, prin împ rµire la e. Mai precis, avem împ rµirea întreag i = e · q + r, de unde
Φi(α) = Φr(α),
de unde rezult m = e.
S analiz m puµin urm toarea construcµie. Fie p un num r prim, ³i n ³i mdou numere naturale mai mari decât 1. Dac avem un polinom ireductibil fde grad n în Fp[x], putem construi o extensie a lui Fp, corpul K1 = GF(pn).Acesta este un spaµiu vectorial de dimensiune n peste Fp.
Fie acum g ∈ K1[x] un polinom ireductibil, de grad m. Putem construideci extensia K2 = K1[x]/(g), un spaµiu vectorial de dimensiune m peste K1.Evident corpul prim al lui K2 este tot Fp, deci K2 este spaµiu vectorial ³i pesteFp. Ce dimensiune are acest spaµiu vectorial?
Este destul de simplu de ar tat c dac
{a1, a2, . . . , an}
este o baz a lui K1 peste Fp, ³i
{b1, b2, . . . , bn}
este o baz a lui K2 peste K1, atunci
{ai · bj | 1 ≤ i ≤ n, 1 ≤ j ≤ m}
este o baz a lui K2 peste Fp. Deci dimensiunea spaµiului vectorial K2 pesteFp este mn.
Fie acum F o extindere a corpului Fp realizat cu ajutorul unui polinomireductibil de grad n. Fie G un subcorp al corpului F . Atunci G este spaµiuvectorial peste Fp de dimensiune m, F este spaµiu vectorial peste Fp de di-mensiune n, deci pe baza celor de mai sus este clar c m este un divizor allui n, deci trebuie s avem m|n. Acest fapt limiteaz existenµa subcorpurilor:
3.2. CORPURI FINITE 131
într-un corp �nit cu pn elemente pot exista numai subcorpuri cu pm elemente,unde m|n.
Se pune întrebarea natural , dac pentru orice divizor m al lui n exist unsubcorp în GF(pn) având pm elemente?
R spunsul la aceast întrebare este dat de propoziµia care va urma. Înaintede a o enunµa intercal m aici o proprietate interesant a polinoamelor specialeale c ror r d cini sunt elementele corpurile �nite cu pn elemente.
Lem 3.2.20. Fie un ∈ Fp[x] polinomul dat de formula un(x) = xpn − x.
Atunci avem
• (un, um) = u(n,m), unde notaµia (f, g) sau (n,m) înseamn ca de obiceicel mai mare divizor comun al celor dou polinoame respectiv numerenaturale, ³i
• um|un dac ³i numai dac m|n.
Demonstraµie. Presupunem, f r a restrânge generalitatea, c n > m. Fien−m = d. Pe baza formulei 3.2 de la pagina 127 avem
upm(x) = (xpm − x)p = xp
m+1 − xp.
Repetând ridicarea la puterea p de d ori, obµinem
upd
m (x) = (xpm − x)p
d= xp
m+d − xpd= un(x)− ud(x).
A³adar � dac facem împ rµirea întreag n = q · m + r, 0 ≤ r < m, putemcalcula cel mai mare divizor comun al polinoamelor un ³i um în felul urm tor
(un, um) = (upn−m
m + un−m, um) =
= (un−m, um) =
= (un−2m, um) = . . .
= (un−q·m, um) =
= (um, ur) = . . .
= (u(n,m), u0) =
= (u(n,m), 0) =
= u(n,m)
Aceasta demonstreaz prima a�rmaµie a lemei. Pentru partea a doua, �e m|n.Atunci (n,m) = m, ³i prima parte ne d
(un, um) = um,
132 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
adic um|un. Invers, dac um|un atunci u(n,m) = (un, um) = um, deci avemdou polinoame egale de grade strict mai mici decât pn, num rul elementelorcorpuluiGF(pn). Rezult deci ca ³i coe�cienµii sunt identici, adic (n,m) = m,deci m|n.
Acum vom putea demonstra propoziµia:
Propoziµie 3.2.21. În corpul GF(pn) exist pentru �ecare divizor m al lui n,(m|n) exact un subcorp de pm elemente.
Demonstraµie. Fie F un subcorp al corpului GF(pn). Am v zut mai sus c ,num rul elementelor lui F este pm, unde m|n. Elementele acestui corp veri�c ecuaµia
um(x) = xpm − x = 0.
Deci F = InvΦm = {a ∈ GF(pn) |Φm(a) = a}, deci subcorpul F este unic(elementele invariante la un automor�sm într-un corp formeaz un subcorp).
Invers, �e m|n. S dovedim existenµa unui subcorp al lui GF(pn) care arepm elemente. Candidatul natural este evident F = InvΦm. Trebuie s dovedimdoar c acest subcorp are exact pm elemente. Acum trebuie s folosim lemaanterioar :
um|un,
³i un se descompune în GF(pn) în factori liniari, deci la fel se întâmpl ³i cuum. A³adar um are pm r d cini distincte în GF(pn), deci subcorpul F are pm
elemente.
3.2.7 Existenµa unui corp cu pn elemente
Suntem în m sur s demonstr m c pentru orice num r prim p ³i orice num rnatural n ≥ 2 exist un corp �nit cu pn elemente. Se cuvine s repet m enunµulîn cadrul unei propoziµii.
Propoziµie 3.2.22. Fie p un num r prim ³i n un num r natural mai maredecât 2. Atunci exist un corp �nit F , cu pn elemente.
Demonstraµie. S consider m polinomul un(x) = xpn − x, un ∈ Fp[x]. El se
descompune în factori ireductibili (deci primi) astfel
un(x) = xpn − x = x · (x− 1) · f1(x) · f2(x) · . . . · fk(x).
Observaµia crucial � dup toate discuµiile teoretice anterioare destul de nat-ural � este c , unul dintre factorii acestei descompuneri trebuie s nu �edivizibil cu nici unul din polinoamele um(x) unde m|n este un divizor propriu
3.2. CORPURI FINITE 133
al lui n. Într-adev r, nu este greu de ar tat, c suma gradelor tuturor divi-zorilor ireductibili ai polinoamelor um(x), unde m|n este divizor propriu, estemai mic decât gradul lui un(x).
Pentru aceasta s constat m c , pentru un m dat∑f |um, f ireductibil, monic
deg f = pm. (3.4)
Într-adev r, Fp[x] este inel factorial, deci orice polinom se descompune în modunic în factori ireductibili. În cazul nostru îns factorii nu se pot repeta!Aceasta deoarece dac am avea un factor care se repet de cel puµin dou ori,atunci derivata formal a lui um(x) ar � ³i ea divizibil cu acest factor. Îns u′m(x) = (xp
m − x)′ = pm · xpm−1 − 1 = −1, ceea ce face imposibil acest fapt.Prin însumarea acestor egalit µi pentru toµi divizorii proprii ai lui n obµinem∑
f |um, f ireductibil, monic,m|n,m<n
deg f =∑
m|n,m<n
pm
≤∑m<n
pm
=pn − 1
p− 1
< pn.
Din 3.4 scris pentru m = n deducem c trebuie s existe un factor ireductibilf al lui un care nu divide nici unul din polinoamele um, unde m|n, ³i m estedivizor propriu.
Tot ce mai avem de ar tat este c gradul acestui polinom este chiar n ³ideci construcµia standard al inelului factor este corpul c utat cu pn elemente.
Fie deci F = Fp[x]/(f) = GF(pm), unde m = deg f ³i s not m clasa deresturi al lui x cu α. A³adar f(α) = 0, dar întru-cât f |un avem ³i
un(α) = 0.
Dar α ∈ GF(pm), deci avem ³i
um(α) = 0.
Rezult c , α este o r d cin a polinomului
(un, um) = u(n,m).
S lu m acum în considerare faptul c f este polinom minimal al lui α, deci
f |u(n,m).
134 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Dac (n,m) < n ((n,m)|n) atunci f ar divide un divizor propriu al lui un,ceea ce nu se poate, deci (n,m) = n, adic n|m.
Acum aplic m propoziµia 3.2.21 de la pagina 132 pentru a avea concluziapropoziµiei.
3.2.8 Polinoame ireductibile
Am v zut în secµiunile precedente, c un polinom ireductibil cu coe�cienµiîntr-un corp poate juca rolul unui num r indecompozabil (prim) în construcµiaunei noi mulµimi de numere, în care împ rµirea s �e posibil necondiµionat.În termeni puµini mai tehnici avem o analogie perfect între
Z,+, · k[x],+, ·�������������� �����������������inelul întregilor inelul polinoamelor cu coef. într-un corpnumerele prime polinoame ireductibile (prime)teorema împ rµirii întregi teorema împ rµirii întregiinel Euclidian inel Euclidianexist cel mai mare div. comun exist cel mai mare div. comunalgoritmul lui Euclid algoritmul lui Euclidvaloarea absolut a num rului gradul polinomuluidescomp. unic în factori primi descomp. unic în factori ireductibiliinel principal inel principalinelul factor mod prim -> corp inelul factor mod ireductibil -> corpnum. prim p -> corp Zp, p elem pol. ired. Zp[x] gard n -> corp pn elem.
Construcµia corpurilor �nite cu p elemente cu un num r prim p mare nece-sit algoritmi de testare a primalit µii, de generare a numerelor prime, ³i puneproblema factoriz rii numerelor întregi. Analog, construcµia corpurilor �nite cun mare necesit algoritmi de testare a ireductibilit µii polinoamelor, de gener-are a polinoamelor ireductibile, ³i pune problema factoriz rii polinoamelor.
Nu ne vom aventura în tratarea sistematic a acestor problematici, îns pentru a asigura un sentiment de confort dat de certitudinea c obiectelematematice descrise exist cu adev rat, complet m analiza noastr cu r spun-sul la o singur întrebare: cât de multe numere prime, respectiv cât de multepolinoame ireductibile exist ?
În ceea ce prive³te numerele prime s reamintim faptele clasice binecunos-cute.
3.2. CORPURI FINITE 135
Fapte 3.2.23.
• Exist o in�nitate de numere prime (Euclid).
• Num rul numerelor prime mai mici decât n (notat π(n)) este asimptotic
π(n) ∼ n
lnn.
(Logaritmul este natural.)
Nu vom da demonstraµiile acestor fapte, cititorul poate consulta practicorice carte de teoria numerelor. S vedem care este situaµia în cazul poli-noamelor cu coe�cienµi într-un corp �nit.
Fapte 3.2.24.
• Pentru �ecare p num r prim, ³i �ecare n exist un polinom ireductibil înZp[x] de grad n.
Not m cu Iq(n) num rul polinoamelor ireductibile monice (coe�cientuldominant este 1) de grad n din GF(q)[x], unde q este un num r primsau o putere a unui num r prim q = pm. De fapt are loc formula:
Iq(n) =1
n
∑d|n
µ(nd
)qd.
• Dac not m cu Nq(n) num rul total al polinoamelor de grad exact n dinGF(q)[x], este u³or de v zut c
Nq(n) = qn+1 − qn.
Are loc estimarea asimptotic :
Iq(n)
Nq(n)∼ 1
n.
S schiµ m în schimb demonstraµia acestor fapte legate de polinoame ire-ductibile.
Formula 3.4 de la pagina 133 � este adev rat ³i pentru q = pn � ³i poate� convertit u³or în formula: ∑
d|n
d · Iq(d) = qn, (3.5)
valabil pentru orice n ∈ N.Aceste relaµii, considerate ca ecuaµii trebuie rezolvate în raport cu necunos-
cutele Iq(n). Aceasta se face cu formula de inversare a lui Moebius, pe care oprezent m aici în ambele variante: aditiv ³i multiplicativ .
136 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
De�niµie 3.2.25. Funcµia µ : N −→ N de�nit prin
µ(n) =
1, dac n = 1,(−1)k, dac n este un produs de k numere prime distincte,0, dac n este divizibil cu p tratul unui num r prim,
se nume³te funcµia lui Moebius.
Avem nevoie de urm toarele propriet µi ale funcµiei Moebius:
Propoziµie 3.2.26.
1. Funcµia lui Moebius este multiplicativ în sensul urm tor. Fie m,n nu-mere naturale relativ prime. Atunci
µ(m · n) = µ(m) · µ(n).
2. Pentru orice num r natural n avem∑d|n
µ(d) =
{1, dac n = 1,0, dac n > 1.
Demonstraµie. Prima proprietate este evident din de�niµia funcµiei µ. A douaeste evident pentru n = 1, deci �e n > 1. Fie
n = pα11 · pα2
2 · . . . · pαkk
descompunerea lui n în factori primi. Valoarea sumei este dat de suma ter-menilor nenuli, adic ∑
d|n
µ(d) =∑
d|p1p2...pk
µ(d)
= µ(1) +∑
1≤i≤k
µ(pi) +∑
1≤i1<i2≤k
µ(pi1pi2) + . . .+ µ(p1p2 . . . pk)
= 1 + C1k(−1) + C2
k(−1)2 + . . .+ Ckk (−1)k
= (1 + (−1))k = 0.
Teorem 3.2.27 (Formula de inversare a lui Moebius). Formula se d deobicei în dou variante: o formulare aditiv ³i o formulare multiplicativ .
3.2. CORPURI FINITE 137
• Formula aditiv : Fie f, F : N −→ G dou funcµii î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
µ(nd
)F (d) =
∑d|n
µ(d)F(nd
)pentru orice n. (3.7)
• Formula multiplicativ : Fie f, F : N −→ G dou funcµii într-un grupmultiplicativ G. Atunci
F (n) =∏d|n
f(d) pentru orice n (3.8)
dac ³i numai dac
h(n) =∏d|n
F (d)µ(nd) =
∏d|n
F(nd
)µ(d)pentru orice n. (3.9)
Demonstraµie. Presupunem c are loc relaµia 3.6. Folosind propoziµia 3.2.26obµinem ∑
d|n
µ(nd
)F (d) =
∑d|n
µ(d)F(nd
)=
∑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 prive³te varianta multiplicativ ,aceasta este practic doar o schimbare a notaµiei pentru operaµia comutativ valabil pentru cele dou funcµii f ³i F .
Suntem acum în m sur s demonstr m rezultatul fundamental al acesteisecµiuni.
138 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Teorem 3.2.28. Num rul Iq(n) al polinoamelor ireductibile monice de gradn din GF(q)[x], (unde q este un num r prim sau o putere a unui num r primq = pm) veri�c relaµiile:
1. ∑d|n
d · Iq(d) = qn,
2.Iq(n) =
1
n
∑d|n
µ(nd
)qd =
1
n
∑d|n
µ(d)qnd ,
3.Iq(n) ≥ 1,
altfel spus, pentru �ecare n avem cel puµin un polinom ireductibil, ³i
4.
Iq(n) ∼qn
n,
adic asimptotic, num rul polinoamelor ireductibile este 1/n din num rultotal de polinoame de grad n.
Demonstraµie. Punctul 1 este numai o reiterare a relaµiei 3.5 de la pagina 135.Pentru a demonstra punctul principal 2 nu avem altceva de f cut decât
s aplic m formula de inversare Moebius (varianta aditiv , ³i G = N) pentrufuncµiile
f(n) = n · Iq(n),³i
F (n) = qn,
³i s observ m c relaµia 3.6 este valabil datorit punctului 1.Punctul 3 rezult din punctul 2 astfel:
Iq(n) ≥ 1
n
qn −∑1<d|n
qnd
≥ 1
n
(qn −
n−1∑d=0
qd
)
=1
n
(qn − qn − 1
q − 1
)=
1
n(qn − (qn − 1)) =
1
n> 0.
În sfâr³it punctul 4 este evident pe baza punctului 2.
3.2. CORPURI FINITE 139
3.2.9 Polinomul minimal ³i baza Gröbner
Cele mai spectaculoase descoperiri matematice sunt acele rezultate caredezv luie leg turi strânse între domenii aparent îndep rtate. Asocierea din-tre polinomul minimal al unui element algebric într-o extindere de corpuri cubazele Gröbner ale idealelor polinomiale în inele de polinoame cu mai multenedeterminate poate p rea la prim vedere o astfel de întâlnire nea³teptat .Ea m re³te în orice caz admiraµia pentru "omniprezenµa" bazei Gröbner ³iutilitatea deosebit a algoritmului lui Buchberger.
Problemele pe care ni le formul m sunt urm toarele.
Probleme 3.2.29.
1. Fie corpul �nit F = GF(pn) construit cu ajutorul unui polinom ire-ductibil f ∈ Fp[x] de grad n. Dac not m ca de obicei clasa deechivalenµ a lui x cu α, atunci avem f(α) = 0 ³i nu exist polinomanulator de grad mai mic în Fp[x] pentru α, adic f este polinomul min-imal al lui α. Elementele corpului F sunt polinoame de grad cel multn−1 î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, înmulµireaa · b prin g · h( mod f), iar împ rµirea a/b prin a · 1/b, unde inversul luib corespunde polinomului v, obµinut cu ajutorul algoritmului lui Euclidextins aplicat polinoamelor relativ prime f ³i h. Întru-cât (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 ∈ Fp[x], de grad n,m respec-tiv. Putem face câte o extensie a lui Fp cu ajutorul lui f ³i g respectiv,notând cu α respectiv β clasele de echivalenµ ale lui x în cele dou extinderi. Cele dou extinderi sunt corpurile �nite GF(pn) ³i GF(pm)respectiv. Am v zut în secµiunile precedente c exist ³i este unic corpul�nit cu pk elemente, respectiv pentru �ecare divizor d|k corpul GF(pk)are un singur subcorp GF(pd). Rezult c cele dou corpuri GF(pn) ³iGF(pm) sunt subcorpurile (unice) ale corpului GF(pnm).
S se calculeze polinoamele minimale ale urm toarelor elemente din acestcorp:
140 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
• α+ β,
• α− β,
• α · β,• α/β.
S începem prezentarea soluµiilor acestor probleme cu enunµul rezultatelorteoretice necesare.
Propoziµie 3.2.30. Fie deci corpul �nit F = GF(pn). Fie α un elementprimitiv ³i �e f ∈ Fp[x] polinomul minimal al lui α (de grad n). Fie a = g(α) =a0+a1α+a2α
2+ . . .+an−1αn−1 ³i b = h(α) = b0+b1α+b2α
2+ . . .+bn−1αn−1
dou elemente ale lui F .Cu ajutorul polinoamelor
g(x) = a0 + a1x+ a2x2 + . . .+ an−1x
n−1
³ih(x) = b0 + b1x+ b2x
2 + . . .+ bn−1xn−1
din Fp[x] construim idealele
Ia+b = (f, y − g − h)
Ia−b = (f, y − g + h)
Iaxb = (f, y − gh)
Ia/b = (f, hy − g)
ale inelului Fp[x, y]. Atunci polinomul minimal al lui a+b, a−b, a ·b, a/b esteunicul polinom (monic) în variabila y, care este generator al idealului I∗∩Fp[y].
Demonstraµie. Vom demonstra cazul mai "di�cil" a/b (celelalte sunt exerciµiiu³oare). Întru-cât h(α) = 0 exist un polinom v ∈ Fp[x] astfel ca vh = 1mod f . Am efectuat astfel împ rµirea c = a/b = g(α)/h(α) = g(α) · v(α). S consider m polinomul F = gv. Deci c = F (α). Consider m homomor�smulΦ, dat de compunerea de aplicaµii
Fp[y] −→ Fp[x]/(f) −→ Fp(α)y −→ F + (f) −→ c.
S[observ m c , un polinom G este în kerΦ dac ³i numai dac G(c) = 0, decipolinomul minimal al lui c este un generator al nucleului lui Φ. Acesta îns este (f, y − F ) ∩ Fp[y]. A³adar r mâne s ar t m c (f, y − F ) = (f, hy − g).
Pentru aceasta s observ m c , y−F = y−gv = v(hy−g) mod f deci avemy−F ∈ (f, hy−g), de unde rezult incluziunea (f, y−F ) ⊂ (f, hy−g). 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).
3.2. CORPURI FINITE 141
Din aceast propoziµie rezult un "algoritm" de calcul al polinomului mi-nimal al elementului c = a/b (³i celelalte operaµii): calcul m baza Gröbnerpentru idealul (f, hy − g) ∈ Fp[x, y] folosind ordonarea lexicogra�c în carex > y. Polinomul acestei baze care conµine numai variabila y este polinomulminimal al lui c!
Pentru a rezolva problema a doua ne vom baza pe o propoziµie analoag pe care o d m f r demonstraµie.
Propoziµie 3.2.31. Fie α1, α2, . . . , αn r d cini ale polinoamelor ireductibilef1, f2, . . . , fn cu coe�cienµi în corpul Fp. Fie
a = g(α1, α2, . . . , αn)
b = h(α1, α2, . . . , αn),
unde g, h ∈ Fp[x1, x2, . . . , xn] sunt polinoame arbitrare.Construim idealele
Ia+b = (f1, f2, . . . , fn, y − g − h)
Ia−b = (f1, f2, . . . , fn, y − g + h)
Iaxb = (f1, f2, . . . , fn, y − gh)
Ia/b = (f1, f2, . . . , fn, hy − g)
ale inelului Fp[x1, x2, . . . , xn, 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, careeste generator al idealului I∗ ∩ Fp[y].
Dac toate acestea nu sunt su�cient de clare, ne va ajuta un exempluconcret.
Exemplu 3.2.32. În corpul GF(26) construit cu ajutorul polinomului
f(x) = x6 + x+ 1,
�e α o r d cin a lui f , ³i �e
a = α4 + α3 + α2 + α+ 1,
³ib = α3 + α+ 1.
S calcul m polinomul minimal al elementului c = a/b.
Soluµia este acest scurt program scris în Singular.
142 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
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 y2 + y + 1.Iat acum un exemplu cu dou extinderi succesive.
Exemplu 3.2.33. Consider m polinoamele ireductibile cu coe�cienµi în F2
f(x) = x2 + x+ 1,
³ig(y) = y3 + y + 1.
Fie α o r d cin a lui f , ³i β o r d cin a lui g.S calcul m polinomul minimal al elementelor α+ β, α− β, α · β, α/β în
extensia lui F2 cu α ³i β.
Soluµia este obµinut 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
z6 + z5 + z3 + z2 + 1,
al lui α · β estez6 + z4 + z2 + z + 1,
respectiv al lui α/β este
z6 + z5 + z4 + z2 + 1.
Gradele acestor polinoame �ind 6 = 2 · 3, aceste polinoame genereaz acela³icorp GF(26).
3.3. CODURI CORECTOARE DE ERORI 143
3.3 Coduri corectoare de erori
D up aceast preg tire destul de consistent � care a avut totu³i ³imotivaµii intrinseci � suntem în m sur acum s trecem la aplicaµia
anunµat : coduri corectoare de erori.În introducerea acestui capitol am v zut deja un exemplu concret de un
astfel de cod. Având în minte acest exemplu, vom înµelege mai bine motivaµiaconstrucµiilor matematice care vor urma mai jos.
Fix m de la bun început urm toarele. Informaµia pe care o trimitem esteorganizat . Ea se exprim cu ajutorul unui alfabet, ³i se grupeaz în cuvinte(blocuri) de aceea³i lungime. Literele acestor cuvinte transmise se pot altera.S analiz m puµin statistica acestor alter ri în cazul unui canal de comunicaµieprin care transmitem informaµie binar . S consider m deci c literele suntcifrele binare � 0 ³i 1 � ³i c lungimea unui cuvânt este de n de litere. S presupunem c probabilitatea cu care pe acest canal cifra binar 0 devine larecepµie 1 este aceea³i cu care cifra 1 este recepµionat 0. Un astfel de canalde comunicaµie se nume³te canal binar simetric. S presupunem de asemeneac probabilitatea recepµion rii eronate a unei cifre binare este aceea³i pentru�ecare cifr , ³i este independent de cifrele anterioare sau viitoare. S not mprobabilitatea recepµion rii corecte a unei cifre binare cu p. Atunci într-osecvenµ de lungime n probabilitatea unui num r de t erori este
Ctnp
n−t(1− p)t.
Pentru p = 0.99 ³i n = 50 putem întocmi urm torul tabel:
t probabilitatea producerii a exact t erori cel mult t erori0 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 observ m mai întâi c probabilitatea producerii mai multor erori este maimic . Aceasta se întâmpl totdeauna dac pentru orice t, (0 ≤ t ≤ n− 1 avem
Ct+1n pn−t−1(1− p)t+1
Ctnp
n−t(1− p)t< 1,
adic n− t
t+ 1· 1− p
p< 1
144 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
decin <
p
1− p.
Ce putem a�a din acest tabel? În primul rînd putem a�a, c de³i probabilitateade producere a erorii este mic � doar 1% � totu³i probabilitatea recepµion riicorecte a unui cuvînt (de 50 de litere) este de doar 60.5%, adic în medieaproape �ecare al doilea cuvânt conµine erori! Este clar c , f r un mecan-ism de detectare ³i corectare a erorilor informaµia recepµionat este practicneutilizabil .
Pe de alt parte vestea bun este c este foarte improbabil ca un cuvînt s conµin multe erori. În exemplul dat în tabel în medie numai unul din 10.000de cuvinte va conµine mai mult de 5 erori!Este clar deci c , informaµia util trebuie completat cu o informaµie redun-dant care s fac posibil descoperirea ³i corectarea erorilor. Într-un cuvântde cod de n litere numai k < n litere vor codi�ca informaµia util , restul den−k litere vor servi la implementarea mecanismelor de detectare ³i corectare aerorilor, rezultând un raport r = k/n < 1 subunitar al transmisiei informaµieiutile.
Se pune deci problema de principiu: putem oare controla detectabilitateaerorilor, adic putem oare construi coduri care s asigure un procent oricâtde mic dorim al erorilor nedetectabile? R spunsul la aceast întrebare estea�rmaµia unei teoreme pe care Claude Shannon a publicat-o în 1948, consideratast zi punctul de plecare al teoriei codurilor, ³i pe care o formul m aici (f r demonstraµie).
Teorem 3.3.1. Pentru orice canal binar simetric de comunicaµie, pentruorice ε > 0, pentru orice probabilitate 1 > p > 0 ³i orice rat util de informaµier > 0 pentru care avem
r < 1 + p ln(p) + (1− p) ln(1− p),
exist un cod ale c ror cuvinte au lungimea su�cient de lung n ³i pentru careprobabilitatea recepµion rii corecte a literelor codului este p dar probabilitatearecepµion rii eronate a cuvintelor este cel mult ε.
Demonstraµia acestei teoreme nu este constructiv , ea nu furnizeaz ³i ometod de construcµie pentru coduri bune. Are sens a³adar c utarea de co-duri care s se apropie cât mai mult de performanµa asigurat de teorema luiShannon.
În cele ce urmeaz vom prezenta câteva coduri, ³i vom schiµa ³i o analizaparametrilor acestora pentru a intui în ce m sur ele se apropie de performanµamaxim posibil pentru o rat de eroare dat .
3.3. CODURI CORECTOARE DE ERORI 145
3.3.1 Concepte de baz
Leg tura dintre corpurile �nite ³i coduri rezid în faptul c literele alfabetuluide codi�care vor � numere speciale: elemente ale unui corp �nit de numere!Cuvinte ale acestui alfabet vor � "cuvinte" de cod, blocuri. Iat dicµionarulcorespunz tor pe care-l vom folosi în continuare.
concept teoria codurilor obiect matematicABC (colecµie simboluri) corp �nit, Fq, q = pm
liter , simbol element al corpului �nit, αi ∈ Fq
mesaj util, vector de elemente, α = (α1, α2, . . . , αk)cuvânt cod, mesaj codi�cat x = (x1, x2, . . . , xn), n ≥ k, xi ∈ Fq
³i transmismesaj recepµionat, eventual diferit vector y = (y1, y2, . . . , yn), yi ∈ Fq
de cel transmisvector eroare e = y − x
În cazul în care x1 = α1, . . . , xk = αk simbolurile xk+1, . . . , xn se numescsimboluri de control . Conform tabelului de mai sus se impune deci o de�niµie.
De�niµie 3.3.2. Un cod de lungime n peste corpul Fq este o submulµime(nevid ) C a spaµiului vectorial Fn
q peste Fq.
În cursul transmisiei cuvântele de cod pot suferi modi�c ri, deci avemnevoie de un mecanism de evaluare a m surii acestei modi�c ri. Se vede ime-diat c num rul simbolurilor alterate este o m sur potrivit pentru evaluarea"distanµei" între cele dou cuvinte de cod: cel transmis ³i cel recepµionat.
De�niµie 3.3.3. Concepte importante noi:
• Dac x ³i y sunt cuvinte cod vom numi distanµ Hamming între elenum rul simbolurilor diferite dintre perechile de simboluri care se core-spund, deci
d(x, y) = ♯{i|xi = yi}.
• Dac x este un vector vom numi m sura Hamming al acestui vector,notat w(x), distanµa lui faµ de vectorul nul, adic w(x) = d(x, 0).
• Vom numi distanµa minim a codului C num rul
d(C) = min{d(x, y) |x, y ∈ C, x = y},
adic cea mai mic distanµ între dou cuvinte de cod.
146 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
• Vom numi de asemenea bil de raz r cu centru în x mulµimea
Sr(x) = {y ∈ Fnq | d(x, y) ≤ r},
adic mulµimea vectorilor a�ate la distanµa cel mult r de vectorul x.
Se veri�c u³or c , funcµia d(x, y) are propriet µile unei distanµe:
• 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), pentruorice x, y, z ∈ Fn
q .
Cuvântul de cod transmis x poate sosi la receptor alterat, y. Decodi�carea caredintr-un vector y recepµionat restabile³te cel mai probabil cuvânt de cod care afost transmis, se nume³te decodi�care de probabilitate maxim . Decodi�careacare îl decodi�c vectorul y cu ajutorul cuvântului de cod x a�at cel maiaproape de y în sensul distanµei Hamming (dac exist numai unul singur), senume³te decodi�care prin distanµ .
Am v zut mai sus c probabilitatea alter rii unui num r de 1, 2, 3, . . . sim-boluri ale unui cuvânt de cod se micsoreaz rapid, în anumite condiµii. Practicam v zut c dac pe un canal de comunicaµie binar ³i simetric
n <p
1− p,
atunci decodi�carea prin cuvântul de cod cel mai apropiat este o decodi�carede probabilitate maxim ! Vom p stra aceast ipotez în continuare, adic vom considera c decodi�carea prin cuvântul de cod cel mai apropiat este³i decodi�care de probabilitate maxim , ³i vom înµelege prin "decodi�care"decodi�care prin cuvântul de cod cel mai apropiat.
De�niµie 3.3.4. Vom spune c un cod C ⊂ Fnq corecteaz t (t ∈ N∗) erori
dac pentru orice y ∈ Fnq exist cel mult un cuvânt de cod x ∈ C astfel ca
d(y, x) ≤ t.
Dac avem un cod care poate corecta t erori ³i am transmis cuvântul decod x ∈ C ³i în cursul transmisiei se produc cel mult t erori, atunci la recepµieputem restabili mesajul deoarece x este singurul cuvânt de cod pentru cared(y, x) ≤ t.
S observ m c , pentru a putea decodi�ca cât mai multe mesaje recepµion-ate eronat distanµa minim a codului, adic parametrul d = d(C) trebuie s �e cât mai mare posibil. Acesta îns atrage dup sine sc derea num rului decuvinte cod pentru o lungime dat n a codului, ceea ce scade cantitatea deinformaµie transmis . În concluzie problema de baz a teoriei codurilor este:
3.3. CODURI CORECTOARE DE ERORI 147
Problem 3.3.5. Pentru un n, d ³i q = pm dat s g sim în Fnq o submulµime
maximal C, cu un num r de elemente cât mai mare, pentru care d(C) ≥ d.
Maximalitatea lui C înseamn , c orice vector cu care am completamulµimea C ar avea ca efect d(C) < d. Întru-cât mulµimi maximale cud(C) ≥ d pot � mai multe, suntem interesaµi s g sim pe cal pentru carenum rul de elemente M = |C| este cel mai mare posibil.
Observaµie 3.3.6. S observ m c un cod C pentru care d(C) = d, poatedetecta d−1 erori, ³i poate corecta ⌊d−1
2 ⌋ erori (partea întreag a lui (d−1)/2).
3.3.2 Margini pentru coduri generale
Fie C un cod din Fnq cu distanµ minim d = d(C), care poate corecta t erori
³i s not m num rul cuvintelor de cod cu M = |C|. Între parametrii coduluiC au loc anumite inegalit µi, care prescriu valor limit intrinseci care nu pot� dep ³ite.
Propoziµie 3.3.7.
1. marginea Hamming :
M(1 + (q − 1)C1n + C2
n(q − 1)2 + · · ·+ (q − 1)tCtn ≤ qn.
2. marginea Singleton :M ≤ qn−d+1.
Demonstraµie. Pentru a demonstra punctul 1 s observ m c num rul total alvectorilor de m sur k în Fn
q este Ckn(q − 1)k. Pe de alt parte �ecare bil de
raz t cu centrul într-un vector-cod din C conµine un num r de
1 + C1n(q − 1) + C2
n(q − 1)2 + . . .+ Ctn(q − 1)t
vectori. Întru-cât bilele sunt disjuncte ³i num rul lor este M iar numrul totalal vectorilor din spaµiu este qn, rezult inegalitatea din 1.
Pentru a demonstra punctul 2 s observ m c dac din cuvintele unui codC de distanµ minim d ³tergem ultimele d−1 simboluri, cuvintele de lungimen− d+ 1 astfel formate înc vor � diferite între ele. Pe de alt parte num rultotal al vectorilor de aceast lungime este qn−d+1, ceea ce implic 2.
Pe baza propoziµiei anterioare se impun urm toarele de�niµii:
De�niµie 3.3.8.
• Dac pentru codul C marginea Hamming este atins , atunci codul senume³te cod perfect .
• Dac pentru codul C marginea Singleton este atins , atunci codul senume³te cod MDS , (Maximum Distance Separable).
148 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
3.4 Coduri liniare
A m avansat ideea în secµiunea precedent c o alegere bun pentru cu-vintele unui cod, constituie o parte din vectorii unui spaµiul vectorial �nit
dimensional peste un corp �nit. Dac avem în minte intenµia de a a³eza câtmai compact bile de raz dat cu centrul în punctele acestui spaµiu, f r s seintersecteze îns , e de a³teptat ca o astfel de a³ezare s �e ³i regulat întru-unanumit sens � s ne gândim la nodurile unei reµele p tratice sau triunghiulareregulate în plan ³i cercuri identice a³ezate pe aceast reµea, spre exemplu.
O astfel de ordine poate � introdus în mulµimea C dac facem uz destructura de spaµiu vectorial � mulµimea C ar putea s �e un subspaµiu. AstfelC devine o "reµea" generat (în sensul chiar al combinaµiilor liniare) de un setde vectori de baz bine ale³i (care ar ³i forma baza acestui subspaµiu). Unastfel de cod se va numi cod liniar.
În termeni tehnici ideea de mai sus se realizeaz astfel. Fie H o matrice detip (n− k, n) cu elemente din corpul �nit Fq. Presupunem c rangul matriciiH este maxim, adic n− k.
De�niµie 3.4.1. Codul C se nume³te cod liniar de tip (n, k) dac cuvintele xale codului veri�c ecuaµia
H · xt = 0,
adic sunt soluµiile unui sistem liniar ³i omogen de ecuaµii cu coe�cienµi într-uncorp �nit.
Num rul n se nume³te lungimea codului iar num rul k dimensiunea codului .Forma standard a matricii H este H = (A, In−k), unde In−k este matriceaunitate de ordin n− k. Matricea H se nume³te matrice de control al parit µii .Dac matricea H are forma standard, codul se nume³te cod sistematic. Dac q = 2, codul se nume³te cod liniar binar .
Evident mulµimea C este un subspaµiu al spaµiului vectorial Fnq .
Propoziµie 3.4.2. Pentru un cod sistematic C de�nit de matricea H dac α = (α1, α2, . . . , αk) = (x1, x2, . . . , xk) este partea util a mesajului, ³i
H · xt =(A In−k
)· xt = 0,
atuncix = α ·
(Ik −At
).
Astfel codi�carea mesajului util (i.e. calculul cuvântului de cod corespunz tormesajului) se poate face prin înmulµirea mesajului cu o matrice adecvat .
3.4. CODURI LINIARE 149
Demonstraµie. Calculele sunt simple. Le reproducem totu³i aici, datorit im-portanµei conceptuale a acestora. Fie x = (x1, x2, . . . , xn) mesajul codi�cat.Avem
H · xt = 0 ⇔(A In−k
)· xt = 0
⇔ A ·
x1x2...xk
+
xk+1
xk+2...xn
= 0
⇔
xk+1
xk+2...xn
= −A ·
α1
α2...αk
⇔
x1x2...xn
=
(Ik−A
)·
α1
α2...αk
⇔ (x1, x2, . . . , xn) = (α1, α2, . . . , αk) ·
(Ik −At
)⇔ x = α ·G
De�niµie 3.4.3. Matricea G = (Ik,−At) se nume³te matricea generatoarecanonic pentru codul C. În general o matrice G se nume³te matrice genera-toare pentru codul C dac liniile matricii G formeaz o baz a lui C.
Se veri�c imediat c între matricea generatoare ³i matricea de control alparit µii are loc relaµia
G ·Ht = 0.
De�niµie 3.4.4. Dac C este un cod liniar de tipul (n, k) atunci codul
C⊥ = {u ∈ Fnq |u · v = 0, pentru orice v ∈ C}
se nume³te codul dual al lui C. Aici am notat
u · v = u1v1 + u2v2 + . . .+ unvn,
³i a³a cum e de a³teptat u · v se nume³te produsul scalar al celor doi vectori.Vectorii u ³i v se numesc vectori ortogonali dac u · v = 0, în notaµie u⊥v.
Produsul scalar este biliniar ³i simetric, ceea ce se veri�c imediat.
150 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Observaµie 3.4.5. Se observ c matricea generatoare pentru codul dual estematricea de control al parit µii pentru cod, ³i invers.
Demonstraµie. Într-adev r, s ne reamintim, c liniile matricii G sunt vectoridin C, ³i formeaz o baz pentru C (H · Gt = 0). Rangul lui H este maxim,k, deci dimensiunea lui C este n − k, egal cu num rul liniilor lui G. Decirangul lui G este de asemenea maxim, n− k. Se vede deci c rolul lui G ³i Heste simetric, putem scrie ³i G ·Ht = 0, ³i rangulambelormatrici este maxim:liniile lui H sunt vectori liniar independenµi, perpendiculari pe liniile lui G,³i num rul lor �ind maximal, k, formeaz o baz pentru subspaµiul vectorilorperpendiculari pe liniile lui G, care este codul dual.
S menµion m c este posibil ca u · u = 0, f r ca u = 0, deci este posibilca u⊥u f r ca vectorul u s �e nul. În consecinµ , este posibil ca C ∩C⊥ = ∅respectiv C + C⊥ $ Fn
q , adic suma subspaµiilor C ³i C⊥ s nu �e întregspaµiul. Mai mult, este posibil s avem ³i C = C⊥.
De�niµie 3.4.6. Un cod C pentru care C = C⊥ se nume³te cod autodual .
Vom vedea printre exemplele care urmeaz , ³i un cod autodual.Este momentul deci s d m câteva exemple. Aceste exemple vor � reluate
³i analizate mai detaliat în secµiunea 3.6 de la pagina 182, în care prezent mun mediu de programare specializat pentru teoria codurilor algebrice, în cadrulsistemului GAP.
Exemple 3.4.7.
1. Fie codul binar de dimensiune k = n−1 ³i lungime n construit în felul ur-m tor: cuvintele de cod sunt formate din mesajul util (x1, x2, . . . , xn−1)³i un simbolul xn de paritate, care este 1 dac
∑n−1i=1 xi = 1( mod 2) ³i
este 0 dac ∑n−1
i=1 xi = 0( mod 2). Cuvântele cod x = (x1, x2, . . . , xn)veri�c deci ecuaµia
n∑i=1
xi = 0.
Dac de�nim matricea cu n coloane ³i de o singur linie (de rang 1)
H =(1 1 . . . 1
),
atunci cuvintele codului veri�c ecuaµia H · xt = 0. Se vede c acest coddetecteaz o singur eroare (sau un num r impar de erori).
3.4. CODURI LINIARE 151
2. Fie codul binar de dimensiune k ³i lungime n = 2k construit în felulurm tor: cuvintele de cod sunt formate din mesajul util (x1, x2, . . . , xk)repetate înc o dat . Astfel în �ecare cuvânt de cod avem
xi = xi+k, pentru orice i = 1, 2, . . . , k.
Aceste relaµii pot � privite ca un sistem de ecuaµii liniar ³i omogen înnecunoscutele
x = (x1, x2, . . . , xk, xk+1, . . . , x2k),
având matricea (de tip (k, 2k)) de rang k
H =(Ik −Ik
),
³i va � capabil de detectarea unei singure erori, f r a � posibil corectarea acesteia. S observ m, c acest cod face acela³i lucru ca ³icodul descris în primul exemplu, îns într-un mod mult mai ine�cient:lungimea codului este aici este 2k faµ de numai k+1 din primul exemplu.
3. S construim un cod acum repetând de dou ori mesajul util. Acesta va� un cod binar de dimensiune k ³i lungime n = 3k. Cuvintele de cod auproprietatea
xi = xi+k = xi+2k, pentru orice i = 1, 2, . . . , k.
Aceste relaµii formeaz un sistem de ecuaµii liniar ³i omogen în necunos-cutele
x = (x1, x2, . . . , xk, xk+1, . . . , x2k, x2k+1, . . . , x3k),
având matricea de tip (2k, 3k) ³i de rang 2k
H =
(Ik −Ik 0Ik 0 −Ik
)=(A I2k
),
unde Ik (respectiv I2k) este matricea unitate de ordinul k (respectiv 2k),iar matricea A = (Ik Ik)
t. Cuvintele codului veri�c din nou ecuaµiaH · xt = 0. Se vede de asemenea c acest cod detecteaz dou erori ³icorecteaz o singur eroare. El se nume³te cod de repetiµie, ³i este clarc dac s-a produs o singur eroare, repetiµia face posibil identi�carea³i corectarea erorii.
Pentru k = 3 avem urm torul sistem de ecuaµii i.e. relaµii de calcul alesimbolurilor de control:
152 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
x4 = x1x5 = x2x6 = x3x7 = x1x8 = x2x9 = x3.
Matricea de control al parit µii este a³adar
H =
1 0 0 1 0 0 0 0 00 1 0 0 1 0 0 0 00 0 1 0 0 1 0 0 01 0 0 0 0 0 1 0 00 1 0 0 0 0 0 1 00 0 1 0 0 0 0 0 1
=
(I3 I3 0I3 0 I3
).
Matricea de generare a acestui cod este deci
G =(I3 −At
)=(I3 I3 I3
)=
1 0 0 1 0 0 1 0 00 1 0 0 1 0 0 1 00 0 1 0 0 1 0 0 1
.
Prin urmare o informaµie util α = (α1, α2α3) de 3 simboluri se codi�c în cuvântul de cod de 9 simboluri:
x = (α, α, α) = α ·G.
care este o combinaµie liniar a liniilor matricii G, cu coe�cienµi α1, α2α3.
4. S mai consider m un cod de repetiµie binar, o variant extrem , de�nit în felul urm tor. Fie k = 1, deci avem numai dou mesaje utile posibile,0 ³i 1. S repet m mesajul util de n− 1 ori. Astfel �ecare cuvânt de codare proprietatea x1 = x2 = . . . = xn. Considerate ca sistem de ecuaµii,aceste egalit µi se descriu matricial sub forma H · xt = 0, unde
H =
1 1 0 0 · · · 01 0 1 0 · · · 01 0 0 1 · · · 0...
......
.... . .
...1 0 0 0 . . . 1
este o matrice de tip (n− 1, n), de rang evident n− 1. Practic vom aveanumai dou cuvinte în acest cod: (0, 0, . . . , 0) ³i (1, 1, . . . , 1), ³i se vede
3.4. CODURI LINIARE 153
c acest cod poate detecta n− 1 erori ³i poate corecta pân la (n− 1)/2erori. Avem deci ³i un exemplu de cod care poate corecta multe erori,dar preµul pl tit este raportul de informaµie util mic, de numai 1/n. Deasemenea num rul cuvintelor de cod (2) este foarte mic în comparaµie cunum rul total al vectorilor (2n).
5. In acest exemplu �e k = 3, ³i la cele trei simboluri ale informaµiei utileα1 = x1, α2 = x2 ³i α3 = x3 s mai ad ug m alte trei simboluri decontrol, calculate conform relaµiilor de mai jos:
x4 = x1 + x2x5 = x1 + x3x6 = x2 + x3.
Matricea de control al parit µii este a³adar
H =
1 1 0 1 0 01 0 1 0 1 00 1 1 0 0 1
=(A I3
).
Matricea de generare a acestui cod este deci
G =(I3 −At
)=
1 0 0 1 1 00 1 0 1 0 10 0 1 0 1 1
.
Prin urmare o informaµie util α = (α1, α2α3) se codi�c în cuvântul decod:
x = (α1, α2α3, α1 + α2, α1 + α3, α2 + α3) = α ·G,
care este o combinaµie liniar a liniilor matriciiG, cu coe�cienµii α1, α2α3.S observ m, c acest cod este capabil de detectarea a dou erori, ³ide corectarea unei erori (de ce?). A³adar ³tie exact atât, cât ³tie ³icodul de la punctul 3, în schimb lungimea lui este numai 6 faµ de 9 alcodului cu repetiµie de la punctul 3. Exemplul acesta arat , c simplarepetare a transmiterii informaµiei utile nu este optim pentru detectarea³i corectarea erorilor.
6. În sfâr³it s consider m codul liniar binar generat de matricea genera-toare de la începutul acestui capitol
G =
1 0 0 0 0 1 10 1 0 0 1 0 10 0 1 0 1 1 00 0 0 1 1 1 1
. (3.10)
154 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Cuvintele de cod sunt combinaµii liniare ale liniilor acestei matrici, decideci dimensiunea codului este 4, iar lungimea este 7. Dac neuit m ³i lamatricea de control al parit µii al acestui exemplu
H =
0 0 0 1 1 1 10 1 1 0 0 1 11 0 1 0 1 0 1
, (3.11)
se veri�c u³or c liniile celor dou matrici sunt ortogonale, adic
G ·Ht = 0,
de unde rezult c toate cuvintele de cod veri�c ecuaµia H · xt = 0.Am v zut deja c , acest cod poate detecta dou erori ³i poate corectao eroare. Se vede deci c , de³i atât acest cod, cât ³i cel de la exemplulanterior 5 corecteaz o eroare ³i detecteaz dou , acest cod este totu³imai bun, deoarece raportul informaµiei utile în cuvintele de cod este maimare � 4/7 faµ de numai 3/6. Codul acesta nu este sistematic, a³a cumse vede din structura matricii H, care nu are forma standard.
S menµion m c , pentru un cod dat nici matriceaH nici matriceaG nu esteunic . Într-adev r, baza unui (sub-)spaµiu vectorial nu este unic . Este u³orde v zut c , permutând liniile matricii H (sau G) respectiv prin transform riale acestora elementare (adunarea unei linii la alta etc.) codul nu se schimb :C = kerH = Im G � în termenii algebrei liniare a aplicaµiilor liniare de�nitede matricile G ³i H � r mâne neschimbat. Totu³i, dac permut m coloaneleacestor matrici, codul se schimb .
De�niµie 3.4.8. Dou coduri liniare C ³i C ′ de acela³i tip (n, k) se numesccoduri echivalente, dac exist o permutare a indicilor σ : {1, 2, . . . , n} −→{1, 2, . . . , n}, astfel ca
(x1, x2, . . . , xn) ∈ C ⇔ (xσ(1), xσ(2), . . . , xσ(n)) ∈ C ′
pentru orice cuvânt cod.
Pentru coduri liniare distanµa minim se poate calcula mai simplu.
Observaµie 3.4.9. Distanµa minim d a unui cod liniar C este m sura ceamai mic a unui cuvânt de cod din C.
Într-adev r, s observ m c distanµa este invariant la translaµie, adic d(x, y) = d(x+ z, y + z). De aici rezult d(x, y) = d(x− y, 0) = w(x− y).
De�niµie 3.4.10. Un cod liniar de lungime n, de dimensiune k ³i de distanµ minim d se nume³te cod de tip (n, k, d).
3.4. CODURI LINIARE 155
S not m cu mld(H) (Minimal Linear Dependent) num rul minim alcoloanelor liniar dependente ale lui H. Avem urm toarea propoziµie.
Propoziµie 3.4.11. Fie H matricea de control al parit µii unui cod liniar Cde 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.
Demonstraµie. Punctul 1 ³i 2 este evident din de�niµia lui mld(H) respectiva matricii H. Pentru a demonstra punctul 3, s not m coloanele matricii Hcu c1, c2, . . . , cn. Pentru un cuvânt de cod x = (x1, x2, . . . , xn) ∈ C avemH · xt = x1c1 + x2c2 + . . .+ xncn = 0. Dac µinem cont de observaµia 3.4.9 dela pagina 154, rezult d = mld(H).
Acum punctul cod:mld4 este o consecinµ a punctelor precedente. Într-adev r, k = n−rank(H) ≤ n−mld(H)+1 = n−d+1, ³i de aici d ≤ n−k+1.
3.4.1 Margini pentru coduri liniare
Pentru coduri liniare se pot stabili ³i alte relaµii limitative între parametrii aces-tora, respectiv unele dintre acestea constituie condiµii su�ciente de existenµ pentru coduri liniare având parametrii daµi.
Propoziµie 3.4.12.
1. marginea Gilbert-Varshamov : Dac avem
qn−k >
d−2∑i=0
Cin−1(q − 1)i,
atunci exist un cod liniar de tipul (n, k) care are distanµa minim celpuµin d.
2. marginea Plotkin : Pentru orice cod liniar este valabil inegalitatea
d ≤ nM(q − 1)
(M − 1)q.
156 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Demonstraµie. Demonstraµia punctului 1 se face prin a ar ta c se poate con-strui o matrice de control al parit µii H care s de�neasc un cod cu propri-etatea cerut . Alegem mai întâi d − 1 vectori coloan liniar independenµi dinFn−kq , lucru posibil datorit punctului 4 din propoziµia 3.4.11 de la pagina 155.
Acum prin inducµie, dac am ales deja j − 1 ≥ d− 1 coloane astfel ca oricared− 1 dintre ele sunt liniar independente atunci num rul tuturor combinaµiilorliniare ale a cel mult d− 2 vectori din ace³ti j − 1 este
d−2∑i=0
Cij−1(q − 1)i,
deci conform ipotezei (³i a faptului c coe�cienµii binomiali sunt cresc tori înraport cu indicele inferior) rezult c alegerea unor noi vectori este posibil pân valoarea lui j − 1 ajunge la n− 1, adic valoarea lui j devine n.
S demonstr m acum punctul 2. Fie C un cod liniar de tipul (n, k) pesteFq ³i �e indicele i, 0 ≤ i ≤ n ales astfel ca exist în codul C un cuvânt decod al c rui element de ordinul i este nenul. S not m cu Ci subspaµiul lui Cformat din cuvintele care au zero pe poziµia i. Spaµiul factor C/Ci are evidentq elemente. Dac num rul total al cuvintelor de cod este M = |C| = qk undek este dimensiunea codului, atunci qk−1 = qk/q = M/|Ci| = |C/Ci|, deci Ci
are qk−1 elemente. Suma total a m surilor cuvintelor de cod nu dep ³e³tenqk−1(q−1). Num rul cuvintelor de cod nenule este evident qk−1. Avem deci
nqk−1(q − 1) ≥ suma m surilor cuvintelor de cod ≥ d(qk − 1).
De aici obµinem
d ≤ nqk−1(q − 1)
qk − 1=
nqk(q − 1)
q(qk − 1)=
nM(q − 1)
(M − 1)q.
3.4.2 Codi�carea ³i decodi�carea codurilor liniare
Fie C un cod liniar de tip (n, k) peste un corp �nit Fq de�nit cu ajutorulmatricii de control al parit µii H.
Codi�carea este simpl . Dac codul este sistematic, atunci se construie³teimediat matricea generatoare a codului, ³i codi�carea se reduce la înmulµireamatricial a p rµii utile a mesajului conform propoziµiei 3.4.2 de la pagina 148.Dac codul nu este sistematic se rezolv sistemul de ecuaµii omogen H ·xt = 0unde rank(H) = n− k în raport cu n− k variabile, ³i partea util a mesajuluipoate � mapat pe cei k parametrii ai soluµiei. În alµi termeni, se determin
3.4. CODURI LINIARE 157
o baz a nucleului ker(H) care va constitui matricea generatoare a codului.Codi�carea este atunci din nou o înmulµire matricial .
Decodi�carea în ambele cazuri începe prin înmulµirea matricial s = H ·yt,unde y este mesajul recepµionat. Dac rezultat este s = 0, atunci y = x ∈ C,³i dând la o parte simbolurile de control, avem mesajul util transmis.
Ce se întâmpl îns dac s = 0, adic y = x pentru �ecare cuvânt de codx? Iat un algoritm "simplu" de decodi�care. Mai întâi trebuie s introducemo m sur a erorii prin urm toarea de�niµie.
De�niµie 3.4.13. Dac vectorul recepµionat este y atunci vectorul
S(y) = H · yt
se nume³te sindromul lui y.
Cu ajutorului sindromului putem construi un algoritm de decodi�care acodului liniar C. S observ m c , dac e = y − x este eroarea propriu zis produs în procesul transmisiei mesajului x, atunci sindromul lui y este ³isindromul erorii! Într-adev r, H · e = H · (y− x) = H · y−H · x = H · y− 0 =H · y. A³adar mulµimile de vectori y + C ³i e + C coincid, y + C = e + C, ³ireprezint clasa de echivalenµ a mesajului recepµionat în raport cu subspaµiulC. Bineînµeles sindromul este nul exact atunci când H · y = 0, adic y estecuvânt de cod.
Dac ne aducem aminte c , am f cut ipoteza c erori mai multe sunt maipuµin probabile, eroarea cea mai probabil trebuie identi�cat cu vectorul eavând acela³i sindrom cu y, dar care are m sura Hamming cea mai mic !
Iat deci algoritmul. Întocmim un tabel (se nume³te tabela Slepian) cutoate clasele de echivalenµ y+C � pentru �ecare sindrom posibil avem o clas � ale vectorilor din Fn
q , desemnând drept reprezentanµi vectorul de m sur Hamming cea mai mic . C ut m apoi în acest tabel mesajul recepµionat ³iidenti�c m reprezentantul e al clasei în care se a� . Cuvântul de cod trimiscel mai probabil este x = y − e.Se cuvine s d m ³i un exemplu concret. S întocmim tabela Slepian pentruunul din codurile date în exemplele 3.4.7 de la pagina 150. Normal, alegemcodul de lungime minim ... deci exemplul 5. Iat tabelul (incomplet; clasele deechivalenµ se a� pe coloane, prima coloan este C, conµine vectorii codului):
158 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
A 000 001 010 011 100 101 110 111
B 000000 000001 000010 100000 000100 010000 001000 001001C 001110 001111 001100 101110 001010 011110 000110 000111
010101 . . . . . . .011011 . . . . . . .100011 . . . . . . .101101 . . . . . . .110110 . . . . . . .111000 . . . . . . .
A. sindromulB. reprezentanµii claselor, codurile de m sur minim C. celelalte elemente ale claselor (tabel incomplet)
Oricum, tabelul este necesar doar pentru a selecta din �ecare clas deechivalenµ (coloan ) vectorul de m sur Hamming minim (sau unul dintreace³tia în cazul în care exist mai mulµi vectori de m sur minim ) S pre-supunem c am recepµionat mesajul y = (1, 1, 0, 0, 0, 1). Cum îl decodi�c m?Calcul m mai întâi sindromul s = S(y) prin
S(y) = H · yt =
1 1 0 1 0 01 0 1 0 1 00 1 1 0 0 1
·
110001
=
010
.
Sindromul ne�ind nul, s-au produs erori. În tabela Slepian coloana corespun-z toare sindromului calculat este coloana a treia, iar reprezentantul clasei dem sur Hamming minim este e = (0, 0, 0, 0, 1, 0). Cuvântul cod transmis afost (cu mare probabilitate) x = y − e = (1, 1, 0, 0, 1, 1). Aceste este cuvântulde cod (unic) a�at la distanµa Hamming minim faµ de cuvântul recepµionat.
3.5 Coduri liniare speciale
Metoda de decodificare descris în secµiunea precedent are o impor-tanµ mai mult de principiu. În practic , pentru coduri mai lungi tabelul
Slepian este foarte mare, în plus selectarea reprezentantului de m sur minim este de asemenea problematic . Metode mai e�ciente de decodi�care presupunpropriet µi speciale pentru codurile liniare folosite. În secµiunea care urmeaz facem cuno³tinµ cu câteva astfel de coduri.
3.5. CODURI LINIARE SPECIALE 159
3.5.1 Coduri Hamming
De�niµie 3.5.1. Fie n = 2m − 1,m ≥ 2, q = 2, ³i �e matricea H de tipulm× (2m − 1) construit din toµi vectorii coloan binari nenuli de lungime m.Codul liniar binar de�nit de matricea H se nume³te cod Hamming binar , ³i senoteaz cu Cm.
Mai general, dac q = 2, atunci matricea H construit similar din toµivectorii nenuli de lungime m � dintre perechile de vectori în care unul este unmultiplu scalar al celuilalt reµinându-se numai unul � se nume³te cod Hamming .
Codul Cm este deci un cod liniar binar, de tipul (2m − 1, 2m − 1 −m, 3).Într-adev r, deoarece 1 + 2 = 3 (sic! � egalitatea trebuie v zut totu³i înreprezentarea binar ), num rul minim de coloane liniar dependente este 3, deciconform punctului 3 din propoziµia 3.4.11 de la pagina 155, distanµa minim a codului este d = 3. Astfel codul Hamming Cm detecteaz dou erori ³icorecteaz una, conform observaµiei 3.3.6 de la pagina 147. Mai general, codulHamming peste corpul Fq este un cod liniar de tipul ((qm − 1)/(q − 1), (qm −1)/(q − 1) −m, 3). S remarc m, c un cod Hamming este de�nit practic denum rul m (³i bineînµeles corpul de scalari dat de q).
D m ca exemplu codul C3, matricea de veri�care a parit µii ³i matriceade generare a acestuia. Vom folosi programul GAP, mai precis un pachetspecializat al acestuia, GUAVA, conceput pentru ca suport pentru cercet riîn coduri algebrice corectoare de erori (vezi ³i secµiunea 3.6 pentru mai multedetalii).
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 11 . 1 . 1 . 1gap> 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 parit µii 3.11 din exemplul 6 de lapagina 153, reluat de la exemplul introductiv de la începutul acestui capitol.
Analogia cu descoperirea monezii false descris acolo constituie cheia algo-ritmului de decodi�care pentru orice cod Hamming Cm: sindromul s = S(y)
160 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
� în cazul în care nu este nul � citit în baza doi, este num rul de ordineal simbolului recepµionat eronat (vezi secµiunea 3.6 pentru tabela Slepian alacestui cod)!
Ideea bitului de paritate ad ugat la vectorul biµilor utili poate � fructi�catmai general. Dac aplic m aceast idee unui cod liniar de tip (n, k, d) obµinemun nou cod liniar de lungime n + 1, unde ultimul simbol este suma negativ a simbolurilor cuvântului de cod. În termenii matricii de veri�care a parit µii,acest mecanism este descris în de�niµia care urmeaz .
De�niµie 3.5.2. Dac complet m matricea de veri�care a parit µii H a unuicod liniar C de tipul (n, k, d) cu o coloan de zerouri, apoi cu o linie de 1,atunci obµinem o matrice H care de�ne³te codul extins al codului C.
Astfel matricea de control al parit µii pentru codului extins al codului C3
este
H =
1 1 1 1 1 1 1 10 0 0 1 1 1 1 00 1 1 0 0 1 1 01 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 veri�care a parit µii în forma
standard (partea dreapt este matricea unitate).
gap> C_3ext:=ExtendedCode(C_3);a linear [8,4,4]2 extended codegap> Display(CheckMat(C_3ext));. 1 1 1 1 . . .1 . 1 1 . 1 . .1 1 . 1 . . 1 .1 1 1 . . . . 1gap> Display(GeneratorMat(C_3ext));1 1 1 . . . . 1. 1 1 1 1 . . .. . 1 . 1 1 . 1. . . 1 1 1 1 .
Pe lâng extinderea unui cod, mai avem la dispoziµie ca mecanism de generarede noi coduri, considerarea codului dual, conform de�niµiei 3.4.4 de la pagina149. Folosind acest mecanism, avem urm toarele coduri.
De�niµie 3.5.3. Codul dual al codului Hamming binar Cm de tipul (2m −1, 2m − 1−m, 3) se nume³te codul binar simplex .
3.5. CODURI LINIARE SPECIALE 161
Parametrii acestuia sunt (2m − 1,m, 2m−1).
gap> C_BinSim:=DualCode(C_3);a linear [7,3,4]2..3 dual codegap> CoveringRadius(C_BinSim);3gap> Display(CheckMat(C_BinSim));1 1 1 . . . .1 . . 1 1 . .. 1 . 1 . 1 .1 1 . 1 . . 1gap> Display(GeneratorMat(C_BinSim));. 1 1 1 1 . .1 . 1 1 . 1 .1 1 . 1 . . 1
De�niµie 3.5.4. Consider m codul extins Hamming, având tipul (2m, 2m −1 − m, 4). Codul dual al acestui cod se nume³te cod Reed-Muller de ordinulîntâi.
Parametrii acestui cod sunt (2m,m+ 1, 2m−1).
gap> C_RM:=DualCode(C_3ext);a linear [8,4,4]2 dual codegap> IsSelfDualCode(C_RM);truegap> 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
De�niµie 3.5.5. Un cod C ⊂ Fnq liniar se nume³te cod ciclic, dac permut rile
ciclice ale cuvintelor de cod sunt tot cuvinte de cod. În formule, aceast inva-rianµ a mulµimii C la permut rile ciclice se exprim astfel:
(c0, c1, . . . , cn−1) ∈ C ⇒ (cn−1, c0 . . . , cn−2) ∈ C.
162 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Fie c = (c0, c1, . . . , cn−1) un vector din Fnq . Introducem notaµia Z(c) =
(cn−1, c0, . . . , cn−2) pentru permutatrea ciclic a elementelor vectorului c. Dac identi�c m spaµiul vectorial Fn
q cu spaµiul factor al polinoamelor cu coe�-cienµi în Fq cu idealul generat de polinomul Xn − 1, deci cu spaµiul vectorialFq[X]/(Xn − 1), atunci se vede c permutarea ciclic a elementelor unui vec-tor, descris de aplicaµia liniar Z corespunde în acest spaµiu înmulµirii cu X,modulo Xn − 1.
Avem în propoziµia care urmeaz o caracterizare natural a codurilor ciclice.Fie C ⊂ Fn
q un cod ciclic. S de�nim aplicaµia
f : C −→ Fq[X]/(Xn − 1)
c = (c0, c1, . . . , cn−1) ∈ C −→ c0 + c1X + . . .+ cn−1Xn−1 ∈ Fq[X]/(Xn − 1).
Aplicaµia f este evident liniar ³i bijectiv . S observ m ³i faptul c , inelulFq[X]/(Xn − 1) este inel principal. Orice ideal al lui este generat de (imag-inea unui-) un singur polinom, i.e. este format din toµi multiplii acestuia.Într-adev r, preimaginea unui ideal al inelului factor este ideal în Fq[X], care�ind ideal principal, este generat de un polinom. Idealul din inelul factor estegenerat astfel de imaginea acestui polinom.
Propoziµie 3.5.6. Codul liniar C este ciclic exact atunci când imaginea luieste ideal în inelul factor Fq[X]/(Xn − 1) (polinoame modulo Xn − 1).
Demonstraµie. Deoarece Xn = 1 mod (Xn − 1), avem
f(Z(c)) = cn−1 + c0X + . . .+ cn−2Xn−1 mod (Xn − 1)
= cn−1Xn + c0X + . . .+ cn−2X
n−1 mod (Xn − 1)
= X · f(c) mod (Xn − 1).
Astfel f(C) este ideal în Fq[X]/(Xn − 1).Invers, dac f(C) este ideal în Fq[X]/(Xn − 1), atunci în particular în-
mulµirea cu X transform un element
c0 + c1X + . . .+ cn−1Xn−1 ∈ Fq[X]/(Xn − 1)
într-un element
X(c0 + c1X + . . .+ cn−1Xn−1) =
= c0X + c1X2 + . . .+ cn−1X
n
= cn−1 + c0X + . . .+ cn−2Xn−1 ∈ Fq[X]/(Xn − 1)
deci odat cu c ∈ C avem ³i Z(c) ∈ Fnq . Acum dac f(C) este generat de
polinomul g, de grad m, atunci unui cod c ∈ C îi corespunde f(c) = h · g
3.5. CODURI LINIARE SPECIALE 163
mod (Xn − 1), deci orice cod este multiplu mod (Xn − 1) al polinomuluig. În particular, codul 0 reprezentat ³i de polinomul Xn − 1 este multiplu (mod (Xn − 1)) al polinomului g, deci g|(Xn − 1). Într-adev r, dac cel maimare divizor comun (g,Xn − 1) = d este un polinom de grad strict mai micdecât m, atunci d = gh + (Xn − 1)p = gh mod (Xn − 1) deci d ∈ f(C) încontradicµie cu alegerea generatorului idealului f(C). Deci (g,Xn − 1) = gadic g|(Xn−1). Dac polinomul g este ³i monic (i.e. coe�cientul lui Xm este1), atunci ele este unic.
În felul acesta aplicaµia f identi�c cuvintele de cod din C cu polinoamede grad cel mult n− 1 cu coe�cienµi din Fq. Vom face aceast identi�care f r s ne mai referim la aplicaµia f , prin urmare putem spune (în sensul acesteiidenti�c ri) c C este un ideal în Fq[X]/(Xn − 1).
S presupunem în continuare faptul c n ³i q sunt relativ prime, (n, q) = 1.
De�niµie 3.5.7. Polinomul g care genereaz idealul C în inelul factorFq[X]/(Xn − 1), se nume³te polinom generator al codului C.
A³adar polinomul generator al codului ciclic C de lungime n este un divizoral polinomului Xn − 1. S calcul m matricea generatoare a acestui cod liniarciclic C.
Propoziµie 3.5.8. Fie C un cod liniar ciclic de lungime n ³i dimensiune k,generat de polinomul g = g0 + g1X + . . .+ gmXm de grad m = n− k. Atuncimatricea generatoare a codului C este
G =
g0 g1 . . . gm 0 . . . 00 g0 . . . gm−1 gm . . . 0. . . . . . .0 0 . . . g0 g1 . . . gm
,
matrice având k linii.
Demonstraµie. Ideea construcµiei acestei matrici este înmulµirea polinomuluigenerator cu X. Cu un u³or abuz de notaµie putem scrie deci
G =
gXg...
Xk−1g
164 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
S ar t m c aceast matrice genereaz codul C. Codul �ind ciclic, ³iprima linie a matricii �ind cuvânt de cod, rezult c celelalte k − 1 linii sunttot cuvinte de cod. Mai avem de ar tat c ultima linie permutat ciclic estetot cuvânt de cod.
Pentru aceasta s observ m c , exist un polinom h de grad k
h = h0 + h1X + . . .+ hkXk,
unde deci hk = 0, astfel ca Xn − 1 = g · h, sau g · h = 0 mod (Xn − 1). Scris aceast egalitate mai explicit este potrivit pentru exprimarea lui Xkg:
Xkg = − 1
hk(h0g + h1(Xg) + . . .+ hk−1X
k−1g),
ceea ce este o combinaµie liniar a celor k linii ale matricii G. Mai avem demenµionat c în mod vizibil � gm = o � matricea G are rangul k, deci estematrice generatoare pentru codul C.
S mai facem o observaµie: �e informaµia util α = (α0, α1, . . . , αk−1). S calcul m α ·G. Avem
α ·G =(α0 α1 . . . αk−1
)·
gXg...
Xk−1g
= α0g + α1Xg + . . .+ αk−1X
k−1g
= f(α)g.
Pe scurt, putem a�rma:
Propoziµie 3.5.9. Codi�carea mesajului α este înmulµirea "polinomului" α cugeneratorul codului g.
Cu alte cuvinte operaµia de codi�care este o înmulµire polinomial ! Co-durile liniare ciclice sunt într-adev r speciale, ³i au avantaje în aplicaµii carecer o codi�care rapid .
S vedem cum se face decodi�care în cazul codurilor liniare ciclice. Începemcu o de�niµie.
De�niµie 3.5.10. Polinomul
h =Xn − 1
g
se nume³te polinom de veri�care a parit µii al codului C.
3.5. CODURI LINIARE SPECIALE 165
Numele acestui polinom este justi�cat în urm toarea propoziµie.
Propoziµie 3.5.11. Fie g ³i h polinomul generator ³i polinomul de veri�carea parit µii respectiv pentru un cod liniar ciclic C. Atunci
c ∈ C ⇔ c · h = 0 mod (Xn − 1).
Demonstraµie. Dac c ∈ C atunci exist un polinom α astfel ca c = α · g.Atunci c · h = α · g · h = α · (Xn − 1) = 0 mod (Xn − 1), ³i invers.
Astfel detectarea erorii este tot o înmulµire polinomial (modulo Xn− 1)!Rezultatul nul semni�c lipsa erorii, iar cel nenul existenµa erorii.
Din egalitatea g · h = Xn − 1 se vede c rolul polinoamelor g ³i h esteinterschimbabil. Mai precis are loc urm toarea propoziµie.
Propoziµie 3.5.12. Fie C un cod liniar ciclic de tip (n, k), ³i �e g polinomuls[u generator. Atunci codul dual C⊥ este un cod ciclic de tip (n, n− k) avândpolinomul generator
h⊥ = Xdeg(h)h(1
X),
unde h = Xn−1g .
Demonstraµie. Not m ca mai înainte h = h0 + h1X + . . . + hk−1Xk−1 ³i c =
c0 + c1X + . . .+ cn−1Xn−1. Coe�cientul lui xi în produsul polinoamelor c · h
este∑n−1
j=0 cjhi−j ³i evident exponenµii puterilor lui x sunt redu³i modulo n.S observ m deci c matricea de veri�care a parit µii codului C este:
0 . . . 0 0 hk 0 . . . h1 h00 . . . 0 hk hk−1 0 . . . h0 0. . . . . . . . .hk . . . h2 h1 h0 0 . . . 0 0
pentru care are loc H · ct = 0 pentru orice cuvânt de cod. Rangul lui H esteîn mod vizibil n− k deci dimensiunea nucleului este n− (n− k) = k, de underezult c H este matricea de veri�care a parit µii pentru codul C generat depolinomul g.
De�niµie 3.5.13. Polinomul hk + hk−1X + . . .+ h0Xk se nume³te polinomul
reciproc al polinomului h.
S d m în sfâr³it ³i un exemplu care se poate urm ri ³i f r suport de calculdeosebit.
166 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Exemplu 3.5.14. Fie q = 2 ³i n = 7. Avem descompunerea X7 − 1 = (X3 +X+1)(X4+X2+X+1). Alegem g = X3+X+1. Atunci h = X4+X2+X+1iar h⊥ = X4 +X3 +X2 + 1. Matricile de generare ³i de veri�care a parit µiiG respectiv H sunt:
G =
1 1 0 1 0 0 00 1 1 0 1 0 00 0 1 1 0 1 00 0 0 1 1 0 1
respectiv
H =
0 0 1 0 1 1 10 1 0 1 1 1 01 0 1 1 1 0 0
.
Cum putem obµine forme canonice pentru matricea generatoare ³i matriceade veri�care a parit µii pentru un cod ciclic C? R spunsul este dat în propoziµiacare urmeaz .
Propoziµie 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 împ rµirilor luiXi la g, i = 0, 1, . . . , (n− 1), respectiv �e g(i) = Xk(Xi − r(i)). Atunci:
1. Matricea de veri�care a parit µii codului C este
H =(r(0) r(1) . . . r(n−1)
),
unde coloanele sunt evident coe�cienµii polinoamelor r(i).
2. Matricea generatoare a lui C este
G =(g(m) g(m+1) . . . g(n−1)
),
unde coloanele sunt coe�cienµii polinoamelor.
Demonstraµie. Pentru a demonstra 1 s observ m c polinoamele X i − r(i)
sunt divizibile cu g, deci Xi− r(i) ∈ C. Polinoamele g(i) mod (Xn−1) sunt liniarindependente ³i formeaz de liniile unei matrici generatoare pentru C. S maiobserv m c aceast matrice va avea ³i forma canonic .
Pentru punctul 2 s observ m c polinoamele r(i) sunt diferite dou câtedou , ³i matricea H are pentru orice cuvânt de cod c proprietatea:
H · ct = c0r0 + c1r1 + . . .+ cn−1rn−1
= c0 + c1X + . . .+ cn−1Xn−1 mod (g)
= 0 mod (g).
3.5. CODURI LINIARE SPECIALE 167
S vedem un exemplu concret pentru toate acestea. Vom face calculele înGUAVA.
gap> x:=Indeterminate(GF(2),"x");xgap> m:=3;3gap> g:=x^m+x+1;x^3+x+Z(2)^0gap> C:=GeneratorPolCode(f,7,GF(2));a cyclic [7,4,1..3]1 code defined by generator polynomial over GF(2)gap> n:=7;7gap> k:=n-m;4gap> IsCyclicCode(C);truegap> GeneratorPol(C);x^3+x+Z(2)^0gap> h:=CheckPol(C);x^4+x^2+x+Z(2)^0gap> 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 . 1gap> 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 1gap> for i in [m..n-1] do
Display(x^k*(x^i-(x^i mod g)) mod (x^n-1));
168 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
od;% matricea G
x^5+x^4+Z(2)^0 % 1 0 0 0 1 1 0x^6+x^5+x % 0 1 0 0 0 1 1x^6+x^5+x^4+x^2 % 0 0 1 0 1 1 1x^6+x^4+x^3 % 0 0 0 1 1 0 1gap> for i in [0..(n-1)] do
Display(x^i mod g);od;
% matricea H^tZ(2)^0 % 1 0 0x % 0 1 0x^2 % 0 0 1x+Z(2)^0 % 1 1 0x^2+x % 0 1 1x^2+x+Z(2)^0 % 1 1 1x^2+Z(2)^0 % 1 0 1
A³adar matricea generatoare în forma canonic a codului C este
G =
1 0 0 0 1 1 00 1 0 0 0 1 10 0 1 0 1 1 10 0 0 1 1 0 1
=(I4 A
).
Este interesant s remarc m � m car ³i pentru frumuseµea leg turilor dintre"teoria corpurilor de numere �nite" ³i teoria codurilor corectoare de erori �urm torul fapt:
Propoziµie 3.5.16. Codurile binare Hamming sunt ciclice.
Demonstraµie. Consider m corpul �nit Fq = GF (q), unde q = 2m. Grupulmultiplicativ F ∗
q al acestui corp se poate scrie cu ajutorul unui element primitivα sub forma mulµimii puterilor acestuia, (vezi spre exemplu tabelele exemplelorde corpuri 3.2.2, de la paginile 116, 117, 119, 121 respectiv). A³adar �ecareputere a elementului primitiv se poate scrie astfel
αi = a0 + a1α+ a2α2 + . . .+ am−1α
m−1.
Matricea format din ace³ti coe�cienµi scri³i pe coloane este
H =(1 α α2 . . . α2m−1
),
o matrice de tip (m, 2m − 1) ³i conµine toµi vectorii binari nenului de lungimem. Codul de�nit de H este deci codul Hamming de tipul (2m − 1,m, 3)!
3.5. CODURI LINIARE SPECIALE 169
Un vector de lungime n = 2m−1, c = (c0, c1, . . . , cn−1), este cuvânt de coddac H · ct = 0, adic în termenii polinomiali c(α) = 0. S ne aducem aminteacum c α este r d cin numai pentru polinoamele multiplii ai polinomului s uminimal � s -l not m pe acesta acum g � deci g|c, adic codul C este generatde g!
S amintim f r demonstraµie ³i propoziµia
Propoziµie 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?
Propoziµie 3.5.18. Fie codul liniar ciclic C generat de polinomul g, matriceade veri�care a parit µii H. Atunci sindromul S(y) al unui mesaj recepµionat yare proprietatea
S(y) = y mod (g).
Prin urmare dac diferenµa e = y − c faµ de un cuvânt de cod c este eroareaprodus în cursul transmisiei, atunci S(y) = S(e). Dac în plus algem cuvântulde cod c astfel ca deg(e) < deg(g), atunci S(y) = e.
Demonstraµie. Fie y = (y0, y1, . . . , yn−1). Atunci
S(y) = H · yt = y0r0 + y1r1 + . . .+ yn−1rn−1
= y0 + y1X + . . .+ yn−1Xn−1 mod (g)
= y mod (g).
Pe baza acestei propoziµii se observ deci c sindromul cuvântului y estenul exact atunci când polinomul y este nul mod y. A³adar în loc s înmulµimmesajul recepµionat cu polinomul de veri�care a parit µii h putem împ rµi cupolinomul de generare g. Mai mult, deoarece codul este ciclic dintr-un singurreprezentant al unei clase de echivalenµ se pot obµine toate prin înmulµire modXn − 1. Toate acestea se pot însuma în urm torul algoritm de decodi�care:
Propoziµie 3.5.19. Fie C un cod ciclic de lungime n generat de polinomul gpeste un corp �nit Fq. S presupunem c C poate corecta t erori.
1. Detectarea erorii. Împ rµim mesajul recepµionat y la polinomul g, ³ireµinem restul r. Avem deci r = S(y) = S(e) = e, unde vectorul e esteeroarea cea mai probabil .
170 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
2. Corectarea erorii.Calcul m si = Xir( mod g) pentru toµi i : 0 ≤ i ≤(n−1). Dac în lista si se g se³te un cuvânt sj de m sur Hamming maimic decât t, atunci eroarea cea mai probabil este Xn−jsj mod (Xn−1).În caz contrar eroarea nu poate � corectat .
Exemple 3.5.20. Iat ³i dou exemple de calcul comentate.
• S consider m un polinom divizor al polinomului x7 − 1. Pentru aceastadescompunem polinomul x7 − 1 în factori...bineînµeles 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 = x3 + x+ 1.
gap> x:=Indeterminate(GF(2),"x");xgap> g:=x^3+x+1; % polinom generatorx^3+x+Z(2)^0gap> C:=GeneratorPolCode(g,7,GF(2)); % cod ciclic generata cyclic [7,4,3]1 code defined by generator pol. over GF(2)gap> MinimumDistance(C);3gap> 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 recepµionatx^6+x^4+x^3+x+Z(2)^0gap> r:=p mod g;x+Z(2)^0gap> 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 171
1 x^2+x2 x^2+x+Z(2)^03 x^2+Z(2)^04 Z(2)^0 % pol. m s. minim ,5 x % sau,6 x^2 % sau.gap> e:=x^3*(x^4*r mod g) mod (x^7-1); % polinom eroare...x^3gap> e:=x^2*(x^5*r mod g) mod (x^7-1); % sau...x^3gap> e:=x*(x^6*r mod g) mod (x^7-1); % sau.x^3gap> p-e;x^6+x^4+x+Z(2)^0; % mesaj corectat
• S consider m un polinom divizor al polinomului x15−1. Descompunem� tot cu ajutorul GAP � polinomul x7 − 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 = (x4 + x+ 1) · (x4 + x3 + x2 + x+ 1) = x8 + x7 + x6 + x4 + 1.
gap> g:=x^8+x^7+x^6+x^4+1; % polinom generatorx^8+x^7+x^6+x^4+Z(2)^0gap> C:=GeneratorPolCode(g,15,GF(2)); % cod ciclic generata cyclic [15,7,1..5]3..5 code defined by gen. pol. over GF(2)gap> MinimumDistance(C); % distanµa minim 5gap> Display(GeneratorMat(C));1 . . . 1 . 1 1 1 . . . . . .. 1 . . . 1 . 1 1 1 . . . . .. . 1 . . . 1 . 1 1 1 . . . .. . . 1 . . . 1 . 1 1 1 . . .
172 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
. . . . 1 . . . 1 . 1 1 1 . .
. . . . . 1 . . . 1 . 1 1 1 .
. . . . . . 1 . . . 1 . 1 1 1gap> 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 recepµionatx^5+x^4+x^3+Z(2)^0gap> r:=p mod g;x^5+x^4+x^3+Z(2)^0gap> for i in [0..14] do Print(i," ",x^i*r mod g,"\n"); od;0 x^5+x^4+x^3+Z(2)^01 x^6+x^5+x^4+x2 x^7+x^6+x^5+x^23 x^4+x^3+Z(2)^04 x^5+x^4+x5 x^6+x^5+x^26 x^7+x^6+x^37 x^6+Z(2)^0 % m sur minim (2)8 x^7+x % sau... (tot 2)9 x^7+x^6+x^4+x^2+Z(2)^010 x^6+x^5+x^4+x^3+x+Z(2)^011 x^7+x^6+x^5+x^4+x^2+x12 x^5+x^4+x^3+x^2+Z(2)^013 x^6+x^5+x^4+x^3+x14 x^7+x^6+x^5+x^4+x^2gap> e:=x^(15-7)*(x^7*r mod g) mod (x^15-1); % eroarea prob.,x^14+x^8gap> e:=x^(15-8)*(x^8*r mod g) mod (x^15-1); % sau...x^14+x^8gap> p-e; % mesaj trimisx^14+x^8+x^5+x^4+x^3+1
3.5. CODURI LINIARE SPECIALE 173
3.5.3 Coduri BCH
Printre codurile ciclice cele mai performante se num r codurile BCH. Avan-tajulprincipal pe care-l prezint aceste coduri este faptul c distanµa minim a lor poate � prev zut de la început prin construcµia codului.
Începem scurta lor prezentare prin intermediul unui exemplu, care dezv luieoarecum ideea care se a� în spatele construcµiei acestor coduri.
Plec m cu ideea aritmeticii binare ³i a codurilor Hamming, de�nite dematrici de veri�care a parit µii care conµin pe coloan toate numerele nenulepân la 2m− 1, pentru un m dat. �tim c aceste coduri au distanµa minim 3,deci detecteaz dou erori ³i corecteaz una. Sindromul unei erori este chiarnum rul de ordine al simbolului eronat. S alegem m = 4, ³i deci "numerele"corpului �nit GF(24) de 16 elemente.
S ne propunem construirea unui cod care corecteaz dou erori! Pentruaceasta este natural încercîm dublarea num rul liniilor matricii de veri�carea parit µii codului Hamming de lungime 15 = 24 − 1, în ideea de a aveaun sindrom al erorii mai bogat în informaµie. S consider m deci un cod cumatricea de detectare a erorii de tipul urm tor:
H =
(1 2 . . . 15
f(1) f(2) . . . f(15)
),
unde numerele se înµeleg în forma binar scrise pe coloan , iar funcµia f ne-precizat urmeaz s �e aleas corespunz tor. S presupunem c vectorul yrecepµionat nu conµine eroare. Atunci sindromul S(y) =
(0 f(0)
), ³i nu
avem nevoie de funcµia f . S presupunem acum c avem exact o eroare înpoziµia i. Acum sindromul este S(y) =
(i f(i)
). Funcµia f trebuie aleas
astfel c , dac pentru sindromul mesajului recepµionat valoarea acestei funcµiipentru prima jum tate a sindromului este egal cu cea de a doua jum tate, s putem ³ti c avem o singur eroare!
S presupunem acum c avem exact dou erori, în poziµiile i ³i j respectiv.Atunci sindromul va �
S(y) =
(i+ j
f(i) + f(j)
).
Conform cerinµei precedente funcµia 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 funcµia f(i) = i, dar ³i funcµia f(i) = i2, deoarece în aritmeticabinar (i + j)2 = i2 + j2. Ne trebuie o funcµie deci pentru care sistemul deecuaµii {
i+ j = s1f(i) + f(j) = s2,
174 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
s aib soluµie unic . S facem un experiment cu funcµia f(i) = i3. Avem decide rezolvat sistemul {
i+ j = s1i3 + j3 = s2,
Avem îns (i+ j)3 = i3+ j3+ ij(i+ j), deci i ³i j sunt r d cini ale unei ecuaµiide gradul doi (s1 = 0):
X2 + s1X +s31 − s2
s1= 0. (3.12)
Acum deoarece totul se întâmpl într-un corp de numere, este valabil "teoriaecuaµiei de gradul doi" adic : dac discriminantul ecuaµiei este p trat perfectnenul, avem dou soluµii diferite, deci dou erori! Dac discriminantul este nul,avem o singur r d cin , deci suntem în cazul unei singure erori. Ca bonus,am obµinut ³i situaµia a patra neconsiderat înc , a unui num r de erori maimare decât doi: dac discriminantul ecuaµiei nu este p trat perfect, avem 3sau mai multe erori.
Observaµie 3.5.21. S observ m c , folosirea polinomului reciproc polinomu-lui 3.12 adic a polinomului
1 + s1X +X2 s31 − s2s1
= 0 (3.13)
este mai convenabil , deoarece gradul acestuia arat direct num rul erorilor:pentru dou erori acesta are gradul doi, pentru o eroare are gradul unu, iarpentru nici o eroare este constant.
S d m acum de�niµia general a codurilor BCH. Începem cu o teorem care pune bazele de�niµiei acestor coduri. O d m aici f r demonstraµie.
Teorem 3.5.22. Fie c, d, n, q ∈ N, q = pn, p un num r prim, ³i 2 ≤ d ≤ n.Fie m ordinul multiplicativ al lui num rului q mod n. Fie de asemenea ζ or d cin primitiv de ordin n în corpul �nit Fqm ³i �e mζi polinomul minimalal lui ζi. Not m cu I mulµimea I = {c, c + 1, . . . , c + d − 2}. Fie în sfâr³it Cun cod ciclic de lungime n peste corpul Fq.
Sunt echivalente urm toarele a�rmaµii:
1. c ∈ C ⇔ c(ζi) = 0, pentru orice i ∈ I.
2. Polinomul generator al codului C este cel mai mic multiplu comun alpolinoamelor mζi , i ∈ I.
3.5. CODURI LINIARE SPECIALE 175
3. Matricea de veri�care a parit µii codului C este
H =
1 ζc . . . ζc(n−1)
1 ζc+1 . . . ζ(c+1)(n−1)
1...
. . ....
1 ζc+d−2 . . . ζ(c+d−2)(n−1)
De�niµie 3.5.23. Codul C care are propriet µile din propoziµia precedent se nume³te cod BCH (dup numele celor trei descoperitori, Bose, Chaudhuri,Hocquenghem). Distanµa minim a acestui cod � datorit chiar construcµieilui � este cel puµin d, ³i se nume³te distanµ proiectat .
Dac c = 1 atunci spunem c C este cod BCH în sens restrâns.Dac n = qm − 1, codul C se nume³te primitiv .
De�niµia dat codului BCH este justi�cat de urm toarea propoziµie.
Propoziµie 3.5.24. Fie C un cod BCH cu distanµa proiectat d. Atunci dis-tanµa minim a codului C este cel puµin d.
Demonstraµie. Trebuie s ar t m c matricea de control al parit µii H al co-dului C are cel mult d − 1 coloane liniar dependente peste corpul GF(pm),conform punctului 3 din propoziµia 3.4.11 de la pagina 155. S alegem d − 1coloane arbitrare. Fie primele elemente ale ale acestora
ζci1 , ζci2 , . . . , ζcid−1 .
Subdeterminantul de ordinul d− 1 este
ζc(i1+i2+...+id−1) ·
∣∣∣∣∣∣∣∣∣1 1 . . . 1ζi1 ζi2 . . . ζid−1
......
. . ....
ζ(d−2)i1 ζ(d−2)i2 . . . ζ(d−2)id−1
∣∣∣∣∣∣∣∣∣= ζc(i1+i2+...+id−1)
∏1≤l<k≤d−1(ζ
ik − ζil) = 0,
deci diferit de 0, ceea ce demonstreaz a�rmaµia propoziµiei.
Cum se face codi�carea ³i decodi�carea codurilor BCH? Fie x un cuvântde cod ³i �e y cuvântul recepµionat. S not m ca de obicei vectorul de eroarecu e = w − v. Fie ζ o r d cin primitiv a unit µii de ordin n. Sindromul luiy este:
S(y) = H · yt =(Sc Sc+1 . . . Sc+d−2
)t,
176 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
undeSj = y(ζj) = x(ζj) + e(ζj), c ≤ j ≤ c+ d− 2.
Fie exprimarea lui e sub forma polinomial
e = ei1Xi1 + ei2X
i2 + . . .+ eirXir , (eik = 0, pentru orice 1 ≤ k ≤ r).
Presupunem c r ≤ (d− 1)/2, deci avem ³i 2r ≤ d. Deoarece x(ζj) = 0 pentruorice c ≤ j ≤ c+ d− 2 putem scrie sitemul de ecuaµii
Sj = e(ζij) = ei1ζi1j + ei2ζ
i2j + . . .+ eirζirj = 0,
unde necunoscutele sunt coe�cienµii eik . S de�nim
s = (X − ζi1) · (X − ζi2) · . . . · (X − ζir)= s0 + s1X + . . .+ sr−1X
r−1 +Xr,
de unde putem scrie
s0 + s1ζik + . . .+ sr−1ζ
ik(r−1) + ζikr = 0, pentru orice 1 ≤ k ≤ r.
Dac înmulµim aceste ecuaµii cu eikζikj ³i adunând ecuaµiile obµinem sistemul
de ecuaµii
s0Sj + s1Sj+1 + . . .+ sr−1Sr+j−1 + Sr+j = 0, j = c, c+ 1, . . . , c+ r − 1,
unde necunoscutele sunt coe�cienµii s0, s1, . . . , sr−1. Matricea acestui sistemde ecuaµii este
S =
Sc Sc+1 . . . Sc+r−1
Sc+1 Sc+2 . . . Sc+r...
.... . .
...Sc+r−1 Sc+r . . . Sc+2r−2
.
S remarc m c S = V DV t, unde
V =
1 1 . . . 1ζi1 ζi2 . . . ζir
1...
. . ....
ζ(r−1)i1 ζ(r−1)i2 . . . ζ(r−1)ir
³i
D =
ei1ζ
ci1 0 . . . 00 ei2ζ
ci2 . . . 0...
.... . .
...0 0 . . . eirζ
cir
.
S observ m acum c det(S) = 0 ⇔ det(V ) = 0 ⇔ i1, i2, . . . , ir sunt distinctedou câte dou .
Astfel avem urm torul algoritm de decodi�care a codurilor BCH.
3.5. CODURI LINIARE SPECIALE 177
Propoziµie 3.5.25 (Decodi�carea codurilor BCH). Fie C un cod BCH cudistanµa proiectat d ≥ 2t+1. Presupunem c într-un cuvânt de cod recepµionaty exist cel mult t erori. Decodi�care va avea urm torii pa³i:
1. Determin m sindromul
S(y) =(Sc Sc+1 . . . Sc+d−2
)t.
2. determin m num rul maxim r ≤ t al ecuaµiilor
s0Sj + s1Sj+1 + . . .+ sr−1Sr+j−1 + Sr+j = 0,
astfel ca matricea sistemului s �e nesingular . Acest num r r este egalcu num rul efectiv de erori în cuvântul recepµionat. Rezolv m acest sis-tem maximal.
3. Determin m r d cinile polinomului
s = s0 + s1X + . . .+ sr−1Xr−1 +Xr.
4. Determin m poziµiile erorilor rezolvând sistemul de ecuaµii
ei1Xi1 + ei2X
i2 + . . .+ eirXir , (eik = 0, pentru orice 1 ≤ k ≤ r).
S d m un exemplu de calcul pentru codi�care ³i decodi�care.
Exemplu 3.5.26. Fie α un element primitiv al corpului GF(24), ³i �e α4 +α+1 = 0. Fie g = x10+x8+x5+x4+x2+x+1 polinomul generator al unui codBCH de tip (15, 5). S presupunem c recepµion m mesajul 110000011010000.S determin m cuvântul de cod transmis ³i mesajul util.
Presupunem cel mult dou erori. Determin m sindromul erorii, deci sin-dromul cuvântului recepµionat.
Si = S(αi) = e(αi) = (αi)i1 + (αi)i2 = X i + Y i,
unde am notat X = αi1 ³i Y = αi2 . Avem
S31 = S3 +XY S1,
de unde obµinem sistemul{X + Y = S1
XY = S2 − S3/S1.
178 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
Vom folosi tabela puterilor elementului primitiv α din corpul �nit GF(24) dela pagina 120. Obµinem pentru cuvântul recepµionat:
S1 = y(α) = α3 + α = α9
S2 = y(α2) = α3
S3 = y(α3) = α3 + α2 + α = α11
S4 = y(α4) = α3
³i avem de rezolvat ecuaµia de gradul doi
z2 + α9z + α3 + α2 + 1 = 0.
R d cinile acestei ecuaµii sunt α2 ³i α11, ³i întru-cât codul este binar, putemspune imediat c avem dou erori, în poziµia 2 ³i 11 respectiv.Cuvântul de cod transmis este deci
111000011011000,
iar mesajul util111000.
3.5.4 Baza Gröbner ³i decodi�carea codurilor BCH
Exist o leg tur profund între codurile algebrice ciclice ³i baza Gröbner ,care este obiectul cercet rilor curente. Nu vom intra în detalii în spaµiul acesteic rµi, îns nu ne putem abµine s nu ilustr m aceast leg tur cu prezentareachiar ³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 (s1, s2, . . . , s2t) vectorul sindromului unui mesaj recepµionat. Ideea (luiCooper) este de a interpreta poziµiile eronate ale mesajului recepµionat dreptr d cinile unui sistem de ecuaµii ale sindromurilor, de forma urm toare:
f1 = ζ1 + ζ2 + . . .+ ζt − s1 = 0
f2 = ζ31 + ζ32 + . . .+ ζ3t − s2 = 0
. . .
ft = ζ2t−11 + ζ2t−1
2 + . . .+ ζ2t−1t − st = 0.
(3.14)
În consecinµ , polinomul ale c rui r d cini sunt erorile mesajului recepµionat,este generatorul idealului principal{
t∑i=1
gifi | gi ∈ F2(s1, s2, . . . , st)[ζ1, ζ2, . . . , ζt]
}∩ F2(s1, s2, . . . , st)[ζ1],
prin urmare poate � calculat cu algoritmul bazei Gröbner ! Aceasta este în liniimari ideea metodei de detectare a eroriilor. S vedem dou exemple concrete.
3.5. CODURI LINIARE SPECIALE 179
Exemple 3.5.27.
• Fie C un cod BCH binar care corecteaz t = 2 erori. Consider m inelulde polinoame P = F2(s1, s2)[z1, z2] ³i idealul
I = (z1 + z2 − s1, z31 + z32 − s2).
Baza Gröbner al idealului I este
{s1z22 + s21z2 + s31 + s2, z1 + z2 + s1}.
Primul polinom d chiar ecuaµia 3.12 de la pagina 174! Iat ³i programulscris în Singular:
ring R=(2,s1,s2),(z1,z2),lp;ideal I=z1+z2-s1,z1^3+z2^3-s2groebner(I);
Astfel exemplul 3.5.26 de la pagina 177 se poate repeta identic aici.
• Fie C un cod BCH binar care corecteaz t = 3 erori. Consider m inelulde polinoame P = F2(s1, s2, s3)[z1, z2, y] ³i idealul
I = (z1 + z2 + z3− s1, z31 + z32 + z33 − s2, z
51 + z52 + z53 − s3).
Baza Gröbner al idealului I este
{(s31 + s2) · z33 + (s41 + s1 ∗ s2) · z23 + (s21 ∗ s2 + s3) · z3+(s61 + s31 ∗ s2 + s1s3 + s22),
(s31 + s2) · z22 + (s31 + s2) · z2 · z3 + (s41 + s1s2) · z2+(s31 + s2) · z23 + (s41 + s1s2) · z3 + (s21s2 + s3),
z1 + z2 + z3 + s1}
Primul polinom are o singur necunoscut z3, ³i este polinomul care aredrept r d cini erorile cuvântului recepµionat. Programul scris în Singularpentru calculul acestui polinom este:
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);
180 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
S mai concretiz m exemplul pentru a simula o eroare, dou erori sautrei erori. Dac codul C este codul BCH de tip (15, 5, 7) ³i polinomulreciproc primului polinom al bazei Gröbner este (dup o normalizare aacestuia)
σ(z) = 1 + s1 · z +s31s2 + s3s31 + s2
· z2 + s61 + s31s2 + s1s3 + s22s31 + s2
· z3, (3.15)
1. S presupunem c avem o singur eroare. Fie polinomul eroriie(α) = α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 eroriie(α) = α2 + α3. Sindromul va �(
α6 α5 α5)t
Polinomul 3.15 devine
σ(z) = 1 + α6 · z + α5 · z2 = (1 + α2 · z)(1 + α3 · z),
deci din nou erorile sunt identi�cate.
3. În sfâr³it s presupunem acum c avem trei erori. Fie polinomulerorii e(α) = α+ α2 + α3. Sindromul va �(
α11 α11 0)t
Polinomul 3.15 devine
σ(z) = 1+α11 ·z+α13 ·z2+α6 ·z3 = (1+α ·z)(1+α2 ·z)(1+α3 ·z),
³i erorile sunt identi�cate.
3.5.5 Coduri Reed-Solomon
O form particular a codului BCH este codul RS (Reed-Solomon).
De�niµie 3.5.28. Un cod BCH peste Fq în sens restâns (m = 1), care aredistanµa proiectat d ³i lungimea n = q − 1 se nume³te cod Reed-Solomon, pescurt cod RS .
3.5. CODURI LINIARE SPECIALE 181
Propoziµie 3.5.29. Polinomul generator al codului RS este
g =d−1∏i=1
(x− ζi),
unde ζ este un element primitiv al corpului Fq. Distanµa minim a coduluieste d.
Demonstraµie. Pe baza punctului 2 din teorema 3.5.22 rezult c într-adev rpolinomul generator al codului este cel indicat. Propoziµia anterioar arat c distanµa minim este cel puµin d. Cum avem ³i inegalitatea contrar , rezult c distanµa minim este d.
O construcµie echivalent a codurilor RS este urm toarea. Fieα0, α1, . . . , αn−1, n elemente distincte în corpul �nit Fq, unde n ≤ q. Ma-tricea generatoare a codului RS de tip (n, k) este matricea
G =
1 1 . . . 1α0 α1 . . . αn−1...
.... . .
...αk−10 αk−1
1 . . . αk−1n−1
.
Se poate vedea destul de u³or (orice submatrice de ordin k al lui G este de tipVandermonde) c distanµa minim a acestui cod este n − k + 1. Codi�careaunui mesaj util u de lungime k în cuvântul de cod c se face prin înmulµirea
u ·G = c,
sau echivalent, prin calculul valorii polinomului u în punctele α0, α1, . . . , αn−1.O alt construcµie a codurilor RS (prescurtate) este urm toarea. Alegem
un element α ∈ Fq al c rui ordin estem ≥ n. În construcµia precedent alegemα0 = 1, α1 = α, . . . , αn−1 = αn−1. Atunci matricea generatoare a unui cod RSeste
G =
1 1 1 . . . 11 α α2 . . . αn−1
1 α2 α4 . . . α2(n−1)
......
.... . .
...1 αk−1 α2(k−1) . . . α(k−1)(n−1)
.
Înc o de�niµie putem obµine dac impunem unui cuvânt de lungime n ≤ m� privit ca polinom de grad n− 1 � s se anuleze în punctele α, α2, . . . , αn−k,
182 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
adic matricea de control a parit µii pentru acest cod s �e
H =
1 α α2 . . . αn−1
1 α2 α4 . . . α2(n−1)
......
.... . .
...1 αn−k α2(n−k) . . . α(n−k)(n−1)
.
Acest cod este cod MDS, ³i este echivalent cu cel precedent în cazul n = m.
3.6 Aplicaµii � exemple în GAP - GUAVA
A sosit momentul s punem în funcµiune câteva coduri, s facem câtevaexemple de codi�c ri ³i decodi�c ri. Prin erori simulate putem testa re-
spectiv ilustra capacitatea de detectare ³i corectare a erorilor a câtorva coduri.Vom apela bineînµeles la pachetul GUAVA, deja amintit.
Pachetul GUAVA se încarc în GAP cu comanda:
gap> LoadPackage("guava");
Va � interesant s relu m chiar exemplele 3.4.7 de la pagina 150, s in-terog m parametrii codurilor ³i s punem în funcµiune algoritmii de codi�care³i decodi�care. Vom parcurge mai întâi cele ³ase exemple pe rând.
1. Prima instrucµiune este de�nirea codului. GUAVA cunoa³te mai multemodalit µi de de�nire a unui cod: prin matricea generatoare, prin ma-tricea de veri�care a parit µii, prin intermediul denumirii codurilor con-sacrate etc.
De�nim aici codul prin matricea de veri�care a parit µii ³i a�³ m ³imatricea 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 ],[ 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 ],
3.6. APLICA�II � EXEMPLE ÎN GAP - GUAVA 183
[ 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
Interog m parametrii codului.
gap> Size(C); % num rul cuvintelor de cod64gap> WordLength(C); % lungimea coului7gap> Dimension(C); % dimensiunea codului6gap> Redundancy(C); % num rul simbolurilor de control1gap> MinimumDistance(C); % distanµa minim 2gap> CoveringRadius(C); % raza de acoperire1gap> IsLinearCode(C); % este cod liniar?truegap> IsMDSCode(C); % este cod MDS?truegap> IsPerfectCode(C); % este cod perfect?falsegap> 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.
gap> Cd:=DualCode(C); % definirea codului dual
184 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
a cyclic [7,1,7]3 dual codegap> Display(CheckMat(Cd)); % matricea verif. a parit.1 1 . . . . .. 1 1 . . . .. . 1 1 . . .. . . 1 1 . .. . . . 1 1 .. . . . . 1 1
gap> Display(GeneratorMat(Cd)); % matricea generatoare1 1 1 1 1 1 1
gap> MinimumDistance(Cd); % ditanµa minim 7gap> CoveringRadius(Cd); % raza de acoperire3
Codi�care ³i decodi�care: codi�carea este înmulµirea mesajului util cumatricea generatoare, respectiv ad ugarea la mesajul util al unui singursimbol de control, suma mod 2 a simbolurilor mesajului util. Decodi�carenu exist , matricea de veri�care a parit µii 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 recepµionat eronat[ 1 0 0 1 1 0 ]gap> H*c; % detectarea erorii, ok[ 1 ]
2. Pentru acest cod GUAVA are o de�niµie intern .
gap> C:=RepetitionCode(7,GF(2));a cyclic [7,1,7]3 repetition code over GF(2)
Parametrii codului sunt:
gap> Size(C); % num rul cuvintelor de cod2
3.6. APLICA�II � EXEMPLE ÎN GAP - GUAVA 185
gap> WordLength(C); % lungimea unui cuvânt de cod7gap> Dimension(C); % dimensiunea codului1gap> Redundancy(C); % num rul simbolurilor de control6gap> MinimumDistance(C);% distanµa minim 7gap> CoveringRadius(C); % raza de acoperire3gap> IsLinearCode(C); % este cod liniar?truegap> IsMDSCode(C); % este cod MDS?truegap> IsPerfectCode(C); % este cod perfect?truegap> List(C); % lista cuvintelor de cod[ [ 0 0 0 0 0 0 0 ], [ 1 1 1 1 1 1 1 ] ]
Codul �ind perfect ³i având raza de acoperire 3 = (7− 1)/2, orice vectoral spaµiului vectorial F7
2 se a� într-o bil de raz cel mult 3 cu centrulîntr-un cuvânt de cod. În acest caz simplu � avantajul simplit µii extremeeste c aceste propriet µi pot � v zute ³i nemijlocit � avem doar dou bile de raz 3 care conµin împreun toµi vectorii spaµiului. Calcul m ³imatricea generatoare ³i matricea de veri�care a parit µii.
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 . . . .. . 1 1 . . .
186 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
. . . 1 1 . .
. . . . 1 1 .
. . . . . 1 1
Codul dual, matricea generatoare ³i matricea de veri�care a parit µiipentru acesta.
gap> Cd:=DualCode(C);a cyclic [7,6,2]1 dual codegap> 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 codi�care ³i decodi�care, i.e. corectare de eroare. Pen-tru aceasta rede�nim mai întâi codul prin propria lui matrice generatoare,pentru a-l face GUAVA s uite structura de cod ciclic ³i s -l considerenumai cu structura de cod liniar. Aceasta va avea ca efect utilizarea im-plicit a algoritmului de decodi�care general pentru coduri liniare, bazatpe 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 codsunt pur ³i simplu repet rile acestor simboluri de înc ³ase ori. Decodi-�carea unui cuvânt recepµionat se face prin cuvântul de cod cu care aremai multe coincidenµe.
gap> u:=Codeword("1"); % mesajul util[ 1 ]gap> c:=u*G; % cuvântul de cod generat[ 1 1 1 1 1 1 1 ]gap> H*c; % testarea cuvântului, ok
3.6. APLICA�II � EXEMPLE ÎN GAP - GUAVA 187
[ 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 repetiµie dubl . De�nim mai întâi matricea de veri�care aparit µii, 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); % num rul cuvintelor de cod8gap> WordLength(C); % lungimea coului6gap> Dimension(C); % dimensiunea codului3gap> Redundancy(C); % num rul simbolurilor de control3gap> MinimumDistance(C); % distanµa minim 2gap> CoveringRadius(C); % raza de acoperire3gap> IsLinearCode(C); % este cod liniar?true
188 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
gap> IsMDSCode(C); % este cod MDS?falsegap> IsPerfectCode(C); % este cod perfect?falsegap> 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 duala cyclic [6,3,1..2]2..3 dual codegap> C=Cd; % C=dualul lui C?truegap> IsSelfDualCode(C); % este cod auto-dual?truegap> 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 dual2gap> CoveringRadius(Cd); %...pt codul dual3
3.6. APLICA�II � EXEMPLE ÎN GAP - GUAVA 189
Codi�carea este o simpl înmulµire matricial . Decodi�carea este posibil doar întîmpl tor: distanµa minim 2 nu asigur a decodi�care 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 cuvânt de cod[ 0 0 0 ]gap> Decodeword(C,c); % decodificare identic [ 1 1 0 1 1 0 ]gap> c:=Codeword("100110"); % eroare simulat în poziµia 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 poziµia 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 repetiµie tripl . De�nirea matricii de veri�care a parit µii, ³i acodului. A�³eaz 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 . . .1 . . . . . 1 . .. 1 . . . . . 1 .. . 1 . . . . . 1
gap> C:=CheckMatCode(H,GF(2));
190 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
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); % num rul cuvintelor de cod8gap> WordLength(C); % lungimea coului9gap> Dimension(C); % dimensiunea codului3gap> Redundancy(C); % num rul simbolurilor de control6gap> MinimumDistance(C); % distanµa minim 3gap> CoveringRadius(C); % raza de acoperire3gap> IsLinearCode(C); % este cod liniar?truegap> IsMDSCode(C); % este cod MDS?falsegap> IsPerfectCode(C); % este cod perfect?falsegap> 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 duala cyclic [9,6,1..2]1..3 dual codegap> Display(GeneratorMat(Cd)); % matricea generatoare1 . . 1 . . . . .. 1 . . 1 . . . .. . 1 . . 1 . . .. . . 1 . . 1 . .
3.6. APLICA�II � EXEMPLE ÎN GAP - GUAVA 191
. . . . 1 . . 1 .
. . . . . 1 . . 1gap> Display(CheckMat(Cd)); % matr. verif. parit.1 . . 1 . . 1 . .. 1 . . 1 . . 1 .. . 1 . . 1 . . 1
gap> MinimumDistance(Cd); % distanµa minim 2gap> CoveringRadius(Cd); % raza de acoperire3
Iat ³i exemple de codi�care ³i decodi�care. Codi�carea este numai oînmulµire matricial . Distanµa minim �ind 3, este posibil corectareaunei 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 cuvânt 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 , poziµia 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 urm toarea matrice de veri�care a parit µii ³i matrice degenerare:
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 ] ]
gap> Display(H);1 1 . 1 . .1 . 1 . 1 .. 1 1 . . 1
192 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
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
Urm toarele comenzi a�³eaz parametrii codului:
gap> Size(C); % num rul cuvintelor de cod8gap> WordLength(C); % lungimea coului6gap> Dimension(C); % dimensiunea codului3gap> Redundancy(C); % num rul simbolurilor de control3gap> MinimumDistance(C); % distanµa minim 3gap> CoveringRadius(C); % raza de acoperire2gap> IsLinearCode(C); % este cod liniar?truegap> IsMDSCode(C); % este cod MDS?falsegap> IsPerfectCode(C); % este cod perfect?falsegap> 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 codi�care ³i de decodi�care. Codul corecteaz osingur eroare.
gap> Cd:=DualCode(C); % codul duala linear [6,3,1..3]2 dual codegap> Display(CheckMat(Cd)); % matr. verif. parit.
3.6. APLICA�II � EXEMPLE ÎN GAP - GUAVA 193
1 . . 1 1 .. 1 . 1 . 1. . 1 . 1 1
gap> Display(GeneratorMat(Cd)); % matricea genratoare1 1 . 1 . .1 . 1 . 1 .. 1 1 . . 1
gap> IsSelfDualCode(C); % este cod autodual?falsegap> MinimumDistance(Cd); % distanµa minim 3gap> CoveringRadius(Cd); % raza de acoperire2
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 cuvânt de cod[ 0 0 0 ]gap> Decodeword(C,c); % decodificare identic [ 1 1 0 0 1 1 ]gap> c:=Codeword("100011"); % eroare simulat în poziµia 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 153.
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 11 . 1 . 1 . 1
gap> C:=CheckMatCode(H,GF(2));a linear [7,4,1..3]1 code defined by check matrix over GF(2)
194 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
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); % num rul cuvintelor de cod16gap> WordLength(C); % lungimea coului7gap> Dimension(C); % dimensiunea codului4gap> Redundancy(C); % num rul simbolurilor de control3gap> MinimumDistance(C); % distanµa minim 3gap> CoveringRadius(C); % raza de acoperire1gap> IsLinearCode(C); % este cod liniar?truegap> IsMDSCode(C); % este cod MDS?falsegap> IsPerfectCode(C); % este cod perfect?truegap> 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 reprezentanµii claselor de echivalenµ se poate obµinetot cu ajutorul pachetului GUAVA. Prima coloan conµine vectorii eroare� de m sur minim . Prima linie corespunde cuvintelor codului, acestea� ³i numai acestea � au sindromul nul.
3.6. APLICA�II � EXEMPLE ÎN GAP - GUAVA 195
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 duala linear [7,3,1..4]2..3 dual codegap> 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); % distanµa minim 4gap> CoveringRadius(Cd); % raza de acoperire3
Exemplu de codi�care ³i decodi�care.
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 cuvânt 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 poziµia 3[ 0 1 0 1 1 0 0 ]gap> Syndrome(C,c); % sindromul arat poziµia erorii[ 0 1 1 ]gap> Decodeword(C,c); % decodificat corect
196 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
[ 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 sc zut din mesajul eronat reface cuvântul de cod al mesajului.
S d m ³i un exemplu în care utiliz m facilit µi speci�ce 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 . . . . . . 1gap> 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 11 . 1 . 1 . 1 . 1 . 1 . 1 . 1gap> 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 inmulµirea cu[ 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 ] % matricea de generaregap> c1:=Codeword("011110000110010"); % simul m o eroare[ 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 ] % în poziµia 15gap> 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. APLICA�II � EXEMPLE ÎN GAP - GUAVA 197
3.6.1 Utilizarea codurilor
Cercetarea matematic în domeniul codurilor algebrice continu . Scopul ur-m rit este descoperirea de coduri cât mai apropiate de limitele teoretice, demarginile impuse de teorie, respectiv analiza codurilor care se pot construi prinmijloace deja avute la dispoziµie. Nu am amintit nimic despre coduri bazatepe geometrie algebric (coduri AG), ³i despre coduri convoluµionale.
În încheiere s menµion m f r comentarii o problem înc deschis dindomeniul teoriei codurilor corectoare de erori: nu se ³tie dac exist sau nu uncod binar auto-dual de tipul (72, 36, 16) (pentru detalii vezi [35]).
S enumer m acum câteva din utiliz rile codurilor corectoare de erori, dincare se poate intui importanµa acestui capitol de matematic pentru diversedomenii inginere³ti.
• Coduri BCH sunt utilizate de sistemele de comunicaµii europene ³itransatlantice. Mesajul util are lungimea de 231 de simboluri ³i esteutilizat un polinom generator de grad 24, astfel lungimea cuvântului decod este 231 + 24 = 255. Codul detecteaz cel puµin 6 erori.
• O aplicaµie interesant a codurilor RS este codi�carea informaµiei pe(ast zi înc ) cel mai utilizat (cel puµin în distribuirea muzicii de calitateHiFi) suport de memorie, compact discul, CD. El folose³te dou coduriRS peste corpul GF(28) având distanµa minim 5. Codi�carea ³i decodi-�care este subtil în sensul c este încorporat ³i un mecanism de corectarea zgîrâeturilor � i.e. a blocurilor compacte de erori � prin distribuireastructurii cuvintelor de cod pe porµiuni �zice mai mari. Astfel deterior rilocale care distrug porµiuni insemnate totu³i nu afecteaz decodi�careaintact a informaµiei de pe CD.
• Codul Reed-Solomon (7, 2) a fost folosit de satelitul US Defense Depart-ment Tactical Satellite
• Codul Reed-Solomon (31, 15) este folosit în comunicaµiile militare tactice.
• Reµeaua INTELSAT V folose³te codul BCH (127, 112) care detecteaz 3³i corecteaz 3 erori.
• Memoriile digitale foto folosesc un cod Reed-Solomon de lungime 63 pestecorpul �nit F26 .
• Un cod ciclic (CRC) era folosit la corectarea erorilor de citire ale infor-maµiilor înregistrate pe benzi magnetice.
• Sondele spaµiale Mariner ale NASA foloseau codul Reed-Muller (32, 6, 16)la transmiterea codi�cat a fotogra�ilor din spaµiul cosmic.
198 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
• Coduluri binare de tip (2k, k, 2k−1) Walsh-Hadamard (ortogonale) suntfolosite în telefonia mobil celular pentru identi�carea staµiilor mobileactive în cadrul unei staµii �xe. Lungimea tipic a codului este de 64 debiµi.
• Un cod Goley de tip (23, 12) este folosit la transmisiile canalelor de tele-viziune prin satelit. Acesta are distanµa minim 7 deci poate corecta 3erori. Acesta este un cod perfect.
• Coduri ciclice CRC (Cyclic Redundancy Code) sunt larg folosite în elec-tronic (pentru semnalarea erorilor, în canale bidirecµionale de comu-nicaµie). Ele sunt cablate în circuite integrate care apar ca ³i compo-nente din care sunt construite elemente ale sistemelor de calcul ³i decomunicaµie. Iat câteva exemple de polinoame generatoare cablate:x16+x12+x5+1 (SNC 2653, INTEL 82586,INTEL 8274), x16+x15+x2+1(INTEL 82586,INTEL 8274), x32 + x26 + x23 + x22 + x16 + x12 + x11 +x10 + x8 + x7 + x5 + x4 + x2 + x+1 (INTEL 82586, aplicaµia LAN Eth-ernet), x8 + x7 + x6 + x4 + 1 ³i x23 + x18 + x16 + x7 + x2 + 1 (EEA),x12 + x11 + x3 + x2 + x+1 (CRC-12, IBM) etc.
3.7 Probleme propuse
1. S se determine elementele primitive ale corpurilor F7, F11, F13, F17 ³iF19.
Indicaµie: Trebuie g sit un generator al grupului multiplicativ al corpu-lui. Pentru corpul F7 acest grup are 6 elemente, deci avem nevoie de unelement de ordin 6. 23 = 1 mod 7, deci 2 nu este de ordin 7. 32 = 1mod 7 ³i 33 = 1 mod 7 deci doar 36 = 1 mod 7 deci 3 este un elementprimitiv. Deoarece 43 = 1 mod 7, 4 nu este element primitiv. 52 = 1mod 7, ³i 53 = 1 mod 7 deci vom avea 56 = 1 mod 7 deci 5 este ele-ment primitiv. În sfâr³it, 6 = −1 mod 7 deci 6 are ordinul 2. Elementeleprimitive sunt deci 3 ³i 5. (Se observ c 5 = 3−1.)
Alt soluµie (în GAP): Pentru �ecare a = 2, 3, . . . , 6 se ruleaz ciclul forde mai jos. Elementul a este element primitiv dac ³i numai dac doarultima putere are valoarea 1.
for i in [1..6] dop:=a^i;Print(p,"\n");od;
3.7. PROBLEME PROPUSE 199
2. În care din inelul de polinoame peste coe�cienµi din corpurile F2, F3, F5,F7, F17 este polinomul x2 + 1 ireductibil?
Indicaµie: Polinomul �ind de gradul 2, el este ireductibil exact atunci,când nu are r d cini. Se testeaz toate elementele corpului dat.
Alt soluµie î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 depolinoame peste coe�cienµi din corpurile F5, F7, F11 ³i F17.
Indicaµie: Polinoamele �ind de gradul 2, ele sunt ireductibile exactatunci, când nu au r d cini. Se testeaz toate polinoamele de grad 2cu toate elementele corpului dat.
4. Câte polinoame monice ireductibile de grad 3 ³i de grad 4 exist în inelede polinoame GF(23)[x], GF(32)[x] ³i GF(11)[x]? Daµi câte un exemplude astfel de polinom!
Indicaµie: Se folose³te teorema 3.2.28 de la pagina 138.
5. S se determine polinomul minimal (peste corpul prim GF(p)) pentruelementele de mai jos (din corpul �nit GF(pn)).
5-1. β = 5 ∈ GF(17).5-2. β = α3 + α + 1 ∈ GF(24), corp generat de polinomul ireductibil
x4 + x+ 1.5-3. β = α5 + α + 1 ∈ GF(26), corp generat de polinomul ireductibil
x6 + x+ 1.5-4. β = α+1 ∈ GF(32), corp generat de polinomul ireductibil x2+x+2.5-5. β = α2 + α + 1 ∈ GF(32), corp generat de polinomul ireductibil
x3 − x+ 2.
Indicaµie: Se calculeaz puterile succesive β, βp, βp2 , βp3 , . . . pân cândobµinem βpd = β. Polinomul minimal al lui β este polinomul de grad dcalculat prin (x− β)(x− β2) · (x− βd−1).
200 CAPITOLUL 3. CODURI CORECTOARE DE ERORI
6. S se studieze în mediul de programare GAP-GUAVA codul ciclic delungime 8, generat de polinomul x2 + Z(3)0. S se determine:
(a). Distanµa minim .(b). Polinomul de veri�care a parit µii.(c). Matricea generatoare.(d). Matricea de control.(e). S se veri�ce dac sunt cuvinte de cod ³i dac nu s se decodi�ce
cuvintele x5 − x3 + x ³i x4 + x3 + x2 − x.
7. S se studieze în mediul de programare GAP-GUAVA codul ciclic delungime 31, generat de polinomul x5 + x2 + 1. S se determine:
(a). Distanµa minim .(b). Polinomul de veri�care a parit µii.(c). Matricea generatoare.(d). Matricea de control.(e). S se veri�ce dac sunt cuvinte de cod ³i dac nu s se decodi�ce
cuvintele x25 + x20 + x19 + x18 + x17 + x15 + x13 + x9 + x4 + x3 + x³i x30 + x25 + x22 + x19 + x10 + x6 + x5 + x3 + x.
8. S se studieze în mediul de programare GAP-GUAVA codul ciclic delungime 31, al c rui polinom de veri�care a parit µii este x10+x8+x7+x5 + x3 + x2 + Z(2)0. S se determine:
(a). Distanµa minim .(b). Polinomul generator.(c). Matricea generatoare.(d). Matricea de control.(e). S se veri�ce dac sunt cuvinte de cod ³i dac nu s se decodi�ce
cuvintele x30+x29+x27+x26+x25+x23+x21+x16+x13+x11+x10 + x7 + x6 + x5 + x4 + x3
³i x28 + x27 + x25 + x23 + x22 + x21 + x20 + x19 + x18 + x17 + x11 +x9 + x8 + x7 + x6 + x5 + x3 + x+ Z(2)0.
Bibliogra�e
[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, 2009http://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 2010http://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, Gröbner bases: a Computational Approachto 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
201
202 BIBLIOGRAFIE
[9] J. Borwein, D. Bayley, Mathematics bz Experiment - Plausible Reasoningin the 21st Century,A.K. Peters, Natick, Massachusetts, 2004
[10] S.Bulygin, R. Pellikaan, Bounded distance decoding of Linear error-correcting codes with Gröbner bases,Journal of Symbolic Computation 44 (2009), pp. 1626-1643
[11] C. K. Chui, Multivariate splinesSIAM, Philadelphia, PA, (1988)
[12] D. Cox, J. Little, D. O'Shea, 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 , Bucure³ti, 1975
[14] S. Crivei, A. M rcu³, Ch. S c rea, Cs. Szántó, Computational Algebrawith Applications to Coding Theory and Criptography,Editura Fundaµiei pentru Studii Europene, Cluj-Napoca, 2006
[15] W. Decker, C. Lossen, Computing in Algebraic Geometry - A Quick Startusing Singular,Springer Verlag, Berlin, 2006
[16] J. von zur Gathen, Modern Computer Algebra,second edition, Cambridge University Press, 2003
[17] G.-M. Greuel, G. P�ster, A Singular introduction to commutative algebra,Springer-Verlag, Berlin, 2002, 2008
[18] L. Györ�, S. Gy®ri, I. Vajda, Információ és kódelmélet,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. Horváth, Proving Geometric Theorems via Gröbner Bases Theory,Buletinul ³tiinµi�c al Universit µii Baia Mare, seria B, Matematica-Informatica, vol XIV (2000), nr 1, pp. 49-58.
BIBLIOGRAFIE 203
[22] A. Horváth, B. Finta, Finding Roots of Nonlinear Systems of Equationson a Domain, Mathematica Pannonica, 15/1 (2004), pp. 37-44
[23] A. Horváth, 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. Hu�man, V. Pless, Fundamentals of Error-Correcting Codes,Cambridge University Press, 2003
[25] D. Ionescu, Codi�care ³i coduri,Editura Tehnic , Bucure³ti, 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ó, Kolozsvár, 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,Birkhäuser Verlag, Basel, 2002
[34] L.L. Schumaker, Spline functions: basic theory,John Wiley and Sons, New York, 1981
[35] M. Sala et all, Gröbner Bases, Coding and Cryptography,Cambridge University Press, 2003
[36] S. s. Kuo, Numerical Methods and Computers,Addison-Wesley, London, (1965)
204 BIBLIOGRAFIE
[37] D. D. Stancu, The Remainder of certain Linear Approximation Formulasin Two Variables,J. SIAM Numer. Anal., Ser. B, Vol 1, USA, (1964), pp. 137-153
[38] W. V. Vasconcelos, Computational Methods in Commutative Algebra andAlgebraic 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)) . . . . . 201.2 V (x2− y2 + z2) ³i V (x2y − z2), "Withney umbrella." . . . 211.3 V (z3− zx2 + y2) ³i V (z4− zx2 + y2) . . . . . . . . . . . . . 211.4 O quartic ³i A3 = V (x3 − y2− z2). . . . . . . . . . . . . . . 221.5 D5 = V (x(x3 + y2) + z2) ³i E6 = V (x4 + y3 + z2). . . . . . . 221.6 E7 = V (y(x3 + y2) + z2) ³i E8 = V (x5 + y3 + z2). . . . . . . 231.7 Patru cercuri (A) . . . . . . . . . . . . . . . . . . . . . . . . . . 581.8 Patru cercuri (B) . . . . . . . . . . . . . . . . . . . . . . . . . . 601.9 Patru cercuri (C) . . . . . . . . . . . . . . . . . . . . . . . . . . 60
205
Glosar
Gröbnerbaz , 51
automor�smFrobenius, 127
baz Gröbner , 51Gröbnerminimal , 53redus , 53
pentru ideal, 25bil , 146Bose, Chaudhuri, Hocquenghem
cod, 175
canal binar simetric, 143cel mai mare divizor comun, 27cod, 145
autodual, 150BCH, 175în sens restrâns, 175primitiv, 175
binarHamming, 159simplex, 160
dimensiunea lui, 148dual, 149echivalent, 154extins, 160liniar, 148binar, 148
lungimea lui, 148MDS, 147
perfect, 147Reed-Muller, 161RS, 180sistematic, 148tipul lui, 154
coe�ciental monomului, 18
corpalgebric închis, 70caracteristica unui, 123de fracµii, 35de fracµii raµionale, 36extensie de, 116subcorp prim al, 123
decodi�carede probabilitate maxim , 146prin distanµ , 146
distanµ Hamming, 145minim , 145proiectat , 175
divizor, 26al lui 0, 24comun cel mai mare, 27
domeniu de integritate, 25
elementasociat în divizibilitate, 26divizor al lui 0, 24inversabil, 25ireductibil, 45prim, 45primitiv, 125
206
GLOSAR 207
regulat, 25unitate, 25
extensie de corp, 116
funcµieMoebius, 136
Gilbert-Varshamovmargine, 155
gradal polinomului, 18total al monomului, 18
Hammingcod, 159binar, 159
distanµ , 145m sur , 145margine, 147
ideal, 25al termenilor principali, 50baz pentru, 25câtul lor, 28de�nit de varietate, 37generat, 25�nit, 25
intersecµia lor, 28maximal, 32monomial, 49prim, 46principal, 26produsul lor, 28radicalul lui, 28suma lor, 28
inel, 24comutativ, 24de fracµii, 35domeniu de integritate, 25factor, 32factorial, 46local, 33
Noetherian, 37principal, 26unitar, 24
m sur Hamming, 145margine
Gilbert-Varshamov, 155Hamming, 147Plotkin, 155Sigleton, 147
matricede control, 103, 148de veri�care, 103forma standard, 148generatoare, 102, 149canonic , 149
monom, 18coe�cientul lui, 18gradul total, 18principal, 49
mulµimea termenilor principali, 50
Noetherinel, 37
ordonarelexicogra�c , 48graduat , 48invers graduat , 48
monomial , 47
Plotkinmargine, 155
polinom, 18anulator, 116coe�cient principal, 49de veri�care a parit µii, 164generator, 163gradul lui, 18, 49monic, 135reciproc, 165
208 GLOSAR
termen al, 18termen principal, 49
produs scalar, 149
rangmatricii, 68extinse, 68
Reed-Mullercod, 161
Reed-Solomoncod, 180
rezult generic, 55strict, 55
simbolde control, 145
sindrom, 157Singleton
margine, 147Singular, 20, 21, 56, 57
surf, 21sistem
multipicativ, 33Slepian
tabela, 157spaµiu
a�n, 19surf, 21
tabela Slepian, 157termen
al polinomului, 18
varietatea�n , 20de�nit de ideal, 37
vectorortogonal, 149