Les raisons historiques de l’adoption de la machine de Turing en tant que modèle de calcul principal.

44

Je crois comprendre que le modèle de Turing est devenu le "standard" dans la description du calcul. Je voudrais savoir pourquoi. Si le modèle TM est devenu plus largement utilisé que d’autres modèles théoriquement équivalents (à ma connaissance), comme le μ-récursion de Kleene ou le calcul lambda (je comprends). que le premier n’est apparu que plus tard et que le dernier n’était pas conçu à l’origine comme un modèle de calcul, mais il montre que des alternatives existent depuis le début).

Tout ce à quoi je peux penser, c'est que le modèle MT représente plus fidèlement les ordinateurs que nous avons réellement que ses alternatives. Est-ce la seule raison?

Evan
la source
1
bien qu’elles ne traitent pas directement du même sujet, les questions cstheory.stackexchange.com/questions/625/… et cstheory.stackexchange.com/questions/1117/… explorent la relation entre les MT et le -calcul, et ont quelques éléments historiques. λ
Suresh Venkat
Oui, j'ai vu ceux-ci. Je comprends assez bien les histoires littérales des différentes théories, mais je m'intéresse davantage aux développements au fil du temps qui ont conduit aux "préférences" actuelles sur le terrain, si vous voulez.
Evan
2
En fait, il existe des modèles qui sont (sans doute) plus proches des ordinateurs réels, voir cette question . Généralement, le meilleur modèle dépend des besoins et ceux-ci diffèrent d'un domaine à l'autre.
Kaveh

Réponses:

46

Cela semble être vrai dans le contexte de (certains domaines de) l'informatique mais pas en général.

Une des raisons a à voir avec la thèse de l'Église. La raison principale en est que certains experts, comme Godel, ne pensaient pas que les arguments selon lesquels les modèles de calcul précédents / autres traduisent exactement le concept intuitif de calcul étaient convaincants. Il y a divers arguments, Church en a eu, mais ils n'ont pas convaincu Godel. D'autre part l'analyse de Turing a été convaincant pour Godel il a été accepté comme le modèle de calcul efficace. Les équivalences entre différents modèles sont prouvées plus tard (je pense par Kleene).

La seconde raison est technique et un développement ultérieur lié à l’étude de la théorie de la complexité. Définir les mesures de complexité telles que le temps, l'espace et le non déterminisme semble être plus facile avec les machines de Turing qu'avec d'autres modèles tels que les fonctions -calculus et -recursive.μλμ

Par ailleurs, les fonctions -recursive étaient et sont toujours utilisées comme principal moyen de définir la calculabilité dans les livres de théorie de la logique et de la calculabilité. Ils sont plus faciles à utiliser lorsque l’on se soucie uniquement de l’efficacité et non de la complexité. Le livre de Kleene "Metamathematics" a beaucoup influencé ce développement. De plus, -calculus semble être plus courant dans l'informatique de type CMU / européenne, comme les langages de programmation et la théorie des types. Certains auteurs préfèrent les modèles RAM et Register Machine. (Il me semble que, pour une raison quelconque, les Américains ont adopté le modèle sémantique de Turing et les Européens ont adopté le modèle syntaxique de Church, Chruch était américain et Turing britannique. C’est une opinion / observation personnelle et d’autres ont un point de vue différent.λμλ. Voir également ces articles de Viggo Stoltenberg-Hansen et John V. Tucker I , II .)

Quelques ressources pour en savoir plus:

Robert I. Soare a rédigé plusieurs articles sur l'historique de ces développements. Personnellement, j'aime bien celui du Handbook of Computability Theory. vous pouvez trouver plus en vérifiant les références dans cet article.

Une autre bonne ressource est l'article de Neil Immerman sur la calculabilité sur SEP (voir également l'article de Church-Turing Thesis de B. Jack Copeland).

Les œuvres rassemblées par Godel contiennent de nombreuses informations sur ses vues. Les introductions de ses articles sont particulièrement bien écrites.

" Metamathematics " de Kleene est un très bon livre.

Enfin, si vous n'êtes toujours pas satisfait, vérifiez les archives de la liste de diffusion FOM , et si vous ne trouvez pas de réponse dans les archives, envoyez un e-mail à la liste de diffusion.

Kaveh
la source
S'il vous plaît laissez-moi savoir si j'ai quelque chose de mal.
Kaveh
1
Wow, c'est une bonne information. Merci pour les ressources, je vais les vérifier (je comptais lire Metamathematics - je vais le mettre dans la queue).
Evan
Je vous en prie, espérons que je ne me suis pas trompé. :)
Kaveh
Il y a eu une récente conférence de Robert Soare à l'INI. Si je comprends bien, la raison principale de passer au modèle de Turing et à la calculabilité à partir des fonctions récursives et de la théorie de la récursion est la suivante: il est difficile à comprendre et à travailler dans la théorie de la récursion au point où personne ne comprenait ce qui se passait sauf quelques-uns, le changement de calcul rendit beaucoup plus facile la compréhension et ravivait la région.
Kaveh
19

J'aimerais affaiblir l'affirmation selon laquelle les MT sont le modèle de calcul principal, ou du moins, pointent vers une autre dimension de la question. Il est clair que les technologies de l’information sont dominantes dans les parties de la science informatique plus complexes et axées sur les algorithmes, mais dans la théorie et la pratique du langage de programmation, elles ne sont pas particulièrement dominantes. Il y a diverses raisons à cela, mais la plus importante est peut-être que les MT ou les programmes qui y sont exécutés (contrairement aux calculs lambda ou aux calculs de processus) ne sont pas construits de manière algébrique. Cela rend difficile le développement de théories de types, qui ont été le pilier de la théorie du langage de programmation.

Martin Berger
la source
2
De plus, les programmes de MT, aussi appelés tables de transition, ne sont pas vraiment lisibles par l'homme.
Raphaël
13

L'un des avantages des machines Turing est qu'elles fonctionnent sur des chaînes plutôt que sur des nombres naturels ou des termes lambda, car l'entrée et la sortie de nombreux problèmes peuvent naturellement être formulées en tant que chaînes. Je ne sais pas si cela compte comme une raison «historique» ou non.

Tsuyoshi Ito
la source
13

Outre le fait que les machines de Turing constituent un modèle convaincant de calcul papier-plume (la «notion intuitive de calcul»), je pense qu'elles possèdent une série de fonctionnalités souvent utiles, en particulier pour prouver des théorèmes à leur sujet:

  • ils sont faciles à décrire formellement et ont une sémantique opérationnelle simple;
  • il est facile de donner une définition concrète de leur complexité temporelle et spatiale;
  • des modèles plus réalistes (et complexes) d'ordinateurs électroniques, tels que des machines à accès aléatoire, peuvent être simulés par les mémoires de traduction avec une surcharge polynomiale, et inversement.
Antonio E. Porreca
la source
Parfois, la facilité de la description semble entraver l'utilité des MT, car les descriptions peuvent rapidement passer à des explications en anglais clair si vous ne faites pas attention (du moins, si je ne le fais pas ... Certes, je suis un novice).
Evan
Vos raisons n'excluent pas les machines à enregistrer, par exemple.
Raphael
Cela dépend de la notion précise de «machine à enregistrer» que vous envisagez. Par exemple, ceux qui n'ont que des opérations d'incrémentation, de décrémentation et de saut ne peuvent pas simuler de MT dans un temps polynomial.
Antonio E. Porreca
1
Je suppose que les MT ne sont plus intuitives que parce qu'elles sont présentées comme des machines plutôt que comme des opérations mathématiques abstraites. Si -calculus était présenté comme une machine à "réécrire les termes", alors il serait (plus) intuitif. Notez le jeu pour enfants des oeufs d'alligator pour leur apprendre -calculus inqudream.com/AlligatorEggsλλλ
Rob
Je suis du côté PL, mais le lambda-calcul pur n'est pas un modèle évident de calcul arithmétique (pensez à la fonction prédécesseur). Dans le lambda-calcul, vous avez moins dans la définition, mais il faut plus d'efforts pour comprendre les implications de la définition.
Blaisorblade
0

Ce fut le premier à avoir un impact et a donc été établi, en particulier dans la théorie de la complexité. C'est une raison faible, mais les gens travaillent de cette façon. Nous travaillons d'abord sur d'anciens problèmes ouverts au lieu d'en déclarer de nouveaux.

Raphaël
la source
8
"Nous travaillons d'abord sur les vieux problèmes ouverts au lieu d'en déclarer de nouveaux." <- Je pense que l’inverse est vrai, surtout dans un domaine où les questions anciennes sont extrêmement difficiles. Il y a relativement peu de personnes travaillant dans la complexité de circuit par exemple (bien que peut-être il y en aura plus maintenant!). Les gens doivent travailler sur des problèmes qu’ils peuvent résoudre pour publier; cela génère un flux constant de problèmes résolvables nouvellement déclarés.
Aaron Sterling
J'étais un peu pressé dans mon libellé. Je pense que souvent les gens préfèrent s'en tenir à un modèle établi que d'en construire un nouveau (et d'en prouver les propriétés fondamentales) s'il n'y a pas de raison écrasante de le justifier. Ce sentiment peut être faux, évidemment. En particulier, il y a bien sûr des gens qui chassent des modèles en premier lieu.
Raphael
Eh bien, le lambda calcul est venu en premier. Mais Turing a montré que les machines de Turing modélisent avec précision les bases de l’homme effectuant des calculs; cela n'a été fait que pour le calcul lambda lors de la démonstration de l'équivalence. De plus, cette équivalence n’est vraie que pour le calcul du premier ordre: cstheory.stackexchange.com/q/1117/989 - les données d’ordre supérieur n’existent pas vraiment sur le papier. Cela n'existe même pas dans la mémoire de l'ordinateur, mais il peut être parfaitement simulé.
Blaisorblade