Mathématiques pour l Informatique L 9 mars 0 Contrôle Documents et calculatrices interdits, durée : h. Toutes vos réponses doivent être justifiées. Exercice On considère le mot u = babb. (a) Donnez l ensemble Pref({u}) constitué de tous les préfixes de u. (b) Donnez l ensemble Suff({u}) constitué de tous les suffixes de u. (c) Donnez l ensemble Fact({u}) constitué de tous les facteurs de u. (a) Pref({u}) = {ε; b; ba; bab; babb} (b) Suff({u}) = {ε; b; bb; abb; babb} (c) Fact({u}) = {ε; a; b; ba; ab; bb; bab; abb; babb} Exercice Soient les deux langages L = ({a} {ba}) et L = {b} {a} {a}. (a) Parmi les mots suivants précisez lesquels sont dans L, dans L, dans Pref(L ) Suff(L ) : ε, a, b, aa, baa, bba, ababa. (b) Quels sont les mots de L L de longueur inférieure ou égale à 3? (c) Quels sont les mots de L L de longueur inférieure ou égale à? (d) Donner une expression simple pour L L. (a) L ensemble des mots de la liste étant dans L est : {ε; ababa} dans L est : {a; aa; baa; bba} Attention : ε n est pas dans tous les langages! dans Pref(L ) Suff(L ) est : {ε; a; aa; baa} (b) L ensemble des mots de L L de longueur inférieure ou égale à 3 est : {ε; a; ba; aba; baa; bba; aaa; aa}. (c) L ensemble des mots de de L L de longueur inférieure ou égale à est : {a; ba; aa; bba; baa; aaa; bbba; bbaa;baaa; aaaa; baba; abaa}. (d) L L = {ba} Exercice 3 On définit les fonctions f et g de {a, b} dans {a, b} par : { ε si u = ε, g(u) = a u et f(u) = u si u = l u avec l {a, b}
(a) Calculez f(ε), g(ε), f(abbaa) et g(abbaa). (b) Les fonctions f et g sont-elles surjectives, injectives, bijectives? (c) Déterminer f g et g f. Sont-elles surjectives, injectives, bijectives? (a) f(ε) = ε, g(ε) = a.ε = a, f(abbaa) = bbaa et g(abbaa) = aabbaa (b) Attention : Rappel : injectif non surjectif (c) Pour f Pour g On a f(a) = f(b) = ε et a b Ainsi x = a, x = b {a, b} tels que f(x) = f(x ) et x x Donc f n est pas injective. Soit y {a, b} Alors a.y {a, b} et f(a.y) = y Ainsi y {a, b}, x = a.y {a, b} tel que f(x) = y. Donc f est surjective. f n est pas injective donc f n est pas bijective. Soient x et x {a, b} tels que g(x) = g(x ) Alors a.x = a.x car g(x) = a.x et g(x ) = a.x Donc en simplifiant par a à gauche, on a : x = x Ainsi x, x {a, b}, g(x) = g(x ) x = x Donc g est injective. b {a, b} et b n a pas d antécédent par g car il n est pas de la forme a.u avec u {a, b}. Ainsi y = b {a, b} tel que x {a, b}, g(x) y. Donc g n est pas surjective. g n est pas surjective donc g n est pas bijective. Pour f g f g est définie de {a, b} dans {a, b} par : f g(u) = u f g est la fonction identité donc elle est injective, surjective et bijective.
Pour g f g f est définie de {a, b} dans {a, b} par : { a si u = ε, g f(u) = a.u si u = l u avec l {a, b} On a g f(a) = g f(b) = a et a b Ainsi x = a, x = b {a, b} tels que g f(x) = g f(x ) et x x Donc g f n est pas injective. b {a, b} et b n a pas d antécédent par g f car il n est pas de la forme a.u avec u {a, b}. Ainsi y = b {a, b} tel que x {a, b}, g f(x) y. Donc g f n est pas surjective. g f n est pas surjective donc g f n est pas bijective. Exercice On considère le message suivant : m = acbababbbababbbc (a) Quelle sera la taille du codage du message en code ASCII? (b) Quelle sera la taille minimale du codage du message en code de longueur fixe? (c) Appliquer le procédé de Huffman et proposer un code pour représenter le message (vous détaillerez les étapes et dessinerez l arbre). Ecrire le codage associé au message. Quelle est sa taille? (d) Appliquer à nouveau le procédé de Huffman sur les blocs de taille u, u...,u 8 tels que m = u u... u 8 (u = ac, u = ba,..., u 8 = bc). On donnera le code de Huffman ainsi que l arbre associé. Ecrire le codage associé au message? Quelle est sa taille? (a) La taille du codage du message en code ASCII sera de m 8 = 6 8 = 8 bits = 6 octets. (b) Avec un codage sur k bits on peut coder k lettres différentes. Dans m, il y a 3 caractères différents et < 3. On code donc chaque lettre sur bits et la taille minimale du codage du message en code de longueur fixe sera de 6 = 3 bits. (c) On calcule le nombre de fois où apparaissent les lettres pour faire l arbre de Huffman. nombre de a : 5, nombre de b : 9, nombre de c :. Un arbre possible est représenté à la figure. Le codage des lettres est alors : a :, b : 0, c : 0. 3
Le codage de m est : 00000000000. Sa taille est de 3 bits. (d) On compte le nombre de blocs: nombre de ac : (ac = u ) nombre de ba : (ba = u = u 3 = u 5 = u 6 ) nombre de bb : (bb = u = u 7 ) nombre de bc : (bc = u 8 ) Un arbre possible est représenté à la figure. Le codage des blocs est alors : ac : 0, ba : 0, bb : 0, bc :. Le codage de m est : 0000000. Sa taille est de bits.
6 9 b 7 c 5 a Figure : Un arbre de Huffman pour la question c 0 8 ba bb ac bc Figure : Un arbre de Huffman pour la question d 5