Как универсальная машина Тьюринга может имитировать «большие»?

10

Я пытаюсь найти ответы на два вопроса об универсальной машине Тьюринга.

  1. Как универсальная машина Тьюринга может моделировать машину Тьюринга, если моделируемая машина имеет большее число состояний?
  2. Как универсальная машина Тьюринга может имитировать машину Тьюринга, если на моделируемой машине большее количество букв алфавита?

Может ли кто-нибудь помочь мне с этими вопросами?

Студент
источник
1
Еще одна интересная проблема в том, что UTM может быть построен с постоянным числом состояний. он моделирует другие ТМ с произвольным числом состояний или символов, закодированных на ленте.
vzn
связанный вопрос заключается в том, как TM может имитировать ATM (чередующийся TM), который примерно тем же методом кодирует дополнительные данные на ленте плюс сокращение состояний в классы
Никос М.

Ответы:

10

Ответ на оба вопроса один и тот же: используя ленту для хранения необходимых данных. Можно предположить, что набор состояний и алфавит моделируемой машины являются подмножествами натуральных чисел («Состояние 1», «Состояние 2», «Состояние 3» и т. Д.). Даже с двумя непустыми символами универсальный компьютер может представлять все эти целые числа в виде двоичных строк.

Однако обратите внимание, что универсальная машина имеет фиксированное число состояний, что делает вычисление функции перехода немного сложным. Мы хотели бы написать несколько инструкций, которые реализуют большой оператор switch в форме: «Если состояние  и символ под заголовком  , то перейдите в состояние  , напишите символ  и переместите голова в направлении  . " Итак - и я думаю, что это может быть корнем вашего вопроса - как мы вычисляем функцию перехода, если у нас даже нет достаточного количества состояний в универсальной машине для хранения входных данных функции перехода?sxsxd

Одним из способов является сохранение функции перехода в виде двоичного дерева. Предположим, что все моделируемая машина имеет  состояния и  символов ленты. Сохраните функцию перехода как двоичное дерево глубины где на первых  уровнях вы идете влево или вправо в зависимости от того, равен ли следующий бит имитируемого состояния единице или нулю, а следующие  уровни являются то же самое, но для последовательных битов смоделированного символа ленты. Теперь ваш универсальный компьютер может двигаться вперед и назад по своей ленте, проверяя следующий бит состояния / символа, запоминая этот бит в его собственных состояниях, возвращаясь к дереву, помещая маркер в правильный узел и так далее.2q2q+q

Это становится несколько проще, если вы разрешите универсальному устройству иметь несколько лент, но вам все равно придется показать, что ваш многоканальный компьютер эквивалентен одному ленточному устройству.

Дэвид Ричерби
источник