est l’alphabet de pile, avec ; l’alphabet est fini ;
est un symbole spécial appelé symbole de file initial ;
est l’ état initial ;
la fonction de transition (où est l’ensemble des mots finis sur , c'est-à-dire l’étoile de Kleene de ).
Une configuration de l’automate est un couple composé de son état et du contenu de la file. La configuration initiale avec un mot d’entrée donné est définie par , et la relation de transition d’une configuration à une autre est définie par:
où est un symbole de l’alphabet de pile, , et . Dans cette relation, la propriété « first-in-first-out » est visible par le fait que le symbole est retiré en tête, et le mot est ajouté en queue..
La machine accepte le mot d’entré si, après un nombre fini de transitions, la machine atteint une configuration où la file est vide, soit si[1]
Exemple
L’ensemble des carrés des mots sur un alphabet donné est accepté par un automate à file[2],[3].
On peut prouver que les automates à file sont équivalents aux machines de Turing. Pour simuler une machine de Turing par un automate à file, on construit un automate qui conserve à tout moment dans sa file le contenu de la bande de la machine de Turing, avec deux marqueurs particuliers, l’un pour la position de la tête de lecture-écriture de la machine, l’autre pour la fin de la bande. Les transitions de l’automate à file simulent celles de la machine de Turing en parcourant toute la file, supprimant les symboles en tête de file et les rajoutant en fin de file, tout en réalisant, autour de la tête de lecture-écriture de la machine de Turing, une de ses transitions.
Réciproquement, on peut simuler un automate à file par une machine de Turing à deux bandes, l’une pour la donnée d’entrée, l’autre pour la file, avec les transitions correspondantes. Une preuve formelle est parfois un exercice d’un cours en informatique théorique[1],[4].
↑Bernard Vauquelin et Paul Franchi-Zannettacci, « Automates a file », Theoretical Computer Science, vol. 11, no 2, , p. 221–225 (DOI10.1016/0304-3975(80)90047-X, lire en ligne, consulté le )
↑(en) Teodor Rus, « Variants of Turing Machines » [archive du ] [PDF], Lecture Notes Covering Theory of Computation, University of Iowa, Iowa City, IA, 52242-1419 (consulté le ).
↑M. Feller et Miloš D. Ercegovac, « Queue machines: An organization for parallel computation », Lecture Notes in Computer Science, vol. 111, , p. 37 (DOI10.1007/BFb0105108, lire en ligne, consulté le )
↑Herman Schmit, Benjamin Levine et Benjamin Ylvisaker, « Queue Machines: Hardware Compilation in Hardware », 10th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'02), , p. 152 (DOI10.1109/FPGA.2002.1106670, lire en ligne, consulté le )