Les fournit une réponse concise et correcte: les définitions mathématiques sont aussi concises que possible, et l'inclusion explicite d'une bande infinie dans la définition d'une machine de Turing rendrait sa définition beaucoup moins concise, donc nous ne le faisons pas.
Cela ne répond pas à la question: pourquoi ? Comment la définition peut-elle exclure la bande infinie lorsque nous en avons besoin?
La réponse: non. Dans un sens, les machines Turing ne nécessitent pas réellement de bandes infinies, et leur définition le montre clairement.
Par définition, le déplacement d'une machine de Turing fait passer la machine d'une configuration à une autre; une configuration comprend une chaîne finie , que nous considérons comme un fragment fini de bande écrite. Chaque mouvement déplace la tête de bande d'une position ou écrase le symbole sous la tête de bande. Cependant - et cela est essentiel pour son fonctionnement:
- b
- nous pouvons le faire infiniment souvent .
nn
Une façon de reformuler ceci est de dire: la machine fonctionne sur une bande infinie, entièrement remplie de blancs, à l'exception d'un fragment fini sur lequel se trouve sa tête de bande. C'est ce que disent la plupart des explications.
Une autre façon de reformuler ceci est de dire: la machine fonctionne sur une bande finie, étendue avec des blancs chaque fois que sa tête se détache de la bande à chaque extrémité.
Ce sont deux façons valables de conceptualiser le fonctionnement de la machine: dans les deux cas, si vous aviez réellement une machine fonctionnant comme ça, elle implémenterait correctement une machine de Turing.
Si tout ce qui vous intéresse est d'enseigner aux élèves comment fonctionnent les machines Turing, peu importe la conceptualisation que vous choisissez.
Cependant, je pense que la première conceptualisation est une erreur, pour deux raisons:
- C'est irréaliste . Nous ne pouvons pas réellement construire une machine avec une bande infinie. Nous pouvons construire une machine avec une bande finie allongée sur demande.
- C'est contre-intuitif. Nous ne pensons pas que les machines effectuant des tâches arbitrairement souvent contiennent une quantité infinie de ressources. Par exemple, nous ne pensons pas qu'un photocopieur contient une quantité infinie de papier à copier. Les machines de Turing modélisent l'activité de l'informatique. Ils modélisent ce qui se passerait si nous remplaçions un ordinateur (qui, au moment de son invention, était une femme effectuant des calculs sur papier) par une machine capable d'effectuer des calculs programmables arbitraires. Nous ne pensons pas que cette femme contient une quantité infinie de papier. Nous supposons plutôt qu'elle recevra toute la quantité de papier dont elle a besoin, et nous considérons le fait de ne pas le faire comme un échec de l'environnement, plutôt que de dire qu'une telle femme ne peut pas exister. Pourquoi ne pas faire de même pour la machine?
- Il invite à des conclusions trompeuses. J'ai beaucoup vu ça. Par exemple:
- Les gens disent que les machines de Turing ne peuvent pas être construites, contrairement aux machines à états finis. Eh bien, nous ne pouvons pas construire de grandes machines à états finis arbitraires pas plus que nous ne pouvons fournir des quantités arbitraires de bande à une machine de Turing.
- Les gens disent que les machines Turing ne modélisent pas correctement les ordinateurs, contrairement aux machines à états finis. Cela sert à faire un point important: si tout ce qui nous intéresse est d'utiliser une machine pour décider des langues d'entrée, alors un ordinateur fonctionnant uniquement sur son stockage interne (fixe) peut implémenter complètement n'importe quelle machine à états finis jusqu'à une certaine taille, tout en il ne peut pas implémenter complètement la plupart des machines Turing, car il manquera de stockage interne pour beaucoup d'entre elles. Cependant, cela est souvent généralisé en disant: les ordinateurs sont des machines à états finis, ce qui est trompeur:
- Il ne donne pas une image réaliste de la plupart des programmes informatiques. En effet, la programmation de flux de données est en fait basée sur des machines à états finis, mais la programmation impérative traditionnelle ne l'est pas; il utilise des programmes beaucoup plus proches des instances de machine Turing.
- Dans la pratique, les ordinateurs interagissent également avec des sources externes d'entrée, de sortie et de stockage dont la taille n'est pas fixe.
- Les machines de Turing ne sont pas censées modéliser les ordinateurs en premier lieu; ils modélisent l'informatique arbitraire.
Pour résumer: l'idée de machines Turing utilisant ou contenant une bande infinie sert à souligner un point technique important, mais ce n'est pas nécessairement la façon la plus intuitive de penser aux machines Turing, et elle invite à certaines conclusions incorrectes. Utiliser avec précaution.