Pourquoi la bande ne fait-elle pas partie de la définition d'une machine de Turing?


11

Je me suis demandé pourquoi la bande / les bandes ne font pas partie de la définition formelle d'une machine de Turing. Considérons, par exemple, la définition formelle d'une machine de Turing sur la page Wikipedia . La définition, après Hopcroft et Ullman, comprend: l'ensemble fini d'états , l' alphabet de bande , le symbole vide , l'état initial , l'ensemble d'états finaux , et la fonction de transition . Aucun n'est la bande elle-même.Q ΓbΓq0QFQδ:(QF)×ΓQ×Γ×{L,R}

Une machine de Turing est toujours considérée comme fonctionnant sur une bande, et la fonction de transition est interprétée comme déplaçant sa tête, substitution de symbole et changement d'état. Alors, pourquoi la bande est-elle exclue de la définition mathématique d'une machine de Turing?

D'après ce que je peux voir, la définition formelle en soi ne semble pas impliquer que la machine de Turing fonctionne comme elle est souvent décrite de manière informelle (avec une tête se déplaçant sur une bande). Ou alors?


1
la section suivante de wikipedia dit: "Selon les mots de van Emde Boas (1990), p. 6:" L'objet théorique théorique [sa description formelle à sept tuples similaire à la précédente] ne fournit que des informations partielles sur le comportement de la machine et à quoi ressembleront ses calculs. "" Il est assez similaire à la dichotomie logiciel / matériel / synergie / interdépendance. le logiciel suppose un matériel particulier sur lequel il s'exécute. si quelqu'un découvrait un logiciel à l'avenir, il ne pourrait pas comprendre sa «signification» sans comprendre également le matériel sur lequel il fonctionne.
vzn

Pourquoi la route ne fait-elle pas partie de la voiture?
Andrej Bauer

Réponses:


8

Pour définir formellement une instance d'une machine de Turing (pas le concept général), vous n'avez pas besoin de mentionner explicitement la bande elle-même ou son contenu. Pour désigner une configuration de cette machine particulière, ou un calcul effectué par elle, c'est quand vous avez besoin d'une certaine forme de notation pour décrire le contenu de la bande.


Donc, une bande est nécessaire pour définir une configuration et un calcul, seulement?
Shuzheng

Oui, la machine fonctionne uniquement sur la bande. Différents contenus de la bande ne créent pas de machines différentes.
André Souza Lemos

1
En d'autres termes: la question ne cite que la syntaxe des MT. Ce n'est que lors de la définition de la sémantique que la bande entre dans l'image. (Analogie: la définition de la syntaxe de C (ou de tout autre langage de programmation) ne mentionne pas non plus l'ensemble d'instructions supposé d'architecture matérielle / OS / CPU.)
Raphael

Même sémantiquement, il est plus naturel de penser que la machine reste la même machine même lorsque le contenu de la bande change. (Formellement, ce n'est pas le cas, car le contenu initial fait partie de la définition de la machine.)
reinierpost

2

C'est une zone un peu grise, mais je dirais que la définition sépare le modèle de l' instance . Si vous souhaitez avoir une idée simple en tête, pensez matériel vs logiciel.

Le modèle est le matériel: le est une tête. Il y a une bande. La bande est infinie d'un côté et contient des blancs (en plus de l'entrée). La tête peut bouger une étape à la fois.

L' instance est le logiciel: l'entrée dicte ce que la bande contient au début, la fonction état / transition indique comment la tête bouge et comment la machine "fonctionne". Les états finaux donnent le sens de succès / échec.

Les deux paramètres sont configurables --- les deux peuvent être modifiés. Il existe des modèles alternatifs avec deux bandes, deux têtes, bandes double face, bande non vide, etc. .

PMpunettern


1

Voici déjà de bonnes réponses, mais j'essaie d'en faire une réponse succincte.

Les définitions ne doivent pas être excessives ou verbeuses.

En effet, la définition de la machine de Turing définit également l'abstraction de la bande. Le q0 - est le début de la bande. L'alphabet est un contenu de la bande. Et δ: (Q ∖ F) × Γ → Q × Γ × {L, R} indique que la bande a gauche et droite et l'infini dans les deux directions.

Donc, la bande, la tête, déplace juste des représentations du modèle respectueuses de l'homme, elles sont déjà dans le modèle mathématique , mais elles ne sont pas elles-mêmes un modèle formel.


1

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.

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.