Mot primitif

Un article de Wikipédia, l'encyclopédie libre.

En informatique théorique, en combinatoire, et notamment en combinatoire des mots, un mot primitif est un mot qui n’est pas une puissance d'un autre mot. Par exemple, abba est un mot primitif et abab n'est pas primitif puisqu'il est le carré du mot ab. Les mots primitifs représentent en quelque sorte l'équivalent combinatoire des nombres premiers en arithmétique. Les mots primitifs interviennent dans divers domaines, comme les équations entre mots, les mots de Lyndon, les langages formels. Ils sont liés aux colliers ou mots circulaires. Un mot primitif est aussi appelé apériodique.

Définition[modifier | modifier le code]

Un mot sur un alphabet est primitif s'il n’est pas une puissance d'un autre mot, donc s'il n'existe pas de mot tel que pour un entier naturel positif. Le mot vide n’est pas primitif.

Pour un alphabet à deux lettres les premiers mots primitifs sont :

.

Propriétés[modifier | modifier le code]

Unicité[modifier | modifier le code]

Les propriétés suivantes se trouvent dans les manuels, comme ceux de Lothaire[1] ou de Shallit[2]

Propriété 1 — Tout mot s'écrit de manière unique comme puissance d'un mot primitif.

On trouve parfois le nom « racine » de pour désigner l'unique mot primitif dont est une puissance ; il est aussi noté . L'entier tel que est l'« exposant » de . Par exemple, pour , et , d'exposant 3. La propriété se démontre à l'aide du lemme ci-dessous.

Propriété 2 — Les conjugués d'un mot primitif sont eux-mêmes primitifs.

Prenons par exemple . Ses conjugués sont

.

Ils sont tous primitifs.

Propriété 3 — La classe de conjugaison d'un mot primitif de longueur a éléments.

Nombre de mots primitifs[modifier | modifier le code]

Comme les conjugués d'un mot primitif sont tous distincts, car s'il y en avait deux égaux, ils vérifieraient une équation décrite dans le lemme ci-dessous, et seraient puissances d'un troisième mot, donc imprimitifs. La classe de conjugaison d'un mot primitif, ou de manière équivalent le mot circulaire associé à ce mot, est appelé un collier apérodique. Le nombre de colliers apériodiques de longueur , donc le nombre de classes de conjugaison de mots primitifs de longueur longueur n sur un alphabet à k lettres est

.

Ici, est la fonction de Möbius. Comme les conjugués d'un mot primitif sont tous primitifs et distincts, le nombre de mots primitifs de longueur longueur n sur un alphabet à k lettres est

.

Les fonctions sont aussi appelés les polynômes de colliers (en la variable ), et la formule est attribuée au colonel Moreau. Pour , la suite des est la suite A001037 de l'OEIS. Pour et , les colliers apériodiques binaires sont respectivement 001,011 et 0001,0011,0111.

Le nombre est le nombre de mots de Lyndon de longueur sur lettres : Toute classe de conjugaison d'un mot primitif contient un seul élément qui est plus petit que les autres dans un ordre lexicographique fixé, et c'est l'unique mot de Lyndon de la classe, de sorte que les mots de Lyndon forment un système de représentants des classes de mots primitifs ou de colliers apériodiques.

Théorème de Lyndon et Schützenberger[modifier | modifier le code]

Propriété 4 — Si et sont deux mots primitifs distincts, alors est un mot primitif pour tout . De plus, au plus un des mots pour n'est pas primitif.

La première partie de cette propriété est en fait une paraphrase du théorème de Lyndon et Schützenberger qui dit que si pour , alors et ont même racine. Ceci n'est plus vrai si ou . Ainsi, pour et , le mot est un carré. La deuxième partie de l'énoncé[3] dit qu'au plus l'un des mots ou n'est pas primitif. Si et sont de même longueur, alors le seul mot éventuellement imprimitif  est . Par exemple, si et , alors . On peut montrer[4] que dans le cas général, si est imprimitif, alors , avec . Ainsi, pour et , on a , et pour , on a .

Mots sans bord[modifier | modifier le code]

Propriété 5 — Un mot est primitif si et seulement si l'un de ses conjugués est un mot sans bord.

Un bord d'un mot est un mot qui est à la fois un préfixe propre et un suffixe propre de . Un mot sans bord est un mot qui ne possède pas de bord non vide.

Un lemme[modifier | modifier le code]

Le résultat suivant est utile dans les démonstrations des propriétés des mots primitifs :

Théorème —  Soient et sont deux mots non vides. Les conditions suivantes sont équivalentes:

  1. ,
  2. il existe deux entiers tels que ,
  3. il existe un mot et deux entiers tels que et .

Ainsi, pour démontrer que tout mot a une racine unique, on peut supposer qu'un mot s'écrit de deux façons comme puissance d'un mot primitif, soit avec et des mots primitifs. Par la condition (3), il en résulte que et , et comme et sont primitifs, on a et .

Le langage des mots primitifs[modifier | modifier le code]

Il est de tradition de noter l'ensemble des mots primitifs sur un alphabet fixé. Sur une lettre, il n'y a qu'un seul mot primitif. Sur plus d'une lettre, le problème de la nature de l'ensemble , dans le cadre de la théorie des langages formels, a été posé sans être encore résolu (en 2016). Pál Dömösi et Masami Ito ont consacré un ouvrage de plus de 500 pages à cette question[5],[6]. Un article de synthèse est de Gerhard Lischke[7].

On ne sait pas si le langage est algébrique. Holger Petersen a prouvé, dans un article paru en 1996, que le langage n'est pas algébrique inambigu[8]. Il utilise pour cela la série génératrice du nombre de mots de sur k lettres qui s'écrit

et s'appuie sur le théorème de Chomsky-Schützenberger selon lequel la série génératrice du nombre de mots d’un langage algébrique inambigu est une fonction algébrique. Pour montrer que la série n'est pas algébrique, il applique l'un des critères développés par Philippe Flajolet[9].

Les outils usuels pour prouver qu'un langage n'est pas algébrique, comme le lemme d'itération d'Ogden, ou d'autres lemmes d'itération comme le lemme de Bader et Moura ou même le lemme d'échange d'Ogden, Winklmann et Ross, ne permettent pas de conclure.

Le langage des mots primitifs est la fermeture, par permutation circulaire, du langage des mots de Lyndon. Si était algébrique, il en serait de même de puisque les langages algébriques sont fermés par permutation circulaire. Or il a été démontré par Berstel et Boasson [10] que n'est pas algébrique en appliquant le lemme d'Ogden.

Le langage n'est pas non plus algébrique linéaire, mais c'est langage contextuel déterministe[11], c'est-à-dire reconnu par un automate linéairement borné déterministe. Quant à la complexité de reconnaissance, le langage est dans la classe DTIME(n^2), c'est-à-dire qu'il est reconnu par une machine de Turing déterministe en temps quadratique.

Morphisme préservant les mots primitifs[modifier | modifier le code]

Un morphisme d'un demi-groupe libre dans un deuxième demi-groupe libre préserve les mots primitifs si l'image d'un mot primitif est toujours un mot primitif[12].

Des exemples de morphismes préservant les mots primitifs sont fournis par les morphismes de Lyndon qui sont, par définition, les morphismes qui préservent les mots de Lyndon. Un tel morphisme préserve aussi les mots primitifs : en effet, si est un mot primitif, il existe un conjugué de qui est un mot de Lyndon ; l'image de est par hypothèse un mot de Lyndon, donc primitif, et l'image de , qui est un mot conjugué de , est donc aussi un mot primitif[13]. Une étude détaillée des morphismes préservant les mots primitifs a été faite par Viktor Mitrana[14]. Une version longue est disponible en ligne[15]. Le résultat principal est une caractérisation des morphismes préservant les mots primitifs. Pour cela, on définit la notion de code pur. Un code à longueur variable est un code pur si, pour tout élément de , la racine est également élément de . On peut montrer qu'un code est pur si et seulement si est un langage sans étoile.

Proposition — Un morphisme préserve les mots primitifs si et seulement si est un code pur.

Notes et références[modifier | modifier le code]

  1. Lothaire 1983.
  2. Shallit 2009.
  3. Lischke attribue ce résultat à Huei-Jan Shyr et Shyr-Shen Yu, « Non-primitive words in the language  », Soochow J. Math., vol. 20, no 4,‎ , p. 535–546.
  4. Othman Echi, « Non-primitive words of the form pqm », RAIRO - Theoretical Informatics and Applications, vol. 51, no 3,‎ , p. 141-166 (ISSN 0988-3754, DOI 10.1051/ita/2017012)
  5. Pál Dömösi et Masami Ito, Context-free languages and primitive words, World Scientific Publishing, , 520 p. (ISBN 978-981-4271-66-0, OCLC 897020798, présentation en ligne)
  6. C'est surtout le chapitre 8 du livre, intitulé Some Properties of the Language of Primitive Words, qui étudie l'algébricité du langage.
  7. Gerhard Lischke, « Primitive words and roots of words », Acta Univ. Sapientiae, Informatica, vol. 3, no 1,‎ , p. 5–34 (arXiv 1104.442).
  8. Holger Petersen, « On the Language of Primitive Words », Theoretical Computer Science, vol. 161, nos 1-2,‎ , p. 141-156 (lire en ligne).
  9. (en) Philippe Flajolet, « Analytic models and ambiguity of context-free languages », Theoret. Comput. Sci., vol. 49,‎ , p. 283-309 (DOI 10.1016/0304-3975(87)90011-9, lire en ligne).
  10. Jean Berstel et Luc Boasson, « The set of Lyndon words is not context-free », Bulletin of the European Association for Theoretical Computer Science 63 (1997), vol. 63, no 1,‎ , p. 139-140.
  11. Lischke 2011.
  12. On trouve parfois le terme « morphisme primitif » pour un morphisme préservant les mots primitifs, mais ce terme est maintenant plutôt réservé, en combinatoire des mots, à un morphisme dont la matrice associée est primitive.
  13. Gwénaël Richomme, « Quelques éléments de Combinatoire des Mots Cours 2014-2015 », Lirmm, 2014-2015 (consulté le ).
  14. Victor Mitrana, « Primitive morphisms », Information Processing Letters, vol. 64,‎ , p. 277–281.
  15. Victor Mitrana, « On morphisms preserving primitive words », TUCS Technical Report N° 69, Turku Center for Computer Science, (ISBN 951-650-895-2, consulté le ).

Bibliographie[modifier | modifier le code]

Articles liés[modifier | modifier le code]