Я пытаюсь понять и реализовать простейшую машину Тьюринга и хотел бы получить отзывы, если у меня есть смысл.
У нас есть бесконечная лента (скажем, массив с именем T с указателем в 0 в начале) и таблица инструкций:
( S , R , W , D , N )
S->STEP (Start at step 1)
R->READ (0 or 1)
W->WRITE (0 or 1)
D->DIRECTION (0=LEFT 1=RIGHT)
N->NEXTSTEP (Non existing step is HALT)
Насколько я понимаю, простейшая машина - это 2-значная машина с 3 состояниями. 3 состояния, я не понимаю. 2 символа, потому что для ЧТЕНИЯ / ЗАПИСИ мы используем 0 и 1.
Например:
(1,0,1,1,2)
(1,1,0,1,2)
Начиная с шага 1, если Чтение равно 0, то {Запишите 1, Двигайтесь вправо) иначе {Запишите 0, Двигайтесь вправо), а затем перейдите к шагу 2, который не существует и останавливает программу.
Что означает 3-состояние? Эта машина проходит как машину Тьюринга? Можем ли мы упростить еще больше?