Codage. Présentation. Résultat principal. Concepts : codage, compression Méthodes : algorithme glouton, algorithme de Huffman

Documents pareils
Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Image d un intervalle par une fonction continue

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

1 Recherche en table par balayage

Limites finies en un point

Introduction à l étude des Corps Finis

Résolution d équations non linéaires

Transmission d informations sur le réseau électrique

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

1.1 Codage de source et test d hypothèse

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Programmation linéaire

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Théorie et codage de l information

Définitions. Numéro à préciser. (Durée : )

chapitre 4 Nombres de Catalan

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Corps des nombres complexes, J Paul Tsasa

Continuité et dérivabilité d une fonction

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Carl-Louis-Ferdinand von Lindemann ( )

Probabilités sur un univers fini

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Algorithmique I. Algorithmique I p.1/??

ÉPREUVE COMMUNE DE TIPE Partie D

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

108y= 1 où x et y sont des entiers

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Algorithmique et Programmation

ARBRES BINAIRES DE RECHERCHE

Chapitre 7. Récurrences

Cours 02 : Problème général de la programmation linéaire

Introduction à la théorie des graphes. Solutions des exercices

3 Approximation de solutions d équations

1 Introduction au codage

Cryptographie Quantique

Resolution limit in community detection

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Compression et Transmission des Signaux. Samson LASAULCE Laboratoire des Signaux et Systèmes, Gif/Yvette

Bases de programmation. Cours 5. Structurer les données

Chapitre 5 : Flot maximal dans un graphe

Intégration et probabilités TD1 Espaces mesurés Corrigé

Représentation d un entier en base b

Fondements de l informatique Logique, modèles, et calculs

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Licence Sciences et Technologies Examen janvier 2010

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Algorithme. Table des matières

Quelques Algorithmes simples

L apprentissage automatique

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

CHOIX OPTIMAL DU CONSOMMATEUR. A - Propriétés et détermination du choix optimal

Chapitre 1 : Évolution COURS

Commun à tous les candidats

Chp. 4. Minimisation d une fonction d une variable

Travail d intérêt personnel encadré : La cryptographie

Séminaire TEST. 1 Présentation du sujet. October 18th, 2013

Relation d ordre. Manipulation des relations d ordre. Lycée Pierre de Fermat 2012/2013 Feuille d exercices

La société Klippan France dont l usine est à Gournay-en-Bray en Normandie, La société Autoliv S.A. dont l usine est à Seclin dans le Nord, Normandie.

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

CH.6 Propriétés des langages non contextuels

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Des codes secrets dans la carte bleue. François Dubois 1

Utilisation des tableaux sémantiques dans les logiques de description

Dérivées d ordres supérieurs. Application à l étude d extrema.

UE Programmation Impérative Licence 2ème Année

Chapitre 10 Arithmétique réelle

MIS 102 Initiation à l Informatique

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Formats d images. 1 Introduction

CCP PSI Mathématiques 1 : un corrigé

La classification automatique de données quantitatives

Simulation de variables aléatoires

UML (Paquetage) Unified Modeling Language

Les indices à surplus constant

L ordinateur quantique (suite)

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Principe de symétrisation pour la construction d un test adaptatif

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Approximations variationelles des EDP Notes du Cours de M2

Les arbres binaires de recherche

Informatique Générale

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Équations non linéaires

Compression Compression par dictionnaires

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

CHAPITRE 5. Stratégies Mixtes

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Objets Combinatoires élementaires

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Cours d Informatique

Transcription:

Codage Concepts : codage, compression Méthodes : algorithme glouton, algorithme de Huffman Présentation À la fin de la guerre Shannon découvre les premiers concepts de la théorie du codage. Dans un article fondateur [4], il associe à une séquence de lettres (ou de mots) son entropie (définition analogue à la définition en physique) et en a donné une interprétation qui a servi de base à la théorie des codes et de la compression. Sette entropie représente une quantité d information contenue dans la séquence de lettres. Pour une introduction simple à ce domaine, l ouvrage de Guiasu et Theodorecu [3] apporte les éléments essentiels. Les conséquences de cette théories sont nombreuses en informatique. On trouvera quelques exemples élémentaires dans le livre de Brémaud [] chap. V. L objectif de cette note de cours est de donner la preuve de l inégalité de Shannon pour les codages ayant la propriété du préfixe. La preuve est donnée dans le cas d un codage binaire. La généralisation à un codage par un alphabet de plus de 2 symboles est facile, voir []. Parmi les algorithmes de codage, l algorithme de Huffman joue un rôle central, d une part par sa simplicité et d autre part par la mise en œuvre de méthode gloutonne produisant une solution optimale. On trouvera des détails sur l algorithme et sa preuve dans l ouvrage de Cormen et al. [2] chapitre 6. Résultat principal On suppose que l on cherche à coder, par un codage ayant la propriété du préfixe, un ensemble de k symboles S = {S,, S k } à l aide des symboles et. Un code h est donc une fonction qui associe à chaque symbole S i un mot code s i (mot de longueur l i composé de et de ). La seule information dont on dispose est la proportion dans le texte des k symboles à coder. On note ces proportions {p,, p k }. Bien entendu La longueur moyenne du code h est alors définie par L(h) = Théorème (Shannon(948)) Si on définit p i =. P roportion_symbole(s i ).longueur(h(s i )) = L inf = inf L(h), h la longueur moyenne minimale des codages h ayant la propriété du préfixe, alors où H(p) appelée entropie du système est définie par H(p) L inf H(p) +, H(p) = p i log 2 p i. p i l i.. un codage a la propriété du préfixe si tout mot-code n est le préfixe d aucun autre mot-code. Un code ayant la propriété du préfixe est non ambigu, c est à dire uniquement déchiffrable

Ce résultat est fondamental au sens où il lie la longueur moyenne du code aux proportions, ceci indépendamment du codage h choisi. D une certaine manière, cela signifie que l on ne pourra pas compresser l information au delà d un certain facteur H(p). Il y a une part irréductible de hasard que l on ne peut pas coder! La preuve de ce théorème se décompose en quatre étapes indépendantes. Les deux premières étapes décrivent des propriétés structurelles des codes ayant la propriété du préfixe (inégalité de Kraft). La troisième étape montre que la longueur moyenne minimale d un codage est plus petite que H(p) et dans la quatrième étape on construit un codage de longueur moyenne plus petite que H(p) +. Inégalité de Kraft On considère un codage h ayant la propriété du préfixe. Soit s,, s k et l,, l k les mots codes et leur longueur. Proposition (Inégalité de Kraft) Pour tout codage h ayant la propriété du préfixe on a l inégalité 2 li. On note m = max i l i la plus grande longueur des mots codes. Comme le code a la propriété du préfixe, on peut placer, de manière unique, ces mots codes sur un arbre T binaire équilibré de profondeur m (voir l exemple de la figure ), chaque mot code étant une feuille de cet arbre. On considère les 4 mots codes associés aux symboles {S,, S 4} s3 Dans ce cas, Symbole Code longueur S 3 S 2 3 S 3 2 S 4 3 s s2 s4 4 2 l i = 2 + 3 2 + 3 2 + 2 2 = 5. 3 8 L inégalité de Kraft est bien vérifiée. FIGURE Un exemple de positionnement des mots-codes dans l arbre binaire T La preuve de l inégalité, se fait en comptant le nombre de feuilles issues du mot code s i dans l arbre binaire complet T de profondeur m. Comme le mot code est à la profondeur l i le nœud correspondant est le père de 2 m li feuilles à la profondeur m (voir figure 2). Comme le codage a la propriété du préfixe les sous arbres issus des mots codes sont disjoints et donc le nombre total de feuilles issues des mots codes à la profondeur m est égal à 2 m li. Ce nombre de feuilles est inférieur ou égal au nombre total de feuilles à la profondeur m, c est à dire à 2 m. En écrivant cette inégalité on obtient 2 m li 2 m. En divisant les 2 termes de l inégalité par 2 m on obtient l inégalité de Kraft. Algorithmique version du 25 janvier 22 2/ 5

l i s i m l i 2 m li FIGURE 2 Nombre de feuilles de profondeur m issues de s i dans l arbre binaire complet T Codage vérifiant l inégalité de Kraft On suppose maintenant donné k longueurs l,, l k vérifiant l inégalité de Kraft. Existe-t il k mots-codes de longueurs respectives l i possédant la propriété du préfixe? La réponse est oui. Pour le prouver on s inspire du dessin précédent. On suppose les l i classés par ordre croissant et on regroupe les feuilles du niveau m par paquets de taille 2 m li. D après l inégalité de Kraft, les paquets peuvent tous être placés sur le dernier niveau de l arbre. On trouve alors le codage associé en identifiant le père de chaque paquet (voir figure 3). s s 2 s3 s4 2 m l 2 m l2 2 m l3... s 5 On considère les 7 longueurs de mots codes, (2, 3, 3, 3, 4, 5, 5). On vérifie aisément l inégalité de Kraft. Longueur Code symbole 2 s 3 s 2 3 s 3 3 s 4 4 s 5 5 s 6 5 s 7 FIGURE 3 Un exemple de positionnement des mots-codes dans l arbre binaire La longueur moyenne d un code est minorée par H(p) Considérons le problème de minimisation de la fonction f définie par sous la contrainte (inégalité de Kraft) f(x,, x k ) = p i x i, 2 xi. On peut montrer que la fonction f est minimale sous la contrainte de l inégalité de Kraft au point l de coordonnées li = log 2 p i. Ce résultat est obtenu en utilisant les outils de minimisation de fonction de plusieurs variables. Au point l on vérifie que 2 l i = 2 ( log 2 pi) = p i =. Algorithmique version du 25 janvier 22 3/ 5

De plus p i li = p i ( log 2 p i ) = H(p). On a donc pour tout codage h de longueurs l,, l k H(p) = f(l,, l k) f(l,, l k ) = L(h). Code de longueur moyenne majorée par H(p) + Il reste maintenant à construire un code de longueur moyenne proche de H(p). Pour cela, considérons les valeurs l sup i = l i, partie entière supérieur de li (seul nombre entier vérifiant l i Comme li lsup i, on a 2 l i 2 l sup i et = lsup i < l i + ). 2 l i 2 lsup i. D après la réciproque de l inégalité de Kraft il existe un codage ayant la propriété du préfixe et de longueurs l sup,, l sup. Ce codage a une longueur moyenne k p i l sup i p i (li + ) = H(p) +. On vient de montrer qu il existe un codage ayant la propriété du préfixe de longueur moyenne plus petite que H(p) +. On en conclut que le codage optimal a une longueur plus petite que H(p) +. Algorithme de Huffman Le problème à résoudre est de trouver un code binaire h (c est à dire un arbre), ayant la propriété du préfixe (facile à décoder) et minimisant la longueur moyenne du code. Pour réaliser cet arbre on construit une solution en partant des feuilles les plus profondes (probabilité les plus faibles) puis en les combinant deux à deux on construit l arbre. ALGORITHME_HUFFMAN Données : Un ensemble S de k symboles avec leurs pondérations p Résultat : Un arbre optimal de codage (nœud racine) Indice i Nœud x,y,z FAP F for s S z=nouveau_nœud() z.symbole=s z.poid=p(s) Insérer (F,z) for i = to K x=extraire (F) y=extraire (F) ; z=nouveau_nœud() z.gauche=x z.droit=y z.poids=x.poids+y.poids Insérer (F,z) Retourne Extraire (F) Algorithme : Algorithme de Huffman (95) Dans cet algorithme on utilise une structure de donnée auxiliaire file à priorité F dans laquelle on insère des couples (nœud, priorité) et on extrait les couples selon leur priorité. Pour cet algorithme, l extraction se fera par poids de nœud croissant. Algorithmique version du 25 janvier 22 4/ 5

L algorithme de Huffman produit un code ayant la propriété du préfixe de longueur moyenne optimale. C est un exemple d algorithme glouton, c est à dire qu à chaque étape l algorithme effectue une opération qui le rapproche de la solution optimale 2. L algorithme nécessite donc de l ordre de O(k) opérations d insertion et d extraction de F et, si la file à priorité est implantée dans une structure de donnée adéquate (par exemple un tas), le coût d insertion et d extraction est majoré par log K. Ce qui donne à cet algorithme une complexité de l ordre de O(K log K). La preuve de cet algorithme repose sur 2 lemmes préliminaires dont la preuve basée sur un argument d échange est laissée en exercice. Lemme (Probabilités les plus faibles) Soit S un alphabet de k lettres. Soit s et s deux symboles de plus petite probabilité. Alors il existe un codage préfixé optimal pour S tel que les mots codes de s et de s ne diffèrent que par le dernier bit. Indication : prendre un arbre optimal et le transformer de manière à vérifier la propriété. Lemme 2 (Propagation de l optimalité) Soit T un arbre de codage optimal (complet) de S. Alors la fusion z de 2 feuilles sœurs s et y affectée de la somme des poids des feuilles z.poids = x.poids + y.poids produit un arbre optimal pour l alphabet S dans lequel tous les caractères x.symbole et y.symbole ont été remplacés par un même nouveau symbole. Indication : raisonner par l absurde Pour prouver l algorithme on va montrer que l assertion suivante est vraie à chaque fin de l itération principale. Assertion : La file à priorité contient une forêt incluse dans un arbre de codage optimal de l alphabet S. D abord la question de l existence d un arbre optimal ne se pose pas. En effet, l ensemble des d arbres binaires complets avec k feuilles étiquetées (ensemble des codages complets ayant la propriété du préfixe) est fin donc admet au moins un élément de longueur moyenne minimale. Initialisation L assertion est donc vraie au début de l itération principale (une feuille est un sous-arbre de tout sous-arbre optimal). Preuve partielle : Si l assertion est vraie à l entrée de l itération, il existe un arbre optimal contenant la forêt incluse dans la file à priorité. Soit x et y les nœuds extraits de la FAP, d après le lemme il existe un arbre optimal tel que x et y soient 2 feuilles sœurs. Par le lemme 2 l arbre obtenu lorsque l on effectue la fusion de x et y reste optimal. Terminaison : L algorithme, faisant un nombre fini d itérations, se termine. Chaque itération diminue de le nombre de nœuds dans la FAP. Conclusion À la fin des itérations il ne reste qu un nœud qui est la racine d un arbre optimal. La construction de la table de codage se fait par simple parcours préfixé de l arbre de codage. Références [] Pierre Brémaud. Introductions aux Probabilités. Springer-Verlag, Berlin, 984. [2] Thomas Cormen, Charles Leiserson, Ronald Rivest, and Clifford Stein. Algorithmique. Dunod, 2. [3] Silviu Guiasu and Radu Theodorecu. Incertitude et Information. Les Presses de l Université LAVAL, Québec, 97. [4] Claude Elwood Shannon. A mathematical theory of communications. Bells Systems Technical Journal, 27, 948. 2. à chaque étape on choisit la meilleure solution en espérant obtenir une bonne approximation de la solution optimale Algorithmique version du 25 janvier 22 5/ 5