Cette question m'est venue à propos du problème d'arrêt et je n'ai pas pu trouver une bonne réponse en ligne, me demandant si quelqu'un pouvait m'aider.
Est-il possible que le problème d'arrêt soit décidable pour n'importe quelle MT sur n'importe quelle entrée tant que l'entrée n'est pas la MT elle-même? Fondamentalement:
Halts(TM, I)
IF TM == I:
Undecidable, return a random result/throw an exception, whatever
ELSE:
Solve the problem
Halts'(X)
IF Halts(X, X):
Loop infinitely
ELSE:
Print 'done'
Cela résout apparemment la contradiction. Lorsque nous appelons les arrêts paradoxaux (Halts), nous ne pouvons pas nous attendre à un comportement cohérent, mais tous les autres appels à Halts (et Halts) sont légitimes et résolubles.
Je comprends que ce n'est pas intuitif. Si un motif dans les bits pouvait révéler le comportement de tous les programmes possibles, pourquoi se désagrégerait-il soudainement lorsque la MT et l'entrée correspondent? Mais pouvons-nous mathématiquement éliminer cela comme une possibilité?
Et ce problème d'arrêt réduit ne serait pas du tout inintéressant. Même s'il existait un programme significatif qui prenait son propre code en entrée, il pouvait être réécrit de manière triviale pour fonctionner sur une entrée légèrement différente. Bien sûr, cette suggestion rend encore moins compréhensible pourquoi une solution d'arrêt pourrait exister avec cette seule mise en garde, mais encore une fois, pouvons-nous vraiment éliminer mathématiquement cette possibilité?
Merci pour toute aide.