Machine de Moore

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
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.

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 automate fini (et plus précisément un transducteur fini) 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.

Définition formelle[modifier | modifier le code]

Une machine de Moore est un 6-uplet

(Q, i, A, B,\delta, \lambda)

constitué de :

  • 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\to B.

Il est commode de noter l'état \delta(q,a) par q\cdot a et le symbole de sortie \lambda(q\cdot a) par q\star a. La fonction de transition et la fonction de sortie sont étendues aux mot 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'autre 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 associée à l'état q\cdot wa atteint après la lecture de wa.

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 associés aux états d'arrivée des transitions parcourues.

Variantes[modifier | modifier le code]

Parfois, une machine de Moore est dotée d'un ensemble fini d'état terminaux. La fonction 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 est alors un langage rationnel.

Usuellement, la fonction de transition \delta : Q\times A\to Q est totale; lorsqu'elle est partielle, l'absence d'une transition a pour conséquence le blocage de l'automate.

Exemple[modifier | modifier le code]

L'exemple ci-dessus a quatre états. La fonction de transition est partiellement définie sur l'état En prenant q_0 comme état initial, l'automate produit, pour le mot d'entrée zxzy, le mot de sortie acac. La lettre b n'est jamais produite parce qu'il n'y a pas de transition aboutissant en q_0.

Transformation en automate de Mealy[modifier | modifier le code]

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 | modifier le code]

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éee 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 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 est:

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 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 | modifier le code]

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


Voir aussi[modifier | modifier le code]