2591 -> 0
0R.STOPВыделенная цифра слева от стрелки — это символ на ленте, который устройство в данный момент считывает. Оно заменяет этот символ выделенной цифрой в середине справа от стрелки.
Rозначает, что устройство должно переместиться вдоль ленты на один квадратВместо номеров 0, 1, 2, 3, 4, 5…. для обозначения внутренних состояний мы можем — и это более соответствовало бы знаковой системе нанесения меток на ленту — прибегнуть к системе нумерации, построенной только на символах
«0»и «1». Состояние0 -> 0,
1 -> 1,
2 -> 10,
3 -> 11,
4 -> 100,
5 -> 101,
6 -> 110,
7 -> 111,
8 -> 1000,
9 -> 1001,
10 -> 1010,
11 -> 1011,
12 -> 1100 и т. д.
Здесь последняя цифра справа соответствует «единицам» точно так же, как и в стандартной (десятичной) системе записи, но цифра прямо перед ней показывает число «двоек», а не «десятков». В свою очередь третья цифра справа относится не к «сотням», а к «четверкам»; четвертая — к «восьмеркам», а не к «тысячам» и т. д. При этом разрядность каждой последующей цифры (по мере продвижения влево) дается соответственной степенью двойки: 1, 2, 4 (= 2 х 2), 8 (= 2 х 2 х 2), 16 (= 2х2х2х2), 32 (= 2x2x2х2х2). (В дальнейшем нам будет иногда удобно использовать в качестве основания системы счисления числа, отличные от «2» и «10». Например, запись десятичного числа
64по основанию64 = (2 х З
3) + З 2+ 1; см. главу 4).Используя двоичную запись для внутренних состояний, можно представить вышеприведенную инструкцию, описывающую машину Тьюринга, следующим образом:
Здесь я к тому же сократил
Предположим, что наше устройство находится во внутреннем состоянии, представленном бинарной последовательностью 11010010, и процессу вычисления соответствует участок ленты, изображенный на предыдущем рисунке. Пусть мы задаем команду
11010010
0 -> 11 1L.Та цифра на ленте, которая в данный момент считывается (в нашем случае цифра
«0»), показана «жирным» символом справа от последовательности нулей и единиц, обозначающих внутреннее состояние.В частично описанном выше примере машины Тьюринга (который я выбрал более-менее произвольно) считанный
«0»был бы тогда замещен на «1», внутреннее состояние поменялось бы на «11»и устройство переместилось бы на один шаг влево:Теперь устройство готово к считыванию следующей цифры, снова
«0». Согласно таблице, оно оставляет этот «0»нетронутым, но изменяет свое внутреннее состояние на «100101» и передвигается по ленте назад, т. е. на один шаг вправо. Теперь оно считывает «1»и находит где-то ниже в таблице инструкцию, которая определяет изменение внутреннего состояния и указывает, должна ли быть изменена считанная цифра и в каком направлении по ленте должно дальше двигаться устройство. Таким образом устройство будет действовать до тех пор, пока не достигнет командыМы будем считать, что машина всегда начинает с внутреннего состояния
«0»и что вся лента справа от устройства изначально пуста. Все инструкции и данные подаются в устройство с правой стороны. Как упоминалось ранее, эта информация всегда имеет форму конечной строки из нулей и единиц, за которой следует пустая лента (т. е. нули). Когда машина получает команду