Il s'agit d'une suite d'une autre question ici , et j'espère que ce n'est pas trop philosophique. Comme Raphael l'a souligné dans un commentaire sur ma question précédente, je n'ai pas vraiment la définition de "calculable", mais selon certains articles que j'ai lus, la définition n'est pas vraiment claire quand il s'agit de modèles de calcul plus faibles que Turing machines en raison de l'encodage de l'entrée et de la sortie.
La définition typique de turing calculable est la suivante:
Définition 1: Une fonction est appelée turing calculable ssi il existe une machine de turing qui calcule utilisant un codage approprié des nombres naturels sous forme de chaînes.
Les définitions diffèrent dans ce qui est exactement un encodage approprié est, mais la plupart se réfèrent à un codage binaire , le codage unaire ou le codage décimal comme un codage fixe et approprié. Il est également possible de montrer que la fixation d'un codage est nécessaire pour la définition de la calculabilité de Turing. Mais qu'est-ce qui rend, disons, l'encodage binaire des nombres naturels si spécial que nous pouvons l'axiomatiser comme l'encodage approprié? Probablement parce qu'il correspond à la notion intuitive de ce que signifie la calculabilité par coïncidence .
Et si nous regardions des modèles de calcul plus faibles que les machines de Turing? Par exemple, considérons l'ensemble des machines de turing "paralysées" avec l'alphabet { qui ne peut se déplacer que vers la droite, et une définition deturing paralysé calculablequi est cohérente avec celle de la calculabilité de turing:
Définition 2: Une fonction est appelé infirme turing calculable ou calculable en M c ssi il existe une machine de Turing infirme qui calcule f en utilisant un codage approprié des nombres naturels sous formechaîne.
Si nous définissons "codage approprié" comme "codage binaire", alors la fonction n'est pas calculable dans M c . Si nous axiomatisons "codage approprié" comme "codage unaire", alors f est calculable dans M c . Cela semble gênant étant donné que tout le monde peut corriger à volonté l'un des infiniment nombreux encodages intuitifs. Il doit être clair si un modèle de calcul peut calculer f ou pas sans se référer à un encodage spécifique - du moins, je n'ai jamais vu personne mentionner quel encodage est utilisé pour déclarer que "les programmes en boucle sont plus faibles que les machines de Turing".
Après cette introduction, je peux enfin formuler ma question: comment définir des "encodages appropriés" et "calculabilité" pour des modèles de calcul arbitraires qui ne coïncident pas avec la notion intuitive de calculabilité? Est-ce possible dans le cadre de la calculabilité de Turing?
Edit: j'ai raccourci l'introduction, cela n'a pas ajouté à la question.