Comment la règle 110 de Turing est-elle complète?


19

J'ai lu la page wikipedia de la règle 110 dans les automates cellulaires, et je sais plus ou moins comment ils fonctionnent (un ensemble de règles décide où tracer le prochain 1 ou 0).

Je viens de lire qu'ils sont complets de Turing, mais je ne peux même pas comprendre comment «programmez-vous» la «règle 110»?


Il s'agit en fait de la règle 110, et non de la règle 101. La preuve est décrite sur la page wikipedia, mais il est tout à fait évident de savoir comment le texte établit la connexion avec la preuve.

@WolfgangBangerth merci pour cela, je l'ai corrigé. Si la preuve / la façon de programmer est là, ce n'est pas assez évident pour moi de la repérer, désolé.
Pureferret

1
La même question m'est venue à l'esprit aussi, s'il y a un script pour convertir un programme simple en ces automates d'une manière ou d'une autre, puis un "simulateur" pour l'exécuter.

2
excellente question. les détails sont complexes et contenus dans des articles scientifiques. voir tcs.SE, conditions initiales de la règle 110 pour un croquis et quelques références. Fondamentalement, il existe un moyen de convertir ou de compiler une MT en un "système de balises" (connu pour être une TM complète), puis de compiler un "système de balises" en règle 110. ce serait "bien cool" si des implémentations réelles ont été construites pour ppl à expérimenter (et sûrement conduire à de nouvelles perspectives / découvertes) mais malheureusement, aucune ne semble exister, ou les auteurs ne publient pas leur code.
vzn

1
les automates cellulaires 2D sont étroitement liés et peuvent être étudiés pour certaines intuitions dans le cas 1D. il est connu depuis les années 70 environ grâce à la preuve par Conway que "le jeu de la vie" est Turing complet. voir par exemple le simulateur Paul Rendell TM dans Game of Life pour une version moderne / graphique.
vzn

Réponses:


11

fPPx

Les mots cités sont ceux qui doivent être définis. Pour les machines de Turing:

  • Un programme est spécifié comme une liste d'états, un alphabet de bande, un état initial, des états finaux et des transitions.
  • T xxT
  • Une machine de Turing s'arrête si elle atteint un état final. (Il existe quelques variantes ici.)
  • Ce que la machine Turing sort (si elle s'arrête), c'est le contenu de la bande.

SPxS(P,x)PxS(p,x)Px

Si vous êtes curieux de la configuration particulière de la règle 110 en tant que système informatique, je vous suggère de jeter un coup d'œil à l'article de Matthew Cook qui prouve l'universalité de la règle 110 (ou plutôt d'un système informatique construit autour de la règle 110).

Quant aux autres règles, telles que la règle 30 et la règle 90, nous ne savons pas qu'elles ne sont pas universelles. Il peut y avoir des systèmes informatiques convaincants construits autour d'eux, ce qui est universel, mais nous n'en sommes tout simplement pas au courant.


3
C'est vrai, mais la règle 110 n'a pas de moyen de s'arrêter. Elle ne peut que calculer les choses, mais pas les arrêter.
Pavel

@Pavel Il n'est pas nécessaire d'arrêter d'être Turing-Complete
MilkyWay90

8

D'après la preuve de Matthew:

L'approche adoptée ici n'est pas de concevoir un nouvel automate cellulaire, mais de prendre le plus simple qui présente naturellement un comportement complexe, et de voir si nous pouvons trouver dans ce comportement complexe un moyen de le faire faire ce que nous voulons. Nous ne nous intéresserons pas directement à la table de recherche donnée ci-dessus, mais nous examinerons plutôt le comportement qui se manifeste naturellement par l'action de l'automate au fil du temps.

L'auteur commence par prouver qu'un "système d'étiquettes" qui supprime 2 symboles à chaque étape est universel en compilant un programme de machine de turing à 2 états. Après cela, il prouve qu'un système de planeur peut en effet mettre en œuvre un système de balises. C'est un processus étape par étape. Il étudie ensuite l'espace-temps du CA-110 pour trouver les planeurs et les associer correctement au système de planeurs.

Maintenant, pour votre question: comment «programmez-vous» la «règle 110»?

  1. Recherchez la machine de turing à 2 états la plus simple et trouvez les bandes des opérations de base OR, AND, XOR, NOT .

  2. Compilez-les dans le système de balises.

  3. Compilez l'implémentation du système de balises dans l'implémentation du planeur.

  4. Adaptez-le correctement aux planeurs CA-110 et vous avez les opérations de base dans un automate cellulaire.

1+1=2

Une note de côté. Les planeurs sont des structures très spéciales. Les opérations seront vues comme des particules se déplaçant et entrant en collision (les planeurs), générant des sorties différentes selon la façon dont ces planeurs partent ou entrent en collision.


Donc, deux planeurs pourraient «encoder» un + et quand ils entrent en collision, j'obtiens 2?
Pureferret

3
plus précisément, plusieurs paires de planeurs coderaient un «+» en supposant qu'une paire de planeurs peut coder un OU, ET, XOR ou NON. Considérez également que les nombres seront probablement représentés comme une séquence de bits et que la somme sera effectuée en utilisant des portes logiques sur chaque paire de bits.
labotsirc

3
mise en garde, il existe une certaine controverse sur la preuve d'exhaustivité de la règle 110 TM dans la communauté CS pour diverses raisons. l'une est apparemment que la condition d'entrée sur l'AC nécessite des modèles infiniment périodiques (mais répétitifs).
vzn

1
je suis d'accord avec vous vzn sur la controverse. Personnellement, je ne sais pas quoi penser en termes de rejet de la solution théorique par des moyens formels ou d'accepter le CA-110 comme un sur-ensemble qui fonctionne comme une machine de turing (le fait que les CA sont des espaces de calcul qui fonctionnent comme des systèmes dynamiques et sur dessus de ce travail en parallèle me fait me demander s'ils représentent un univers synthétique en cours).
labotsirc

Je ne suis pas fan d'ignorer les contraintes d'espace et de temps réelles. Wikipedia cite l' exhaustivité de la règle 110 de l'automate cellulaire et explique que Neary et Woods ont évité une surcharge de temps exponentielle en évitant d'utiliser des systèmes à 2 balises. Cependant, Neary et Woods plus tard dans la même année (2006) ont montré que même les systèmes à 2 balises n'ont pas de temps de fonctionnement exponentiel pour simuler les machines de Turing.
Thomas Klimpel
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.