Definiţia 1.1 Fiind date mulţimile A (alfabetul sursă) şi B (alfabetul cod), o codificare

Σχετικά έγγραφα
Metode iterative pentru probleme neliniare - contractii

Curs 4 Serii de numere reale

Coduri detectoare şi corectoare de erori

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Curs 1 Şiruri de numere reale

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Criptosisteme cu cheie publică III

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

riptografie şi Securitate

MARCAREA REZISTOARELOR

1.3 Baza a unui spaţiu vectorial. Dimensiune

Integrala nedefinită (primitive)

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Asupra unei inegalităţi date la barajul OBMJ 2006

Curs 2 Şiruri de numere reale

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

Seminar 5 Analiza stabilității sistemelor liniare

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

III. Reprezentarea informaţiei în sistemele de calcul

Sisteme diferenţiale liniare de ordinul 1

Acesta este capitolul 2 Noţiuni de teoria informaţiei al ediţiei electronică

Esalonul Redus pe Linii (ERL). Subspatii.

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

Principiul Inductiei Matematice.

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Demonstraţie: Să considerăm polinomul {f(x)} asociat cuvântului - cod: f(x) = h(1) + h(α)x h(α n 1 )X n 1 = a 0 (1 + X + X

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Subiecte Clasa a VIII-a

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

Examen AG. Student:... Grupa:... ianuarie 2011

Subiecte Clasa a V-a

Funcţii Ciudate. Beniamin Bogoşel

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

Examen AG. Student:... Grupa: ianuarie 2016

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

Metode de interpolare bazate pe diferenţe divizate

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3)

Subiecte Clasa a VII-a

CURS XI XII SINTEZĂ. 1 Algebra vectorială a vectorilor liberi

Vectori liberi Produs scalar Produs vectorial Produsul mixt. 1 Vectori liberi. 2 Produs scalar. 3 Produs vectorial. 4 Produsul mixt.

5.4. MULTIPLEXOARE A 0 A 1 A 2

Progresii aritmetice si geometrice. Progresia aritmetica.

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

Laborator 11. Mulţimi Julia. Temă

SEMINARUL 3. Cap. II Serii de numere reale. asociat seriei. (3n 5)(3n 2) + 1. (3n 2)(3n+1) (3n 2) (3n + 1) = a

f(x) = l 0. Atunci f are local semnul lui l, adică, U 0 V(x 0 ) astfel încât sgnf(x) = sgnl, x U 0 D\{x 0 }. < f(x) < l +

2 Transformări liniare între spaţii finit dimensionale

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

riptografie şi Securitate

Al cincilea baraj de selecţie pentru OBMJ Bucureşti, 28 mai 2015


Capitolul 2. Integrala stochastică

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

O generalizare a unei probleme de algebră dată la Olimpiada de Matematică, faza judeţeană, 2013

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii

Matrice. Determinanti. Sisteme liniare

Functii Breviar teoretic 8 ianuarie ianuarie 2011

COMBINATORICĂ. Mulţimile ordonate care se formează cu n elemente din n elemente date se numesc permutări. Pn Proprietăţi

Câmp de probabilitate II

Criterii de comutativitate a grupurilor

z a + c 0 + c 1 (z a)

6 n=1. cos 2n. 6 n=1. n=1. este CONV (fiind seria armonică pentru α = 6 > 1), rezultă

7 Distribuţia normală

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ

Curs 4. I.4 Grafuri. Grafuri orientate

a. 11 % b. 12 % c. 13 % d. 14 %

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

Rădăcini primitive modulo n

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

8 Intervale de încredere

CONCURSUL INTERJUDEȚEAN DE MATEMATICĂ TRAIAN LALESCU, 1998 Clasa a V-a

CURS VII-IX. Capitolul IV: Funcţii derivabile. Derivate şi diferenţiale. 1 Derivata unei funcţii. Interpretarea geometrică.

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB

GEOMETRIE PLANĂ TEOREME IMPORTANTE ARII. bh lh 2. abc. abc. formula înălţimii

SEMINAR TRANSFORMAREA FOURIER. 1. Probleme

Spaţii vectoriale. Definiţia 1.1. Fie (K, +, ) un corp şi (V, +) un grup abelian.

Algebră liniară CAPITOLUL 3

Statisticǎ - curs 3. 1 Seria de distribuţie a statisticilor de eşantioane 2. 2 Teorema limitǎ centralǎ 5. 3 O aplicaţie a teoremei limitǎ centralǎ 7

VII.2. PROBLEME REZOLVATE

CURS 5 Spaţii liniare. Spaţiul liniar R n

prin egalizarea histogramei

1.4 Schimbarea bazei unui spaţiu vectorial

Transcript:

Prelegerea 1 Codificare şi decodificare 1.1 Codificare Definiţia 1.1 Fiind date mulţimile A (alfabetul sursă) şi B (alfabetul cod), o codificare este o aplicaţie injectivă K : A B. Elementele mulţimii K(A) B se numesc cuvinte-cod, iar K(A) se numeşte cod. Dacă B are numai două simboluri, codificarea K se numeşte binară. Exemplul 1.1 Printre secvenţele binare de lungime 5, numărul celor care au doi de 1 este C 2 5 = 10. Ele pot fi folosite pentru a codifica cifrele din scrierea zecimală (Tabelul 1.1). Tabelul 1.1: Codul doi-din-cinci Simbol zecimal Cuvânt cod 1 11000 2 10100 3 01100 4 10010 5 01010 6 00110 7 10001 8 01001 9 00101 0 00011 Mesajul 173 are codul 110001000101100. De remarcat că între cuvintele cod nu se lasă nici un spaţiu, deoarece spaţiu poate fi el însusi un simbol-cod. Astfel de exemplu, codul Morse are alfabetul B = {.,, spaţiu}. Decodificarea se face foarte simplu: se împarte mesajul codificat în grupe de câte cinci caractere şi se vede cifra din tabel corespunzătoare grupei respective. Repartizarea cuvintelor cod a fost făcută pentru a realiza şi o decodificare pe baza unei 1

2 PRELEGEREA 1. CODIFICARE ŞI DECODIFICARE formule. Astfel, dacă a 0 a 1 a 2 a 3 a 4 este cuvântul - cod, el corespunde cifrei k dată de algoritmul: begin x := a 1 + 2a 2 + 4a 3 + 7a 4 ; if x = 11 then k := 0 else k := x; end. Definiţia 1.2 Pentru o codificare K : A B, se numeşte codificare a mesajelor (textului) sursă aplicaţia K : A B definită recursiv prin: K (ɛ) = ɛ (ɛ este cuvântul vid); K (aα) = K (a)k (α), a A, α A. Definiţia 1.3 Codificarea K este unic decodabilă dacă K este injectivă. Codificarea dată în Exemplul 1.1 este - după cum s-a observat - unic decodabilă. Acest lucru nu este totdeauna posibil. Dacă luăm de exemplu codificarea K(a) = 00, K(b) = 10, K(c) = 101, K(d) = 110, K(e) = 1001, ea nu este unic decodabilă; astfel K (bd) = K (cb) = 101110. Definiţia 1.4 1. O codificare K : A B în care toate cuvintele cod au lungimea n se numeşte codificare-bloc de lungime n, iar K(A) este un cod-bloc de lungime n. 2. O codificare K : A B se numeşte instantanee dacă K(A) are proprietatea prefixului (dacă α, αβ K(B) atunci β = ɛ). Codul definit în Exemplul 1.1 este un cod - bloc de lungime 5. Codurile bloc sunt eficiente în cazul când simbolurile sursă au frecvenţe egale de apariţie; în caz contrar, ele devin greoaie şi sunt preferabile codurile instantanee cu lungimi variabile ale cuvintelor cod. Exemplul 1.2 Codul Morse, dat în Tabelul 1.2 este un cod instantaneu cu alfabetul cod B = {.,, }. Deoarece spaţiul este folosit numai la sfârşitul fiecărui cuvânt - cod, procedura de decodificare este simplă: orice cuvânt - cod se află între două spaţii, de la începutul mesajului până la primul spaţiu, sau de la ultimul spaţiu până la sfârşit. Motivul pentru care nu se foloseşte un cod - bloc este simplu: frecvenţele literelor într-o limbă diferă foarte mult. Exemplul 1.3 Un alt exemplu de cod - bloc este codul octal: 0 000 4 100 1 001 5 101 2 010 6 110 3 011 7 111

1.2. EXEMPLE DE CODURI - BLOC IMPORTANTE 3 Tabelul 1.2: Codul Morse A. - F.. -. K -. - P. - -. U.. - B -... G - -. L. -.. Q - -. - V... - C -. -. H.... M - - R. -. W. - - D -.. I.. N -. S... X -.. - E. J. - - - O - - - T - Y -. - - Z - -.. Exemplul 1.4 Să presupunem că vrem să construim un cod binar pentru alfabetul {0, 1, 2, 3} şi observăm că 0 apare în mesajele sursă mai des decât orice alt simbol. Atunci următoarea schemă de codificare pare rezonabilă: K(0) = 0, K(1) = 01, K(2) = 011, K(3) = 111. Decodificarea sa este foarte simplă: se aplică recursiv regula: Se consideră sufixul 01 k ; valoarea lui k reprezintă numărul codificat. Totuşi această codificare nu este instantanee. Într-adevăr, dacă se primeşte un mesaj lung de forma 0111111111111111... nu vom şti dacă primul simbol sursă este 0, 1 sau 2 până nu se termină mesajul. 1.2 Exemple de coduri - bloc importante Codurile binare sunt de obicei lungi şi deci greu de manipulat. Este deci convenabil să grupăm simbolurile binare formând alfabete mai complexe. Astfel, formând grupuri de câte trei simboluri, se obţin codurile octale (Exemplul 1.3). Reprezentarea în octal se indică de obicei prin indicele 8 aşezat la sfârşit. De exemplu, (01) 8 = 000001 În mod similar, prin gruparea a câte patru simboluri binare se obţine codul hexazecimal. Un cod foarte important folosit în reprezentarea standard a simbolurilor alfabetice şi numerice este codul ASCII (American Standard Code for Information Interchange) - Tabelul 1.3.

4 PRELEGEREA 1. CODIFICARE ŞI DECODIFICARE Tabelul 1.3: Codul ASCII (7 biţi de informaţie) Simbol Cod Simbol Cod Simbol Cod Simbol Cod sursă sursă sursă sursă @ 1(00) 8 1(40) 8 NUL 0(00) 8 SP 0(40) 8 A 1(01) 8 a 1(41) 8 SOH 0(01) 8! 0(41) 8 B 1(02) 8 b 1(42) 8 STX 0(02) 8 0(42) 8 C 1(03) 8 c 1(43) 8 ETX 0(03) 8 # 0(43) 8 D 1(04) 8 d 1(44) 8 EOT 0(04) 8 $ 0(44) 8 E 1(05) 8 e 1(45) 8 ENQ 0(05) 8 % 0(45) 8 F 1(06) 8 f 1(46) 8 ACK 0(06) 8 & 0(46) 8 G 1(07) 8 g 1(47) 8 BEL 0(07) 8 0(47) 8 H 1(10) 8 h 1(50) 8 BS 0(10) 8 ( 0(50) 8 I 1(11) 8 i 1(51) 8 HT 0(11) 8 ) 0(51) 8 J 1(12) 8 j 1(52) 8 LF 0(12) 8 * 0(52) 8 K 1(13) 8 k 1(53) 8 VT 0(13) 8 + 0(53) 8 L 1(14) 8 l 1(54) 8 FF 0(14) 8 0(54) 8 M 1(15) 8 m 1(55) 8 CR 0(15) 8-0(55) 8 N 1(16) 8 n 1(56) 8 SO 0(16) 8. 0(56) 8 O 1(17) 8 o 1(57) 8 SI 0(17) 8 / 0(57) 8 P 1(20) 8 p 1(60) 8 DLE 0(20) 8 0 0(60) 8 Q 1(21) 8 q 1(61) 8 DCI 0(21) 8 1 0(61) 8 R 1(22) 8 r 1(62) 8 DC2 0(22) 8 2 0(62) 8 S 1(23) 8 s 1(63) 8 DC3 0(23) 8 3 0(63) 8 T 1(24) 8 t 1(64) 8 DC4 0(24) 8 4 0(64) 8 U 1(25) 8 u 1(65) 8 NAK 0(25) 8 5 0(65) 8 V 1(26) 8 v 1(66) 8 SYN 0(26) 8 6 0(66) 8 W 1(27) 8 w 1(67) 8 ETB 0(27) 8 7 0(67) 8 X 1(30) 8 x 1(70) 8 CAN 0(30) 8 8 0(70) 8 Y 1(31) 8 y 1(71) 8 EM 0(31) 8 9 0(71) 8 Z 1(32) 8 z 1(72) 8 SUB 0(32) 8 : 0(72) 8 [ 1(33) 8 { 1(73) 8 ESC 0(33) 8 ; 0(73) 8 1(34) 8 1(74) 8 FS 0(34) 8 0(74) 8 ] 1(35) 8 } 1(75) 8 GS 0(35) 8 = 0(75) 8 1(36) 8 1(76) 8 RS 0(36) 8 0(76) 8 1(37) 8 DEL 1(77) 8 US 0(37) 8? 0(77) 8 El are 2 7 = 128 simboluri sursă codificate în secvenţe binare de lungime 8; primele 7 conţin infomaţia, iar ultimul - numit bit de paritate dă un prim control asupra corectitudinii secvenţei. Valoarea acestui caracter este suma modulo 2 a primilor şapte biţi. De exemplu, litera A, va avea codul 10000010; primele şapte simboluri provin din Tabelul 1.3 iar ultimul are valoarea 0 deoarece anterior au fost două (număr par) simboluri binare cu valoarea 1. Un ultim cod, folosit internaţional pentru toate cărţile este Internaţional Standard Book Number (ISBN). El este un cod - bloc de lungime 10 (lungimea cuvintelor - cod creşte prin folosirea simbolului - pe diverse poziţii, dar acest caracter este ig-

1.3. CONSTRUCŢIA CODURILOR INSTANTANEE 5 norat la prelucrarea automată). Alfabetul cod este B = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, X}, (X pentru numărul 10). De exemplu, cartea S. Lin, P. Costello - Teoria Codurilor are codul ISBN 0 13 283796 X Primul număr (0) reprezintă ţara (SUA), 13 reprezintă editura (Prentice-Hall), iar următoarele şase cifre sunt asignate de editură ca număr de identificare al cărţii. Ultimul simbol este de control (similar cu bitul de paritate definit anterior) şi definit astfel: 10 Pentru codul ISBN a 1 a 2... a 10, ia 11 i = 0 (mod 11). Astfel,în ISBN-ul de sus, 10 0 + 9 1 + 8 3 + 7 2 + 6 8 + 5 3 + 4 7 + 3 9 + 2 6 + 1 10 = 187 0 (mod 11) Unele publicaţii au codul de identificare de trei cifre (de exemplu Wiley-Interscience are 471); în acest caz numărul pentru fiecare publicaţie are numai cinci simboluri. Pentru România, codul de ţară este 973. 1.3 Construcţia codurilor instantanee Ne punem problema construirii unui cod binar instantaneu peste alfabetul sursă A = {a 1,..., a n }. Iniţial se specifică lungimile d 1, d 2,..., d n ale cuvintelor cod. Fără a micşora generalitatea, putem presupune d 1 d 2... d n. Se alege un cuvânt - cod binar arbitrar K(a 1 ) de lungime d 1. Se alege un cuvânt - cod arbitrar K(a 2 ) din mulţimea cuvintelor binare de lungime d 2 care nu au pe K(a 1 ) ca prefix. Aceasta este totdeauna posibil pentru că: Numărul tuturor secvenţelor binare de lungime d 2 este 2 d 2 ; dintre acestea, numărul celor care nu au prefixul K(a 1 ) este 2 d 2 d 1. Cum 2 d 2 2 d 2 d 1 + 1, există cel puţin o alegere posibilă pentru K(a 2 ) de lungime d 2. Va trebui să selectăm în continuare un cuvânt de lungime d 3 care nu are ca prefix K(a 1 ) sau K(a 2 ). Deci, din cele 2 d 3 secvenţe binare posibile trebuiesc eliminate cele 2 d 3 d 1 secvenţe cu prefixul K(a 1 ) şi 2 d 3 d 2 secvenţe cu prefixul K(a 2 ). Aceasta este posibil dacă şi numai dacă 2 d 3 2 d 3 d 2 + 2 d 3 d 1 + 1 Împărţind această inegalitate cu 2 d 3 se obţine 1 2 d 1 + 2 d 2 + 2 d 3. În mod analog se poate arăta inegalitatea 1 2 d 1 + 2 d 2 +... + 2 dn din care rezultă construcţia. De remarcat că ea este o condiţie necesară şi suficientă pentru construcţia codurilor instantanee.

6 PRELEGEREA 1. CODIFICARE ŞI DECODIFICARE Teorema 1.1 Fiind dat un alfabet sursă de n simboluri şi un alfabet cod de k simboluri, se poate construi un cod instantaneu cu lungimile cuvintelor cod d 1, d 2,..., d n dacă şi numai dacă este verificată inegalitatea (Kraft): k d 1 + k d 2 +... + k d n 1. Demonstraţie: Fie A = {a 1, a 2,..., a n } şi putem presupune relaţia d 1 d 2... d n. Construim codificarea instantanee K prin inducţie astfel: Se alege K(a 1 ) arbitrar. Presupunem că au fost alese K(a 1 ), K(a 2 ),... K(a s 1 ). Atunci se va alege un cuvânt arbitrar K(a s ) care nu are ca prefix nici unul din cuvintele selectate anterior. Aceasta este posibil deoarece numărul cuvintelor cu prefixul K(a i ) este 2 d s d i (1 i s 1); deci alegerea poate fi făcută din k ds s 1 k ds d i elemente. Din inegalitatea lui Kraft avem s 1 1 k d i k ds care, prin multiplicare cu k ds conduce la s 1 k d s k d s d i 1. Afirmaţia reciprocă se demonstrează similar (pentru k = 2 ea a fost dată anterior). Teorema 1.2 (McMillan) Orice codificare unic decodabilă satisface inegalitatea lui Kraft. Demonstraţie: Fie K o codificare unic decodabilă. Notăm cu d i lungimea cuvântului cod K(a i ), (1 i n). Se observă că j, (j 1) se pot forma k j cuvinte de lungime j peste alfabetul - cod cu k simboluri. Din proprietatea de unic decodabilitate, numărul mesajelor sursă α = a i1 a i2... a ir al căror cod are lungimea j nu depăşeşte k j. Lungimea codului pentru α este d i1 +d i2 +...+d ir ; deci numărul tuturor sumelor de forma d i1 + d i2 +... + d ir = j este cel mult k j. n Rămâne de demonstrat că numărul c = k d i este cel mult 1. Pentru aceasta, vom arăta că r 1, cr este mărginit. r

1.4. CODURI HUFFMAN 7 Să calculăm puterile lui c: ( c 2 n = k i) n n d k d j = k (d i+d j ) j=1 i,j=1 şi, în general, c r = n k (d i 1 +d i2 +...+d i r ) i 1,i 2,...,i r =1 Această sumă se poate re-ordona grupând toţi termenii de forma k j unde j satisface egalitatea anterioară. Cel mai mare j posibil este j = d + d +... + d = rd, unde d = max{d 1, d 2,..., d n }. Numărul tuturor termenilor de forma k j din sumă este cel mult k j. Deci, c r rd j=1 k j k j = rd j=1 1 = rd. Deci, cr r d, de unde va rezulta c 1 (pentru c > 1 şirul a r = cr r este mărginit)., deci nu Corolarul 1.1 Pentru orice cod unic decodabil există un cod instantaneu care are toate cuvintele - cod de lungimi egale. Demonstraţie: Rezultă din demonstraţia teoremei precedente. Exemplul 1.5 Să considerăm alfabetul sursă = {a, b, c} şi alfabetul - cod B = {0, 1}; deci n = A = 3, k = B = 2. Vrem să construim o codificare instantanee K : A B care are toate cuvintele - cod de lungime d. Inegalitatea Kraft va da 2 d + 2 d + 2 d 1, deci 2 d 1. Cel mai mic d care o verifică este 3 d = 2. Deci orice mulţime de 3 secvenţe binare de lungime 2 va putea fi folosită drept cod. Sunt 4 astfel de mulţimi: {00, 01, 10}, {00, 01, 11}, {00, 10, 11}, {01, 10, 11} 1.4 Coduri Huffman Am menţionat anterior faptul că dacă frecvenţa simbolurilor sursă variază, atunci codurile instantanee sunt preferabile codurilor bloc, deoarece simbolurile care apar mai frecvent vor fi codificate cu cuvinte cod mai scurte. Ne punem problema aflării unor codificări cât mai eficiente, în ipoteza că frecvenţele simbolurilor sursă sunt cunoscute exact (de exemplu probabilitatea distribuţiei simbolurilor sursă în mesaje). Definiţia 1.5 O sursă de informaţie este o pereche S = (A, P ) unde A = {a 1, a 2,..., a n } este alfabetul sursă(mulţime ordonată); P = {P (a 1 ), P (a 2 ),..., P (a n )} este mulţimea ordonată a probabilităţilor elementelor lui A, deci

8 PRELEGEREA 1. CODIFICARE ŞI DECODIFICARE 0 P (a i ) 1, (1 i n); n P (a i ) = 1. Fie K o codificare a unei surse de informaţie. Dacă se notează cu d i = K(a i ) ( α reprezintă lungimea secvenţei α), se poate defini lungimea medie L a cuvintelor cod prin n L = d i P (a i ). O codificare este eficientă dacă lungimea medie a secvenţelor cod este cât mai mică. Definiţia 1.6 Fiind dată o sursă de informaţie S şi un alfabet cod, un cod Huffman este un cod instantaneu cu lungimea medie minimă. Lungimea medie minimă a unui cod Huffmann se notează cu L min (S). Exemplul 1.6 Să se determine un cod Huffman binar pentru alfabetul sursă A = {a, b, c, d, e, f} ştiind că a apare de două ori mai des decât e şi e de două ori mai des decât orice consoană. Deci, vom avea sursa de informaţie Simbol a b c d e f Probabilitate 0.4 0.1 0.1 0.1 0.2 0.1 Putem asigna deci un cuvânt cod de lungime 1 lui a şi unul de lungime doi lui e. Atunci lungimile cuvintelor cod rămase sunt egale cu 4, iar inegalitatea lui Kraft este saturată: 1 + 1 + 4 = 1. Un astfel de cod se poate construi: 2 2 2 2 4 Lungimea sa medie este K(a) = 0 K(c) = 1101 K(e) = 10 K(b) = 1100 K(d) = 1110 K(f) = 1111 L = 0.4 + 2 0.2 + 4 4 0.1 = 2.4 Deci, pentru acest exemplu, L min (S) 2.4 1.4.1 Construcţia codurilor Huffman binare O sursă cu două simboluri are evident un cod Huffman de cuvinte cod {0, 1} (şi deci L min (S) = 1). O sursă cu trei simboluri {a 1, a 2, a 3 } în care a 1 are probabilitate maximă, poate fi redusă la cazul a două simboluri {a 1, a 2,3 } unde P (a 2,3 ) = P (a 2 ) + P (a 3 ). Vom găsi o codificare Huffman pentru sursa redusă K(a 1 ) = 0, K(a 2,3 ) = 1. după care spargem cuvântul cod 1 în două cuvinte: 10 şi 11; în acest fel se obţine un cod Huffman pentru sursa originală:

1.4. CODURI HUFFMAN 9 a 1 a 2 a 3 0 10 11 În general, fie S o sursă de informaţie cu simbolurile {a 1, a 2,..., a n } ordonate după probabilităţi, adică: P (a 1 ) P (a 2 )... P (a n ). Contruim o sursă redusă S cu simbolurile {a 1,..., a n 2, a n 1,n } unde a n 1,n este un simbol nou, cu probabilitatea P (a n 1,n ) = P (a n 1 ) + P (a n ). Dacă nu se poate construi un cod Huffman pentru S, se reia procedeul pentru această sursă (reordonând eventual simbolurile după probabilitate); în final se va ajunge la o sursă (pentru două simboluri problema a fost rezolvată) în care care codul Huffman se poate construi. Dacă se poate găsi o codificare Huffman K pentru sursa redusă S, atunci codul din Tabelul 1.4 este un cod Huffman pentru S (vom demonstra această afirmaţie). Tabelul 1.4: a 1 a 2... a n 2 a n 1 a n K (a 1 ) K (a 2 )... K (a n 2 ) K (a n 1,n )0 K (a n 1,n )1 Lema 1.1 L(K) = L(K ) + P (a n 1 ) + P (a n ) Demonstraţie: Fie d 1, d 2,..., d n 2, d lungimile cuvintelor cod corespunzătoare lui K. Atunci lungimile cuvintelor cod pentru K sunt d 1, d 2,..., d n 2, d + 1, d + 1. Efectuând calculele, se obţine: n 2 L(K) = d i P (a i ) + (d + 1)P (a n 1 ) + (d + 1)P (a n ) = = n 2 d i P (a i ) + d [P (a n 1 ) + P (a n )] + P (a n 1 ) + P (a n ) = = L(K ) + P (a n 1 ) + P (a n ). Teorema 1.3 Fie K o codificare Huffman pentru o sursă de informaţie redusă S. Atunci codificarea K definită de Tabelul 1.4 este un cod Huffman pentru sursa de informaţie S. Demonstraţie: Fie a 1, a 2,..., a n simbolurile sursă, ordonate descrescător după probabilitate. Deoarece teorema este evidentă pentru P (a n ) = 0, vom considera doar cazul P (a n ) > 0. Demonstraţia constă din trei paşi: S admite o codificare Huffman K 0 cu lungimile cuvintelor cod ordonate: d 1 d 2... d n (d i = K 0 (a i ), 1 i n). Pentru a demonstra aceasta, plecăm de la un cod Huffman arbitrar K pentru S. Dacă există un simbol a i astfel ca d i > d i+1, notăm cu K codificarea

10 PRELEGEREA 1. CODIFICARE ŞI DECODIFICARE obţinută din K prin permutarea cuvintelor cod corespunzătoare lui a i şi a i+1. K este evident un cod instantaneu, iar diferenţa dintre lungimile medii L = L min (al lui K) şi L (al lui K ) este: L min L = [d i P (a i ) + d i+1 P (a i+1 )] [d i+1 P (a i ) + d i P (a i+1 )] = = (d i d i+1 )[P (a i ) P (a i+1 )]. Această expresie este produsul dintre un număr pozitiv şi unul nenegativ, deci L min L, iar din proprietatea de minimalitate rezultă L min = L. Cu alte cuvinte, K este un alt cod Huffman. Procedeul continuă până se obţine codul K 0 cerut. S admite o codificare Huffman K 1 în care ultimele cuvinte cod, K 1 (a n 1 ) şi K 1 (a n ) diferă doar prin ultimul simbol. Fie K 0 codul Huffman anterior şi K0 codul rezultat din K 0 eliminând ultimul simbol din K 0 (a n ). Lungimea medie a lui K0 va fi evident mai mică decât cea a lui K 0 (pentru că P (a n ) > 0), deci K0 nu poate fi instantaneu. Cuvântul cod K 0 (a i ) = K 0 (a i ), (1 i n 1) nu este prefixul nici unui cuvânt cod; deci există un i (i n 1) astfel încât K 0 (a n ) este prefixul lui K 0 (a i ). Aceasta este posibil numai dacă d i = d n şi deci K 0 (a i ) diferă de K 0 (a n ) numai prin ultimul simbol. Dacă i = n 1, se ia K 1 = K 0. Altfel, se observă că d i = d n implică d i = d i+1 =... = d n ; deci se pot permuta cuvintele cod definite în K 0 pentru a i şi a n 1. Codul K 1 astfel obţinut are aceeaşi lungime medie ca şi K 0, deci este un cod Huffman. Să presupunem că se dă o codificare Huffman K pentru sursa redusă S şi definim un cod K pentru S conform Tabelului 1.4. Lungimile lor medii L(K), L(K ) verifică relaţia din Lema 1.1. Să folosim acum codul Huffman K 1 construit mai sus. Deoarece ultimele două cuvinte cod diferă numai prin ultimul simbol, K 1 poate fi obţinut dintr-un cod K 1 al lui S prin spargerea ultimului cuvânt - cod. În plus, K 1 este evident instantaneu. Prin calcule se ajunge la relaţia L(K 1 ) L(K 1) = P (a n 1 ) + P (a n ) Cum avem şi L(K) L(K ) = P (a n 1 ) + P (a n ), rezultă L(K) = L(K 1 ) L(K 1) + L(K ). Acum, L(K ) = L min (S ), deci L(K1) + L(K ) 0. L(K 1 ) = L min (S). Deci, K este un cod Huffman. Rezultă L(K)

1.5. EXERCIŢII 11 1.5 Exerciţii Exerciţiul 1.1 Care este cea mai mică lungime a unui cod bloc cu alfabetul sursă A = {A, B,..., Z} şi alfabetul cod B = {.,, spaţiu} (ca la codul Morse). Exerciţiul 1.2 Se defineşte codificarea 1 01 4 1000 2 011 5 1100 3 10 6 0111 Este ea unic decodabilă? Este instantanee? Se poate găsi un cod instantaneu cu aceleaşi lungimi ale cuvintelor cod? Exerciţiul 1.3 Se defineşte codificarea A 1010 D 0001 B 001 E 1101 C 101 F 1011 Este ea unic decodabilă? Dacă nu, găsiţi două mesaje sursă cu acelaşi cod. Exerciţiul 1.4 Este unic decodabilă codificarea: 0 AA 4 ABBAA 7 AAAABB 1 AABAB 5 BABBA 8 AAAABA 2 ABBBBB 6 BBBAB 9 AAAAAB 3 ABABA Exerciţiul 1.5 Se poate decide unic decodabilitatea codificărilor folosind inegalitatea lui Kraft? K(a) = 001 K(a) = 00 K(b) = 1001 K(b) = 10 K(c) = 0010 K(c) = 011 K(d) = 1110 K(d) = 101 K(e) = 1010 K(e) = 111 K(f) = 01110 K(f) = 110 K(g) = 0101 K(g) = 010 Exerciţiul 1.6 Să se construiască un cod binar instantaneu pentru următorul alfabet sursă cu lungimile corespunzătoare ale cuvintelor cod: Simbol A B C D E F G H I J K L Lungime 2 4 7 7 3 4 7 7 3 4 7 7 Exerciţiul 1.7 Să se construiască un cod ternar (trei simboluri cod) instantaneu pentru următorul alfabet sursă, cu lungimile corespunzătoare ale cuvintelor cod:

12 PRELEGEREA 1. CODIFICARE ŞI DECODIFICARE Simbol 1 2 3 4 5 6 7 8 9 0 Lungime 1 3 3 3 3 3 2 2 2 2 Exerciţiul 1.8 Câte simboluri cod sunt necesare pentru ca următorul alfabet sursă să poată fi codificat într-un cod instantaneu cu lungimile cuvintelor cod date: A B C D E F G H I J K L M N O P 1 2 2 2 1 2 2 2 1 2 2 2 2 2 1 2 Exerciţiul 1.9 Demonstraţi că pentru orice cod instantaneu în care inegalitatea Kraft este strictă, este posibil să se adauge un nou simbol sursă şi să se extindă codul dat la un nou cod instantaneu (cu acelaşi alfabet cod). Demonstraţi aceasta pentru codul definit la Exerciţiul 1.6.