Codage de l'information

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

On s'intéresse ici aux moyens de formaliser l'information afin de pouvoir la manipuler (principalement pour la transmettre). On ne s'intéressera donc pas au contenu mais seulement à la forme.

Alphabet, mot, langages[modifier | modifier le code]

Définitions[modifier | modifier le code]

On définit un alphabet comme un ensemble non vide de symboles, par exemple :

On nomme lettre un élément d'un alphabet.
On nomme mot une suite finie de lettres.
La suite de 0 lettre est nommée le mot vide, notée ε.
On nomme langage un ensemble de mots associé à certaines règles d'interprétation (sans cette dernière restriction, n'importe quelle table de valeurs aléatoires pourrait être nommée langage). Dans le cas de l'ADN, ces règles sont contenues dans le ribosome, dans les langues naturelles, elles sont contenues dans leur lexique, sur un ordinateur, elles sont présentes dans les circuits de l'unité centrale.

Opérations[modifier | modifier le code]

Soit un alphabet A et un entier naturel n.
On note A^n l'ensemble de tous les mots de longueur n sur A et A^* l'ensemble de tous les mots de A.
On dispose de : A^* = \bigcup_{n \geq 0}^{\infty}A^n (fermeture de Kleene).
On définit l'opération de concaténation \cdot : A^* \times A^* \rightarrow A^* qui à (u, v) associe un mot w qui est constitué de la suite de lettres de u puis celle de v.
Exemple : « marc » \cdot « et sophie » = « marc et sophie » (les guillemets servent à délimiter les symboles, ce ne sont pas des éléments de A).

Codages et codes[modifier | modifier le code]

Codage[modifier | modifier le code]

Soit L et M deux langages.
Un codage c de L dans M est un morphisme (pour l'opération \cdot) injectif. En d'autres termes, c'est une correspondance entre les mots de L et ceux de M, où à tout mot de L est associé un unique mot de M et tel que le codage de la concaténée soit égale à la concaténée des codages. ( \forall u,v \in  L, c(u.v) = c(u).c(v) ).

Code[modifier | modifier le code]

Un langage L sur un alphabet A est un code si et seulement s'il n'existe pas deux factorisations différentes des mots A^* avec des mots de L.

Applications, exemples[modifier | modifier le code]

Articles connexes[modifier | modifier le code]