Différence entre une machine de Turing et une machine à états finis?


27

Je fais une présentation sur les machines Turing et je voulais donner quelques informations sur les FSM avant de présenter les machines Turing. Le problème est que je ne sais vraiment pas ce qui est TRÈS différent les uns des autres.

Voici ce que je sais que c'est différent:

FSM a des états séquentiels en fonction de la condition correspondante remplie tandis que les machines Turing fonctionnent sur une "bande" infinie avec une tête qui lit et écrit.

Il y a plus de place pour l'erreur dans les FSM car nous pouvons facilement tomber dans un état sans fin, alors que ce n'est pas tellement pour les machines Turing puisque nous pouvons revenir en arrière et changer les choses.

Mais à part cela, je ne connais pas beaucoup plus de différences qui rendent les machines Turing meilleures que les FSM.

Pouvez-vous m'aider s'il vous plaît?


2
Ce n'est pas difficile de google pour "FSM vs Turing Machine"! C'est la partie amusante de faire vos propres recherches. La principale différence est qu'une machine Turing a une "mémoire" infinie, mais pas un FSM.
Dai

Ok, j'ai un peu triché là-bas>.> ;; Je t'ai eu! Merci!
Julio Garcia

3
l'argument sur "erreur" n'est pas correct. Essayez wikipedia et livres de cours. Voyez quelles sont leurs différences de base, le but de l'utilisation de chacun (par exemple lorsque nous ne pouvons pas choisir un FSM sur TM?) Et leur relation.
Parham

@ MahmoudAlimohamadi ce que je veux dire, c'est qu'il y a une plus grande chance pour un fsm d'atterrir sur un état sans fin.
Julio Garcia

@Dai: Il est plus correct de dire qu'une machine de Turing peut utiliser une quantité de mémoire arbitrairement grande . La quantité utilisée n'est jamais infinie.
reinierpost

Réponses:


24

La principale distinction entre le fonctionnement des DFA (Deterministic Finite Automaton) et des MT réside dans leur utilisation de la mémoire.

Intuitivement, les DFA n'ont aucune mémoire "scratch"; la configuration d'un DFA est entièrement prise en compte par l'état dans lequel il se trouve actuellement et ses progrès actuels dans la lecture de l'entrée.

Intuitivement, les MT ont une mémoire "scratch" sous forme de bande; la configuration d'une MT se compose à la fois de son état actuel et du contenu actuel de la bande, que la MT peut changer à mesure qu'elle s'exécute.

Un DFA peut être considéré comme une MT qui ne modifie aucun symbole de bande ni ne déplace la tête vers la gauche. Ces restrictions rendent impossible la reconnaissance de certaines langues pouvant être acceptées par les MT.

Notez que j'utilise le terme "DFA" plutôt que "FSM", car, techniquement, je considérerais une MT comme une machine à états finis, car les MT ont par définition un nombre fini d'états. La différence entre les DFA et les MT réside dans le nombre de configurations, qui est le même que le nombre d'états pour un DFA, mais est infiniment grand pour une MT.


Ah, j'ai compris. Une question concernant la partie "pas de mémoire": j'ai vu un exemple de distributeur automatique qui additionnait les pièces distribuées. Comment savent-ils combien il y a d'argent s'il n'a pas de mémoire?
Julio Garcia

@JulioGarcia C'est difficile à dire sans savoir exactement ce que vous avez vu. Il existe des machines Moore et Mealy qui peuvent produire des symboles sur les transitions. L'activité d'un distributeur automatique pourrait être mieux modélisée par l'un de ces mécanismes. Un DFA vanille accepte et rejette uniquement les chaînes ... un distributeur devrait "accepter" n'importe quelle "chaîne" de pièces. Selon la façon dont vous modélisez les effets secondaires supplémentaires du changement, le type de mémoire de travail nécessaire peut être un accès aléatoire nul ou infini.
Patrick87

Sans voir votre exemple, je ne peux pas être complètement certain, mais j'ai deux suppositions. L'une est qu'il ne sait pas combien d'argent il y a: il suppose simplement qu'il y en a assez. Vous ne voudriez pas construire un vrai distributeur automatique de cette façon, mais c'est toujours un exemple utile du concept. L'autre possibilité est que ce n'est pas vraiment un FSA "pur": il est connecté à un capteur qui peut obtenir ces données de "l'extérieur" de la machine en quelque sorte. La machine ne sait pas ou ne se soucie pas d'où viennent les données, et elle ne peut rien stocker dans le capteur (donc ce n'est pas vraiment de la «mémoire»), mais elle peut toujours agir sur ce qu'elle y voit.
The Spooniest

16

Les machines de Turing décrivent une classe beaucoup plus large de langages, la classe des langages récursivement énumérables. Les machines à états finis décrivent la classe des langages réguliers.

Les machines à états finis n'ont pas de "mémoire", elle est limitée par ses états.

Une machine à états finis est une machine de Turing restreinte où la tête ne peut effectuer que des opérations de "lecture" et se déplace toujours de gauche à droite.

Prenez cette langue comme exemple:

L={aibi| i>=0}

Parce que les machines à états finis sont limitées dans le sens où elles n'ont pas de mémoire, un FSM qui accepte L ne peut pas être construit.

Résumer:

Les machines à états finis décrivent une petite classe de langages où aucune mémoire n'est nécessaire.

Les machines de Turing sont la description mathématique d'un ordinateur et acceptent une classe de langues beaucoup plus large que les FSM.

Les machines Turing ont plus de puissance de calcul que FSM. Il y a des tâches qu'aucun FSM ne peut faire, mais que les machines de Turing peuvent faire.


3

J'avais le même doute et j'ai vu deux vidéos très instructives et une explication sur Quora comme suit:

Une machine à états finis n'est qu'un ensemble d'états et de transitions. La seule mémoire dont il dispose est dans quel état il se trouve. Ainsi, le nombre d'états de mémoire est ... fini.

Une machine de Turing est une machine à états finis plus une mémoire à bande. Chaque transition peut être accompagnée d'une opération sur la bande (déplacer, lire, écrire).

J'en ai compris qu'une machine de turing utilise / possède une machine à états finis dans le cadre de sa procédure d'exploitation, en plus d'y ajouter de la mémoire modifiable.

Regardez aussi ces deux vidéos, elles sont éclairantes!

https://youtu.be/gJQTFhkhwPA

https://youtu.be/E3keLeMwfHY


2

Pour autant que je comprends les différences entre (modèle standard) Turing et (modèle standard) Mealy Machines:

  • Machines de Turing lire et écrire sur la même bande par rapport à Mealy Machines lu sur une bande d'entrée et d' écriture sur une autre bande de sortie
  • Les machines de Turing peuvent changer la "direction de la bande" (continuer vers la gauche ou la droite [ou arrêter]) contre les machines Mealy ne peuvent procéder que vers la droite (c'est pourquoi il n'y a pas de direction définie {L, R, H} dans la fonction de transition de la machine Mealy [c'est implicitement {R}, ce qui signifie pas de choix du tout])
  • Turing Machines peut s'arrêter sur n'importe quelle cellule de bande par rapport à Mealy Machines lire l'entrée complète, puis arrêter de l'accepter ou de la rejeter

-3

Une machine de Turing peut stocker, dans le cadre de la bande, les choses dont elle veut se souvenir.


5
Ce que vous entendez par «ça» n'est pas clair, mais les machines Turing et les FSM peuvent le faire, ce n'est donc pas une différence.
David Richerby

@DavidRicherby Mais un FSM ne peut stocker qu'une quantité prédéterminée, tandis que les machines Turing peuvent en stocker autant qu'elles le souhaitent. Telle est la différence fondamentale.
Gilles 'SO- arrête d'être méchant'

1
@ Gilles D'accord, mais ce n'est pas ce que dit la réponse.
David Richerby
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.