En lisant cette question « Problèmes naturels indécidables RE mais pas Turing-complete », le langage suivant m'est venu à l'esprit:
Si est la fonction de castor occupé (score maximum atteignable parmi toutes les machines de Turing à 2 symboles à arrêt n du type décrit ci-dessus, lorsqu'elles sont démarrées sur une bande vierge), définissez la fonction:
Définissez maintenant la langue:
est-il récursivement énumérable? (il devrait être re: simulez simplement en parallèle M avec toutes les MT de même longueur, et si s'arrête et un autre s'arrête avec un score plus élevé, ajoutez M à l'énumération).M M ′
Pouvons-nous réduire le problème d'arrêt à ? (il semble qu'il ne puisse pas "capturer" l'arrêt des castors occupés)
Réponses:
Je ne peux pas croire que je n'ai pas vu cela avant - mais oui, avec un oracle pour vous pouvez résoudre le problème d'arrêt. De toute évidence, un oracle pour nous donne «récursivement» toutes les machines d'arrêt de Castor non occupé, donc la question est «pouvons-nous comprendre récursivement dans ce que sont les castors occupés?». Définissez comme la fonction de comptage du «deuxième castor le plus occupé»; c'est-à-dire, le deuxième score atteignable le plus élevé parmi tous les TM à deux symboles d'arrêt à symboles. L'astuce ici est qu'il existe une fonction récursive telle que (il est presque certain queL L L Σ2(n) n f() Σ(n)≤Σ2(f(n)) f(n)=n+1 fera l'affaire, en fait, mais cela nécessite de savoir que la fonction BB est strictement croissante): étant donné une machine de taille qui imprime 1s sur sa bande puis s'arrête, il y a quelques et deux machines de taille chacune qui impriment exactement 1s et exactement 1s, respectivement, sur leurs bandes - et cela vaut pour une machine 'castor occupé' même si nous ne sais pas explicitement . Cela signifie que le fait d'avoir une borne sur la fonction «deuxième castor occupé» pour donne une borne pour la fonction de castor occupé surM n Σ(M) c>1 ≤cn Σ(M) Σ(M)+1 M M f(n) M n ⟨ M ⟩ ∈ L M f ( n ) L ≤ f ( n ) M M Mn ; mais en ayant cela, il est facile de résoudre le problème d'arrêt pour un TM de taille - si alors dites que s'arrête; sinon, trouvez la machine la plus longue de taille dans (ce qui peut être fait récursivement car il n'y a qu'un nombre fini de machines de taille ) et simulez pour autant d'étapes que cette machine prend pour arrêt. Si ne s'arrête pas dans ce délai, ne peut pas s'arrêter.M n ⟨M⟩∈L M f(n) L ≤f(n) M M M
la source
Il s'agit d'une version retravaillée de la bonne réponse de Steven, avec une réduction explicite du problème Halting.
Étant donné construire qui exécute sur et s'il s'arrête va à droite de la bande, écrit un 0 et s'arrête.M ' M w⟨M⟩,w M′ M w
Si s'arrête, car il existe un TM équivalent de la même taille qui écrit un 1 et s'arrête; nous pouvons donc utiliser le décideur pour pour vérifier si s'arrête sur ( s'arrête sur ssi ) B B ( M ′ ) = 0 L M w M w M ′ ∈ LM′ BB(M′)=0 L M w M w M′∈L
... il s'est avéré que la question est en effet triviale :-)
la source