Codage Complexité Algorithme. Arbres de codage. Algorithme de Huffman. Jean-Marc Vincent 1. 1 Laboratoire LIG

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

1.1 Codage de source et test d hypothèse

Limites finies en un point

Résolution d équations non linéaires

Formats d images. 1 Introduction

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

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

Transmission d informations sur le réseau électrique

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

1 Recherche en table par balayage

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

Programmation C. Apprendre à développer des programmes simples dans le langage C

Compression Compression par dictionnaires

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

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

Continuité et dérivabilité d une fonction

Programmation linéaire

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

Cours de Master Recherche

OPTION SCIENCES BELLE-ISLE-EN-TERRE

Intelligence Artificielle Planification

Réalisabilité et extraction de programmes

Algorithmes pour la planification de mouvements en robotique non-holonome

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

Informatique Générale

Communications numériques

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

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

Taux d évolution moyen.

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

Estimation: intervalle de fluctuation et de confiance. Mars IREM: groupe Proba-Stat. Fluctuation. Confiance. dans les programmes comparaison

Chapitre 10 Arithmétique réelle

A la découverte du Traitement. des signaux audio METISS. Inria Rennes - Bretagne Atlantique

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Cryptographie Quantique

Introduction à l étude des Corps Finis

Quelques tests de primalité

Le service IPv4 multicast pour les sites RAP

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

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

Chapitre 5 : Flot maximal dans un graphe

Codage d information. Codage d information : -Définition-

Chapitre 3. Les distributions à deux variables

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Algorithmique I. Algorithmique I p.1/??

Chaine de transmission

Laboratoire d informatique Gaspard-Monge UMR Journée Labex Bézout- ANSES

Logiciel Libre Cours 3 Fondements: Génie Logiciel

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

Image d un intervalle par une fonction continue

Installer Joomla Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

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

Algorithmique et structures de données I

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

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

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

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

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

Quelques Algorithmes simples

Architecture des Systèmes d Information Architecture des Systèmes d Information

Une nouvelle approche de détection de communautés dans les réseaux sociaux

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

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Évaluation et optimisation de requêtes

Coup de Projecteur sur les Réseaux de Neurones

ÉPREUVE COMMUNE DE TIPE Partie D

SEO Campus 2009 : Pagerank et optimisation

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Chp. 4. Minimisation d une fonction d une variable

ARBRES BINAIRES DE RECHERCHE

APPORT DES RESEAUX BAYESIENS DANS LA PREVENTION DE LA DELINQUANCE

Téléinformatique. Chapitre V : La couche liaison de données dans Internet. ESEN Université De La Manouba

Les algorithmes de fouille de données

Intelligence artificielle appliquée à l automatique

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

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.

Couplage efficace entre Optimisation et Simulation stochastique Application à la maintenance optimale d une constellation de satellites

1 Introduction au codage

OLYMPIADES ACADEMIQUES DE MATHEMATIQUES. 15 mars 2006 CLASSE DE PREMIERE ES, GMF

Polytech Montpellier IG PROJET C Réseaux sociaux : recherche de composantes fortement connexes

Diagrammes de Package, de déploiement et de composants UML

Fluctuation d une fréquence selon les échantillons - Probabilités

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

Chapitre 7. Récurrences

Informatique et sciences du numérique

Organisation des Ordinateurs

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

Cours d Informatique

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

GoodReader pour ipad. gestion des photos

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Algèbre binaire et Circuits logiques ( )

Présentation du Master Ingénierie Informatique et du Master Science Informatique , Année 2 Université Paris-Est Marne-la-Vallée

Transcription:

Algorithme de Huffman Jean-Marc Vincent 1 1 Laboratoire LIG Universités de Grenoble Jean-Marc.Vincent@imag.fr 1 / 12

Codage Symboles S = {s 1,, s k } Codage C : S {0, 1} s i c(s i ) longueur l i Uniquement déchiffrable (CS propriété du préfixe) ; Inégalité de Kraft Pour un codage ayant la propriété du préfixe k 2 l i 1, i=1 Réciproquement, si (1) il existe un codage avec la propriété du préfixe. (1) 2 / 12

Complexité d un code Sources aléatoires : p 1,, p k fréquence de transmission ; longueur moyenne du codage L(c) = k p i l i ; i=1 L inf = inf L(c); h ayant la propriété du préfixe c Théorème (Shannon 1948) H(p) L inf H(p) + 1. 3 / 12

Complexité d un code Sources aléatoires : p 1,, p k fréquence de transmission ; longueur moyenne du codage L(c) = k p i l i ; i=1 L inf = inf L(c); h ayant la propriété du préfixe c Théorème (Shannon 1948) H(p) L inf H(p) + 1. 3 / 12

Claude Shannon (1916-2001) Claude Elwood Shannon (30 avril 1916 à Gaylord, Michigan - 24 février 2001), ingénieur électrique, est l un des pères, si ce n est le père fondateur, de la théorie de l information. Son nom est attaché à un célèbre "schéma de Shannon" très utilisé en sciences humaines, qu il a constamment désavoué. Il étudia le génie électrique et les mathématiques à l Université du Michigan en 1932. Il utilisa notamment l algèbre booléenne pour sa maîtrise soutenue en 1938 au MIT. Il y expliqua comment construire des machines à relais en utilisant l algèbre de Boole pour décrire l état des relais (1 : fermé, 0 : ouvert). Shannon travailla 20 ans au MIT, de 1958 à 1978. Parallèlement à ses activités académiques, il travailla aussi aux laboratoires Bell de 1941 à 1972. Claude Shannon était connu non seulement pour ses travaux dans les télécommunications, mais aussi pour l étendue et l originalité de ses hobbies, comme la jonglerie, la pratique du monocycle et l invention de machines farfelues : une souris mécanique sachant trouver son chemin dans un labyrinthe, un robot jongleur, un joueur d échecs (roi tour contre roi)... Souffrant de la maladie d Alzheimer dans les dernières années de sa vie, Claude Shannon est mort à 84 ans le 24 février 2001. Wikipedia 4 / 12

Algorithme de Huffman (1951) A B C D E F G H I J K L 0.06 0.12 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) A B C D E F G H I J K L 0.06 0.12 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) A B C D E F G H I J K L 0.06 0.12 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) A B 0.06 C D E F G H I J 0.12 K L 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) A B 0.06 C D E F G H I J 0.12 K L 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) 0.18 A B C D E F G H 0.06 I J 0.12 K L 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) 0.18 A B C D E F G H 0.06 I J 0.12 0.22 K L 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) 0.18 A B C D E F G H 0.06 0.28 I J 0.12 0.22 K L 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) 0.18 A B C D E F G H 0.06 0.28 0.32 I J 0.12 0.22 K L 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) 0.40 A B C D E F 0.06 0.18 G H 0.28 0.32 I J 0.12 0.22 K L 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) 0.40 A B C D E F 0.06 0.60 0.18 G H 0.28 0.32 I J 0.12 0.22 K L 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) 1.00 0.40 A B C D E F 0.06 0.60 0.18 G H 0.28 0.32 I J 0.12 0.22 K L 0.06 0.12 A B C D E F G H I J K L 5 / 12

Algorithme de Huffman (1951) 0 A 1.00 0.60 0.40 0.28 0.32 0.22 0.18 0 0.06 B 0 1 1 C E 1 0 0 1 0 0 F 1 G D 1 0 1 0.12 I H 0 0 0 1 1 1 1 L A B C D E F G H I J K 000 0.06 0010 0011 100 010 0110 0111 1100 0.12 101 11010 11011 J K L 111 Codage optimal : L-moy = 3.42, Entropie = 3.38 Profondeur = log 2 (probabilité) Généralisation Lempel-Ziv,... 6 / 12

Algorithme de Huffman (1951) : Implantation {Alphabet à coder C 1,... C k : Caractères} {Proportion des caractères p 1,, p k } file_priorité Q= {File à priorité de nœuds pondérés} pour i=1 ; i k ; i++ faire z=nouveau_nœud() z.etiquette=c i ; z.poids=p i z.gauche=nil ; z.droit=nil Insérer(Q,z) fin pour pour i=1 ; i k-1 ; i++ faire z=nouveau_nœud() z.gauche= Extrait_min(Q) ; z.droit=extrait_min(q) z.poids=z.gauche.poids + z.droit.poids Insérer(Q,z) fin pour retourner Extrait_min(Q) 7 / 12

Algorithme de Huffman (1951) : Preuve Optimalité L algorithme de Huffman produit un code ayant la propriété du préfixe de longueur moyenne optimale. Algorithme glouton : tout choix est définitif à tout moment de l algorithme la forêt construite est une sous-forêt d un arbre optimal. Remarque : algorithme en O(k log k) 8 / 12

Algorithme de Huffman (1951) : Preuve Lemme : fréquences faibles Soit C un alphabet de k lettres. Soit x et y deux caractères de plus petite fréquence. Alors il existe un codage préfixé optimal pour C tel que les mots codes de x et de y ne diffèrent que par le dernier bit. Idée : prendre un arbre optimal et le transformer de manière à vérifier la propriété. 9 / 12

Algorithme de Huffman (1951) : Preuve Lemme : fréquences faibles Soit C un alphabet de k lettres. Soit x et y deux caractères de plus petite fréquence. Alors il existe un codage préfixé optimal pour C tel que les mots codes de x et de y ne diffèrent que par le dernier bit. Idée : prendre un arbre optimal et le transformer de manière à vérifier la propriété. 9 / 12

Algorithme de Huffman (1951) : Preuve Lemme : propagation de l optimalité Soit T un arbre de codage optimal (complet) de C. Alors la fusion z de 2 feuilles sœurs x et y affectée de la somme des fréquences des feuilles f (z) = f (x) + f (y) produit un arbre optimal pour l alphabet C dans lequel tous les caractères x et y ont été remplacés par z. Idée : raisonner par l absurde 10 / 12

Algorithme de Huffman (1951) : Preuve Lemme : propagation de l optimalité Soit T un arbre de codage optimal (complet) de C. Alors la fusion z de 2 feuilles sœurs x et y affectée de la somme des fréquences des feuilles f (z) = f (x) + f (y) produit un arbre optimal pour l alphabet C dans lequel tous les caractères x et y ont été remplacés par z. Idée : raisonner par l absurde 10 / 12

Algorithme de Huffman (1951) : Preuve Invariant de la boucle : La file à priorité contient une forêt incluse dans un arbre de codage optimal de l alphabet C. Cette précondition est vraie en début de l algorithme. Preuve partielle : Si la précondition 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 1 il existe un arbre optimal tq x et y soient 2 feuilles sœurs. Par le lemme 2 l arbre optimal, lorsque l on réalise la fusion de x et y reste optimal. CQFD. Terminaison : l algorithme, faisant un nombre fini d itérations, se termine. On peut montrer que chaque itération diminue de 1 le nombre de nœuds dans la FAP. A la fin des itérations il ne reste qu un nœud racine de l arbre optimal. 11 / 12

Algorithme de Huffman (1951) : Preuve Invariant de la boucle : La file à priorité contient une forêt incluse dans un arbre de codage optimal de l alphabet C. Cette précondition est vraie en début de l algorithme. Preuve partielle : Si la précondition 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 1 il existe un arbre optimal tq x et y soient 2 feuilles sœurs. Par le lemme 2 l arbre optimal, lorsque l on réalise la fusion de x et y reste optimal. CQFD. Terminaison : l algorithme, faisant un nombre fini d itérations, se termine. On peut montrer que chaque itération diminue de 1 le nombre de nœuds dans la FAP. A la fin des itérations il ne reste qu un nœud racine de l arbre optimal. 11 / 12

Algorithme de Huffman (1951) : Preuve Invariant de la boucle : La file à priorité contient une forêt incluse dans un arbre de codage optimal de l alphabet C. Cette précondition est vraie en début de l algorithme. Preuve partielle : Si la précondition 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 1 il existe un arbre optimal tq x et y soient 2 feuilles sœurs. Par le lemme 2 l arbre optimal, lorsque l on réalise la fusion de x et y reste optimal. CQFD. Terminaison : l algorithme, faisant un nombre fini d itérations, se termine. On peut montrer que chaque itération diminue de 1 le nombre de nœuds dans la FAP. A la fin des itérations il ne reste qu un nœud racine de l arbre optimal. 11 / 12

Algorithme de Huffman (1951) : Preuve Invariant de la boucle : La file à priorité contient une forêt incluse dans un arbre de codage optimal de l alphabet C. Cette précondition est vraie en début de l algorithme. Preuve partielle : Si la précondition 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 1 il existe un arbre optimal tq x et y soient 2 feuilles sœurs. Par le lemme 2 l arbre optimal, lorsque l on réalise la fusion de x et y reste optimal. CQFD. Terminaison : l algorithme, faisant un nombre fini d itérations, se termine. On peut montrer que chaque itération diminue de 1 le nombre de nœuds dans la FAP. A la fin des itérations il ne reste qu un nœud racine de l arbre optimal. 11 / 12

Codage et complexité H(p) est appelée quantité d information Propriété du préfixe arbre (automate d état fini) H(p) donne le taux de compression Borne supérieure de la complexité de Kolmogorov 12 / 12