Un DFA ou un NFA lit une chaîne d'entrée avec une seule tête, se déplaçant de gauche à droite. Il semble naturel de s'interroger sur les machines à états finis qui ont plusieurs têtes , chacune se déplaçant à travers l'entrée de gauche à droite, mais pas nécessairement au même endroit dans l'entrée que les autres.
Définissons une machine à états finis avec têtes comme suit:
Un NFA à tête k est un tuple , où:
Comme d'habitude, est un ensemble fini d'états, est un alphabet fini, est un état initial et est un ensemble d'états accepteurs. Soit le jeu de caractères incluant la chaîne vide.
est la relation de transition: une transition signifie que, si la machine est dans l'état , elle peut lire dans telle sorte que est le caractère suivant pour la tête (ou si cette tête ne bouge pas), puis passez à l'état .
Une exécution de ce type de machine (tout chemin partant de l'état de départ et se terminant dans un état acceptant) entraîne non pas une chaîne, mais chaînes différentes (formées en concaténant les caractères le long de l'exécution). Ensuite, nous disons que l'exécution est valide si les chaînes sont identiques.
Le langage de la machine est l'ensemble des chaînes tel qu'il existe une série valide de la machine où les chaînes produites le long de cette série sont toutes égales à .
Question: Quelle est la classe de langues reconnues par de telles machines? At-il été étudié?