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.

Le diagramme états-transitions d'une machine de Moore avec une fonction de transition partielle. Les entrées sont x, y, z, et les sorties a, b, c.

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

modifier

Une 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

modifier

Parfois, 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

modifier

L'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

modifier

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 :

Transformation d'une machine de Moore en machine de Mealy.

Un problème

modifier

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 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].

  1. (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


Voir aussi

modifier