Sunteți pe pagina 1din 12

Prelegerea 1

Codicare si decodicare
1.1 Codicare
Denit ia 1.1 Fiind date mult imile A (alfabetul sursa) si B (alfabetul cod), o co-
dicare este o aplicat ie injectiva K : A B

.
Elementele mult imii K(A) B

se numesc cuvinte-cod, iar K(A) se numeste cod.


Daca B are numai doua simboluri, codicarea K se numeste binara.
Exemplul 1.1 Printre secvent ele binare de lungime 5, numarul celor care au doi
de 1 este C
2
5
= 10. Ele pot folosite pentru a codica cifrele din scrierea zecimala
(Tabelul 1.1).
Tabelul 1.1: Codul doi-din-cinci
Simbol zecimal Cuvant 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 ca ntre cuvintele cod


nu se lasa nici un spat iu, deoarece spat iu poate el nsusi un simbol-cod. Astfel
de exemplu, codul Morse are alfabetul B = {., , spat iu}.
Decodicarea se face foarte simplu: se mparte mesajul codicat n grupe de cate
cinci caractere si se vede cifra din tabel corespunzatoare grupei respective. Repar-
tizarea cuvintelor cod a fost facuta pentru a realiza si o decodicare pe baza unei
1
2 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
formule. Astfel, daca a
0
a
1
a
2
a
3
a
4
este cuvantul - cod, el corespunde cifrei k data de
algoritmul:
begin
x := a
1
+ 2a
2
+ 4a
3
+ 7a
4
;
if x = 11 then k := 0 else k := x;
end.
Denit ia 1.2 Pentru o codicare K : A B

, se numeste codicare a mesajelor


(textului) sursa aplicat ia K

: A

denita recursiv prin:


K

() = ( este cuvantul vid);


K

(a) = K

(a)K

(), a A, A

.
Denit ia 1.3 Codicarea K este unic decodabila daca K

este injectiva.
Codicarea data n Exemplul 1.1 este - dupa cum s-a observat - unic decodabila.
Acest lucru nu este totdeauna posibil. Daca luam de exemplu codicarea
K(a) = 00, K(b) = 10, K(c) = 101, K(d) = 110, K(e) = 1001,
ea nu este unic decodabila; astfel K

(bd) = K

(cb) = 101110 .
Denit ia 1.4 1. O codicare K : A B

n care toate cuvintele cod au lungi-


mea n se numeste codicare-bloc de lungime n, iar K(A) este un cod-bloc
de lungime n.
2. O codicare K : A B

se numeste instantanee daca K(A) are proprietatea


prexului (daca , K(B) atunci = ).
Codul denit n Exemplul 1.1 este un cod - bloc de lungime 5.
Codurile bloc sunt eciente n cazul cand simbolurile sursa au frecvent e egale de
aparit ie; n caz contrar, ele devin greoaie si 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 spat iul este folosit numai la sfarsitul ecarui cuvant -
cod, procedura de decodicare este simpla: orice cuvant - cod se aa ntre doua
spat ii, de la nceputul mesajului pana la primul spat iu, sau de la ultimul spat iu pana
la sfarsit. Motivul pentru care nu se foloseste un cod - bloc este simplu: frecvent ele
literelor ntr-o limba difera 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 Sa presupunem ca vrem sa construim un cod binar pentru alfabetul
{0, 1, 2, 3} si observam ca 0 apare n mesajele sursa mai des decat orice alt simbol.
Atunci urmatoarea schema de codicare pare rezonabila:
K(0) = 0, K(1) = 01, K(2) = 011, K(3) = 111.
Decodicarea sa este foarte simpla: se aplica recursiv regula:
Se considera suxul 01
k
; valoarea lui k reprezinta numarul codicat.
Totusi aceasta codicare nu este instantanee.

Intr-adevar, daca se primeste un
mesaj lung de forma
0111111111111111 . . .
nu vom sti daca primul simbol sursa este 0, 1 sau 2 pana nu se termina mesajul.
1.2 Exemple de coduri - bloc importante
Codurile binare sunt de obicei lungi si deci greu de manipulat. Este deci convenabil
sa grupam simbolurile binare formand alfabete mai complexe.
Astfel, formand grupuri de cate trei simboluri, se obt in codurile octale (Exemplul
1.3). Reprezentarea n octal se indica de obicei prin indicele 8 asezat la sfarsit. De
exemplu,
(01)
8
= 000001

In mod similar, prin gruparea a cate patru simboluri binare se obt ine codul hexa-
zecimal.
Un cod foarte important folosit n reprezentarea standard a simbolurilor alfa-
betice si numerice este codul ASCII (American Standard Code for Information
Interchange) - Tabelul 1.3.
4 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
Tabelul 1.3: Codul ASCII (7 bit i de informat ie)
Simbol Cod Simbol Cod Simbol Cod Simbol Cod
sursa sursa sursa sursa
@ 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 sursa codicate n secvent e binare de lungime 8;
primele 7 cont in infomat ia, iar ultimul - numit bit de paritate da un prim control
asupra corectitudinii secvent ei. Valoarea acestui caracter este suma modulo 2 a
primilor sapte bit i.
De exemplu, litera A, va avea codul 10000010; primele sapte simboluri provin
din Tabelul 1.3 iar ultimul are valoarea 0 deoarece anterior au fost doua (num ar
par) simboluri binare cu valoarea 1.
Un ultim cod, folosit internat ional pentru toate cart ile este Internat ional Stan-
dard Book Number (ISBN). El este un cod - bloc de lungime 10 (lungimea cuvintelor
- cod creste prin folosirea simbolului - pe diverse pozit ii, dar acest caracter este ig-
1.3. CONSTRUCT IA CODURILOR INSTANTANEE 5
norat la prelucrarea automata). Alfabetul cod este B = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, X},
(X pentru num arul 10).
De exemplu, cartea S. Lin, P. Costello - Teoria Codurilor are codul
ISBN 0 13 283796 X
Primul numar (0) reprezinta t ara (SUA), 13 reprezint a editura (Prentice-Hall),
iar urmatoarele sase cifre sunt asignate de editura ca numar de identicare al cart ii.
Ultimul simbol este de control (similar cu bitul de paritate denit anterior) si denit
astfel:
Pentru codul ISBN a
1
a
2
. . . a
10
,
10

i=1
ia
11i
= 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 publicat ii au codul de identicare de trei cifre (de exemplu Wiley-Inter-
science are 471); n acest caz num arul pentru ecare publicat ie are numai cinci
simboluri. Pentru Romania, codul de t ar a este 973.
1.3 Construct ia codurilor instantanee
Ne punem problema construirii unui cod binar instantaneu peste alfabetul sursa
A = {a
1
, . . . , a
n
}.
Init ial se specica lungimile d
1
, d
2
, . . . , d
n
ale cuvintelor cod. Far a a micsora
generalitatea, putem presupune d
1
d
2
. . . d
n
.
Se alege un cuvant - cod binar arbitrar K(a
1
) de lungime d
1
.
Se alege un cuvant - cod arbitrar K(a
2
) din mult imea cuvintelor binare de
lungime d
2
care nu au pe K(a
1
) ca prex. Aceasta este totdeauna posibil pentru ca:
Numarul tuturor secvent elor binare de lungime d
2
este 2
d
2
; dintre acestea, num a-
rul celor care nu au prexul K(a
1
) este 2
d
2
d
1
. Cum 2
d
2
2
d
2
d
1
+ 1, exista cel
put in o alegere posibila pentru K(a
2
) de lungime d
2
.
Va trebui sa selectamn continuare un cuvant de lungime d
3
care nu are ca prex
K(a
1
) sau K(a
2
). Deci, din cele 2
d
3
secvent e binare posibile trebuiesc eliminate cele
2
d
3
d
1
secvent e cu prexul K(a
1
) si 2
d
3
d
2
secvent e cu prexul K(a
2
). Aceasta este
posibil daca si numai daca
2
d
3
2
d
3
d
2
+ 2
d
3
d
1
+ 1

Impart ind aceasta inegalitate cu 2


d
3
se obt ine
1 2
d
1
+ 2
d
2
+ 2
d
3
.

In mod analog se poate arata inegalitatea


1 2
d
1
+ 2
d
2
+. . . + 2
dn
din care rezulta construct ia. De remarcat ca ea este o condit ie necesara si sucient a
pentru construct ia codurilor instantanee.
6 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
Teorema 1.1 Fiind dat un alfabet sursa de n simboluri si un alfabet cod de k sim-
boluri, se poate construi un cod instantaneu cu lungimile cuvintelor cod d
1
, d
2
, . . . , d
n
daca si numai daca este vericata inegalitatea (Kraft):
k
d
1
+k
d
2
+. . . +k
d
n
1.
Demonstrat ie: Fie A = {a
1
, a
2
, . . . , a
n
} si putem presupune relat ia d
1
d
2
. . .
d
n
. Construim codicarea instantanee K prin induct ie astfel:
Se alege K(a
1
) arbitrar.
Presupunem ca au fost alese K(a
1
), K(a
2
), . . . K(a
s1
). Atunci se va alege un
cuvant arbitrar K(a
s
) care nu are ca prex nici unul din cuvintele selectate
anterior. Aceasta este posibil deoarece numarul cuvintelor cu prexul K(a
i
)
este 2
d
s
d
i
(1 i s 1); deci alegerea poate facut a din
k
ds

s1

i=1
k
dsd
i
elemente.
Din inegalitatea lui Kraft avem
1
s1

i=1
k
d
i
k
ds
care, prin multiplicare cu k
ds
conduce la
k
d
s

s1

i=1
k
d
s
d
i
1.
Armat ia reciproca se demonstreaza similar (pentru k = 2 ea a fost data anterior).
2
Teorema 1.2 (McMillan) Orice codicare unic decodabila satisface inegalitatea lui
Kraft.
Demonstrat ie: Fie K o codicare unic decodabila. Notam cu d
i
lungimea cuvantului
cod K(a
i
), (1 i n). Se observa ca j, (j 1) se pot forma k
j
cuvinte de lungime
j peste alfabetul - cod cu k simboluri. Din proprietatea de unic decodabilitate,
num arul mesajelor sursa = a
i
1
a
i
2
. . . a
i
r
al caror cod are lungimea j nu depaseste
k
j
. Lungimea codului pentru este d
i
1
+d
i
2
+. . .+d
ir
; deci num arul tuturor sumelor
de forma
d
i
1
+d
i
2
+. . . +d
i
r
= j
este cel mult k
j
.
Ram ane de demonstrat ca numarul c =
n

i=1
k
d
i
este cel mult 1. Pentru aceasta,
vom arata ca r 1,
c
r
r
este marginit.
1.4. CODURI HUFFMAN 7
Sa calculam puterile lui c:
c
2
=

i=1
k
d
i

j=1
k
d
j

=
n

i,j=1
k
(d
i
+d
j
)
si, n general,
c
r
=
n

i
1
,i
2
,...,i
r
=1
k
(d
i
1
+d
i
2
+...+d
i
r
)
Aceasta suma se poate re-ordona grupand tot i termenii de forma k
j
unde j satisface
egalitatea anterioara. Cel mai mare j posibil este j = d + d + . . . + d = rd, unde
d = max{d
1
, d
2
, . . . , d
n
}.
Numarul tuturor termenilor de forma k
j
din suma este cel mult k
j
. Deci,
c
r

rd

j=1
k
j
k
j
=
rd

j=1
1 = rd.
Deci,
c
r
r
d, de unde va rezulta c 1 (pentru c > 1 sirul a
r
=
c
r
r
, deci nu
este marginit). 2
Corolarul 1.1 Pentru orice cod unic decodabil exista un cod instantaneu care are
toate cuvintele - cod de lungimi egale.
Demonstrat ie: Rezulta din demonstrat ia teoremei precedente.
Exemplul 1.5 Sa consideram alfabetul sursa = {a, b, c} si alfabetul - cod
B = {0, 1}; deci n = |A| = 3, k = |B| = 2. Vrem sa construim o codicare
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
3
. Cel mai mic d care o verica este
d = 2. Deci orice mult ime de 3 secvent e binare de lungime 2 va putea folosita
drept cod. Sunt 4 astfel de mult imi:
{00, 01, 10}, {00, 01, 11}, {00, 10, 11}, {01, 10, 11}
1.4 Coduri Human
Am ment ionat anterior faptul ca daca frecvent a simbolurilor sursa variaz a, atunci co-
durile instantanee sunt preferabile codurilor bloc, deoarece simbolurile care apar mai
frecvent vor codicate cu cuvinte cod mai scurte. Ne punem problema aarii unor
codicari cat mai eciente, n ipoteza ca frecvent ele simbolurilor sursa sunt cunos-
cute exact (de exemplu probabilitatea distribut iei simbolurilor sursa n mesaje).
Denit ia 1.5 O sursa de informat ie este o pereche S = (A, P) unde
A = {a
1
, a
2
, . . . , a
n
} este alfabetul sursa(mult ime ordonata);
P = {P(a
1
), P(a
2
), . . . , P(a
n
)} este mult imea ordonata a probabilitat ilor ele-
mentelor lui A, deci
8 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
0 P(a
i
) 1, (1 i n);

i=1
P(a
i
) = 1.
Fie K o codicare a unei surse de informat ie. Daca se noteaza cu d
i
= |K(a
i
)| (||
reprezint a lungimea secvent ei ), se poate deni lungimea medie L a cuvintelor cod
prin
L =
n

i=1
d
i
P(a
i
).
O codicare este ecient a daca lungimea medie a secvent elor cod este cat mai mica.
Denit ia 1.6 Fiind data o sursa de informat ie S si un alfabet cod, un cod Human
este un cod instantaneu cu lungimea medie minima.
Lungimea medie minima a unui cod Humann se noteaza cu L
min
(S).
Exemplul 1.6 Sa se determine un cod Human binar pentru alfabetul sursa A =
{a, b, c, d, e, f} stiind ca a apare de doua ori mai des decat e si e de doua ori
mai des decat orice consoana.
Deci, vom avea sursa de informat 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 cuvant cod de lungime 1 lui a si unul de lungime doi lui e.
Atunci lungimile cuvintelor cod ramase sunt egale cu 4, iar inegalitatea lui Kraft
este saturata:
1
2
+
1
2
2
+
4
2
4
= 1. Un astfel de cod se poate construi:
K(a) = 0 K(c) = 1101 K(e) = 10
K(b) = 1100 K(d) = 1110 K(f) = 1111
Lungimea sa medie este
L = 0.4 + 2 0.2 + 4 4 0.1 = 2.4
Deci, pentru acest exemplu, L
min
(S) 2.4
1.4.1 Construct ia codurilor Human binare
O sursa cu doua simboluri are evident un cod Human de cuvinte cod {0, 1} (si deci
L
min
(S) = 1).
O sursa cu trei simboluri {a
1
, a
2
, a
3
} n care a
1
are probabilitate maxima, poate
redusa la cazul a doua simboluri {a
1
, a
2,3
} unde P(a
2,3
) = P(a
2
) + P(a
3
). Vom
gasi o codicare Human pentru sursa redusa
K(a
1
) = 0, K(a
2,3
) = 1.
dupa care spargem cuvantul cod 1 n doua cuvinte: 10 si 11; n acest fel se obt ine
un cod Human pentru sursa originala:
1.4. CODURI HUFFMAN 9
a
1
a
2
a
3
0 10 11

In general, e S o sursa de informat ie cu simbolurile {a


1
, a
2
, . . . , a
n
} ordonate dupa
probabilitat i, adica:
P(a
1
) P(a
2
) . . . P(a
n
).
Contruim o sursa redusa S

cu simbolurile {a
1
, . . . , a
n2
, a
n1,n
} unde a
n1,n
este un
simbol nou, cu probabilitatea P(a
n1,n
) = P(a
n1
) +P(a
n
).
Daca nu se poate construi un cod Human pentru S

, se reia procedeul pentru


aceasta sursa (reordonand eventual simbolurile dupa probabilitate); n nal se va
ajunge la o sursa (pentru doua simboluri problema a fost rezolvat a) n care care
codul Human se poate construi.
Daca se poate gasi o codicare Human K

pentru sursa redusa S

, atunci codul
din Tabelul 1.4 este un cod Human pentru S (vom demonstra aceasta armat ie) .
Tabelul 1.4:
a
1
a
2
. . . a
n2
a
n1
a
n
K

(a
1
) K

(a
2
) . . . K

(a
n2
) K

(a
n1,n
)0 K

(a
n1,n
)1
Lema 1.1
L(K) = L(K

) +P(a
n1
) +P(a
n
)
Demonstrat ie: Fie d
1
, d
2
, . . . , d
n2
, d

lungimile cuvintelor cod corespunzatoare lui


K

. Atunci lungimile cuvintelor cod pentru K sunt d


1
, d
2
, . . . , d
n2
, d

+ 1, d

+ 1.
Efectuand calculele, se obt ine:
L(K) =
n2

i=1
d
i
P(a
i
) + (d

+ 1)P(a
n1
) + (d

+ 1)P(a
n
) =
=
n2

i=1
d
i
P(a
i
) +d

[P(a
n1
) +P(a
n
)] +P(a
n1
) +P(a
n
) =
= L(K

) +P(a
n1
) +P(a
n
).
2
Teorema 1.3 Fie K

o codicare Human pentru o sursa de informat ie redusa S

.
Atunci codicarea K denita de Tabelul 1.4 este un cod Human pentru sursa de
informat ie S.
Demonstrat ie: Fie a
1
, a
2
, . . . , a
n
simbolurile sursa, ordonate descrescator dupa prob-
abilitate. Deoarece teorema este evidenta pentru P(a
n
) = 0, vom considera doar
cazul P(a
n
) > 0. Demonstrat ia consta din trei pasi:
S admite o codicare Human 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, plecam de la un cod Human arbitrar K pentru
S. Daca exista un simbol a
i
astfel ca d
i
> d
i+1
, notam cu K

codicarea
10 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
obt inuta din K prin permutarea cuvintelor cod corespunzatoare lui a
i
si a
i+1
.
K

este evident un cod instantaneu, iar diferent a dintre lungimile medii L =


L
min
(al lui K) si 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
)].
Aceasta expresie este produsul dintre un num ar pozitiv si unul nenegativ, deci
L
min
L

, iar din proprietatea de minimalitate rezulta L


min
= L

. Cu alte
cuvinte, K

este un alt cod Human. Procedeul continu a pan a se obt ine codul
K
0
cerut.
S admite o codicare Human K
1
n care ultimele cuvinte cod, K
1
(a
n1
) si
K
1
(a
n
) difera doar prin ultimul simbol.
Fie K
0
codul Human anterior si

K
0
codul rezultat din K
0
eliminand ultimul
simbol din K
0
(a
n
). Lungimea medie a lui

K
0
va evident mai mica decat cea
a lui K
0
(pentru ca P(a
n
) > 0), deci

K
0
nu poate instantaneu. Cuvantul cod

K
0
(a
i
) = K
0
(a
i
), (1 i n 1) nu este prexul nici unui cuvant cod; deci
exista un i (i n 1) astfel nc at

K
0
(a
n
) este prexul lui K
0
(a
i
). Aceasta
este posibil numai daca d
i
= d
n
si deci K
0
(a
i
) difera de K
0
(a
n
) numai prin
ultimul simbol. Daca i = n 1, se ia K
1
= K
0
. Altfel, se observa ca d
i
= d
n
implica d
i
= d
i+1
= . . . = d
n
; deci se pot permuta cuvintele cod denite n K
0
pentru a
i
si a
n1
. Codul K
1
astfel obt inut are aceeasi lungime medie ca si K
0
,
deci este un cod Human.
Sa presupunem ca se da o codicare Human K

pentru sursa redusa S

si denim un cod K pentru S conform Tabelului 1.4. Lungimile lor medii


L(K), L(K

) veric a relat ia din Lema 1.1.


Sa folosim acum codul Human K
1
construit mai sus. Deoarece ultimele doua
cuvinte cod difera numai prin ultimul simbol, K
1
poate obt inut dintr-un cod
K

1
al lui S

prin spargerea ultimului cuvant - cod.



In plus, K

1
este evident
instantaneu. Prin calcule se ajunge la relat ia
L(K
1
) L(K

1
) = P(a
n1
) +P(a
n
)
Cum avem si L(K) L(K

) = P(a
n1
) +P(a
n
), rezulta
L(K) = L(K
1
) L(K

1
) +L(K

).
Acum, L(K

) = L
min
(S

), deci L(K

1
) + L(K

) 0. Rezulta L(K)
L(K
1
) = L
min
(S). Deci, K este un cod Human.
2
1.5. EXERCIT II 11
1.5 Exercit ii
Exercit iul 1.1 Care este cea mai mica lungime a unui cod bloc cu alfabetul sursa
A = {A, B, . . . , Z} si alfabetul cod B = {., , spat iu} (ca la codul Morse).
Exercit iul 1.2 Se deneste codicarea
1 01 4 1000
2 011 5 1100
3 10 6 0111
Este ea unic decodabila ? Este instantanee ? Se poate gasi un cod instantaneu cu
aceleasi lungimi ale cuvintelor cod ?
Exercit iul 1.3 Se deneste codicarea
A 1010 D 0001
B 001 E 1101
C 101 F 1011
Este ea unic decodabila ? Daca nu, gasit i doua mesaje sursa cu acelasi cod.
Exercit iul 1.4 Este unic decodabila codicarea:
0 AA 4 ABBAA 7 AAAABB
1 AABAB 5 BABBA 8 AAAABA
2 ABBBBB 6 BBBAB 9 AAAAAB
3 ABABA
Exercit iul 1.5 Se poate decide unic decodabilitatea codicarilor
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
folosind inegalitatea lui Kraft ?
Exercit iul 1.6 Sa se construiasca un cod binar instantaneu pentru urmatorul al-
fabet sursa cu lungimile corespunzatoare 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
Exercit iul 1.7 Sa se construiasca un cod ternar (trei simboluri cod) instantaneu
pentru urmatorul alfabet sursa, cu lungimile corespunzatoare ale cuvintelor cod:
12 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
Simbol 1 2 3 4 5 6 7 8 9 0
Lungime 1 3 3 3 3 3 2 2 2 2
Exercit iul 1.8 Cate simboluri cod sunt necesare pentru ca urmatorul alfabet sursa
sa poata codicat 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
Exercit iul 1.9 Demonstrat i ca pentru orice cod instantaneu n care inegalitatea
Kraft este stricta, este posibil sa se adauge un nou simbol sursa si sa se extinda
codul dat la un nou cod instantaneu (cu acelasi alfabet cod). Demonstrat i aceasta
pentru codul denit la Exercit iul 1.6.