Machine de Mealy
En informatique théorique, notamment en théorie des automates, et en théorie de la calculabilité, une machine de Mealy ou automate de Mealy est un transducteur fini (i.e. un automate fini avec une sortie) pour lequel les sorties dépendent à la fois de l'état courant et des symboles d'entrée. Cela signifie que l'étiquette de chaque transition est un couple formé d'une lettre d'entrée et d'une lettre de sortie. En particulier, la longueur du mot de sortie est égale à la longueur du mot d'entrée.
Cette définition est plus générale que celle des machines de Moore pour lesquelles les valeurs de sortie ne dépendent que de l'état courant. Toutefois, il existe pour chaque machine de Mealy, une machine de Moore équivalente et réciproquement.
Cet automate tient son nom de George H. Mealy, qui a proposé ce modèle en 1955[1]. Ils font maintenant partie des concepts de base en théorie des automates et des langages rationnels et figurent dans de nombreux manuels[2],[3],[4],[5].
Les automates de Mealy ont des applications en théorie géométrique des groupes, où ils interviennent, depuis les travaux de Rostislav Grigorchuk, dans la définition de groupes d'automorphismes à croissance intermédiaire.
Sommaire
1 Définition formelle
1.1 Variante
2 Exemples
2.1 Décalage
2.2 « Ou » exclusif (addition modulo 2)
3 Applications
4 Transformation d'une machine de Mealy en machine de Moore
5 Automates de Mealy et demi-groupes à croissance intermédiaire
6 Notes et références
7 Voir aussi
Définition formelle |
Une machine de Mealy est constituée des données suivantes :
- un ensemble fini d'états Q{displaystyle Q} ;
- un état initial i{displaystyle i}, élément de Q{displaystyle Q} ;
- un ensemble fini A{displaystyle A}, appelé alphabet d'entrée ;
- un ensemble fini B{displaystyle B}, appelé alphabet de sortie ;
- une fonction de transition δ:Q×A→Q{displaystyle delta :Qtimes Ato Q};
- une fonction de sortie λ:Q×A→B{displaystyle lambda :Qtimes Ato B}.
Il est commode de noter l'état δ(q,a){displaystyle delta (q,a)} par q⋅a{displaystyle qcdot a} et le symbole de sortie λ(q,a){displaystyle lambda (q,a)} par q⋆a{displaystyle qstar a}. La fonction de transition et la fonction de sortie sont étendues aux mots de A∗{displaystyle A^{*}} par récurrence, pour w∈A∗{displaystyle win A^{*}} et a∈A{displaystyle ain A}, par
- q⋅wa=(q⋅w)⋅a,q⋆wa=(q⋆w)((q⋅w)⋆a).{displaystyle qcdot wa=(qcdot w)cdot a,quad qstar wa=(qstar w)((qcdot w)star a).}
En d'autres termes, la sortie produite par le mot wa{displaystyle wa} lu à partir de l'état q{displaystyle q} est le mot produit par le mot w{displaystyle w} lu à partir de l'état q{displaystyle q}, suivi de la lettre produite par le symbole a{displaystyle a} lu à partir de l'état q⋅w{displaystyle qcdot w} atteint après la lecture de w{displaystyle w}.
La fonction réalisée par l’automate de Mealy est l'application f:A∗→B∗{displaystyle f:A^{*}to B^{*}} définie par:
- f(w)=i⋆w{displaystyle f(w)=istar w}
C'est donc la fonction qui, à un mot w{displaystyle w} de A∗{displaystyle A^{*}} lu à partir de l'état initial i{displaystyle i}, associe le mot sur B∗{displaystyle B^{*}} obtenu en concaténant les lettres de sortie des transitions parcourues.
Variante |
Parfois, une machine de Mealy est dotée d'un ensemble fini d'état terminaux. La fonction f{displaystyle f} réalisée est alors restreinte aux mots du langage rationnel sur l'alphabet d'entrée reconnu par l'automate.
Exemples |
Décalage |
Dans l'exemple ci-dessus, le mot produit par la lecture d'un mot w{displaystyle w} à partir de l'état initial S0{displaystyle S_{0}} consiste à préfixer w{displaystyle w} par la lettre 0{displaystyle 0}, puis à recopier w{displaystyle w} à l'exception de sa dernière lettre. Par exemple :
- f(000110011)=000011001,f(100110011)=010011001.{displaystyle f(000110011)=000011001,quad f(100110011)=010011001.}
Le résultat est donc le décalage de l’entrée d'un chiffre, avec perte du dernier symbole.
« Ou » exclusif (addition modulo 2) |
L'automate ci-contre réalise le « ou » exclusif ou addition modulo 2 des deux chiffres binaires consécutifs de l'entrée, avec recopie du premier symbole.
Cette propriété est utilisée par exemple dans la détection de contour. Les entrées sont représentées en rouge, les sorties en bleu. Soit
f{displaystyle f} la fonction réalisée. On obtient par exemple
- f(000110011)=000101010,f(100110011)=010101010.{displaystyle f(000110011)=000101010,quad f(100110011)=010101010.}
Applications |
Les machines de Mealy fournissent un modèle mathématique rudimentaire pour représenter le chiffrement des informations. Supposons que l'alphabet d'entrée et l'alphabet de sortie soient constituées de l'ensemble des chaînes de caractères latins. Il est possible de concevoir une machine de Mealy transformant une chaîne de caractères en clair (entrée) en une chaîne chiffrée (sortie). Cet exemple est toutefois théorique : par exemple, s'il est possible de décrire la machine de chiffrement Enigma en utilisant une machine de Mealy, le diagramme états-transitions reste trop complexe pour une interprétation efficace.
Transformation d'une machine de Mealy en machine de Moore |
Pour transformer une machine de Mealy en machine de Moore, on peut procéder en trois étapes comme suit :
- Étape 1 : Dupliquer les états et détourner les transitions entrantes.
Chaque état est dupliqué en autant d'exemplaires qu'il y a de symboles de sorties sur les transitions entrant dans cet état. Les transitions entrantes sont détournées de manière que lorsqu'elles entrent dans un état, elles aient toutes le même symbole de sortie ;
- Étape 2 : Écrire les sorties dans les états.
Pour chaque transition, on reporte le symbole de sortie dans l'état d'arrivée. Grâce à la duplication préalable des états, il y a un seul symbole de sortie associé à un état ;
- Étape 3 : Dupliquer les transitions sortantes.
Les transitions sortantes d'un état sont dupliquées sur chaque copie d'état réalisée à l'étape 1.
L'automate obtenu est un automate de Moore équivalent à l'automate de Mealy de départ. Son nombre d'états est au plus |Q|⋅|B|{displaystyle left|Qright|cdot left|Bright|}, où Q{displaystyle Q} est l'ensemble d'états de l'automate de Mealy, et B{displaystyle B} est l'alphabet de sortie.
Automate de départ.
Étape 1. Duplication des états.
Étape 2. Écriture des sorties dans les états.
Étape 3. Duplication des transitions sortantes.
Automates de Mealy et demi-groupes à croissance intermédiaire |
Les automates de Mealy sont des modèles utilisés en théorie des groupes pour décrire des groupes ou des demi-groupes de transformations. Ils se prêtent notamment à la construction de groupes et demi-groupes à croissance dite « intermédiaire », ni polynomiale ni exponentielle. Les premiers groupes ont été mis en évidence par Rostislav Grigorchuk (le groupe de Grigorchuk). Le plus petit automate qui donne un demi-groupe à croissance intermédiaire est décrit en détail par Bartholdi et al.[6] et est appelé l'« automate de Sushchanskii » par Bartholdi [7].
Les automates de Mealy inversibles à deux états et sur deux lettres, qui donnent des groupes de transformations, ont été tous décrits, par R. I. Grigorchuk, V. V. Nekrashevich et V. I. Sushchanskiĭ[8]. Les demi-groupes de transformation deux lettres définis par des automates de Mealy sur deux états sont aussi connus[6]. Parmi eux, il y a l'automate de Sushchanskiĭ qui a la particularité que son taux de croissance, intermédiaire, est connu ; il est
- γ(n)∼25/233/4π−2n1/4exp(πn/6){displaystyle gamma (n)sim 2^{5/2}3^{3/4}pi ^{-2}n^{1/4}exp(pi {sqrt {n/6}})}
Les automates considérés sont des automates Mealy particuliers : ils ont même alphabet d'entrée et de sortie, en général {0,1}{displaystyle {0,1}}, et n'ont pas d'états initiaux ni terminaux. Les états sont en bijection avec les générateurs du groupe ou demi-groupe, augmentés de l'automorphisme identité. Les transitions sont les quadruplets (p,i,j,q){displaystyle (p,i,j,q)} tels que p(ix)=jq(x){displaystyle p(ix)=jq(x)} dans le demi-groupe, où i,j∈{0,1}{displaystyle i,jin {0,1}} et p,q{displaystyle p,q} sont des généraleurs du demi-groupe ou l'identité. On voit qu'il existe un chemin de p{displaystyle p} à q{displaystyle q} d'étiquette d'entrée y{displaystyle y} et d'étiquette de sortie z{displaystyle z}, soit p⋅y=q{displaystyle pcdot y=q} et p∗y=z{displaystyle p*y=z} si et seulement si p(yx)=zq(x){displaystyle p(yx)=zq(x)}. Par exemple, il y a dans l’automate de Grigorchuk un chemin
- b→1|1c→0|0a→1|0e→1|1e{displaystyle b,{xrightarrow {1|1}},c,{xrightarrow {0|0}},a,{xrightarrow {1|0}},e,{xrightarrow {1|1}},e}
représentant le calcul
b(1011)=1c(011)=10a(11)=1001{displaystyle b(1011)=1c(011)=10a(11)=1001}.
L'étude des automates de Mealy et des groupes et demi-groupes de transformations qu'ils définissent a été poursuivie par Thibault Godin, Inès Klimann, Matthieu Picantin[9].
Formellement, tout état p{displaystyle p} réalise une fonction ρp:{0,1}∗→{0,1}∗{displaystyle rho _{p}:{0,1}^{*}to {0,1}^{*}}, notée aussi p{displaystyle p} quand il n'y a pas de confusion possible, vérifiant ρp(x)=p∗x{displaystyle rho _{p}(x)=p*x} et appelée transformation automatique associée à p{displaystyle p}. Les fonctions réalisées peuvent être composées : si ρq:{0,1}∗→{0,1}∗{displaystyle rho _{q}:{0,1}^{*}to {0,1}^{*}} est associée à l’état q{displaystyle q}, alors
ρq∘ρp(x)=q∗(p∗x){displaystyle rho _{q}circ rho _{p}(x)=q*(p*x)},
en d'autres termes la sortie de la fonction associée à p{displaystyle p} devient l’entrée de la fonction associée à q{displaystyle q}. Les mots x,p∗x{displaystyle x,p*x} et q∗p∗x{displaystyle q*p*x} ont même longueur. Plus généralement, on associe à tout mot w{displaystyle w}, produit de générateurs du demi-groupe, une fonction fw{displaystyle f_{w}} définie par composition des fonctions des générateurs.
Le taux de croissance γ(n){displaystyle gamma (n)} est le nombre d'éléments distincts du demi-groupe qui produit de n{displaystyle n} générateurs sans être produit de moins de générateurs.
Les demi-groupes à deux états et à deux symboles se répartissent en deux demi-groupes finis, sept demi-groupes à croissances polynomiale, un à croissance intermédiaire (l'automate de Sushchanskii), et huit demi-groupes à croissance exponentielle, y compris le demi-groupe libre[7].
Plusieurs types d'automates de Mealy existent : un automate est inversible si les étiquettes de sortie des transitions d'un état sont toutes distinctes. Alors chaque état définit une permutation sur les étiquettes de sortes. L'automate de Grigorchuk est inversible, l'automate de Sushchanskii ne l’est pas puisque les deux transitions de l’état ront{displaystyle ront} le même symbole de sortie. Le demi-groupe engendré par un automate inversible est un groupe. Le dual d'un automate est l'automate obtenu en échangeant les états et les lettres : formellement, chaque transition (p,i,j,q){displaystyle (p,i,j,q)} donne une transition (i,p,q,j){displaystyle (i,p,q,j)} du dual. Un automate est réversible quand les fonctions de transitions de l’automate sont des permutations de l’ensemble des états ou, de manière équivalente, quand son dual est inversible[10]. Un exemple d'automate inversible est l'automate dit du groupe de l’allumeur de réverbères, en anglais « lamplighter group »[11],[12]. Comme il s'agit d'automates inversibles sur deux lettres, les transitions sortant d'un état sont soit 0|0{displaystyle 0|0} et 1|1{displaystyle 1|1}, soit 0|1{displaystyle 0|1} et 1|0{displaystyle 1|0}. Une écriture remontant aux premiers travaux de Grigorchuk et toujours utilisée consiste à étiqueter un état par 1 ou par ε selon qu'il est de la première ou de la deuxième espèce, et de ne pas indique explicitement la sortie sur les transitions ; ainsi, une transition (p,0,1,q){displaystyle (p,0,1,q)} est remplacée par (pϵ,0,q){displaystyle (p_{epsilon },0,q)}. Une autre famille est constituée des automates biréversibles[13].
Automate de l'allumeur de réverbères.
Inverse de l'automate.
Dual de l'automate.
Variante de représentation.
Notes et références |
George H. Mealy, « A Method for Synthesizing Sequential Circuits », Bell System Tech. J. 34 (1955) : 1 045–1 079.
(en) W.M.L. Holcombe, Algebraic automata theory, vol. 1, Cambridge University Press, coll. « Cambridge Studies in Advanced Mathematics », 1982(ISBN 0-521-60492-3, zbMATH 0489.68046)
Jean-Eric Pin, chap. I/9 « Algorithmique et Programmation. Automates finis », dans Jacky Akoka et Isabelle Comyn-Wattiau (éditeurs), Encyclopédie de l’informatique et des systèmes d’information, Paris, Vuibert, 2006(ISBN 978-2711748464, lire en ligne), p. 966-976
Jean-Éric Pin, « Petit cours sur les fonctions séquentielles », Sainte-Marie de Ré, sur www.irif.fr, LIAFA, CNRS et Université Denis Diderot, mai 2013, (consulté le 3 août 2017).
Jacques Sakarovitch, Éléments de théorie des automates, Vuibert, 2003(ISBN 978-2-7117-4807-5). — Traduction anglaise (par Reuben Thomas) : Elements of Automata Theory, Cambridge University Press 2009, (ISBN 9780521844253).
(en) Laurent Bartholdi, Ilya I. Reznykov et Vitalii I. Sushchansky, « The smallest Mealy automaton of intermediate growth », Journal of Algebra, vol. 295, no 2, 2006, p. 387–414 (ISSN 0021-8693, DOI 10.1016/j.jalgebra.2004.08.040, arXiv math/0407312v1, lire en ligne).
Laurent Bartholdi, « Decidability problems in automaton semigroups », preprint, 2017(arXiv 1705.04598v1).
R.I. Grigorchuk, V.V. Nekrashevich et V.I. Sushchanskiĭ, « Automata, dynamical systems, and groups », Proc. Steklov Inst. Math., vol. 231, 2000, p. 128–203 (Math Reviews 1841755).
Thibault Godin, Ines Klimann et Matthieu Picantin, « On torsion-free semigroups generated by invertible reversible Mealy automata », LATA 2015, Springer, 2015, p. 328–339 (DOI 10.1007/978-3-319-15579-1_25, Math Reviews 3344813, arXiv abs/1410.4488).
Thibault Godin, Machines de Mealy, (semi-)groupes d’automate, problèmes de décision et génération aléatoire, thèse de doctorat, Université Paris Diderot, 2017(lire en ligne).
(en) Rostislav I. Grigorchuk et Andrzej Żuk, « The lamplighter group as a group generated by a 2-state automaton, and its spectrum », Geometriae Dedicata, vol. 87, nos 1-3, 2001, p. 209–244 (ISSN 0046-5755, DOI 10.1023/A:1012061801279).
(en) Ali Akhavi, Ines Klimann, Sylvain Lombardy, Jean Mairesse et Matthieu Picantin, « On the finiteness problem for automaton (semi)groups », Int. J. Algebra Comput., vol. 22, no 6, 2012, p. 1–26 (zbMATH 1280.20038, arXiv 1105.4725).
(en) Thibault Godin et Ines Klimann, « On bireversible Mealy automata and the Burnside problem », Theoretical Computer Science, vol. 707, 2018, p. 24–35 (DOI 10.1016/j.tcs.2017.10.005).
Voir aussi |
- Automate fini
- Machine de Moore
- Transducteur fini
- Transduction rationnelle
- Groupe de Grigorchuk
- Portail de la logique
- Portail de l'informatique théorique