Тени разума. В поисках науки о сознании - Пенроуз Роджер. Страница 49

Для того чтобы понять, как на основе заданного алгоритма  Aпостроить явное незавершающееся вычисление, факт незавершаемости которого посредством алгоритма Aустановить невозможно, необходимо предположить, что алгоритм Aзадан в виде машины Тьюринга. Эта машина работает с лентой, на которой кодируются два натуральных числа  pи q. Мы полагаем, что если завершается вычисление A( p, q), то вычисление, производимое машиной  T pс числом q, незавершается вовсе. Вспомним, что если машина T pопределена некорректно, то ее работа с числом qне завершается, каким бы это самое qни было. В случае такого «запрещенного»  pисход вычисления A( p, q) может, согласно исходным допущениям, быть каким угодно. Соответственно, нас будут интересовать исключительно те числа p, для которых машина T pопределена корректно. Таким образом, в записанном на ленте двоичном выражении числа  pпяти символов 1подряд содержаться не может. Значит, для обозначения на ленте начала и конца числа  pмы вполне можем воспользоваться последовательностью 11111.

То же самое, очевидно, необходимо сделать и для числа q, причем оно вовсе необязательно должно быть числом того же типа, что и p. Здесь перед нами возникает техническая проблема, связанная с чрезвычайной громоздкостью машинных предписаний в том виде, в каком они представлены в НРК. Удобным решением этой проблемы может стать запись чисел pи  qв  пятеричнойсистеме счисления. (В этой системе запись «10» означает число пять, «100» — двадцать пять, «44» — двадцать четыреи т.д.) Однако вместо пятеричных цифр 0, 1, 2, 3 и 4 я воспользуюсь соответствующими последовательностями символов на ленте 0,10,110,1110 и 11110. Таким образом, мы будем записывать

0 как 0

1 как  10

2 как 110

3 как 1110

4 как 11110

5 как 100

6 как 1010

7 как 10110

8 как 101110

9 как 1011110

10 как 1100

11 как 11010

12 как 110110

13 как 1101110

14 как 11011110

15 как 11100

16 как 111010

25 как 1000

26 как 10010

и т.д.

Под « C p» здесь будет пониматься вычисление, выполняемое корректно определенной машиной Тьюринга T r, где  rесть число, обыкновенное двоичное выражение которого (с добавлением в конце последовательности символов 110) в точности совпадает с числом  pв нашей пятеричной записи. Число q, над которым производится вычисление C p, также необходимо представлять в пятеричном выражении. Вычисление же A( p, q) задается в виде машины Тьюринга, выполняющей действие с лентой, на которой кодируется пара чисел p, q. Запись на ленте будет выглядеть следующим образом:

00111110p111110q11111000…,

где  pи  qсуть вышеописанные пятеричные выражения чисел, соответственно,  pи q.

Требуется отыскать такие числа pи q, для которых не завершается не только вычисление C p( q), но и вычисление A( p, q). Процедура из §2.5позволяет сделать это посредством отыскания такого числа k, при котором вычисление C k, производимое с числом n, в точности совпадает с вычислением A( n, n) при любом n, и подстановки  p= q= k. Для того чтобы проделать это же в явном виде, отыщем машинное предписание  K(= C k), действие которого на последовательность символов на ленте

00111110n11111000

(где  nесть пятеричная запись числа n) в точности совпадает с действием алгоритма  Aна последовательность

00111110n111110n11111000

при любом n. Таким образом, действие предписания  Kсводится к тому, чтобы взять число  n(записанное в пятеричном выражении) и однократно его скопировать, при этом два  n разделяются последовательностью 111110(та же последовательность начинает и завершает всю последовательность отметок на ленте). Следовательно, оно воздействует на получаемую в результате ленту точно так, как на эту же ленту воздействовал бы алгоритм A.

Явную модификацию алгоритма A, дающую такое предписание K, можно произвести следующим образом. Сначала находим в определении Aначальную команду 0 1→  Xи отмечаем для себя, что это в действительности за « X». Мы подставим это выражение вместо « X» в спецификации, представленной ниже. Один технический момент: следует, помимо прочего, положить, чтобы алгоритм Aбыл составлен таким образом, чтобы машина, после активации команды 0 1→  X, никогда больше не перешла во внутреннее состояние 0 алгоритма A. Это требование ни в коей мере не влечет за собой каких-либо существенных ограничений на форму алгоритма [19]. (Нуль можно использовать только в командах-пустышках.)

Затем при определении алгоритма  Aнеобходимо установить общее число Nвнутренних состояний (включая и состояние 0, т.е. максимальное число внутренних состояний  Aбудет равно N - 1). Если в определении  Aнет завершающей команды вида ( N - 1) 1Y, то в конце следует добавить команду-пустышку ( N - 1) 1→ 0 0R. Наконец, удалим из определения  Aкоманду 0 1→  Xи добавим ее к приводимому ниже списку машинных команд, а каждый номер внутреннего состояния, фигурирующий в этом списке, увеличим на N(символом ∅ обозначено результирующее внутреннее состояние 0, а символом « X» в записи «1 1X» представлена команда, которую мы рассмотрели выше). (В частности, первые две команды из списка примут в данном случае следующий вид: 0 1→ N 1R, N 0→ (N + 4) 0R.)

1→ 0 1R, 0 0→ 4 0R, 0 1→ 0 1R, 1 0→ 2 1R, 1 1X, 2 0→ 3 1R, 2 1→ ∅ 0R, 3 0→ 55 1R, 3 1→ ∅ 0R, 4 0→ 4 0R, 4 1→ 5 1R, 5 0→ 4 0R, 51 → 6 1R, 6 0→ 4 0R, 6 1→ 7 1R, 7 0→ 4 0R, 7 1→ 8 1R, 8 0→ 4 0R, 8 1→ 9 1R, 9 0→ 10 0R, 9 1→ ∅ 0R, 10 0→ 11 1R, 10 1→ ∅ 0R, 11 0→ 12 1R, 11 1→ 12 0R, 12 0→ 13 1R, 12 1→ 13 0R, 13 0→ 14 1R, 13 1→ 14 0R, 14 0→ 15 1R, 14 1→ 1 0R, 15 0→ 0 0R, 15 1→ ∅ 0R, 16 0→ 17 0L, 16 1→ 16 1L, 17 0→ 17 0L, 17 1→ 18 1L, 18 0→ 17 0L, 18 1→ 19 1L, 19 0→ 17 0L, 191 → 20 1L, 20 0→ 17 0L, 20 1→ 21 1L, 21 0→ 17 0L, 21 1→ 22 1L, 22 0→ 22 0L, 22 1→ 23 1L, 23 0→ 22 0L, 23 1→ 24 1L, 24 0→ 22 0L, 24 1→ 25 1L, 25 0→ 22 0L, 251 → 26 1L, 26 0→ 22 0L, 26 1→ 27 1L, 27 0→ 32 1R, 27 1→ 28 1L, 28 0→ 33 0R, 28 1→ 29 1L, 29 0→ 33 0R, 29 1→ 30 1L, 30 0→ 33 0R, 30 1→ 31 1L, 31 0→ 33 0R, 31 1→ 11 0R, 32 0→ 34 0L, 32 1→ 32 1R, 33 0→ 35 0R, 33 1→ 33 1R, 34 0→ 36 0R, 34 1→ 34 0R, 35 0→ 37 1R, 35 1→ 35 0R, 36 0→ 36 0R, 36 1→ 38 1R, 37 0→ 37 0R, 37 1→ 39 1R, 38 0→ 36 0R, 38 1→ 40 1R, 39 0→ 37 0R, 39 1→ 41 1R, 40 0→ 36 0R, 40 1→ 42 1R, 41 0→ 37 0R, 41 1→ 43 1R, 42 0→ 36 0R, 42 1→ 44 1R, 43 0→ 37 0R, 43 1→ 45 1R, 44 0→ 36 0R, 44 1→ 46 1R, 45 0→ 37 0R, 45 1→ 47 1R, 46 0→ 48 0R, 46 1→ 46 1R, 47 0→ 49 0R, 47 1→ 47 1R, 48 0→ 48 0R, 48 1→ 49 0R, 49 0→ 48 1R, 49 1→ 50 1R, 50 0→ 48 1R, 50 1→ 51 1R, 51 0→ 48 1R, 51 1→ 52 1R, 52 0→ 48 1R, 52 1→ 53 1R, 53 0→ 54 1R, 53 1→ 53 1R, 54 0→ 16 0L, 54 1→ ∅ 0R, 55 0→ 53 1R.