Langage sans étoile

De testwiki
Version datée du 11 juin 2024 à 21:45 par imported>A3nm (Autres caractérisations : refnec (je n'ai pas trouvé de définitions de tels automates à part sur des mots infinis, je ne suis pas sûr de l'énoncé ou du résultat))
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

En informatique théorique, et notamment en théorie des langages formels, un langage rationnel est sans étoile (Modèle:Langue en anglais) s'il peut être obtenu à partir des lettres d'un alphabet et de l'ensemble vide par un ensemble fini d'opérations ensemblistes d'union, intersection, de complémentaire et de concaténations, mais sans utiliser l'opération étoile.

Par exemple, l'ensemble de tous les mots est le complémentaire de l'ensemble vide : c'est donc un langage sans étoile. Le langage des mots sur l'alphabet {a,b} qui ne contiennent pas deux lettres a consécutives est aussi un langage sans étoile. En effet, c'est l'ensemble défini par (caac)c, où Xc dénote le complément d'une partie X de {a,b}*.

Définition

La famille des langages sans étoiles est[1] la plus petite famille de langages formels  :

  • qui contient l'ensemble vide et tous les singletons composés d'une lettre.
  • et qui est stable par union, complémentaire et concaténation.

De manière équivalente, les langages sans étoile sont ceux qui admettent une expression régulière pouvant contenir des constructions pour le complémentaire mais pas d'étoile.

Comme les langages rationnels généraux sont fermés par complémentation, on voit que les langages sans étoile sont un sous-ensemble des langages rationnels.

Autres exemples et contre-exemples

Les langages suivants sont sans étoile.

  • Le langage Σ*contenant tous les mots sur un alphabet Σ, parce qu'il est le complémentaire de l'ensemble vide : Σ*=c ;
  • L'ensemble {ε} réduit au mot vide est sans étoile : c'est le complément de Σ*Σ;
  • tous les langages finis sont également des langages sans étoile.
  • Sur Σ={a,b}, le langage (ab)+=(aΣ*Σ*b)Σ*(aa+bb)Σ* est sans étoile[1]
  • Tout langage local est sans étoile.
  • Le langage L=(aa)* sur une seule lettre n'est pas un langage sans étoile, comme montré plus bas.

Caractérisations

Théorème de Schützenberger

Un théorème dû à Marcel-Paul Schützenberger caractérise les langages sans étoile de manière algébrique, à travers leur monoïde syntaxique. Cette caractérisation est intéressante par le lien qu'elle établit entre une définition combinatoire et une propriété algébrique ; elle est de plus utile pour montrer qu'un langage n’est pas sans étoile. Il est en effet difficile de montrer, sans elle, qu'un langage donné n'est pas un langage sans étoile car la définition par expression rationnelle demande de passer en revue toutes les expressions rationnelles sans étoile pour affirmer que le langage est sans étoile.

Marcel-Paul Schützenberger a donné la caractérisation[2] suivante des langages sans étoile : Modèle:Théorème On trouvera une démonstration de ce théorème dans les ouvrages francophones[3]Modèle:,[4]Modèle:,[1]. Ce résultat est le point de départ de la théorie des variétés des langages formels.

Un exemple d'application de cette caractérisation est une preuve que le langage L=(aa)* n'est pas un langage sans étoile. Le monoïde syntaxique de ce langage est isomorphe à /2 ; ce groupe n'étant pas trivial, le monoïde syntaxique de L n'est pas apériodique, donc L n'est pas, d'après le théorème de Schützenberger, un langage sans étoile.

Automates sans compteurs

Les langages sans étoile sont également les langages acceptés par certains automates finis, appelés les automates sans compteurs. Un automate fini déterministe complet A=(Q,Σ,I,δ,F) est sans compteur si, pour tout mot wΣ*, pour tout état pQ, et pour tout entier naturel m1,

δ(p,wm)=p implique δ(p,w)=p.

Le théorème énoncé par Robert McNaughton et Seymour Papert en 1971[5] formule cette caractérisation[6] :

Modèle:Théorème

Autres caractérisations

Les langages sans étoile possèdent d'autres caractérisations[7] :

Les langages sans étoile appartiennent tous à la classe de complexité AC⁰ qui est une des premières classes considérées en complexité descriptive.

Ces équivalences restent valables, mutatis mutandis, pour des ensembles de mots infinis.

Exemple

Reprenons l'exemple présenté en introduction : le langage L des mots ne comportant pas deux a consécutifs sur l'alphabet Σ={a,b} :

  • Une expression rationnelle de hauteur d'étoile 2 qui le dénote est par exemple (b*+ab)*+(b*+ab)*a.
  • Une expression rationnelle sans étoile qui le dénote est (caac)c.
  • Son monoïde syntaxique est M(L)={ϵ,a,b,ab,ba}.

M(L) est bien un monoïde apériodique car il ne contient aucun groupe non trivial. Donc d'après la caractérisation de Schützenberger, il s'agit bien d'un langage sans étoile.

Références

Modèle:Traduction/Référence Modèle:Références

Bibliographie

  • 1961Modèle:Ouvrage
  • 1965Modèle:Article
  • 1968Modèle:Ouvrage
  • 1986 — Jean-Eric Pin, Variétés de langages formels, Éditions Masson, 1984 (version anglophone: Varieties of formal languages, Plenum Press, 1986).
  • 2003 — Jacques Sakarovitch, Éléments de théorie des automates, Vuibert, 2003 (version anglophone: Elements of automata theory, Cambridge University Press, 2009)
  • 2008Modèle:Chapitre
  • 2008Modèle:Carton2008
  • 2021Modèle:Article

Articles connexes

Modèle:Palette Automates finis et langages réguliers Modèle:Portail

  1. 1,0 1,1 et 1,2 Modèle:Harvsp.
  2. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Schutz
  3. Modèle:Ouvrage
  4. Modèle:Ouvrage
  5. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées McNaughtonPapert
  6. Modèle:Lien web
  7. Une présentation de ces équivalences, et de la preuve de ces équivalences, est donnée dans Modèle:Harvsp.
  8. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées DiekertGastin
  9. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées Kamp