Code comma-free

De testwiki
Version datée du 24 novembre 2024 à 01:19 par imported>Libertinus Mercator (growthexperiments-addlink-summary-summary:2|0|0)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Modèle:Titre mis en forme En informatique théorique, et notamment en théorie des codes, et aussi en bio-informatique et notamment en génétique, un code comma-free (terme que l'on pourrait traduire par « code sans virgule ») est un code en bloc ou code uniforme dans lequel aucun mot du code n'est facteur interne[1] du produit de deux mots du code[2].

Les codes comma-free sont aussi connus sous le terme de « self-synchronizing block codes »[3]Modèle:,[4] parce qu'aucune synchronisation n'est nécessaire pour trouver le début d'un mot du code.

Motivation historique

Le code génétique est formé de codons. Chaque codon est une suite de trois nucléotides pris dans un « alphabet » de quatre lettres A, U, G, C (adénine, uracile, guanine, et cytosine). L'ensemble de 64 codons possibles forme un code uniforme. Chacun des codons possibles peut synthétiser l'un des 20 acides aminés naturels. Au début de la génétique, la question a été posée si l'ensemble des codons des 20 acides aminés était un code comma-free ; en effet le nombre maximum d'éléments d'un code comma-free de longueur 3 sur 4 lettres est exactement 20. S'il y avait bijection entre acides aminés et codons, le décodage pouvait se faire sans synchronisation[5]. De fait, il n'en est rien[6].

Définitions

Un code sur un alphabet A est un ensemble C de mots non vides sur A tel que tout produit de mots de C se factorise de manière unique comme produit : formellement, si

c1c2cn=d1d2dm

pour n,m1 et ci,djC, alors

n=m et ci=di pour tout i.

Un autre formulation de la propriété est que le sous-monoïde C* engendré par C est librement engendré par C, donc que C est une base du sous-monoïde C*. Les mots composant un code C sont appelés les « mots du code », un produit de mots du code est un « message ». Si B est un alphabet en bijection avec C, une fonction bijective f:BC s'étend naturellement en un morphisme de B* sur C* qui, à tout mot w=b1bn sur B associe le message

f(b1bn)f(b1)f(bn).

L'application f est un « morphisme de codage », l'application inverse f1 est le « décodage ».

Un code uniforme ou code en bloc est un code dont tous les mots ont même longueur, appelée la longueur du code. Un code comma-free est un code uniforme tel qu'aucun mot du code n'est facteur interne du produit de deux mots du code : Si pcs=c1c2 pour des mots du code c,c1,c2, alors p ou s est le mot vide. Golomb et. al.[2] donnent la formulation explicite suivante : si a1a2an et b1b2bn sont éléments du code C, alors aucun des mots a2anb1, a3anb1b2, ..., anb1b2bn1 n'est dans C.

Taille d'un code comma-free

Tous les mots d'un code comma-free sont primitifs. La taille, c'est-à-dire le nombre d'éléments d'un code comma-free de longueur n est donc majorée par le nombre de mots primitifs de longueur n, qui est aussi le nombre de colliers apériodiques de longueur n ; ce nombre est égal à

Mk(n)=1ndnμ(d)kn/d

pour un alphabet à k lettres. Ici, μ est la fonction de Möbius. Si on note Wk(n) la taille maximale d'un code comma-free de longueur n sur un alphabet à k lettres, on a donc Wk(n)Mk(n). Golomb et al. ont démontré[2] qu'il y a égalité si la longueur n des mots du code est impaire et inférieure à 15 ; le cas général a été prouvé par Willard L. Eastman[7]. On a donc:

Wk(n)=Mk(n)=1ndnμ(d)kn/d si n est impair.

Willard L. Eastman donne de plus un algorithme pour construire ces codes. Un autre algorithme est donné par Robert A. Scholtz[8]. Pour k=4 lettres et des mots de longueur n=3, on trouve la valeur 20, en concordance avec la conjecture de Crick et. al.

Knuth parle du premier algorithme dans sa conférence de Noël. L'algorithme d'Eastman est développé par Knuth comme exemple de backtracking[4]. Il existe des liens entre codes comma-free et les ensembles Hall et les ensembles de Lazard[9]. Le résultat sur la maximalité est faux pour les mots de longueur paire, et aucune formule n'est conjecturée pour la cardinalité d'un code comma-free de longueur paire n sur k lettres[4].

Notes et références

Modèle:Références

Bibliographie

Articles connexes

Lien externe

Modèle:Portail

  1. Un mot x est facteur interne d'un mot y si y=sxy pour deux mots non vides s et t.
  2. 2,0 2,1 et 2,2 Modèle:Harvsp.
  3. Modèle:Lien vidéo
  4. 4,0 4,1 et 4,2 Modèle:Harvsp.
  5. Modèle:Article.
  6. The most beautiful wrong ideas in science sur Chemistry Blog
  7. Modèle:Harvsp.
  8. Modèle:Harvsp.
  9. Modèle:Harvsp.