- Fermeture de Kleene
-
Pour les articles homonymes, voir Fermeture.
La fermeture de Kleene, parfois appelée étoile de Kleene ou encore fermeture itérative, est un opérateur unaire utilisé pour décrire les langages formels. Le nom vient de la notation employée: la fermeture est notée par un astérisque.
L'étoile de Kleene est l'un des trois opérateurs de base utilisés pour définir une expression rationnelle, avec la concaténation et l'union ensembliste.
Appliquée à un ensemble X, elle a pour résultat le langage X * , défini ainsi :
- Si X est un alphabet, c'est-à-dire un ensemble de symboles ou caractères, alors X * est l'ensemble des mots sur X, mot vide ε inclus.
- Si X est un langage, alors X * est le plus petit langage qui le contienne, qui contienne ε et qui soit stable par concaténation.
Exemples
Pour l'alphabet {a,b,c}, on a
Pour la partie X = {aa,b} composée des deux mots aa et b sur l'alphabet {a,b}, on obtient
Sommaire
Définition
On appelle fermeture de Kleene ou étoile de Kleene d'une partie X d'un monoïde M le sous-monoïde engendré par X. Ce sous-monoïde est noté X * . Comme d'usage pour les opérations de fermeture, il peut être défini de trois manières équivalentes:
- X * est la plus petite partie de M contenant X et l'élément neutre de M et fermée pour l'opération de M.
- X * est l'intersection de tous les sous-monoïdes de M contenant X.
- X * est l'ensemble de tous les produits de la forme , pour et .
Si X est un ensemble générateur du monoïde M , on a en particulier X * = M.
Cas du monoïde libre
Dans le cas d'un alphabet A, on note A * l'ensemble de tous les mots sur A. L'ensemble A * est un monoïde pour la concaténation, et il est engendré par A (pour être tout à fait rigoureux, A * est engendré par les mots composés d'une lettre, que l'on identifie avec les lettres).
Si X est une partie de A * , alors X * est un sous-monoïde de A * qui peut être libre ou pas. Il est d'usage de noter par Xn l'ensemble
de tous les produits de n éléments de X. On a alors la formule
- .
Si X * est un sous-monoïde librement engendré par X, c'est-à-dire si tout mot de X * est produit, de manière unique, de mots de X, on dit que X est une code ou que X est une base de X * .
Par exemple, l'ensemble X = {aa,b} est un code, et l'ensemble X = {a,ab,ba} n'est pas un code parce que le mot aba possède les deux factorisations
- .
Opérateur plus
L'opérateur plus est un opérateur analogue à l'étoile de Kleene. Il associe à une partie X d'un demi-groupe M le sous-demi-groupe engendré par X, noté X + . On a
- .
Comme d'usage pour l'étoile, l'opérateur plus peut être défini de trois manières équivalentes:
- X + est la plus petite partie de M contenant X et fermée pour l'opération de M.
- X + est l'intersection de tous les sous-demi-groupes de M contenant X.
- X + est l'ensemble de tous les produits de la forme , pour n > 0 et .
Dans un monoïde, on a les relations suivantes entre l'étoile et l'opérateur plus:
Voir aussi
Wikimedia Foundation. 2010.