поправьте, если я ошибаюсь - при переходе в состояние 0 МТ останавливает работу
Более-менее стандартным соглашением считается, что машина Тьюринга останавливается, когда переходит в состояние
(то есть
в Ваших обозначениях). Если это то, что Вы имели в виду, то да, Вы правы. А если под нулём Вы понимали символ, записанный в ячейке ленты, на которую указывает головка, то нет.
Обозначение
для символа пустой ячейки тоже более-менее стандартно. Но здесь, похоже, специальных символов пустых ячеек не предусмотрено и ячейка считается "пустой", если в ней записан
. В таком разе /\ --- это, скорее всего, буква "Л", дающая машине команду двигать головку влево (хотя стандартно пишут не Л, а L).
Я бы переписал Вашу программу (если я её правильно понял) так:
Стартуем мы из состояния
, головка указывает на первую единицу в слове
, остальные ячейки ленты (вероятно, бесконечной в оба конца), заполнены нулями. Если всё это верно, то будет происходить следующее.
1) После первого шага работы головка перейдёт из состояния
в состояние
, никуда не сдвигаясь и ничего не меняя на ленте.
2) После второго шага мы перейдём в состояние
, сдвинувшись на одну ячейку влево. На ленте ничего не поменяется. После этого действия головка будет указывать на ячейку, в которой записан
.
3) После третьего шага состояние поменяется с
на
, головка никуда не сдвинется и на ленте ничего не изменится.
4) Наконец, на четвёртом шаге машина переписывает
, содержащийся в ячейке, на которую указывает головка, на
, и переходит в состояние
, то есть останавливается. На ленте в результате оказывается записанным слово
.