Primjena grupa u kodiranju

6.4 Primjena grupa u kodiranju

U ovom ´cemo poglavlju objasniti jednu od brojnih mogu´cih primjena dis- kretne matematike, koju obraduje i ova knjiga, na podruˇcje informatike.

Jedan od zadataka informatike je komunikacija (prijenos) podataka s jednog mjesta na drugo. Ponekad se taj prijenos izvrˇsava na malim udalje- nostima, primjerice unutar memorije istog raˇcunala, a drugi puta se infor- macije trebaju prenijeti na svemirsku letjelicu, milijune kilometara udaljenu od Zemlje. Medutim, u svim sluˇcajevima cilj nam je da dobijemo informa- ciju koju smo i poslali, tj. da ona nema pogreˇsaka. Poznato je da je to zbog niza faktora, koji utjeˇcu na informaciju tijekom prijenosa, ˇcesto teˇsko izvedivo.

Ovdje ´cemo prikazati kako se pogreˇska nastala u prijenosu moˇze detek- tirati i ispraviti. Pri tome ´cemo koristiti popriliˇcan matematiˇcki aparat. Nabrojimo samo naprednija znanja ovdje potrebna: grupe, metrika (udalje- nost), kongruencija, algebra matrica, rjeˇsavanje homogenog sustava linear- nih jednadˇzbi, itd.

6.4.1 Teorija kodiranja kao grana matematike Op´cenito, ˇzelimo li toˇcno interpretirati signal, sluˇzimo se s barem tri znan-

stvena podruˇcja: elektriˇcnim inˇzenjerstvom, raˇcunarstvom i matematikom. U matematici taj problem obraduje teorija kodiranja (eng. coding the- ory). Dakle, teorija kodiranja je grana matematike koja se bavi slanjem podataka kroz komunikacijski kanal, u kojem postoje smetnje koje utjeˇcu na prijenos, te toˇcnom interpretacijom poslanih podataka. Za razliku od kriptografije koja se trudi zadrˇzati informaciju u obliku teˇskom za ˇcitanje

6.4. PRIMJENA GRUPA U KODIRANJU

(neautoriziranim subjektima), teorija kodiranja nam pomaˇze da informaciju ˇsto lakˇse proˇcitamo.

U ovoj smo knjizi ve´c govorili o kodiranju (Huffmanov kod), a ovdje ´cemo govoriti o detektiranju i ispravljanju pogreˇsaka. Pretpostavljamo da se poruka ˇsalje u binarnom obliku (nizovi 0 i 1), te se pogreˇske pri prijenosu javljaju nasumiˇcno, ali u predvidljivom opsegu. Da bi kompenzirali te pogreˇske ˇsaljemo viˇse bitova od onih pomo´cu kojih je zapisana originalna poruka.

Najjednostavnija metoda detekcije pogreˇsaka je upotreba paritetnog ko-

da (eng. parity code), koji ˇsalje jedan dodatni bit na svakih 7 bitova origi- nalne poruke. Medutim, tom metodom mogu se samo uoˇciti neke pogreˇske, ali nije ih mogu´ce ispraviti, pa poruku treba slati ponovno.

Joˇs jedna jednostavna metoda detekcije pogreˇsaka sastoji se u tome

da se svaki bit ponovi odredeni broj puta. Ta metoda, s druge strane, bitno pove´cava troˇskove prijenosa poruke, jer se po toj shemi multipli- cira broj bitova. U svrhu rjeˇsavanja tog problema, 1948. godine je Claude Shannon, koji je radio za Bell Laboratories, udario temelje teorije kodiranja, dokazuju´ci da je mogu´ce kodirati poruku tako da broj dodatnih bitova ostane relativno mali. Nje- gov doprinos nije imao praktiˇcnih implikacija, ali je zato 1950. godine njegov kolega iz Bell Labo- ratories, Richard Hamming zapoˇceo prouˇcavanje kodova koji dopuˇstaju ispravljanje pogreˇsaka. On je pronaˇsao kod u kojem je informacija od 4 bita bila dopunjena s tri dodatna bita, a kod je dozvo-

Slika 6.2: Richard Wesley ljavao i detekciju i korekciju pogreˇsaka. Hamming

Istovremeno kad i spomenuta dva znanstvenika iz SAD-a, na Cambridgeu je na teoriji kodiranja radio John Leech. On je izumio sliˇcan kod rade´ci na apstraktnoj teoriji grupa. To je istraˇzivanje ukljuˇcivalo i problem pakiranja na sferi, te 24-dimenzionalnu Leech mreˇzu, pomo´cu koje su objaˇsnjene i klasificirane konaˇcne simetriˇcne grupe.

Vaˇznost teorije kodiranja ubrzo je uoˇcena te je naˇsla brojne primjene. Primjerice, u razdoblju od 1969. do 1973. NASA Mariner bespilotne letjelice istraˇzivale su Mars, Veneru, Merkur (viˇse informacija na [13]), a pri prijenosu impresivnih slika i drugih informacija na Zemlju upotrebljavale su Reed– Mullerov kod. Taj kod moˇze ispraviti 7 pogreˇsaka u 32 prenesena bita, a sastoji se od 26 bitova poruke i samo 6 bitova korektivnog koda. U tom je prijenosu 16000 bitova u sekundi sigurno stizalo na Zemlju.

Nadalje, teorija kodiranja je svoju primjenu naˇsla u razvoju tehnologije CD-ova, na kojima se signal takoder kodira digitalno. Da bi se diskovi zaˇstitili od oˇste´cenja kodira se pomo´cu koda koji ima mogu´cnost ispravljanja pogreˇsaka.

U posljednjih nekoliko godina pronaden je i eksplicitni kod koji dostiˇze

POGLAVLJE 6. ALGEBARSKE STRUKTURE 267

granice predvidene u Shannonovom radu. Konstrukcija tog koda zahtjeva tehnike iz vrlo ˇsirokog podruˇcja teorijske matematike: od linearne algebre, teorije polja i algebarske geometrije, do algebarskih struktura.

Viˇse o teoriji kodiranja moˇzete na´ci u [9].

6.4.2 Problemi prijenosa informacija Pretpostavimo da se svi podaci prikazuju kao nizovi nula i jedinica, tj. kao

rijeˇci abecede {0, 1} . Takve rijeˇci zovemo binarnim rijeˇcima, a njihove di- jelove (nule i jedinice) bitovima. Nadalje, razumljive su sljede´ce pretpostavke koje se odnose na nastanak pogreˇske kod prijenosa podataka. Prvo, pogreˇska nastaje zato jer se 0 pretvori u 1, ili obrnuto, na jednom ili viˇse mjesta u rijeˇci. Drugo, jednaka je vjerojatnost da se 0 pretvori u 1, kao i da se 1 pretvori u 0, (iako u praksi to ˇcesto nije tako, za teorijska razmatranja uzi- ma se to kao pretpostavka). Pogreˇska na jednom bitu ne utjeˇce na nastanak pogreˇske na nekom drugom bitu i jednaka je vjerojatnost nastanka pogreˇske na bilo kojem bitu. Na kraju, ve´ca je vjerojatnost manjeg broja pogreˇsaka, nego ve´ceg broja pogreˇsaka.

Neka sada prenosimo rijeˇci iz skupa svih rijeˇci duljine 4 i da se pri tome rijeˇc 01 greˇskom promijenila u 0010. Tu pogreˇsku ne bismo mogli detek- tirati jer i ova deformirana rijeˇc postoji u skupu iz kojeg uzimamo rijeˇci. Dakle, moˇzemo uoˇciti samo one pogreˇske na rijeˇcima kod kojih dobivena pogreˇsna rijeˇc nije iz skupa oˇcekivanih rijeˇci. Pretpostavimo sada da rijeˇci uzimamo iz skupa R = {0000, 0001, 0011, 0101, 0111, 1010, 1101, 1111}. Rijeˇc 01 je element skupa R dok 0010 nije, pa znamo da se radi o pogreˇsci, iako ne znamo na kojem je bitu pogreˇska i da li je pogreˇska samo na jed- nom bitu. S druge strane, prema pretpostavkama navedenim u prethod- nom odjeljku, znamo da je najvjerojatnije nastala pogreˇska na jednom bitu, pa je poslana rijeˇc najvjerojatnije 01 ili 1010, ali ne znamo koja, jer su rijeˇci skupa R previˇse sliˇcne jedna drugoj. Medutim, promatramo li skup R ′ = {0000, 0001, 0011, 0101, 0111, 1101, 1111}, gornju pogreˇsku moˇzemo de- tektirati i ispraviti.

Cilj nam je vidjeti koje uvjete treba zadovoljavati skup rijeˇci da bi uvijek bilo mogu´ce detektirati i ispraviti pogreˇsku na jednom ili n kodova.

6.4.3 Metrika na kodnim rijeˇ cima Da bi taj cilj postigli prvo moramo uvesti metriku na skupu svih binarnih

rijeˇci. Tu metriku, koja nam omogu´cuje mjerenje stupnja razliˇcitosti dviju rijeˇci, zovemo Hammingovom udaljenoˇs´cu, prema Richardu Hammingu koji je sredinom dvadesetog stolje´ca utemeljio teoriju detekcije i ispravljanja pogreˇsaka u prijenosu podataka.

Ponovimo da svaka funkcija d : S ×S→R + ∪ {0}, koja predstavlja metriku (udaljenost) na skupu S, u matematiˇckom smislu treba zadovolja-

6.4. PRIMJENA GRUPA U KODIRANJU vati sljede´ce aksiome metrike ([7]). Za svaki izbor x, y, z ∈ S vrijedi:

1. d (x, y) ≥ 0 (pozitivna definitnost),

2. d (x, y) = 0 akko x = y (nedegeneriranost),

3. d (x, y) = d (y, x) (simetriˇcnost),

4. d (x, z) ≤ d (x, y) + d (y, z) (nejednakost trokuta). Sljede´ca definicija uvodi metriku na skup R n svih binarnih rijeˇci duljine

n. Definicija 6.6 Hammingova udaljenost d (x, y) dviju binarnih rijeˇci x, y

jednake duljine n, je broj bitova u kojima se x i y razlikuju. Zadatak 6.16 Provjerite da li Hammingova udaljenost zadovoljava aksio-

me metrike? Primijetimo da je za otkrivanje i ispravljanje pogreˇsaka vaˇzno da rijeˇci

iz skupa rijeˇci budu dosta ”razmaknute”, tj. da im je udaljenost ˇcim ve´ca. Nadalje, prije slanja podataka, rijeˇcima se dodaje jedan ili viˇse bitova na kraju rijeˇci i ti dodatni bitovi sluˇze korekciji pogreˇsaka. Stoga se oni i zovu kontrolni bitovi (eng. check digits). Dakle, ako je informacija sadrˇzana u rijeˇci duljine m, na nju se dodaje r kontrolnih bitova, pa rijeˇc koja se prenosi ima duljinu n = m + r. Sada funkciju E : R m

→R n sa skupa svih rijeˇci duljine m u skup svih rijeˇci duljine n nazivamo kodiraju´com funkcijom (eng.

encoding function), a rijeˇci iz R n zovemo kodnim rijeˇcima (eng. code- word). Jasno je da je funkcija E injekcija. Definiramo i funkciju D : R n →

R m ∪ {pogreˇske}, koju nazivamo dekodiraju´com funkcijom (eng. decoding function). Kad ne bi bilo pogreˇsaka, funkcije D i E bi bile medusobno in- verzne. Skup kodnih rijeˇci je pravi podskup skupa svih binarnih rijeˇci duljine n, pa postoje elementi iz R n koji ne predstavljaju kodne rijeˇci. Kod prijema rijeˇci treba prona´ci najbliˇzu rijeˇc i s njom je identificirati. Ovo je dekodi- ranje po principu ”najbliˇzeg susjeda”. Problem je ve´ci ako takav ”najbliˇzi susjed” nije jedinstven.

Ponovimo, proces kodiranja i dekodiranja se sastoji od funkcija E :

R m →R iD:R →R ∪ {pogreˇske}, a ˇcesto se zove i (m, n) blok kod. Blok kod je sistematiˇcan (eng. systematic block code) ako je za dani

mnn

x m ∈R , prvih m bitova jednako bitovima od x (u istom poretku). Ovdje ´cemo govoriti samo o sistematiˇcnim blok kodovima.

Najˇceˇs´ci oblik kodiranja je kodiranje pomo´cu kontrolnog koda koji se sastoji od jednog bita i on je ili 0 ili 1, a bira se tako da ukupni broj jedinica u kodnoj rijeˇci bude paran broj (eng. even parity check code). Dakle, kodni blok je (m, m + 1) . Kod ove vrste kodiranja otkiva se pogreˇska koja je nastala u jednom bitu, ali se ne´ce znati koji je bit promijenjen.

POGLAVLJE 6. ALGEBARSKE STRUKTURE 269

Traˇzimo takvo kodiranje kod kojeg ´ce se mo´ci otkriti k ili manje od k pogreˇsaka i njega zovemo detektorom k pogreˇsaka (eng. k-error detecting), kodiranje u kojem ´cemo mo´ci ispraviti k ili manje od k pogreˇsaka. Takvo kodiranje zovemo korektorom k pogreˇsaka (eng. k-error correction). Dakle, kodiranje opisano u prethodnom odjeljku, koje se temelji na parnom broju jedinica, je detektor jedne pogreˇske i korektor 0 pogreˇsaka.

Ranije smo uoˇcili da mogu´cnost otkrivanja i ispravljanja pogreˇsaka ovisi

i o udaljenosti medu rijeˇcima. U tu svrhu definiramo minimalnu udaljenost kodova kao minimum svih udaljenosti medu parovima kodova. Slijede teoremi koji upotrebom pojma minimalne udaljenosti, daju uvje- te da bi kod bio detektor k pogreˇsaka, odnosno korektor k pogreˇsaka. Minimalna udaljenost koda definira se kao minimum udaljenosti izmedu parova kodnih rijeˇci.

Teorem 6.9 Kod je detektor k pogreˇsaka ako i samo ako mu je minimalna udaljenost koda najmanje k + 1.

Dokaz. Znamo da se pogreˇska u kodnoj rijeˇci moˇze uoˇciti samo ako zbog pogreˇske nismo dobili neku drugu kodnu rijeˇc. Dakle, ako je promijenjeno k bitova, ne smije postojati kodna rijeˇc koja se od poslane razlikuje u k bitova. Drugim rijeˇcima, to znaˇci da minimalna udaljenost rijeˇci treba biti ve´ca od k.

Teorem 6.10 Kod je korektor k pogreˇsaka ako i samo ako mu je minimalna udaljenost najmanje 2k + 1.

Dokaz. Dokaz se provodi upotrebom svojstava metrike. Ovdje ´cemo dokazati samo jedan smjer teorema, a drugi ostavljamo za vjeˇzbu. Pretpostavimo da je kod korektor k pogreˇsaka, te ˇzelimo dokazati da je tada minimalna udaljenost svakog para kodnih rijeˇci najmanje 2k + 1. Dokaz provodimo metodom suprotnog. Pretpostavimo da postoji par kodnih rijeˇci x, y ˇcija je udaljenost manja od 2k + 1. Piˇsemo d (x, y) ≤ 2k, ali po prethodnom teoremu imamo d (x, y) ≥ k + 1, pa vrijedi

k+1 ≤ d (x, y) ≤ 2k.

Pretpostavimo sada da je na rijeˇci x napravljeno k pogreˇsaka i da je primljena rijeˇc x ′ , pa vrijedi d (x, x ′ ) = k. Ako je svaka pogreˇsaka nastala baˇs u znamenkama u kojima se x i y razlikuju, vrijedi da je d (x ′ , y) ≤ k, pa je x ′ jednako udaljen od x i y, te ne moˇze biti dekodiran.

6.4.4 Grupa koda Sada ´cemo formirati grupu na skupu svih kodnih rijeˇci. Da bi to mogli

uˇciniti definirajmo, prvo, operaciju zbrajanja kodnih rijeˇci na skupu R n svih kodnih rijeˇci od n bitova. Dogovorno ´cemo kodne rijeˇci ponekad zapisivati

6.4. PRIMJENA GRUPA U KODIRANJU

kao uredene n-torke kako bismo jasno razdvojili pojedine bitove. Kad nema opasnosti da se pomijeˇsaju bitovi, kodne rijeˇci ´cemo i dalje prikazivati kao nizove (bez zareza izmedu bitova).

Definicija 6.7 n Neka su x, y ∈R i x = (x

1 ,x 2 , ..., x n ) , y = (y 1 ,y 2 , ..., y n ). Zbroj kodnih rijeˇci x i y je kodna rijeˇc x

⊕y∈R n , definirana sa x ⊕ y = (x 1 + 2 y 1 ,x 2 + 2 y 2 , ..., x n + 2 y 2 ).

Dakle, kodne se rijeˇci zbrajaju tako da se zbroje komponente kodnih rijeˇci pomo´cu zbrajanja modulo 2. Zbrajanje modulo 2 nam osigurava da ´ce bitovi biti 0 ili 1.

Primjer 6.6 Zbrojimo kodne rijeˇci:

Zadatak 6.17 Zbrojite sljede´ce kodne rijeˇci:

2. 010101 ⊕ 101010. Zbog zbrajanja modulo 2, znamo da ´ce zbroj biti jedinica ako se na ko-

respodentnim mjestima bitovi razlikuju, a dobit ´cemo nulu ako su bitovi koji se zbrajaju jednaki. Ovo svojstvo nam omogu´cava identifikaciju ra- zliˇcitih bitova u kodnim rijeˇcima. Zbrojimo li jedinice u kodnoj rijeˇci, koja predstavlja zbroj dviju kodnih rijeˇci, dobit ´cemo udaljenost tih kodnih rijeˇci.

Definicija 6.8 Teˇzina rijeˇci (eng. weight) x je broj w (x) , koji kazuje koliko jedinica ima u toj rijeˇci, tj. za x = (x 1 ,x 2 , ..., x n ) teˇzina je

w (x) =

i =1

Propozicija 6.5 Udaljenost rijeˇci x, y ∈R n je dana s:

(6.2) Kod za koji je skup kodnih rijeˇci grupa s obzirom na zbrajanje kodnih

d (x, y) = x ⊕ y.

rijeˇci zovemo grupa kodova (eng. group code). Nadalje, kod koji je zatvoren s obzirom na operaciju ⊕ zovemo linearni kod (vidi [1], str. 341). Ekviva-

lentno, kod je linearan ako i samo ako predstavlja podgrupu od R n . Dakle, termini grupa kodova i linearni kod su sinonimi jer se radi o konaˇcnim gru-

pama. Prema Lagrangeovom teoremu, iz ˇcinjenice da kodne rijeˇci ˇcine grupu

C, koja je podgrupa od R n , slijedi da je red C grupe C djelitelj od 2 n .

POGLAVLJE 6. ALGEBARSKE STRUKTURE 271 Zadatak 6.18 n Dokaˇzite da je (R , ⊕) grupa. Ako ste rijeˇsili prethodnu vjeˇzbu znate da je (R n , ⊕) grupa. Medutim,

znamo da su u tom skupu rijeˇci vrlo sliˇcne, pa nema smisla koristiti taj skup kod identifikacije i ispravljanja pogreˇsaka. Potrebno je da minimalna udaljenost kodnih rijeˇci bude ve´ca od 1. Prisjetimo se da bi u svrhu nalaˇzenja minimalne udaljenosti unutar skupa trebalo izraˇcunati udaljenosti svih pa- rova kodnih rijeˇci, ˇsto je u sluˇcaju skupa s ve´cim brojem elemenata dug proces.

U svrhu skra´civanja tog postupka, uvedimo raˇcunanje udaljenosti pomo- ´cu zbrajanja kodnih rijeˇci kao ˇsto je dano u formuli 6.2. Nadalje, ukoliko je skup kodova grupa, tada se minimalna udaljenost moˇze dobiti kao minimalna teˇzina svih kodnih rijeˇci, koje se ne sastoje od samih nula. Kodnu rijeˇc koja se sastoji od samih nula oznaˇcavamo s 0. To je sadrˇzaj sljede´ceg teorema.

Teorem 6.11 Minimalna udaljenost kodnih rijeˇci u grupi kodova je jednaka minimalnoj teˇzini svih kodnih rijeˇci, koje se ne sastoje od samih nula.

Dokaz. Neka je m minimalna udaljenost kodnih rijeˇci u skupu S. To znaˇci da postoje dvije kodne rijeˇci x i y takve da je

m = d (x, y) = w (x ⊕ y) .

Zbog svojstva zatvorenosti u grupi znamo da je x ⊕y ∈ S. Ako je n minimalna teˇzina rijeˇci, koje se ne sastoje od samih nula, u grupi, tada vrijedi:

w (x ⊕ y) ≥ n.

Dakle m ≥ n. S druge strane, uoˇcimo da je 0 neutralni element u grupi, te da za svaki

x ∈ S vrijedi x ⊕ x = 0. Imamo x ⊕ 0 = x za svaki x ∈ S, pa je

d (x, 0) = w (x ⊕ 0) = w (x) .

Uzmimo specijalno da je z rijeˇc minimalne teˇzine, tj. w (z) = n. Sada imamo n = d (z, 0) ≥ m.

Dokazali samo da je i n ≥ m, tako da moˇzemo zakljuˇciti da je m = n. Zadatak 6.19 Neka je C grupa kodova. Pokaˇzite da je podskup od C u

kojem su sve kodne rijeˇci parne teˇzine, grupa kodova. Nadalje, dokaˇzite da ili sve kodne rijeˇci u C imaju parne teˇzine ili njih toˇcno polovica ima parne teˇzine.

6.4. PRIMJENA GRUPA U KODIRANJU

6.4.5 Matrica izvodnica kodiraju´ ce funkcije Uvedimo sada reprezentaciju kodiraju´ce funkcije E : R m

→R n pomo´cu matrice G tipa (m, n) , ˇciji su elementi nule i jedinice. Takvu matricu zovemo

matrica izvodnica (eng. generator matrix) za kod. Da bi kodirali rijeˇc od m bitova, rijeˇc predstavimo kao uredenu m-torku (jednoreˇcanu matricu) i mnoˇzimo je modulo 2 matricom izvodnicom. Naglasimo da su sve operacije zbrajanja i mnoˇzenja, zbrajanje i mnoˇzenje modulo 2.

Za sistematiˇcne kodove vrijedi da je prvih m bitova u kodnoj rijeˇci jed- nako rijeˇci koju smo kodirali, pa prvih m redaka i m stupaca matrice G ˇcini jediniˇcnu matricu m-tog reda.

Primjer 6.7 Neka je matrica izvodnica dana s:

Ona prikazuje kodiraju´cu funkciju E : R 4 →R 8 . Dakle, rijeˇci 1000 pridruˇzena je kodna rijeˇc 10001010. Pitamo se, koja je kodna rijeˇc E (1101) pridruˇzena rijeˇci 1101? Odgovor bismo dobili tako da pomnoˇzimo jed-

£ noreˇcanu matricu ¤ 1101 matricom G kao ˇsto slijedi

E (1101) = ¤ 11011101 . Uzmimo sada da kodiramo neku op´cenitu rijeˇc x = x 1 x 2 x 3 x 4 i pri tome

dobijemo kodnu rijeˇc u = u 1 u 2 ...u 8 . Imamo

1 x 2 x 3 x 4 x 1 + 2 x 3 x 2 + 2 x 3 x 1 + 2 x 2 x 3 + 2 x 4 . Sada je

E (1101) = ¤ x

u 1 =x 1 u 2 =x 2 u 3 =x 3 u 4 =x 4

u 5 =x 1 + 2 x 3 u 6 =x 2 + 2 x 3 u 7 =x 1 + 2 x 2 u 8 =x 3 + 2 x 4 ,

POGLAVLJE 6. ALGEBARSKE STRUKTURE 273

ˇsto, uz uvaˇzavanje da je 0 + 2 0=0i1+ 2 1 = 0, vodi do homogenog sustava linearnih jednadˇzbi

u 1 + 2 u 3 +u 5 =0 u 2 + 2 u 3 +u 6 =0 u 1 + 2 u 2 + 2 u 7 =0

u 3 + 2 u 4 + 2 u 8 = 0. Matrica tog homogenog sustava je

i nju zovemo kontrolnom matricom (eng. parity check matrix), budu´ci da za svaku pravilno prenesenu kodnu rijeˇc u mora vrijediti

(6.3) gdje je O nul matrica tipa (4, 1) .

Ku T = O,

Ispitajmo joˇs u kakvoj su medusobnoj ovisnosti matrice G i K. Uoˇcimo

da se G moˇze prikazati pomo´cu particije G = [I m A] , te da je tada pripadna

kontrolna matrica K = ¤ A T I

To je bit sljede´ceg teorema. Teorem 6.12 Neka je kodiraju´ca funkcija E : R m

→R n prikazana pomo´cu matrice izvodnice G tipa (m, n) i matrica izvodnica je takva da je G = [I m A] .

Tada vrijedi:

1. E (x) = xG, m ∀x ∈ R ,

2. Ku ¤ = O, ∀u ∈ R , gdje je K = A T I

Dokaz. Dokaˇzimo sada da formula 6.3 vrijedi op´cenito za bilo koju kodnu rijeˇc u.

Za u m ∈R uvijek postoji rijeˇc x ∈R takva da je u = xG. Sada je

TTT

T Ku T = K (xG) = (sv. transp. produkta matrica (AB) =B A ) ¡ T T =K ¢ G x = (asocijativnost mnoˇzenja matrica) A (BC) = (AB) ¡

T ¢ = T KG x = (uzimamo particije od K i G) ·

x = (mnoˇzenje blokova u matricama)

= T A + 2 A x =O

(n−m,m) x =O (n−m,1) .

6.4. PRIMJENA GRUPA U KODIRANJU Zadatak 6.20 T Pokaˇzite da, u uvjetima prethodnog dokaza, vrijedi A + 2

A=O (n−m,m) . Zadatak 6.21 Neka je matrica izvodnica dana s

1000101  G=  0100011  .

0011100 Ona prikazuje kodiraju´cu funkciju E : R 3 →R 7 .

1. Nadite E (101) .

2. Nadite kontrolnu matricu K.

3. Provjerite da li je kodna rijeˇc 1011101 dobro prenesena? Teorem 6.13 Neka je E : R m

→R n kodiraju´ca funkcija takva da je

E (x) = xG, gdje je G matrica izvodnica. Skup svih kodnih rijeˇci E (R m ) je grupa uz operaciju zbrajanja modulo 2. Dokaz. m Budu´ci je (R , ⊕) grupa, prema teoremu 6.8 dovoljno je poka- zati da je E morfizam, tj. da za sve x, y

∈R m vrijedi

E (x ⊕ y) = E (x) ⊕ E (y) .

Raˇcunamo:

E (x ⊕ y) = (x ⊕ y) G = xG ⊕ yG

= E (x) ⊕ E (y) .

Na kraju ove toˇcke pokazat ´cemo u kakvoj su vezi minimalna teˇzina kodnih rijeˇci u grupi kodova i kontrolne matrice. Uzmimo da je K kontrolna matrica tipa (r, n) , gdje je r = n − m, te

da su stupci matrice K oznaˇceni s K 1 ,K 2 , ..., K n . Pretpostavimo da je u k stupaca zbroj elemenata u pripadnim recima jednak nuli, te oznaˇcimo te stupce sa K i 1 ,K i 2 , ..., K i k . Rijeˇc u, koja ima m bitova i jedinice na mjes- tima i 1 ,i 2 , ..., i k , a na ostalim mjestima nule zadovoljava matriˇcnu jednadˇzbu Ku T = O i ona je kodna rijeˇc. Vrijedi i obrat, tj. ako kodna rijeˇc ima je- dinice na mjestima i 1 ,i 2 , ..., i k , a na ostalim mjestima nule, tada stupci pod brojevima i 1 ,i 2 , ..., i k imaju zbroj jednak nuli. Dakle, zakljuˇcujemo da je minimalna teˇzina koda definiranog pomo´cu matrice izvodnice G, jednaka minimalnom broju stupaca od K ˇcija je suma jednaka nuli. Budu´ci da je kod definiran pomo´cu matrice izvodnice grupa znaˇci da je minimalna teˇzina koda jednaka minimalnoj udaljenosti kodnih rijeˇci, pa je vaˇzna kod pronalaˇzenja i ispravljanja pogreˇsaka kod kodova.

Postoji jedinstveni teorem koji govori o uvjetima koje mora zadovoljavati matrica K da bi kod ispravljao barem jednu pogreˇsku.

POGLAVLJE 6. ALGEBARSKE STRUKTURE 275

Teorem 6.14 Ako ne postoji stupac od K koji se sastoji od samih nula i nijedna dva stupca nisu jednaka, onda kod definiran s K ispravlja barem jednu pogreˇsku.

Dokaz. Dokaz napravite sami za vjeˇzbu. Primjer 6.8 Vratimo se primjeru 6.7 u kojem je kodiraju´ca funkcija E :

R 4 →R 8 dana pomo´cu matrice izvodnice G. Kontrolna matrica je

Nadimo minimalnu teˇzinu koda u ovom primjeru. Budu´ci da nema stupaca u kojima su same nule, kao ni jednakih stupaca,

minimalna teˇzina je barem 3. Ispitajmo da li je mogu´ce zbrojiti modulo 2 bilo koja tri stupca tako da im suma bude jednoretˇcana nulmatrica. To je mogu´ce posti´ci, na primjer, zbrajanjem prvog, petog i sedmog stupca. Zakljuˇcujemo da je minimalna teˇzina u grupi kodova jednaka 3, pa je i mini- malna udaljenost jednaka 3. Znaˇci da je op´cenito mogu´ce prona´ci pogreˇsku u dva bita i ispraviti je u jednom bitu.

Zadatak 6.22 Neka je matrica izvodnica dana s

100110  G=  010101  .

001011 Ona prikazuje kodiraju´cu funkciju E : R 3 →R 6 .

1. Nadite E (011) .

2. Nadite kontrolnu matricu K.

3. Provjerite da li je kodna rijeˇc 101011 dobro prenesena?

4. Nadite minimalnu teˇzinu ove grupe kodova.