Algorithme de compression de Burrows-Wheeler
|
|
- Richard Blanchette
- il y a 7 ans
- Total affichages :
Transcription
1 Algorithme de compression de Burrows-Wheeler Sujet proposé par Jean-Pierre Tillich jean-pierre.tillich@inria.fr Difficulté : ** (moyenne) 1 Quelques mots sur le sujet Le but de ce projet est de réaliser et de comprendre comment fonctionne l algorithme de compression bzip2 ainsi que l algorithme de décompression bunzip2 utilisés fréquemment en pratique et qui donnent souvent des taux de compression meilleurs que l algorithme de Lempel-Ziv (utilisé dans zip, gzip par exemple). Cet algorithme de compression fait appel à de nombreuses transformations : transformation de Burrows-Wheeler, algorithme de compression de Huffman adaptatif, transformation move-to-front et fournit un bon panorama de différentes techniques de compression. Certaines de ces transformations comme la transformation move-to-front sont très simples à implémenter, d autres sont en revanche plus délicates à mettre en oeuvre si l on veut une implémentation efficace. Ainsi, bien que la transformation de Burrows-Wheeler revient essentiellement à implémenter un tri, le caractère spécifique des chaînes à trier requiert un traitement spécifique si l on veut une bonne vitesse de compression sur tous les types de texte. On verra notamment comment mettre à profit ici les techniques de tri à base d arbres suffixes. De manière générale, l algorithme de compression de Burrows Wheeler fournit une bonne illustration de l intérêt d utiliser diverses techniques algorithmiques sur les arbres pour obtenir une implémentation efficace. 2 Quelques généralités sur la compression Le texte à compresser sera vu comme une suite x 0 x 1... x n 1 de symboles pris dans un alphabet A. Un algorithme de compression (sans perte) consiste à calculer une suite binaire z 0, z 1,... z m 1 à partir de la suite précédente de telle manière à ce qu il soit possible de retrouver la suite x 0 x 1... x n 1 d origine à partir de la seule suite z 0 z 1... z n 1. Le taux de compression est défini par le rapport m log 2 A n (ici A désigne le cardinal de l alphabet). Il vous est conseillé de choisir A = {0, 1} 8 (cela reviendra donc à lire votre texte octet par octet). 3 L algorithme de compression de Huffman adaptatif On commencera ce projet par l implémentation d un algorithme de compression assez rudimentaire qui est souvent utilisé, c est l algorithme de Huffman adaptatif. On appelle A = {0, 1} 8 l alphabet du texte. Soit x 0... x n 1 une suite de n symboles de A que l on veut compresser. L algorithme de compression de Huffman adaptatif code chacun des x i par une séquence binaire y i = y 1 i y2 i... yli i où les y j i sont des bits et l i représente la longueur binaire du codage du symbole x i. La séquence compressée est alors la concaténation des mots binaires y i : y 0... y n 1. Il se peut que certaines des longueurs l i soient supérieures à log 2 A, mais la longueur moyenne de ces l i est elle en général inférieure ou égale à cette quantité. Le texte est donc effectivement compressé. En substance, l idée est de coder les symboles fréquents avec des chaînes binaires courtes alors que les lettres peu fréquentes sont codées avec des chaînes plus longues. L algorithme est dit adaptatif car il calcule à chaque instant t les fréquences d apparition de chaque 1
2 symbole de A dans la suite d octets x 0... x t. En fonction de ces fréquences il calcule le mot binaire y t optimal par lequel on va coder x t. On utilise pour cela les arbres de Huffman. 3.1 Le codage de Huffman (non adaptatif) Pour expliquer l algorithme de Huffman adaptatif, considérons d abord l algorithme de Huffman non adaptatif. Pour cela, nous supposons que nous connaissons pour chaque symbole a de l alphabet A sa fréquence d apparition f(a). Cela résulte soit d un modèle préalable pour le type de fichier à compresser ou par un calcul des fréquences d apparition de chaque symbole dans le texte à compresser. Le codage de Huffman (non adaptatif) consiste à calculer dans un premier temps un arbre binaire dont les feuilles sont associées aux symboles de A. On appelle cet arbre l arbre de Huffman associé à l ensemble {(a, f(a)), a A}. On utilise ensuite cet arbre pour coder un symbole a en considérant l unique chemin menant de la racine de l arbre binaire à la feuille de l arbre associé à a. Ce chemin peut se coder par une suite de 0 et 1, 0 indiquant que l on emprunte le fils gauche, 1 le fils droit. Ainsi une feuille à laquelle on peut accéder en empruntant d abord le fils gauche de la racine, puis le fils droit, puis le fils droit de ce fils droit se codera par la suite binaire 011. A titre d exemple, voici un arbre obtenu pour un alphabet de 4 symboles, A = {a, b, c, d} et les codages binaires correspondant. a : 0 a b c d b : 10 c : 110 d : 111 L intérêt du codage de Huffman est de minimiser la longueur moyenne l du codage binaire par symbole (parmi l ensemble de tous les codages binaires dont on peut inverser le codage, c est à dire retrouver la séquence de symboles d origine x 0... x n 1 à partir de la concaténation des mots binaires y i, y i représentant le codage du symbole x i ), c est à dire l def = a A f(a)l(a) où l(a) est la longueur binaire du codage du symbole a. L arbre binaire utilisé pour le codage de Huffman est obtenu par la procédure suivante décrite dans l algorithme 1. L arbre binaire de l exemple précédent aurait été ainsi obtenu si les fréquences avaient été les suivantes : f(a) = 0.5, f(b) = 0.25, f(c) = 0.15, f(d) = Décrire brièvement une implémentation efficace de cet algorithme. Quelle est sa com- Question plexité? 3.2 L algorithme de Huffman adaptatif Un des inconvénients majeurs de l algorithme de compression de Huffman est de nécessiter d inclure dans le fichier décompressé une description de l arbre binaire utilisé pour le codage ou de la table de codage associée. En effet, à la décompression, on ne connait pas a priori les fréquences des symboles du texte à compresser (alors qu à la compression, même sans modèle préalable pour le texte ces fréquences peuvent être calculées à partir du texte lui-même). On n est donc pas capable de reconstituer l arbre 2
3 Algorithme 1 Huffman (non adaptatif) INPUT: {(a, f(a) : a A} OUTPUT: l arbre binaire T utilisé pour le codage de Huffman E for a in A do Construire un arbre t(a) réduit à une racine portant deux informations, le symbole a et la fréquence f(a). E E {t(a)} while E > 1 do extraire (et supprimer) de E les deux arbres t 1 et t 2 dont les racines portent la fréquence la plus petite Construire un arbre t ayant une racine de fréquence f 1 + f 2 où f i est la féquence portée par la racine de t i. Rajouter t à E return l unique arbre dans E binaire sous-jacent à partir de la seule concaténation des codages binaires y i des symboles x i du texte à compresser. Dans ce cas, il serait donc impossible de reconstituer la suite de symboles d origine. Il existe un moyen de contourner ce problème au moyen de l algorithme de Huffman adaptatif. Voyons d abord comment effectuer le codage. Huffman adaptatif Codage. Supposons que nous ayons déja lu t caractères dans le texte, correspondant à K symboles distincts. Soit {a 0,..., a K 1 } ces symboles. soit f k la fréquence d apparition de a k dans la séquence à compresser x 0... x t 1. Nous considérons également un symbole fourretout a K auquel on attribue une fréquence nulle : f K = 0. Nous calculons l arbre de Huffman T t associé à l ensemble {(a i, f i ), 0 i K}. le t + 1-ème symbole est lu et est codée par son mot de code s il existe, par le K + 1-ème mot de code suivi du code ascii ou unicode du symbole sinon. Huffman adaptatif Décodage. L arbre initial est constitué d une unique feuille, celle du symbole fourre-tout. Jusqu à épuisement, on parcourt l arbre en lisant les bits du texte codé ( 0 à gauche, 1 à droite) jusqu à arriver à une feuille s il n est pas associé au symbole fourre-tout on imprime le symbole correspondant, on met à jour l arbre, sinon, il s agit du symbole fourre-tout on lit les 8 bits suivants pour obtenir le code ascii d une lettre que l on imprime on ajoute une feuille dans l arbre, on met à jour l arbre. L arbre de Huffman est donc amener à changer à chaque instant. Néanmoins, les fréquences ne changent que très peu après un certain temps entre deux instants consécutifs. On s attend donc à ce que T t et T t+1 soient très proches l un de l autre. Question 2 Proposer un moyen efficace de mettre à jour l arbre de Huffman T t pour obtenir T t+1. Quelle est la complexité de votre algorithme? Implémenter l algorithme de compression et décompression associé et mesurez le taux de compression sur différentes types de fichier. 4 La transformation de Burrows-Wheeler La transformation de Burrows-Wheeler n est pas un algorithme de compression. Son intérêt est de réaliser une transformation sur la suite x 0... x n 1 à compresser qui va permettre d améliorer le taux de compression de l algorithme de Huffman qui est utilisé ultérieurement. En substance elle associe au texte une certaine permutation z 1... z n de ce dernier et un indice compris entre 0 et n 1. Ainsi, le 3
4 texte après transformation est même légèrement plus long que le texte initial. En revanche, il est sous une forme qui va permettre d exploiter de manière significative des répétitions de motif qui se produisent dans ce dernier. Des répétitions de motif dans ce dernier conduisent en effet à des répétitions de symboles identiques dans la séquence z 1... z n. Une très bonne introduction à cette transformation est donnée dans l article Question 3 Lire cet article et implémenter la transformation de Burrows-Wheeler ainsi que la transformation inverse de manière naïve. Question 4 Quelle est la complexité de votre implémentation dans le pire des cas si l on compte une comparaison entre octets de manière unitaire? Question 5 Lire maintenant l article de Burrows et Wheeler [1] (et notamment la section 4) qui se trouve sur On consultera également l article de McCreight de construction d un arbre suffixe. Question 6 Expliquer comment fonctionne l algorithme Q de la section 4 dans l article de Burrows- Wheeler. Quelle est sa complexité dans le pire des cas? Implémenter l algorithme Q ainsi que l algorithme à base d arbres suffixes de McCreight [2]. Comparer vos implémentations sur différents exemples de texte. Question 7 Proposer éventuellement des améliorations à l algorithme Q. 5 La transformation Move to front Question 8 Implémenter l algorithme de compression de texte consistant à effectuer dans un premier temps la transformation de Burrows-Wheeler puis à appliquer l algorithme de Huffman adaptatif. Essayez cet algorithme sur plusieurs types de fichier texte. Améliorez-vous le taux de compression du texte par rapport à la méthode consistant à utiliser uniquement l algorithme de Huffman adaptatif? Proposer une explication de ce phénomène. Comme cela a été brièvement expliqué dans la section 4 (et expliqué plus en détail dans l article [1]), la transformation de Burrows-Wheeler conduit naturellement à une permutation z 1... z n du texte initial comportant des plages de symboles identiques. Un des moyens d exploiter cette structure est de transformer la suite d octets z 1... z n en une suite d entiers positifs u 1... u n par la transformation move-to-front. Le principe en est extrêmement simple. La transformation Move-to-front consiste tout simplement à effectuer la transformation suivante A titre d illustration, si le tableau Y est constitué Algorithme 2 Move-to-Front INPUT: z 0... z n 1 OUTPUT: u 0... u n 1 Y tableau où l on placé tous les caractères de l alphabet du texte dans un ordre prédéfini. for i = 0 to n 1 do u i nombre de caractères précédant le caractère z i dans le tableau Y placer le caractère z i en tête du tableau Y en décalant les autres caractères du tableau vers la droite par [ a,, b, c, r ] et que la suite z est donnée par la chaîne de caractères caraab, la suite u produite est égale à 2, 1, 3, 1, 0, 3. Si la suite z 0... z n 1 contient de nombreuses rafales de symboles identiques, on s attend notamment à ce que le 0 apparaisse très souvent dans la séquence produite. Question 9 Implémenter la transformation move-to-front, ainsi que la transformation inverse. Question 10 Mesurer le taux de compression sur différents types de fichier obtenus en effectuant d abord la transformation de Burrows-Wheeler, puis la transformation Move-to-front et enfin l algorithme de Huffman. 4
5 6 Coder de larges plages de zéros La transformation move-to-front appliquée à la sortie de l algorithme de Burrows-Wheeler conduit fréquemment à de longues plages de zéro. Question 11 Proposer une méthode pour coder des plages de zéro qui permettrait d améliorer le taux de compression obtenue dans la question précédente en appliquant maintenant la séquence de transformations suivantes au fichier à compresser : transformation de Burrows-Wheeler, puis transformation Move-to-front, codage des plages de zéro et enfin algorithme de Huffman. Références [1] M. Burrows, D. Wheeler, A block sorting lossless data compression algorithm, Technical Report 124, Digital Equipment Corporation, [2] E.M. McCreight, A space economical suffix tree construction algorithm, Journal of the ACM, Vol. 32, No. 2, Avril 1976, p
1 Introduction au codage
CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles
Plus en détailCompression Compression par dictionnaires
Compression Compression par dictionnaires E. Jeandel Emmanuel.Jeandel at lif.univ-mrs.fr E. Jeandel, Lif CompressionCompression par dictionnaires 1/25 Compression par dictionnaire Principe : Avoir une
Plus en détailCodage d information. Codage d information : -Définition-
Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale
Plus en détailArithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot
Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailCours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Plus en détailReprésentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Plus en détail6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr
6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure
Plus en détailTD 1 - Transmission en bande de passe
Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com Claude Duvallet 1/10 Transmission en bande de passe (1/2) Description
Plus en détailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Plus en détailDéfinitions. Numéro à préciser. (Durée : )
Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.
Plus en détailConversion d un entier. Méthode par soustraction
Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut
Plus en détailTD : Codage des images
TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment
Plus en détail1 Recherche en table par balayage
1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément
Plus en détailCapacité d un canal Second Théorème de Shannon. Théorie de l information 1/34
Capacité d un canal Second Théorème de Shannon Théorie de l information 1/34 Plan du cours 1. Canaux discrets sans mémoire, exemples ; 2. Capacité ; 3. Canaux symétriques ; 4. Codage de canal ; 5. Second
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailVers l'ordinateur quantique
Cours A&G Vers l'ordinateur quantique Données innies On a vu dans les chapîtres précédents qu'un automate permet de représenter de manière nie (et même compacte) une innité de données. En eet, un automate
Plus en détailContinuité et dérivabilité d une fonction
DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité
Plus en détailInformatique Générale
Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html
Plus en détailISO/CEI 11172-3 NORME INTERNATIONALE
NORME INTERNATIONALE ISO/CEI 11172-3 Première édition 1993-08-01 Technologies de l information - Codage de l image animée et du son associé pour les supports de stockage numérique jusqu à environ Ii5 Mbit/s
Plus en détailServices bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version 8.05.22
Services bancaires par Internet aux entreprises Guide pratique pour : Rapports de solde Version 8.05.22 Table des matières Avez-vous besoin d aide?... 3 Exigences informatiques... 4 Navigateurs acceptés...
Plus en détailM06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS
IB INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1 DIPLOMA PROGRAMME PROGRAMME DU DIPLÔME DU BI PROGRAMA DEL DIPLOMA DEL BI M06/5/COMSC/SP1/FRE/TZ0/XX 22067017 Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS
Plus en détailTransmission d informations sur le réseau électrique
Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en
Plus en détailTransmission de données. A) Principaux éléments intervenant dans la transmission
Page 1 / 7 A) Principaux éléments intervenant dans la transmission A.1 Equipement voisins Ordinateur ou terminal Ordinateur ou terminal Canal de transmission ETTD ETTD ETTD : Equipement Terminal de Traitement
Plus en détailChapitre 10 Arithmétique réelle
Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailFormats d images. 1 Introduction
Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation
Plus en détailLES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES
LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES Compétences mises en jeu durant l'activité : Compétences générales : S'impliquer, être autonome. Compétence(s) spécifique(s) : Reconnaître des signaux de nature
Plus en détailCompléments de documentation Scilab : affichage de texte et formatage de nombres
Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de
Plus en détailLes portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT
Les portes logiques Nous avons jusqu ici utilisé des boutons poussoirs et une lampe pour illustrer le fonctionnement des opérateurs logiques. En électronique digitale, les opérations logiques sont effectuées
Plus en détailInitiation à LabView : Les exemples d applications :
Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple
Plus en détailJ AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE
RANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE Un message numérique est une suite de nombres que l on considérera dans un premier temps comme indépendants.ils sont codés le plus souvent
Plus en détailSécurité et Firewall
TP de Réseaux IP pour DESS Sécurité et Firewall Auteurs: Congduc Pham (Université Lyon 1), Mathieu Goutelle (ENS Lyon), Faycal Bouhafs (INRIA) 1 Introduction: les architectures de sécurité, firewall Cette
Plus en détailAlgorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailExercices sur les interfaces
Exercices sur les interfaces Fabrice Rossi 18 octobre 1999 1 Le type Object 1.1 Manipulations élémentaires Exercice 1.1 : Indiquer l affichage produit par le programme suivant : public class UpCast1 {
Plus en détailStructure du format BMP, sa lecture, sa construction et son écriture
Structure du format BMP, sa lecture, sa construction et son écriture Claude Parisel Mars 2003 Table des matières : 1. Le choix du format 2. Commentaires sur les autres formats 3. Format BMP pour noir&blanc,
Plus en détailLe codage informatique
Outils de Bureautique Le codage informatique (exemple : du binaire au traitement de texte) PLAN 3) Le codage binaire 4) Représentation physique des bits 5) Le bit est un peu court... 6) Codage de texte
Plus en détailTP 2 Réseaux. Adresses IP, routage et sous-réseaux
TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP
Plus en détailARDUINO DOSSIER RESSOURCE POUR LA CLASSE
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailAlgorithmique, Structures de données et langage C
UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure
Plus en détailLogique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.
Logique binaire I. L'algèbre de Boole L'algèbre de Boole est la partie des mathématiques, de la logique et de l'électronique qui s'intéresse aux opérations et aux fonctions sur les variables logiques.
Plus en détailTP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Plus en détailV- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
Plus en détailLogiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Plus en détailÉPREUVE COMMUNE DE TIPE 2008 - Partie D
ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailCH.6 Propriétés des langages non contextuels
CH.6 Propriétés des langages non contetuels 6.1 Le lemme de pompage 6.2 Les propriétés de fermeture 6.3 Les problèmes de décidabilité 6.4 Les langages non contetuels déterministes utomates ch6 1 6.1 Le
Plus en détailQuelques Algorithmes simples
Quelques Algorithmes simples Irène Guessarian ig@liafa.jussieu.fr 10 janvier 2012 Je remercie Patrick Cegielski de son aide efficace pour la programmation Java ; la section sur le codage de Huffman a été
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailFONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE
I/ GÉNÉRALITÉS I.1/ Fonction Un compteur binaire est utilisé : -pour compter un certain nombre d'évènements binaires -pour diviser la fréquence d'un signal logique par 2 m Page 1 FONCTION COMPTAGE BINAIRE
Plus en détailLogiciel de Base. I. Représentation des nombres
Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats
Plus en détailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détailProjet Matlab : un logiciel de cryptage
Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que
Plus en détail1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert
1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes
Plus en détailDéfinition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3
8 Systèmes de numération INTRODUCTION SYSTÈMES DE NUMÉRATION POSITIONNELS Dans un système positionnel, le nombre de symboles est fixe On représente par un symbole chaque chiffre inférieur à la base, incluant
Plus en détailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détailTP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne
Objectifs : Ce TP est relatif aux différentes méthodes de codage d une information binaire, et à la transmission en bande de base de cette information. Les grandes lignes de ce TP sont l étude des méthodes
Plus en détailLes opérations binaires
Les opérations binaires Compétences associées A2 : Analyser et interpréter une information numérique Objectifs Etre capable: - De coder les nombres entiers en code complément à 2. - De résoudre les opérations
Plus en détailINTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE
INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE Le schéma synoptique ci-dessous décrit les différentes étapes du traitement numérique
Plus en détailLes méthodes utilisées pour compresser, puis décompresser un fichier pour en faire une archive, pour les débutants.
Les méthodes utilisées pour compresser, puis décompresser un fichier pour en faire une archive, pour les débutants. Bonjour à tous! Nous allons dans ce tutoriel expliquer comment compresser puis décompresser
Plus en détailTIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier
Tout d abord TIC TC IUT Montpellier Nancy Rodriguez Destruel Dans la salle de cours (et partout ailleurs ) : Ponctualité et assiduité exigées Ne pas manger, ni boire, ni dormir, ni travailler à autre chose
Plus en détailASR1 TD7 : Un microprocesseur RISC 16 bits
{Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit
Plus en détailSuites numériques 4. 1 Autres recettes pour calculer les limites
Suites numériques 4 1 Autres recettes pour calculer les limites La propriété suivante permet de calculer certaines limites comme on verra dans les exemples qui suivent. Propriété 1. Si u n l et fx) est
Plus en détailDécouverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Plus en détailLes Réseaux sans fils : IEEE 802.11. F. Nolot
Les Réseaux sans fils : IEEE 802.11 F. Nolot 1 Les Réseaux sans fils : IEEE 802.11 Historique F. Nolot 2 Historique 1er norme publiée en 1997 Débit jusque 2 Mb/s En 1998, norme 802.11b, commercialement
Plus en détailCours Informatique 1. Monsieur SADOUNI Salheddine
Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale
Plus en détailObjets Combinatoires élementaires
Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons que
Plus en détailImage d un intervalle par une fonction continue
DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailChap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
Plus en détailChapitre 7. Récurrences
Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,
Plus en détailJeux de caracte res et encodage (par Michel Michaud 2014)
Jeux de caracte res et encodage (par Michel Michaud 2014) Les ordinateurs ne traitent que des données numériques. En fait, les codages électriques qu'ils conservent en mémoire centrale ne représentent
Plus en détailModes opératoires pour le chiffrement symétrique
Modes opératoires pour le chiffrement symétrique Charles Bouillaguet 5 février 2015 1 Notion(s) de sécurité On a vu qu un mécanisme de chiffrement symétrique E est contistué de deux algorithmes : E : {0,
Plus en détailComment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet
Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet Beat Wolf 1, Pierre Kuonen 1, Thomas Dandekar 2 1 icosys, Haute École Spécialisée de Suisse occidentale,
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailAdressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application
Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750, Français Version 2.1.0 23/12/2003 ii General Copyright 2001 by WAGO Kontakttechnik GmbH Tous droits réservés. WAGO Kontakttechnik GmbH Hansastraße
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailUNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU
Odile VERBAERE UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU Résumé : Cet article présente une réflexion sur une activité de construction de tableau, y compris
Plus en détailET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.
ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de
Plus en détailEnergie et conversions d énergie
Chapitre 6 et conversions d énergie I) NOTIONS GENERALES Les différentes formes d énergie : électrique (liée aux courants et tensions) lumineuse (liée à un mouvement ou à l altitude) thermique (liée à
Plus en détailChap III : Les tableaux
Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction
Plus en détailFamille multirésidence : recensement et sources alternatives
Famille multirésidence : recensement et sources alternatives Groupe de travail sur la rénovation du questionnaire de recensement Pascale BREUIL Chef de l Unité des Etudes Démographiques et sociales 28/09/2011
Plus en détailINF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies
INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH
Plus en détailGlossaire des nombres
Glossaire des nombres Numérisation et sens du nombre (4-6) Imprimeur de la Reine pour l'ontario, 008 Nombre : Objet mathématique qui représente une valeur numérique. Le chiffre est le symbole utilisé pour
Plus en détailUFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP
Université de Strasbourg Licence Pro ARS UFR de Mathématiques et Informatique Année 2009/2010 1 Adressage IP 1.1 Limites du nombre d adresses IP 1.1.1 Adresses de réseaux valides Réseaux Locaux TP 04 :
Plus en détailCOMPTABILITE SAGE LIGNE 30
COMPTABILITE SAGE LIGNE 30 Date : 25/09/2006 Auteur : Pascal VIGUIER Réf. : SAGE092006 SOMMAIRE SOMMAIRE... 1 1. MENU FICHIER... 3 1.1 1.2 AUTORISATION D ACCES... 3 A PROPOS DE VOTRE SOCIETE... 4 1.2.1
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailConception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Plus en détail3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
Plus en détailComme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:
Travaux Pratiques 3. IFT 1002/IFT 1005. Structure Interne des Ordinateurs. Département d'informatique et de génie logiciel. Université Laval. Hiver 2012. Prof : Bui Minh Duc. Tous les exercices sont indépendants.
Plus en détailPROJET ALGORITHMIQUE ET PROGRAMMATION II
PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du
Plus en détailPython - introduction à la programmation et calcul scientifique
Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de
Plus en détailManuel d utilisation du module Liste de cadeaux PRO par Alize Web
Manuel d utilisation du module Liste de cadeaux PRO par Alize Web INSTALLER ET CONFIGURER LE MODULE (BACK OFFICE) 2 Réglages des performances 2 Télécharger le module 3 Installer le module 4 Configurer
Plus en détail