Th´eorie de l’information
M1 Informatique 2013-2014
Fiche de TD 2
Codes
Exercice 1. (Codes et algorithme de Sardinas et Patterson)
On rappelle qu’un ensemble Cfini de mots est un code si, pour tous mots uiCet vjCtels que i[n] et
j[m], l’´
egalit´
e
u1·u2. . . un=v1·v2. . . vm
implique n=met ui=vipour tout i[n].
1. Construire un code qui contient quatre mots sur l’alphabet {a,b}.
2. D´
emontrer que l’ensemble {a,ab,ba}n’est pas un code.
3. Expliquer pourquoi l’ensemble {b,ab,aab}est un code.
4. Expliquer pourquoi l’ensemble {a,ab}est un code.
5. D´
emontrer que tout ensemble Cfini de mots est un code si et seulement si pour tous mots uiCet vjC
tels que i[n] et j[m], l’´
egalit´
eu1. . . un=v1. . . vmimplique u1=v1.
6. D´
emontrer que tout ensemble Cde mots ayant tous la mˆ
eme longueur est un code.
7. D´
emontrer que tout ensemble Cde mots tel qu’aucun mot n’est pr´
efixe propre d’un autre est un code.
Lalgorithme de Sardinas et Patterson permet de d´
ecider si un ensemble Cfini de mots est un code. Il se d´
ecrit
de la mani`
ere suivante :
(i) initialisation : U0:=C1·C\ {};
(ii) it´eration : Ui+1:=U1
i·CC1·Ui;
(iii) arrˆet : si Uialors Cn’est pas un code et si Ui=Ujavec i>j, alors Cest un code.
On rappelle que si Let Ksont deux ensembles de mots, l’ensemble L1·Kest d´
efini par
L1·K:={mot v: il existe uLtel que u·vK}.
8. Donner un argument pour justifier le fait que cette suite d’instructions termine sur l’entr´
ee de tout ensemble
fini de mots.
En appliquant l’algorithme de Sardinas et Patterson, d´
ecider si les ensembles suivants sont des codes :
9. C1:={ab,baa,abba,aabaa};
10. C2:={aaa,aba,abb,abaab};
11. C3:={a,abba};
12. C4:={b,aa,ab,ba};
13. C5:={aa,ab,ba,bb,baaababa};
14. C6:={a,ab,bba,bbab,bbbb}.
1
Exercice 2. (Arbres, codes pr´efixes et longueur de mots)
Soit A:={a1,...,ak}un alphabet de taille k. On consid`
ere une suite de nombres entiers positifs
s:=(s1,s2,...,sn)
telle que
n
X
i=1
si
ki1.(1)
On souhaite montrer de mani`
ere constructive que si la suite sv´
erifie (1), alors on peut construire un code pr´
efixe Cs
sur l’alphabet Aqui contient exactement simots de longueur i.
1. Montrer que c’est possible si pour tout i[n], on a sik1.
2. Soit sune suite qui v´
erifie (1) et telle qu’il existe r[n] tel que srk. On d´
efinit Θr(s) comme la suite v´
erifiant
Θr(s)i:=
srksi i=r,
sr1+1 si i=r1,
sisinon,
pour tout i[n]. Montrer que la suite Θr(s) v´
erifie (1).
3. Soit sune suite qui v´
erifie (1) et telle qu’il existe r[n] tel que srk. En supposant que l’on dispose d’un
code pr´
efixe CΘr(s), d´
eterminer un moyen de construire Cs.
4. En d´
eduire un algorithme qui, ´
etant donn´
ee une suite sv´
erifiant (1) construit un code pr´
efixe sur Aavec
exactement simots de longueur i.
Exercice 3. (Algorithme de Varn)
Lalgorithme de Varn consiste, sur l’entr´
ee d’un alphabet A:={a1,...,ak}, d’une fonction de co ˆ
ut c:AN\ {0}
et d’un entier nde la forme n=`(k1) +1 o `
u`est un entier strictement positif, `
a construire un code pr´
efixe de
cardinal nsur l’alphabet A.
Cet algorithme construit un arbre Td’arit´
ekde la mani`
ere suivante :
(1) l’arbre Test initialis´
e en une racine ´
etiquet´
ee par 0 ;
(2) Pour iallant de 1 `
a`:
(a) soit xune feuille de Tavec une plus petite ´
etiquette ;
(b) pour chaque lettre aide A, construire un nœud ´
etiquet´
e par l’´
etiquette de xplus c(ai) et attacher ce nœud
`
axpar une arˆ
ete ´
etiquet´
ee par ai.
1. Expliquer comment, `
a partir d’un arbre Tproduit par l’algorithme de Varn, on obtient un code pr´
efixe XTde
cardinal nsur A.
2. Un code pr´
efixe Xest maximal si pour tout code pr´
efixe Ytel que XYA, on a X=Y. Montrer que tout
code obtenu par l’algorithme de Varn est un code pr´
efixe maximal.
3. Construire un code pr´
efixe de cardinal 7 sur l’alphabet A:={a,b,c,d}o`
u l’on a c(a) :=1, c(b) :=2, c(c) :=3 et
c(d) :=4 en appliquant l’algorithme de Varn.
4. Construire un code pr´
efixe de cardinal 7 sur l’alphabet A:={a,b,c}o`
u l’on a c(a) :=2, c(b) :=4 et c(c) :=5 en
appliquant l’algorithme de Varn.
5. Construire un code pr´
efixe de cardinal 13 sur l’alphabet A:={a,b,c}o`
u l’on a c(a) :=1, c(b) :=3 et c(c) :=4
en appliquant l’algorithme de Varn.
6. Reformuler en d´
etail la description de l’algorithme de Varn en explicitant les structures de donn´
ees utilis´
ees.
´
Evaluer sa complexit´
e en espace et en temps en fonction du cardinal ndu code pr´
efixe construit.
7. Le co ˆ
ut c(X) d’un code pr´
efixe Xsur Aest d´
efini par
c(X) :=X
xX
c(x1)+· · · +cx|x|.
Calculer les co ˆ
uts des codes construits pr´
ec´
edemment.
8. Un code pr´
efixe Xde cardinal nsur Aest optimal s’il minimise c(X). D´
emontrer que tout code construit par
l’algorithme de Varn est optimal parmi les codes maximaux.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !