Это продолжение другого вопроса здесь , и я надеюсь, что он не слишком философский. Как отметил Рафаэль в комментарии к моему предыдущему вопросу, на самом деле я не получил определения «вычислимый», но согласно некоторым прочитанным мною работам определение также не совсем понятно, когда речь идет о моделях вычислений, более слабых, чем Тьюринг. машины из-за кодировки ввода и вывода.
Типичное определение вычислимости по Тьюрингу следующее:
Определение 1: Функция называется вычислимой по Тьюрингу, если существует машина Тьюринга которая вычисляет с использованием подходящего кодирования натуральных чисел в виде строк.
Определения отличаются в том, что именно является подходящим кодированием , но большинство относится к двоичному кодированию , унарному кодированию или десятичному кодированию как к одному фиксированному и подходящему кодированию. Также можно показать, что для определения вычислимости тьюринга требуется исправление одной кодировки. Но что делает, скажем, двоичное кодирование натуральных чисел особенным, чтобы мы могли аксиоматизировать его как подходящее кодирование? Вероятно, потому что это соответствует интуитивному представлению о том, что вычислимость означает совпадение .
Что теперь, если мы посмотрим на более слабые модели вычислений, чем машины Тьюринга? Например, давайте рассмотрим множество из «калек» машины Тьюринга с алфавитом , которая может двигаться только вправо, и определение калекой Тьюринга вычислимая которая согласуется с Тьюринга вычислимости:
Определение 2: функция называется калекой Тьюринга, вычислимой или вычислимой в M c если существует искалеченная машина Тьюринга которая вычисляет f с использованием подходящей кодировки натуральных чисел как строка
Если мы определим «подходящую кодировку» как «двоичного кодирования», то функция является не вычислимы в М с . Если мы аксиоматизируем «подходящее кодирование» как «унарное кодирование», то f является вычислим в . Это кажется неловким, учитывая тот факт, что каждый может по своему усмотрению исправить одно из бесконечно многих интуитивных кодировок. Должно быть понятно, может ли вычислительная модель вычислить f или нет, не ссылаясь на какую-то конкретную кодировку - по крайней мере, я никогда не видел, чтобы кто-то упоминал, какая кодировка используется, когда говорится, что «программы цикла слабее машин Тьюринга».
После этого вступления я, наконец, могу сформулировать свой вопрос: как определить «подходящие кодировки» и «вычислимость» для произвольных моделей вычислений, которые не совпадают с интуитивным понятием вычислимости? Возможно ли это в рамках вычислимости вычислений?
Изменить: я сократил введение, это не добавило к вопросу.