Récemment, dans ma classe CS, j'ai découvert la machine de Turing.
Après le cours, j'ai passé plus de 2 heures à essayer de comprendre quelle est la relation entre une bande et une machine.
J'ignorais complètement l'existence des bandes d'ordinateurs ou la façon dont les bandes et les machines interagissaient jusqu'à aujourd'hui. Je ne vois toujours pas pourquoi une machine lirait des bandes mais un scanner est peut-être une conception plus proche de la machine Turing où le papier est considéré comme une bande et tout ce qui se trouve à l'intérieur d'un scanner est ce qu'une machine Turing ferait.
Mais en tout cas, l'idée d'une machine de Turing n'est-elle pas assez archaïque? Nous avons tellement d'appareils physiques (plutôt qu'hypothétiques) dans notre bureau ou notre salon qui semblent faire ce que fait la machine de Turing.
Quelqu'un peut-il fournir un meilleur exemple en s'inspirant de la réalité pour que les fonctionnalités essentielles de cette conception hypothétique soient capturées?
la source
Réponses:
Les machines de Turing sont l'un des modèles de calcul de Turing «originaux», avec le calcul et les fonctions récursives définies de manière récursive. De nos jours, dans de nombreux domaines de l'informatique théorique, un modèle différent est utilisé, la machine RAM, qui est beaucoup plus proche des ordinateurs réels. Étant donné que les deux modèles sont équivalents à p (ils se simulent mutuellement avec au plus une explosion polynomiale), du point de vue de questions comme P contre NP, les deux modèles sont équivalents.λ
la source
AFAIK the Turing Machine est modelé sur l'idée d'un humain avec un stylo et du papier. L'homme a un certain état dans le cerveau, regarde le papier comme la machine regarde la bande et écrit quelque chose sur le papier ou se déplace pour regarder un endroit différent, tout comme la machine.
TM est archaïque comme arithmétique des nombres naturels de Peano. La MT est inutile pour le calcul pratique, et elle n'est bien entendu pas destinée à être utilisée pour cela. C'est juste un moyen simple d'axiomatiser le calcul afin que nous puissions raisonner sur ce qui est calculable et ce qui ne l'est pas - tout comme l'arithmétique Peano est utile pour définir à partir des premiers principes ce que sont les nombres naturels et quelles sont leurs propriétés - mais il serait ridicule de essayez de faire de l'arithmétique en manipulant les nombres de Peano à la main selon les définitions théoriques.
Imaginez à quel point il serait difficile de prouver différents théorèmes à partir de la théorie de la complexité et de la calculabilité (par exemple, prouver que le problème de l'arrêt est indécidable), si vous deviez les prouver en utilisant la sémantique du langage de programmation C ++ au lieu de la machine de Turing. Vos preuves seraient ridicules ou impossibles - aussi ridicules que de prouver l'associativité de la multiplication des nombres naturels en utilisant la méthode de l'école primaire appliquée aux nombres décimaux comme définition de ce qu'est la multiplication.
la source
De nombreux modèles de calcul complet de Turing très différents sont physiquement réalisables (jusqu'à considérer l'infini comme un signe de non-limite). Ainsi, cela ne peut pas servir à choisir un modèle.
La réponse de @jkff est appropriée en remarquant que la machine de Turing est conçue comme un dispositif théorique dans le but mathématique d'étudier la calculabilité et la prouvabilité (apparaissant en fait dans le contexte du Entscheidungsproblem de Hilbert ). Mais ce n'est pas tout à fait exact dans les raisons du choix d'un formalisme simple.
Prouver en principe le problème de l'arrêt n'est pas beaucoup plus difficile avec des modèles plus avancés. En fait, nos "preuves" ne sont souvent que la construction d'une solution. Nous n'allons pas beaucoup dans les arguments réels (très fastidieux) que ces constructions sont correctes. Mais quiconque écrit un interprète pour un langage complet de Turing fait autant que n'importe quelle construction une machine universelle. Eh bien, C peut être un peu complexe, et nous pourrions vouloir le rationaliser un peu à cette fin.
L'importance d'avoir un modèle simple réside beaucoup plus dans l'utilisation qui peut être faite du modèle, que dans l'établissement de ses propriétés (comme le problème de l'arrêt, pour prendre l'exemple donné par @jkff).
En règle générale, les grands théorèmes sont souvent des théorèmes qui peuvent être exprimés très simplement et sont applicables à un large éventail de problèmes. Mais ce ne sont pas nécessairement des théorèmes faciles à prouver.
Dans le cas de la MT, l'importance de la simplicité est due au fait que de nombreux résultats sont établis en réduisant le problème d'arrêt, ou d'autres problèmes de MT, aux problèmes qui nous intéressent (tels que l'ambiguïté des langages sans contexte), établissant ainsi des limites inhérentes à la résolution. ces problèmes.
En fait, bien que très intuitif (ce qui est probablement la principale raison de sa popularité), le modèle TM n'est souvent pas assez simple pour être utilisé dans de telles preuves. C'est une des raisons de l'importance d'autres modèles encore plus simples, tels que le problème de la correspondance postérieure , moins intuitif à analyser, mais plus facile à utiliser. Mais c'est parce que ces modèles de calcul sont souvent utilisés pour prouver des résultats négatifs (ce qui remonte au problème Entscheidungsproblem d'origine).
Cependant, lorsque nous voulons prouver des résultats positifs, tels que l'existence d'un algorithme pour résoudre un problème donné, la MT est un appareil beaucoup trop simpliste. Il est beaucoup plus facile d'envisager des modèles avancés en mode tels que l' ordinateur RAM , ou un ordinateur à mémoire associative , ou l'un des nombreux autres modèles, ou même simplement l'un des nombreux langages de programmation.
Ensuite, le modèle TM ne vient que comme point de référence, en particulier pour l'analyse de complexité, étant donné la complexité de la réduction de ces modèles au modèle TM (généralement polynomial) .La simplicité du modèle TM confère alors beaucoup de crédibilité aux mesures de complexité (par opposition, pour prendre un exemple extrême, aux réductions de Lambda-calcul).
En d'autres termes, le modèle TM est souvent trop simpliste pour concevoir et étudier des algorithmes (résultats positifs), et souvent trop complexe pour étudier la calculabilité (résultats négatifs).
Mais il semble être à peu près au bon endroit pour servir de lien central pour le connecter tous ensemble, avec le grand avantage d'être plutôt intuitif.
Concernant les analogies physiques, il n'y a aucune raison de choisir un modèle plutôt qu'un autre. De nombreux modèles de calcul complets de Turing sont physiquement réalisables (jusqu'à l'infini pour la mémoire infinie), car il n'y a aucune raison de considérer un ordinateur avec son logiciel comme moins physique qu'un ordinateur "nu". Après tout, le logiciel a une représentation physique, qui fait partie de l'ordinateur programmé. Donc, comme tous les modèles de calcul sont équivalents de ce point de vue, nous pourrions aussi bien en choisir un qui convienne à l'organisation des connaissances.
la source
Imaginez un nouveau venu dans la géométrie demandant:
Existe-t-il une analogie physique avec le triangle?
L'idée d'un triangle n'est-elle pas assez archaïque? Nous avons tellement de formes physiques (plutôt qu'hypothétiques) dans notre bureau ou notre salon qui semblent faire ce que fait le triangle.
Que répondriez-vous?
Vous pourriez dire que ces questions révèlent deux idées fausses fondamentales sur les triangles:
Il en va de même pour les machines Turing.
Cela fait si longtemps que j'ai découvert la géométrie, je ne me souviens vraiment pas si un nouveau venu a réellement ces idées fausses sur les triangles. Mais quand il s'agit de machines Turing, je rencontre tout le temps ces idées fausses . Si souvent, en fait, qu'il semble y avoir quelque chose de fondamentalement mauvais dans la façon dont ils sont généralement enseignés. Peut-être qu'une approche « show and tell » s'impose!
Donc, par souci d'exhaustivité:
la source
L'analogie physique que Turing semble avoir en tête est un ordinateur qui résout les problèmes avec le crayon, le papier et la gomme. Vous devez comprendre qu'en 1936, un "ordinateur" était une personne employée pour calculer. Bien sûr, en 1936, la plupart des ordinateurs auraient utilisé des machines à ajouter, mais Turing ne les mentionne pas car elles sont indispensables. Voici ce qu'il dit, en ce qui concerne la bande, en essayant de justifier que "les nombres" calculables "[c'est-à-dire ceux qu'une machine de Turing pourrait calculer] incluent tous les nombres qui seraient naturellement considérés comme calculables"
Bien que l'ordinateur ne soit plus un métier, la dernière fois que j'ai vérifié, les enfants apprenaient toujours à exécuter des algorithmes en utilisant le crayon et le papier comme support de stockage. Ainsi, bien que cette analogie puisse sembler démodée ou même archaïque, elle n'est pas encore obsolète.
Pour plus d'informations, voir Sur les nombres calculables avec une application au entscheidungsproblem , en particulier les sections 1 et 9.
la source
@jkff a l'idée que ce
the Turing Machine is modeled on the idea of a human with a pen and paper
n'est pas tout à fait correct. Mais il existe de nombreuses situations où elle peut être considérée comme correcte.Considérez l'humain comme une machine de Turing sous une certaine projection des états. En d'autres termes, si vous ne voyez un humain que pendant ses heures de travail, alors pendant ses heures de travail, il effectue certaines tâches. Ces tâches sont les tâches de base du travail.
Si vous ne vous souciez pas de sa vie personnelle, de ce qu'il fait à la maison, dans sa chambre, etc. Vous pouvez alors considérer cela comme projetant sa fonction de transition dans une nouvelle fonction de transition dans laquelle les états non liés au travail sont ignorés. En d'autres termes, vous pouvez ignorer tous les états et tâches qui n'ont rien à voir avec votre préoccupation et votre perspective.
Dans ce modèle, la machine de Turing est calquée sur un humain avec un stylo, du papier effectuant une tâche fixe (c'est-à-dire une vue dans une perspective fixe). La bande est ce qu'il écrit sur le papier (en ignorant tous les papiers ou en écrivant sur du papier qu'il n'écrit pas pour la tâche)
Maintenant, si vous prenez en compte d'autres tâches qu'il fait, ce que vous avez, c'est que vous avez une union de nombreuses machines de Turing chez un humain. Mais qu'arrive-t-il s'il change de travail et qu'il accomplit une tâche différente. Ensuite, son état cérébral change pour une machine de Turing différente lorsqu'il est vu sous une perspective différente dans un laps de temps différent.
Si vous voulez une bonne réponse à votre question, je pense que Yuval Filmus y a bien répondu. Utilisez le modèle RAM. Restez avec elle.
la source