Si une machine abstraite peut se simuler, cela rend-il Turing complet?

20

Par exemple, dans les langages de programmation, il est courant d'écrire un compilateur / interprète X-in-X, mais à un niveau plus général, de nombreux systèmes Turing-complets connus peuvent se simuler de manière impressionnante (par exemple, simuler le jeu de la vie de Conway dans le jeu de la vie de Conway ).

Ma question est donc la suivante: un système capable de se simuler est-il suffisant pour prouver que Turing est complet? C'est certainement une condition nécessaire.

Jeremy Kun
la source
3
Avant d'essayer de répondre, pouvez-vous être un peu plus précis sur ce que vous entendez par "un système logique peut se simuler"? Voulez-vous dire quelque chose comme "peut coder sa propre syntaxe et sa prouvabilité"?
Andrej Bauer
4
Qu'entendez-vous précisément par "simulation"? En particulier, comment définissez-vous la simulation pour qu'elle ait toujours un sens, par exemple dans le contexte de Game of Life, mais ne rend pas la question tout à fait triviale (par exemple, une machine qui ne fait rien ne simule pas une machine qui ne fait rien)?
Jukka Suomela
1
Bean, la publication croisée simultanée est fortement déconseillée sur cstheory, voir la poilicy . ps: Je ne sais pas si cette question est sur le sujet sur cstheory, veuillez également consulter la FAQ pour comprendre la portée de cstheory.
Kaveh
5
La machine "ne rien faire" peut se simuler.
Max

Réponses:

24

Pas nécessairement. Par exemple, l' automate cellulaire à bloc bidimensionnel à deux états, dans lequel une cellule ne devient vivante que lorsque ses quatre prédécesseurs ont exactement deux cellules vivantes adjacentes, peut se simuler avec un facteur de ralentissement de deux et un facteur de gonflement de deux tailles, mais n'est pas connu pour être Turing complet. Voir Le B36 / S125 "2x2" Life-Like Cellular Automaton par Nathaniel Johnston pour plus d'informations sur cet automate bloc et sur la règle B36 / S125 pour le quartier Moore qui est également capable de simuler cet automate bloc.

David Eppstein
la source
Et si la machine a une certaine complexité? Je suppose que cela ne devrait pas être lié à l'intégralité de Turing ...
Jeremy Kun
4
Mais là encore, l'automate de bloc que vous avez mentionné pourrait encore être Turing complet. Vous dites simplement que l'implication n'est pas connue pour être vraie. Non pas que cela représente un contre-exemple.
Jeremy Kun
9
Si l'on considère uniquement les états de l'automate bloc avec un nombre fini de cellules vivantes, alors avec cette restriction, il est toujours possible qu'il puisse se simuler de la même manière. Mais l'automate restreint n'est certainement pas Turing complet, car aucun motif ne peut échapper à son diamant englobant, de sorte que le sort de chaque motif ne peut être déterminé qu'en temps exponentiel.
David Eppstein
25

Non ce n'est pas. Je connais deux grandes classes de techniques pour éviter l'incohérence / l'exhaustivité de Turing.

  1. La première ligne d'attaque consiste à configurer le système de sorte que la syntaxe puisse être arithmétique, mais le théorème du point fixe de Godel ne passe pas. Dan Willard a beaucoup travaillé sur ce sujet et a fourni des systèmes logiques d'auto-vérification cohérents. L'astuce consiste à éliminer les symboles de fonction de multiplication et d'addition et de les remplacer par la divisibilité et la soustraction. Cela vous donne suffisamment de puissance pour représenter la syntaxe arithmétiquement, mais le théorème du point fixe ne passe pas car la multiplication n'est pas prouvée totale.

    Voir Dan Willard. Systèmes Axiom à vérification automatique, théorème d'incomplétude et principes de réflexion associés . Journal of Symbolic Logic 66 (2001) p. 536-596.

  2. La deuxième ligne d'attaque permet une plus grande utilisation des points fixes, mais pour configurer les choses afin que la syntaxe ne soit pas arithmétique. Les plus beaux systèmes pour cela sont (IMO) basés sur des variantes de logique linéaire. Par exemple, dans la théorie des ensembles d'affines légères de Kazushige Terui, même le principe de compréhension d'ensemble sans restriction est sain, mais comme la logique ambiante de la théorie des ensembles est linéaire (et donc la contraction n'est pas autorisée), le paradoxe de Russell n'est pas dérivable.

    AB

    Kazushige Terui. Théorie des ensembles affinés légers: théorie des ensembles naïfs du temps polynomial. Studia Logica, vol. 77, n ° 1, pp. 9-40, 2004.

    Je pense que cet article est plus accessible après avoir lu l'article suivant d'Yves Lafont:

    Y. Lafont, Logique linéaire douce et temps polynomial , Informatique théorique 318 (numéro spécial sur la complexité computationnelle implicite) p. 163-180, Elsevier (2004)

    La théorie des ensembles de Terui est très expressive, mais elle est difficile à comparer avec les théories des ensembles traditionnelles, car les ordinaux théoriques de preuve ne sont pas un bon outil pour comparer des systèmes très faibles. Par exemple, la théorie des ensembles de Terui ne peut évidemment pas prouver l'exponentiation totale, et donc sa force de preuve théorique ne peut même pas atteindre . Les classes de complexité sont probablement meilleures - elles sont complètes pour le polytemps (elles peuvent prouver le total de chaque fonction de polytemps, mais pas plus).ω

    J'ai tendance à considérer ces types de systèmes comme des preuves de concept pour l'idée que la théorie de la complexité peut servir de base à certains types d'ultrafinitisme.

Neel Krishnaswami
la source
1
Je trouve votre réponse fascinante, @Neel. Pourriez-vous s'il vous plaît suggérer un bon point de départ pour moi de lire sur (1) ou (2)? Je suis un peu plus intéressé à en savoir plus sur (1), si cela importe.
Aaron Sterling
Je suis plus intéressé par (2): quelle est la puissance de cette théorie des ensembles? Est-ce lié aux «nouvelles fondations» quiniennes?
cody
@Neel - Réponse intéressante. J'aimerais aussi la même chose comme Aaron - pourriez-vous suggérer un bon point de départ pour (1). Merci
Akash Kumar
9

Considérez le modèle de machine suivant. La machine avec le code , à l'entrée , sort toujours .x 0ix0

Notez que toute machine dans ce modèle est universelle, comme pour tous les .MM ' , xM(M,x)=M(x)=0M,x

Ce n'est clairement pas Turing complet, mais il a aussi clairement des machines universelles.

David Harris
la source
Bien sûr, ne joue aucun rôle spécial ici et peut être remplacé par n'importe quel entier non négatif. C'est-à-dire que chaque MT de l'ensemble de TM qui calcule une fonction constante donnée est universelle pour cet ensemble - même si cet ensemble de TM n'est pas Turing complet. 0
res
J'ai donné une réponse similaire pour le post croisé sur Math.SE qui n'a reçu aucun vote positif . :)
Kaveh
@Kaveh: Ironiquement, il semble que j'ai mal jugé cette réponse comme étant antérieure à la vôtre, et donc j'ai voté, édité et commenté uniquement ici. Les crossposts peuvent être une telle douleur.
res
@res, je pense que le niveau des sites crée des schémas de vote différents. Sur math.se, même une très bonne réponse d'un autre utilisateur de haute réputation ici ne reçoit pas autant de votes positifs, donc je trouve cela normal. :) (De plus, ma réponse n'est pas aussi claire et compréhensible que la réponse de David ici.)
Kaveh