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

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

Unicité modifier

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

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

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

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

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

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

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

  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

Articles liés modifier