Algorithmique TD7
L3 Informatique – ENS Cachan
3 novembre 2011
1 Le problème du sac à dos
L’algorithme glouton est-il optimal pour le problème du sac à dos si les objets ne sont pas
fractionnables ?
2 Codage de Huffman
Soit Σun alphabet fini et de cardinal supérieur ou égal à deux. On appelle mot de code
toute suite finie de 0et de 1, soit Cl’ensemble des mots de code. On appelle codage binaire une
application injective αde l’alphabet Σdans C. En utilisant l’opération concaténation, αs’étend
de manière naturelle en :
α: Σ→ C
On dit qu’un codage est de longueur fixe quand toutes les lettres sont codées par un mot de
code de même longueur. Un codage est dit préfixe si aucune lettre n’est codée par un mot de code
qui est préfixe du codage d’une autre lettre.
1) Montrer que pour un codage de longueur fixe et un codage préfixe, αest injective sur Σ.
2) Montrer qu’on peut représenter un codage préfixe par un arbre binaire dont les feuilles sont les
lettres de l’alphabet.
On considère un mot w. A chaque codage préfixe de w, représenté par un arbre T, est associé
un coût défini par :
Cw(T) = X
aΣ
f(a)lT(a)
avec f(a)le nombre d’occurences de adans wet lT(a)la taille du mot de code associé à apar T.
Un codage préfixe est dit optimal si il minimise la fonction Cw
3) Montrer qu’à un codage préfixe optimal correspond un arbre binaire où tout nœud interne a
deux fils.
4) Montrer qu’il existe un codage préfixe optimal pour lequel les deux lettres dont le nombre
d’occurences est le plus faible sont sœurs dans l’arbre.
1
Etant donnés xet yles deux lettres dont le nombre d’occurences est le plus faible dans w,
on considère l’alphabet Σ0= Σ − {x, y}+zzest une nouvelle lettre à laquelle on associe
f(z) = f(x) + f(y).
5) Soit T0l’arbre d’un codage optimal pour Σ0, montrer que l’arbre Tobtenu à partir de T0en
remplaçant la feuille associée à zpar un nœud interne ayant xet ycomme feuilles représente un
codage optimal pour Σ.
6) En déduire un algorithme recherchant un codage optimal et donner sa complexité.
3 Plus long sous-mot commun
On fixe un alphabet Σ. Soient deux mots u, v Σqui sécrivent u=a1. . . amet v=b1. . . bn
avec ai, bjΣ. On dit que uest sous-mot de vsi mn, et s’il existe une suite 1α1< α2<
. . . < αmntelle que bαi=ai.
Concevoir un algorithme qui trouve la longueur du plus long sous-mot commun à deux mots
donnés. Adapter votre algorithme pour produire ce sous-mot.
4 Tables de hachage
Une table de hachage de taille mest utilisée pour contenir nobjets, avec n=m
2. L’adressage
ouvert est utilisé pour résoudre les problèmes de collision.
1. En supposant le hachage uniforme, montrer que pour i= 1,2, ..n, la probabilité que la ième
insertion nécessite strictement plus de ksondages est au plus de 2k.
2. Montrer que pour i= 1,2, ..., n, la probabilité que la ième insertion nécessite plus de 2logn
sondages est au plus de 1
n2.
3. On utilise la variable aléatoire Xipour représenter le nombre de sondages requis pour la
ième insertion. On utilise la variable aléatoire X=max1inXipour représenter le nombre
maximum de sondages que nécessite n’importe laquelle des ninsertions.
Montrer que P(X > 2logn)1
n.
4. Montrer que la longueur moyenne E[X]de la plus longue séquence de sondages est en
O(log(n)).
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 !