Machine de Moore
En informatique théorique, notamment en théorie des automates, et en théorie de la calculabilité, une machine de Moore ou automate de Moore (proposée par Edward F. Moore) est un transducteur fini (i.e. un automate fini avec une sortie) pour lequel les sorties ne dépendent que de l'état courant. Cela signifie que chaque état est doté d'une lettre de sortie. La lettre est émise lorsque l'état est atteint. En particulier, la longueur du mot de sortie est égale à la longueur du mot d'entrée.
Cette définition est plus restrictive que celle des machines de Mealy pour lesquelles les valeurs de sortie dépendent à la fois de l'état courant et de la lettre d'entrée. Toutefois, il existe pour chaque machine de Moore, une machine de Mealy équivalente et réciproquement.
Les machines de Moore constituent la famille la plus simple de transducteurs finis.
Sommaire
1 Définition formelle
1.1 Variantes
2 Exemple
3 Transformation en automate de Mealy
4 Un problème
5 Notes
6 Voir aussi
Définition formelle |
Une machine de Moore est un 6-uplet
- (Q,i,A,B,δ,λ){displaystyle (Q,i,A,B,delta ,lambda )}
constitué de :
- 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→B{displaystyle lambda :Qto 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 (qcdot 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'autre 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 associée à l'état q⋅wa{displaystyle qcdot wa} atteint après la lecture de wa{displaystyle wa}.
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 associés aux états d'arrivée des transitions parcourues.
Variantes |
Parfois, une machine de Moore est dotée d'un ensemble fini d'état terminaux. La fonction f{displaystyle f} réalisée est alors restreinte aux mot du langage rationnel sur l'alphabet d'entrée reconnu par l'automate. Le langage des mots produits par la fonction f{displaystyle f} est alors un langage rationnel.
Usuellement, la fonction de transition δ:Q×A→Q{displaystyle delta :Qtimes Ato Q} est totale; lorsqu'elle est partielle, l'absence d'une transition a pour conséquence le blocage de l'automate.
Exemple |
L'exemple ci-dessus a quatre états. La fonction de transition est partiellement définie sur l'état
En prenant q0{displaystyle q_{0}} comme état initial, l'automate produit, pour le mot d'entrée zxzy{displaystyle zxzy}, le mot de sortie acac{displaystyle acac}. La lettre b{displaystyle b} n'est jamais produite parce qu'il n'y a pas de transition aboutissant en q0{displaystyle q_{0}}.
Transformation en automate de Mealy |
La transformation d'un automate de Moore en automate de Mealy équivalent est très simple. On ajoute à une transition la lettre de sortie de l'état d'arrivée. Sur l'exemple, le résultat est le suivant :
Un problème |
Dans son article cité en référence, Moore considère des machines de type (n ; m ; p). Ce sont des automates ayant n états, m symboles d'entrée et p symboles de sortie. Dans la section Further problems à la fin de son article, il suggère d'étudier le problème suivant :
« Améliorer les bornes données dans les théorèmes 8 et 9 ». Le théorème 8 est le suivant :
Théorème 8 — Étant donné une machine de type (n ; m ; p) telle que deux quelconques de ses états sont distinguables, il existe une expérience de longueur n(n−1)/2{displaystyle n(n-1)/2} qui détermine l'état à la fin de l'expérience.
Anatolii Alexevich Karatsuba a résolu ce problème de Moore consistant à améliorer la borne ci-dessus, en prouvant, en 1957, alors qu'il était étudiant à la faculté de mécanique de l'université d'État Lomonossov de Moscou, le résultat suivant :
Théorème — Étant donné une machine de type (n ; m ; p) telle que deux quelconques de ses états sont distinguables, il existe une expérience de longueur (n−1)(n−2)/2+1{displaystyle (n-1)(n-2)/2+1} qui détermine l'état à la fin de l'expérience. De plus, cette borne est atteinte.
Ce résultat a été publié en 1960[1].
Notes |
(en) A. A. Karatsuba, « Solution of one problem from the theory of finite automata », Usp. Mat. Nauk, no 15:3, 1960, p. 157–159.
- (en) Edward F. Moore, « Gedanken-experiments on sequential machines », dans C. Shannon et J. McCarthy (éditeurs), Automata studies, Princeton, N. J., Princeton University Press, coll. « Annals of mathematics studies » (no 34), 1956, p. 129--153
(en)/(de) Cet article est partiellement ou en totalité issu des articles intitulés en anglais « Moore machine » (voir la liste des auteurs) et en allemand « Moore-Automat » (voir la liste des auteurs).
Voir aussi |
- Automate fini
- Machine de Mealy
- Transducteur fini
- Portail de la logique
- Portail de l'informatique théorique