# 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. Ils font maintenant partie des concepts de base en théorie des automates et des langages rationnels et figurent dans de nombreux manuels$^,$$^,$$^,$ .
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.

## Définition formelle

Une machine de Mealy est constituée des données suivantes :
* un ensemble fini d'états $Q$ ;
* un état initial $i$, élément de $Q$ ;
* un ensemble fini $A$, appelé alphabet d'entrée ;
* un ensemble fini $B$, appelé alphabet de sortie ;
* une fonction de transition $\delta :Q\times A\to Q$;
* une fonction de sortie $\lambda :Q\times A\to B$.
Il est commode de noter l'état $\delta (q,a)$ par $q\cdot a$ et le symbole de sortie $\lambda (q,a)$ par $q\star a$. La fonction de transition et la fonction de sortie sont étendues aux mots de $A^{*}$ par récurrence, pour $w\in A^{*}$ et $a\in A$, par
    $q\cdot wa=(q\cdot w)\cdot a,\quad q\star wa=(q\star w)((q\cdot w)\star a).$
En d'autres termes, la sortie produite par le mot $wa$ lu à partir de l'état $q$ est le mot produit par le mot $w$ lu à partir de l'état $q$, suivi de la lettre produite par le symbole $a$ lu à partir de l'état $q\cdot w$ atteint après la lecture de $w$.
La fonction réalisée par l’automate de Mealy est l'application $f:A^{*}\to B^{*}$ définie par:
    $f(w)=i\star w$
C'est donc la fonction qui, à un mot $w$ de $A^{*}$ lu à partir de l'état initial $i$, associe le mot sur $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$ 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$ à partir de l'état initial $S_{0}$ consiste à préfixer $w$ par la lettre $0$, puis à recopier $w$ à l'exception de sa dernière lettre. Par exemple :
    $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$ la fonction réalisée. On obtient par exemple
    $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 $\left|Q\right|\cdot \left|B\right|$, où $Q$ est l'ensemble d'états de l'automate de Mealy, et $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. et est appelé l'« automate de Sushchanskii » par Bartholdi.
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ĭ. Les demi-groupes de transformation deux lettres définis par des automates de Mealy sur deux états sont aussi connus. Parmi eux, il y a l'automate de Sushchanskiĭ qui a la particularité que son taux de croissance, intermédiaire, est connu ; il est
    $\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\}$, 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)$ tels que $p(ix)=jq(x)$ dans le demi-groupe, où $i,j\in \{0,1\}$ et $p,q$ sont des généraleurs du demi-groupe ou l'identité. On voit qu'il existe un chemin de $p$ à $q$ d'étiquette d'entrée $y$ et d'étiquette de sortie $z$, soit $p\cdot y=q$ et $p*y=z$ si et seulement si $p(yx)=zq(x)$. Par exemple, il y a dans l’automate de Grigorchuk un chemin
    $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$.
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.
Formellement, tout état $p$ réalise une fonction $\rho _{p}:\{0,1\}^{*}\to \{0,1\}^{*}$, notée aussi $p$ quand il n'y a pas de confusion possible, vérifiant $\rho _{p}(x)=p*x$ et appelée transformation automatique associée à $p$. Les fonctions réalisées peuvent être composées : si $\rho _{q}:\{0,1\}^{*}\to \{0,1\}^{*}$ est associée à l’état $q$, alors $\rho _{q}\circ \rho _{p}(x)=q*(p*x)$, en d'autres termes la sortie de la fonction associée à $p$ devient l’entrée de la fonction associée à $q$. Les mots $x,p*x$ et $q*p*x$ ont même longueur. Plus généralement, on associe à tout mot $w$, produit de générateurs du demi-groupe, une fonction $f_{w}$ définie par composition des fonctions des générateurs.
Le taux de croissance $\gamma (n)$ est le nombre d'éléments distincts du demi-groupe qui produit de $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.
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$ 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)$ donne une transition $(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. Un exemple d'automate inversible est l'automate dit du groupe de l’allumeur de réverbères, en anglais « lamplighter group »$^,$. Comme il s'agit d'automates inversibles sur deux lettres, les transitions sortant d'un état sont soit $0|0$ et $1|1$, soit $0|1$ et $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)$ est remplacée par $(p_{\epsilon },0,q)$. Une autre famille est constituée des automates biréversibles.
* Automates du groupe de l'allumeur de réverbères
* Automate de l'allumeur de réverbères.
* Inverse de l'automate.
* Dual de l'automate.
* Variante de représentation.