Краткий контекст:
Я пытаюсь понять, почему существует универсальная машина Тьюринга на ленте с алфавитом . Я думаю, я вижу, что Ленточная машина Тьюринга может представлять собой универсальную машину Тьюринга с помощью ленты. для ввода, соответствующего машине Тьюринга для моделирования, запишите на ленту соответствующий буферу, содержащему текущее состояние, и лента являющийся фактическим вычислением на входе.
Таким образом, это сводится к пониманию того, почему любая функция, вычислимая на многоленточной машине Тьюринга, также вычислима на одноленточной машине Тьюринга.
Теперь, добавляя в свой алфавит дополнительные возможные символы, я вижу, как можно смоделировать многоленточную машину Тьюринга с помощью одноленточной машины Тьюринга с большим алфавитом (что-то вроде: добавьте разделитель '#', чтобы отделить ленты и символы для представления текущей позиции на каждой ленте). Однако мне непонятно, как это возможно сделать на ленте, где разрешен только алфавит. .
Мой вопрос:
Учитывая машину Тьюринга на некотором (конечном) алфавите который вычисляет частичную функцию (используя двоичное представление), существует ли машина Тьюринга только по алфавиту который вычисляет ту же частичную функцию?
(Тогда это отвечает на последнюю часть моего мыслительного процесса выше.)
Конечно, машина Тьюринга с алфавитом возможна. для моделирования машины Тьюринга с любым конечным алфавитом. Идея состоит в том, что если больший алфавит имеет размер меньше, чем то можно разделить ленту на "куски" размером и используйте каждый из этих фрагментов для кодирования одного символа из большего алфавита. Это требует большего количества состояний в новой машине, потому что для распознавания одного символа из большего алфавита требуется последовательность состояний. состояния в новой машине.
Это немного аналогично использованию UTF-32 для хранения строк произвольных символов Unicode в языке программирования, который поддерживает только 8-битные символы.
ЭКГ
Брайан О
Брайан О