Este es un seguimiento de otra pregunta aquí , y espero que no sea demasiado filosófico. Como señaló Raphael en un comentario sobre mi pregunta anterior, realmente no entiendo la definición de "computable", pero de acuerdo con algunos documentos que leí, la definición tampoco está muy clara cuando se trata de modelos de computación más débiles que turing máquinas debido a la codificación de la entrada y salida.
La definición típica de turing computable es la siguiente:
Definición 1: Una función se llama turing computable si hay una máquina turing que computa utilizando una codificación adecuada de los números naturales como cadenas.f
Las definiciones difieren en qué es exactamente una codificación adecuada , pero la mayoría se refiere a la codificación binaria , codificación unaria o codificación decimal como la codificación fija y adecuada. También es posible mostrar que se requiere la fijación de una codificación para la definición de computabilidad de turing. Pero, ¿qué hace que la codificación binaria de números naturales sea especial para que podamos axiomatizarla como la codificación adecuada? Probablemente porque se ajusta a la noción intuitiva de lo que significa computabilidad por coincidencia .
¿Y si observamos modelos de computación más débiles que las máquinas de Turing? Por ejemplo, consideremos el conjunto de máquinas de turing "paralizadas" con el alfabeto que solo puede moverse hacia la derecha, y una definición de turing paralizado computable que es consistente con la de computabilidad de turing: { 0 , 1 }
Definición 2: Una función se llama tullida turing computable o computable en si hay una máquina turing tullida que computa usando una codificación adecuada de los números naturales como una cuerda.f
Si definimos "codificación adecuada" como "codificación binaria", entonces la función no es computable en . Si axiomatizamos "codificación adecuada" como "codificación unaria", entonces es computable en . Esto parece extraño dado el hecho de que todos pueden arreglar una de las infinitas codificaciones intuitivas a voluntad. Debe quedar claro si un modelo de computación puede computar o no sin referirse a alguna codificación específica; al menos, nunca he visto a nadie mencionar qué codificación se usa al afirmar que "los programas de bucle son más débiles que las máquinas de turing".M c f M c f
Después de esta introducción, finalmente puedo formular mi pregunta: ¿Cómo definiría "codificaciones adecuadas" y "computabilidad" para modelos arbitrarios de computación que no coinciden con la noción intuitiva de computabilidad? ¿Es esto posible en el marco de la computabilidad de turing?
Editar: acorté la introducción, no se agregó a la pregunta.