Você está na página 1de 13

Gabarito - Lista 5 Cdigos eficientes e compresso

1) a) Os cdigos de Shannon-Fano e Huffman so iguais:


A=0
B = 10
C = 110
D = 1110
E = 11110
F = 111110
G = 1111110
H = 1111111
b) H(X) = L(Shannon-Fano) = L(Huffman) = 1,98 bits. Portanto, a eficincia de
ambos igual a 100%.(note que as probabilidades so didicas, potncias de
1/2)
2) a) Os cdigos de Shannon-Fano e Huffman so iguais:
A = 110
B = 111
C = 00
D = 01
E = 10
b) H(X) = L(Shannon-Fano) = L(Huffman) = 2,25 bits. Portanto, a eficincia de
ambos igual a 100%.(note que as probabilidades so didicas, potncias de
1/2)
3) Huffman:
x1 = 00
x2 = 110
x3 = 100
x4 = 010
x5 = 011
x6 = 1010
x7 = 11100
x8 = 11101
x9 = 10110
x10 = 10111
x11 = 11110
x12 = 111110
x13 = 111111

Shannon-Fano:
x01 = 00
x02 = 010
x03 = 011
x04 = 100
x05 = 1010
x06 = 1011
x07 = 1100
x08 = 11010
x09 = 11011
x10 = 1110
x11 = 11110
x12 = 111110
x13 = 111111
H(X) = 3,35 bits; L(Huffman) = 3,41 bits; L(Shannon-Fano) = 3,42 bits.

4) a) 168 bits
b)
espao = 000
t = 001
a = 010
i = 011
e = 1000
s = 1010
l = 1011
m = 1100
u = 1101
o = 1110
f = 11110
c = 11111
L(Shannon-Fano) = 3,541 bits
c)
espao = 00
t = 100
a = 101
i = 010
e = 1100
s = 1101
l = 0110
m = 0111
u = 11100
o = 11101
f = 11110
c = 11111

L(Huffman) = 3,458 bits


d) H(X) = 3,407 bits;
Eficincia Shannon-Fano = 0,962;
Eficincia Huffman = 0,985
5) a) 1 Terabyte = 240 bytes = 8 * 240 bits = 243 bits. Como cada base equivale a
2 bits, precisamos de 243/2 = 242 bases ~ 4 trilhes de bases
b)
s1 = GA
s2 = A
s3 = C
s4 = TA
s5 = TC
s6 = GC
s7 = GT
s8 = GG
L = 1,6 base por smbolo em mdia
H = - 2*0.2*log40.2 2*0.15*log40.15 - 2*0.1*log40.1 2*0.05*log40.05 =
= 1,42 base por smbolo
Eficincia = H/L = 1,42/1,6 = 0,8875
6) a) 176 bits.
b) 147,01 bits.
c) H(X) = 3,3412. Contribuio de cada smbolo quantidade de informao
de cada smbolo multiplicada pela frequncia:
P = 0,46
e = 0,45
espao = 0,42
c = 0,26
i = 0,26
k = 0,26
r = 0,26
d = 0,20
a = 0,12
f = 0,12
l = 0,12
o = 0,12
s = 0,12
t = 0,12

d)
p = 00
e = 01
espao = 110
c = 1000
i = 1001
k = 1010
r = 1011
d = 11100
a = 111010
f = 111011
l = 111100
o = 111101
s = 111110
t = 111111
e)
i) 149 bits
ii) A codificao de Huffman utilizou menos bits que a codificao com tamanho
fixo.
iii) A codificao de Huffman atingiu uma quantidade de bits prxima da
quantidade de informao da frase
7) a) A e D
b) A e D
9) s1 = 0
s2 = 00
s3 = 100
s4 = 111
H(X) = 1,75
L = 1,75
Eficincia = 100% (L = H(X))
10) Eficincia = H(X) / L
Portanto, para eficincia de 100%: L = H(X)
O cdigo de tamanho fixo => L = n0
A probabilidade dos m smbolos igual => H(X) = log2(m)
Com isso, chega-se a: n0 = log2(m).
11)
a) H = 4 * 1/4 * log21/4 = 2 bits por nucleotdeo.
Portanto, como h 10 nucleotdeos, a mensagem contm 20 bits de
informao.

b) H = 2 * 1/3 * log21/3 + 2 * 1/6 * log21/6 = 1,92 bits por nucleotdeo.


Portanto, como h 10 nucleotdeos, a mensagem contm 19,2 bits de
informao.
12)
a) A e D
b)
Cdigo A:

Cdigo D:

b)
Cdigo A = S1S1S3S5S2S1S1
Cdigo D = S1S4S5S4S1
Cdigos B e C: impossvel decodific-los, pois so ambguos (do margem a
diversas interpretaes)
13) Como os smbolos so equiprovveis, H(X) = log28 = 3. O menor cdigo de
tamanho fixo para codificar 8 smbolos tambm igual a 3. Portanto, a
eficincia do cdigo de tamanho fixo para este caso 100%.
14)
H(X) = 2,1496
a) s1 = 00
s2 = 01
s3 = 10
s4 = 110
s5 = 111
L = 2,25
n = 0,9554 (eficincia)
b)
s1 = 00
s2 = 01
s3 = 10
s4 = 110
s5 = 111
L = 2,25
n = 0,9554 (eficincia)
A eficincia da codificao de Huffman foi a mesma obtida com a codificao
de Shannon-Fano.
15)
H(X) = 2,3219 bits
a)
x1 = 00
x2 = 01
x3 = 10
x4 = 110
x5 = 111
L = 2,4 bits. Eficincia = 0,9675

b)
x1 = 00
x2 = 010
x3 = 011
x4 = 10
x5 = 11
L = 2,4 bits. Eficincia = 0,9675. Eficincias iguais.
16)
H(X) = 2,44
a)
A = 2,44/2,5375 = 0,96158
B = 2,44/2,7875 = 0,87534
C = 2,44/3 = 0,81333
D = 2,44/2,45 = 0,99592
b)
Shannon-Fano e Huffman iguais:
1: 111
2: 01
3: 100
4: 101
5: 110
6: 00
Eficincia = 2,44/2,5375 = 0,96158.
17) Eficincia = H (X)/L(C) = 100% = 1
Como os elementos so equiprovveis, pi = 1/K para todo i = 1,2,..,K. Ento:
H(X) = log2K
Portanto, como L(C) = K * (1/K) * w = w, sendo w o comprimento da palavra
cdigo, ento para termos eficincia 1, precisamos igualar w H(X). Portanto
w = log2K.
Para descobrir K, basta utilizar a propriedade didica, a qual garante eficincia
1. Tal propriedade diz que as probabilidades de todos os smbolos devem ser
potncias de . Como os elementos so equiprovveis, pi deve ser 1/2n para
todo i = 1,2,...,K.
Como pi = 1/K para todo i = 1,2,...,K, ento:
1/K = 1/2n => K = 2n (K deve ser uma potncia de 2).

18) a) 1: 0; 2: 1; 3: 00; 4: 01; 5: 10; 6: 11


b) L(Joozinho) = 1,45 bits
L(Huffman) = 2,35 bits por smbolo em mdia
H = 2,325 bits
Eficincia(Joozinho) = 2,325/1,45 = 1,66
Eficincia(Huffman) = 2,325/2,35 = 0,989
O cdigo do Joozinho ambguo (no unicamente decodificvel) j que uma
determinada mensagem pode dar margem a diversas interpretaes (exemplo:
010 poderia ser a concatenao do smbolo 1 com 2 com 1, ou 1 com 5, ou 4
com 1). Portanto, ao utilizar esse cdigo, so necessrias informaes
adicionais sobre onde esto os separadores de smbolos. Assim, devido a essa
necessidade de adicionar informaes sobre os separadores dos smbolos, na
prtica sua eficincia acaba sendo pior que a do cdigo de Huffman, que
sabidamente timo.
19) a1) ii; a2) iv; a3) i; a4) iii; a5) ii
b) Pelo fato do cdigo Morse no ser unicamente decodificvel (ambguo).
20)
Para 2 dados honestos, o nmero de possibilidades existentes para cada uma
das somas possveis (de 2 at 12) so:
2 [(1,1)] = 1 possibilidade
3 [(1,2); (2,1)] = 2 possibilidades
4 [(1,3); (2,2); (3,1)] = 3 possibilidades
5 [(1,4); (2,3); (3,2); (4,1)] = 4 = 4 possibilidades
6 [(1,5); (2,4); (3,3); (4,2); (5,1)] = 5 possibilidades
7 [(1,6); (2,5); (3,4); (4,3); (5,2); (6,1)] = 6 possibilidades
8 [(2,6); (3,5); (4,4); (5,3); (6,2)] = 5 possibilidades
9 [(3,6); (4,5); (5,4); (6,3)] = 4 possibilidades
10 [(4,6); (5,5); (6,4)] = 3 possibilidades
11 [(5,6); (6,5)] = 2 possibilidades
12 [(6,6)] = 1 possibilidade
Portanto, sendo X a soma dos dois dados, temos:
P(X=2) = P(X=12) = 1/36; P(X=3) = P(X=11) = 2/36;
P(X=4) = P(X=10) = 3/36; P(X=5) = P(X=9) = 4/36;
P(X=6) = P(X=8) = 5/36; P(X=7) = 6/36
Como Joozinho tem que minimizar o nmero mdio de questes, deve aplicar
o cdigo de Huffman para essas probabilidades:

36/36

s
21/36

15/36
n
7/36
n
5
4/36

s
n
10
9
3/36 4/36

8/36
s
4/36
s
n
3
11
2/36
2/36

10/36
n
s
6
8
5/36
5/36

s
11/36
s
n
7
5/36
6/36 n
s
4
2/36
s
3/36 n
2
12
1/36
1/36

O cdigo de Huffman de acordo com a rvore obtida fornece exatamente a


sequncia de perguntas que deve fazer de acordo com as respostas que for
obtendo (ver abaixo). A primeira pergunta : A soma pertence ao conjunto
{2,4,6,7,8,12}? (conjunto onde a primeira resposta seria sim). Caso a
resposta seja sim, ele repete a mesma pergunta para o conjunto {2,4,7,12}
(conjunto onde a primeira resposta sim e a segunda sim). Mas caso a
primeira resposta seja no, repete a mesma pergunta para o conjunto {3, 9,
11} (conjunto onde a primeira resposta no e a segunda sim). E assim
por diante, at obter toda informao necessria para dizer o valor da soma.
2: ssssn; 3: nssn; 4: sssn; 5: nnn; 6: snn; 7: ssn;
8: sns; 9: nsn; 10: nns; 11: nsss; 12: sssss
O nmero mdio dado por:
5*2*(1/36)+4*(2+2+3)/36 + 3*(3+4+4+5+5+6)/36 = 119/36 ~ 3,3 perguntas
E a entropia dada por:
H(X) = -2*[(1/36)*log21/36-(2/36)*log22/36-(3/36)*log23/36-(4/36)*log24/36-(5/36)*log25/36]-(6/36)*log26/36 = 3,2744
Portanto, a eficincia 3,2744/3,3056 = 0,9906.
A rvore soluo da questo 8 da lista anterior foi:

Assim, o nmero mdio de perguntas nesse caso, levando em conta as


probabilidades de cada valor de soma dado por:
(4+3)*(1/36)+(4+3)*(2/36)+(3+3)*(3/36)+(3+4)*(4/36)+(4+4)*(5/36)+4*(6/36) =
~ 3,64
Portanto, o cdigo de Huffman resultou em um nmero mdio de perguntas
menor (3,3) do que a soluo dada na lista anterior (3,64). Isso porque a
soluo da lista anterior negligenciou as probabilidades de cada valor de soma
(considerou que todos os valores so equiprovveis, quando na verdade no
so).
21)
1[1]2[2]1[1]2[1]1[1]2[1]1[1]3[1]
Run-length usou 256 bits, enquanto a mensagem original tinha 72 bits. A
mensagem aumentou em 256/72 = 3,56 vezes (256% de aumento).
22)
a) Considerando que cada caractere ocupa 1 byte, a frase ocupa 124 bytes.

b)

c)

d) O dicionrio ocupa 5 bits por entrada e, como possui 20 entradas, ocupa 100
bits. No entanto, note que d para fazer ainda melhor aplicando cdigo de
Huffman, considerando cada palavra como smbolo, j que as palavras
possuem probabilidades variveis, sendo que o caractere espao de longe o
mais freqente (o espao seria representado por apenas 1 bit, j que
responsvel por quase 50% das ocorrncias).
23) Devido ao fato do algoritmo run-length compactar baseando-se em
sequncias de smbolos repetidos, este algoritmo no garante economia de
espao, pois pode tornar a mensagem ainda maior caso no existam muitos
repeties de sequenciais de um mesmo smbolo.
24)
a) A[3] B[6] Y[4] P[9] T[1] K[8] 31 248
b) 1[5] 2[3] 3[5] 1[1] 2[6] 1[7] 3[9] 36 288
25) Assumindo que run-length utiliza 8 bits por caractere da string gerada:
a) Diminuiu o tamanho da mensagem em 22,6%.
b) Diminuiu o tamanho da mensagem em 22,2%.
26)
Compresso sem perda deve ser utilizada quando for fundamental que a
mensagem original seja preservada completamente. Por exemplo, no caso da
transmisso de um arquivo executvel, essencial que no ocorra qualquer bit
alterado, o que poderia invalidar a execuo do arquivo.
Compresso com perda pode ser utilizada quando pequenas distores na
mensagem original no tero grande impacto, conferindo um ganho de
compresso frequentemente muito maior do que a compresso sem perda,
como no caso de compresso de imagens, udio e vdeo.
27) Com 8 bits, pode-se representar 28 = 256 nveis de cinza. Com 4 bits, podese representar 24 = 16 nveis de cinza. Portanto, um mtodo de quantizao de
uma imagem de 8 bits para 4 bits pode dividir o intervalo de 256 nveis em 16
intervalos, sendo que os primeiros 16 nveis (0 a 15) so mapeados para o
nvel 0, os prximos 16 nveis (16 a 31) so mapeados para o nvel 1, e assim
por diante, at os ltimos 16 nveis (240 a 255) sendo mapeados para o nvel
15 (quantizao uniforme).
Esse mtodo facilmente estendido para imagens coloridas RGB, bastando
aplic-lo para cada canal de maneira independente

28)
O run-length prov compresso excelente para a mensagem i, j que h duas
sequncias de 20 smbolos repetidos (1 para os As e outro para os Bs),
comprimindo para A[20]B[20]. Para a mensagem ii, o run-length no prov
compresso, pois no existe qualquer repetio de smbolos em sequncia
29)
a) Tamanho do arquivo = 30 X 40 X 3 = 3600 bytes ou 28800 bits.
b)
MN -> cabealho contendo a resoluo (4 bytes)
RGB[X]RGB[X]RGB[X]
(a primeira tripla referindo-se cor preta, a segunda cor vermelha e a terceira
cor amarela)
- 3 triplas RGB de 3 bytes cada = 9 bytes
- 6 colchetes de 1 byte cada = 6 bytes
- 3 nmeros inteiros X de 4 bytes cada representando o nmero de repeties
de cada tripla = 12 bytes
Portanto, o tamanho do arquivo comprimido de 4 + 3*(3+4+2) = 31 bytes (248
bits). A taxa de compresso foi de 1 (31/3600) = 99,14%
c) O mtodo run-length mais adequado para esse caso, pois h regies com
grande nmero de repeties de smbolos consecutivos. J o cdigo de
Huffman menos indicado nesse caso, pois apesar de uma das cores ter
apenas 1 bit de informao associado a ele e as outras duas cores terem 2 bits
de informao (rvore de deciso com 3 smbolos equiprovveis), esses bits
tero que ser armazenados para todos os pixels da imagem, formando ao todo
um arquivo de 10 X 40 X 1 + 10 X 40 X 2 + 10 X 40 X 2 = 2000 bits ou 250
bytes e mais alguns poucos bytes correspondentes a um cabealho adicional
que informa o cdigo em bits de cada cor.