Sunteți pe pagina 1din 2

Aspecte computationale privind decodarea codurilor Golay

Rezumat

Introdusa de Buchberger si Hironaka, teoria bazelor


Grobner are aplicatii in rezolvarea sistemelor de ecuatii polinomiale. Autorii exempli ca in lucrare folosirea
bazelor Grobner in decodarea codurilor ciclice si, in
particular, a codurilor Golay. Este prezentat un algoritm de decodare a codurilor Golay care foloseste baze
Grobner(DCGBG). Pentru efectuarea calculelor a fost
folosit programul Singular.

baze Grobner; cod ciclic; decodare;


transmiterea informatiei; comunicatii de date.
Cuvinte cheie:

INTRODUCERE

Un cod se numeste ciclic daca pentru ecare cuvant de


cod C = [c0 ; c1 ;    ; cn 1 ]; ci 2 GF (q ); i = 0;    ; n 1;
considerat ca vector intr-un spatiu liniar n-dimensional
peste GF (q ), i se poate asocia lui C un polinom de
grad  n 1: c(x) = c0 + c1 x +    + cn 1 xn 1 ; ci 2
GF (q); i = 0;    ; n 1: O submultime J a lui Zn se
numeste set de de nitie a codului C daca C = fc(x) 2
GF (qn )[x]=(xn 1) j c( j ) = 0; pentru orice j 2 J g,
( inseamna x modulo (xn 1)). Setul complet de de nitie al codului C, notat prin J (C), se de neste prin:
J (C) = fj 2 Zn j c( j ) = 0 pentru toate cuvintele
codului c 2 Cg:
Codul binar Golay poate de nit ca un cod ciclic.
Consideram polinoamele reciproce g (x); g~(x) 2 GF (2)[x],
g(x) = 1 + x + x5 + x6 + x7 + x9 + x11 ; g~(x) =
1 + x2 + x4 + x5 + x6 + x10 + x11 . Aceste polinoame
satisfac identitatea: (x 1)g (x)~g (x) = x23 1.
2


BAZE GROBNER
SI DECODAREA CODURILOR CICLICE

Fie C = [n; k; d] un cod ciclic cu polinomul generator


g(x) si J = fj1 ;    ; jt g. GF (qu ) este extinderea lui
GF (q) care contine toate radacinile lui g(x). Fie
radacina primitiva de ordinul n a unitatii si H matricea de control a codului C. Fie e = e(x) vectorul
eroare care corespunde cuvantului receptionat c0 =
0
0 >
c (x). Sindromul este s = c H ; s = [s1 ;    ; se ]; si si =
0
j
j
i
i
c ( ) = "( ); i = 1;    ; e: Fie H extensia matricei

01
B 1.
H =B
@.

H,

>

2
4

 n
 n

.
1 n 2n

   n n

1
2
..
.

..
.

2(

..
.

Fie s = eH : Componenta j a lui

sj = e( j ) =

i=0

..
.

1)
1)

1
CC :
A

1)

este

ij ; j = 1;    ; n:

Daca j 2 J (C) atunci sj = e( j ) = c0 ( j ) si sj ; j =


1;    ; n; poate stabilit. Fie e = e(x) vectorul eroare
ce contine erorile ei1 ; ei2 ;    ; eie . Sunt cunoscute

sj =

e
X
r=1

ei

( ir )j ; j

2 J (C):

Din sistemul de ecuatii peste GF (q u )[x1 ;    ; xv ; y1 ;    ; yv ],

8 Pv
< m i q( i )j = sj ;
( ; v)
: (( i i ) )n== i1; ;
m

=1 e m
e

S s

m
m

j2J
m = 1;    ; v ;
m = 1;    ; v

obtinem solutiile im and eim ; m = 1;    ; e:


Teorema

Sa presupunem ca exista un numar de e erori, e 


(d 1)=2. Notam l(x1 ) polinomul monic de localizare
a erorii . l(x) = 0 daca si numai daca x este pozitia
de localizare a erorii. Fie g (x1 ) polinomul monic care
genereaza idealul S(s; v ) \ GF (q u )[x1 ]; cu S(s; v ) ideal
in GF (q u )[x1 ;    ; xv ; y1 ;    ; yv ]. Atunci

8 1;
<
g(x ) = l(x );
: x n 1;
1

Algorithm GBDCC

READ c0
0 >
s := c H
IF sj = 0 for all j 2 J
THEN OUTPUT c0
WRITE: "nu exista erori"
STOP

v<e
v=e
v > e:

ELSE v = 1
G := f1g
WHILE 1 2 G DO
S := S(s; v)
G := Groebner(S )
v := v + 1
OD
g(x1 ) := unicul element al lui G \ GF (qu )[x1 ]
IF deg(g (x1 )) > v
THEN WRITE " c0 contine prea multe
erori"
ELSE pozitiile erorilor sunt indicate de
zerourile lui g (x1 )
gaseste erorile e rezolvand sistemul:
> = c0 H >
cH
WRITE (c0 e) = c
STOP
Codul binar Golay C=[23, 12, 7] poate corecta cel
mult 3 erori. Fie GF (211 ) = GF (2)[ ]=( 11 + 2 +
1) si = 89 . Atunci este un element primitiv
al lui GF (211 ) si are ordinul 23. Calculam J =
f1g, J (C) = f1; 2; 3; 5; 6; 8; 9; 12; 13; 16; 18g; g(x) =
Q
j
5
6
7
9
11
j 2J (C) (x ) = 1 + x + x + x + x + x + x . Sa
presupunem ca pentru cuvantul de cod transmis c =
(1; 1; 0; 0; 0; 1; 1; 1; 0; 1; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0) care
corespunde lui g (x) este receptionat sirul: c0 =
(0; 1; 0; 1; 0; 1; 1; 1; 0; 1; 0; 1; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0); care
corespunde lui r(x) = x + x3 + x5 + x6 + x7 + x9 + x11 +
x17 : Aplicam algoritmul GBDCC. Pentru efectuarea
calculelor folosim programul Singular.
//De nim inelul de polinoame in mai multe nedeterminate peste campul GF (211 ). Acest camp se poate
obtine in Singular factorizand inelul de polinoame in
nedeterminata b peste Z2 la idealul generat de polinomul ireductibil b1 1 + b2 + 1.
>ring r = 2; (x(3::1); b); lp;
>ideal d = b11 + b2 + 1;
>qring r1 = std(d);
//Acesta este inelul in care vom lucra. El este declarat
ca inel de baza in continuare.
>basering;
>ideal j = x(1) + b9 + b6 + b3 + b2 + 1; x(1)23 + 1;
//Calculam o baza Groebner pentru idealul j:
>std(j);
>ideal l = x(2) + x(1) + b9 + b6 + b3 + b2 + 1; x(2)23 +
1; x(1)23 + 1;
//Calculam o baza Groebner pentru idealul l:
>std (l);
//Calculam o baza Groebner pentru idealul m:
>ideal m = x(3) + x(2) + x(1) + b9 + b6 + b3 + b2 +
1; x(3)23 + 1; x(2)23 + 1; x(1)23 + 1;
>std(m);
Pentru primele doua ideale se obtine baza Grobner
f1g, iar pentru al treilea: fx3 + x2 + x1 + 9 + 6 +
3 + 2 + 1; x2 2 + x2 x1 + ( 9 + 6 + 3 + 2 + 1)x2 +

x1 2 +( 9 + 6 + 3 + 2 +1)x1 + 6 + 5 + 2 ; x1 3 +( 9 +
6 + 3 + 2 +1)x1 2 +( 6 + 5 + 2 )x1 + 9 + 5 + 3 g:
Deoarece 1 62 G; exista solutii ale sistemului S si polinomul de localizare a erorilor este: g (x1 ) = x1 3 +
( 9 + 6 + 3 + 2 + 1)x1 2 + ( 6 + 5 + 2 )x1 + 9 +
5 + 3 ; cu radacinile 0 ; 3 ; 17 : aceasta inseamna

ca erorile se a a in locatiile 0, 3 and 17 and e =


(1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0): Cu
0 e = (1; 1; 0; 0; 0; 1; 1; 1; 0; 1; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0;
c
0; 0) se stabileste c, cuvantul de cod transmis.
3

CONCLUZII

Lucrarea ilustreaza o aplicatie a bazelor Groebner intro problema de teoria codurilor, cu aplicatii in transmiterea informatiei in sistemele de comunicatii de date.
Problema decodarii codurilor ciclice consta in rezolvarea
unor sisteme de ecuatii polinomiale, care, prin metode
clasice consuma timp si memorie pentru sistemele de
calcul. Autorii au folosit pachete de programe speci ce bazelor Groebner, implementate in Maple si Singular.Pentru decodarea codului binar Golay s-a folosit
algoritmul DCGBG Este prezentat si un exemplu,
veri cat in Singular.

Bibliografie

[1] E. R. Berlekamp, Algebraic Coding Theory, Aegon Park Press, Laguna Hills CA, 1984.
[2] D. Cox, J. Little, D. O'Shea, Ideals, Varieties and
Algorithms, Springer-Verlag, New York, 1996.
[3] G. M. Grenel, G. P ster, H. Schoenemann,
Singular, A System for Computation in Algebraic Geometry and Singularity Theory, available from http://www.mathematik.uni-kl.de /ftp
/pub /Math /Singular.
Autori:

, Conf. dr., Dept. of Computer Science


and Numerical Analysis, Faculty of Mathematics and
Informatics, "Ovidius" University
Address: Bd. Mamaia 124, 8700 Constanta
E-mail: epetac@univ-ovidius.ro
Viviana Ene, Lect. dr., Dept. of Algebric, Faculty
of Mathematics and Informatics, "Ovidius" University
Address: Bd. Mamaia 124, 8700 Constanta
E-mail: vivian@univ-ovidius.ro
Eugen Petac