Complication et décompression de huffman en oCaml

2780 mots 12 pages
TP19 : Cours/TP : Compression et décompression de Huffman en OCamlTP19 : Cours/TP : Compression et décompression de Huffman en OCaml 30 mars 2022
On travaillera depuis la machine virtuelle ClefAgreg2019. On commencera par créer un fichier
OCaml TP19.ml, initialement vide.
On rappelle qu’on compile ce fichier avec COMPILATEUR = ocamlc ou ocamlopt avec la ligne de commande suivante, puis on exécute le binaire produit avec la deuxième ligne (sans les dollars qui représentent le prompt de la ligne de
…afficher plus de contenu…

Il utilise un code à longueur variable pour représenter un symbole 𝑎 P Σ
(un caractère ASCII dans le cas de données de type texte). Le code est déterminé à partir d’une estimation des probabilités d’occurrence des symboles, un code court étant associé aux symboles les plus fréquents. Le codage de Huffman est un code optimal, au sens de la plus courte longueur.
L’algorithme du codage de Huffman, sur un texte t, construit un arbre binaire 𝐴Hptq appelé arbre de Huffman. Cet arbre permet de définir un codage binaire d’un texte t composé de caractères d’un alphabet Σ (on s’intéressera uniquement à Σ “ J0; 255K l’alphabet ASCII 256 dans ce TP). Les feuilles de cet arbre 𝐴H correspondent aux caractères 𝑎 du texte t avec
…afficher plus de contenu…

À noter que cet arbre n’est pas unique. Il dépend de l’ordre des feuilles dans la liste initiale
(par exemple, deux caractères de même fréquence peuvent être permutés).
Définition : Une forêt d’arbres binaires est un ensemble d’arbres binaires.
Algorithme : Codage de Huffman, fonction CodageHuffman(t)
Entrées : un texte t sur un alphabet Sigma (ASCII 256)
Sortie : L’arbre de Huffman A_H(t) associé au texte t
Calculer les fréquences f_a de chaque symbole a dans Sigma selon son nombre d’apparition dans le texte t ;
Créer une forêt F d’arbres binaires, chacun réduit à un seul nœud
(f_a, a) pour tout a dans Sigma

en relation

  • Dm mathématiques: « choisissez un nombre entier, ajoutez lui 4, multipliez le résultat par le nombre de départ, ajoutez 4. je parie que vous avez un carré parfait! »
    448 mots | 2 pages
  • Colombo
    819 mots | 4 pages
  • Je sens bon
    1403 mots | 6 pages
  • 11821 Cours Trous
    1831 mots | 8 pages
  • Milly
    617 mots | 3 pages
  • Programme de tracer de fonction en mathématique
    1040 mots | 5 pages
  • Macro sas
    754 mots | 4 pages
  • porter plastmimoule
    1000 mots | 4 pages
  • Math
    1704 mots | 7 pages
  • HISTOIRE
    2137 mots | 9 pages
  • S2 développement TD PDF
    1669 mots | 7 pages
  • Bts ag 2ème année anglais dev1
    1837 mots | 8 pages
  • Texte philosophique
    1151 mots | 5 pages
  • Derivees en Premiere ES
    1202 mots | 5 pages
  • Ruy Blas
    1367 mots | 6 pages