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.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e3/MooreMachineExample.svg/220px-MooreMachineExample.svg.png)
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.
Définition formelle
modifierUne machine de Moore est un 6-uplet
constitué de :
- un ensemble fini d'états ;
- un état initial , élément de ;
- un ensemble fini , appelé alphabet d'entrée ;
- un ensemble fini , appelé alphabet de sortie ;
- une fonction de transition ;
- une fonction de sortie .
Il est commode de noter l'état par et le symbole de sortie par . La fonction de transition et la fonction de sortie sont étendues aux mots de par récurrence, pour et , par
En d'autre termes, la sortie produite par le mot , lu à partir de l'état , est le mot produit par le mot , lu à partir de l'état , suivi de la lettre associée à l'état atteint après la lecture de .
La fonction réalisée par l’automate de Moore est l'application définie par:
C'est donc la fonction qui à un mot de , lu à partir de l'état initial , associe le mot sur obtenu en concaténant les lettres associés aux états d'arrivée des transitions parcourues.
Variantes
modifierParfois, une machine de Moore est dotée d'un ensemble fini d'état terminaux. La fonction 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 est alors un langage rationnel.
Usuellement, la fonction de transition est totale; lorsqu'elle est partielle, l'absence d'une transition a pour conséquence le blocage de l'automate.
Exemple
modifierL'exemple ci-dessus a quatre états. La fonction de transition est partiellement définie sur l'état En prenant comme état initial, l'automate produit, pour le mot d'entrée , le mot de sortie . La lettre n'est jamais produite parce qu'il n'y a pas de transition aboutissant en .
Transformation en automate de Mealy
modifierLa 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 :
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Moore_to_Mealy.png/440px-Moore_to_Mealy.png)
Un problème
modifierDans 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 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 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
modifier- (en) A. A. Karatsuba, « Solution of one problem from the theory of finite automata », Usp. Mat. Nauk, no 15:3, , 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), , 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).