УДК 004 ББК 32.81 Т 49
Тлюстен В.Ш.
Кандидат физико-математических наук, доцент кафедры прикладной математики и информационных технологий факультета математики и компьютерных наук Адыгейского государственного университета, Майкоп, тел. (8772) 59-39-04, e-mail: [email protected]
Вариант машины Тьюринга с «подсматривающей» головкой
(Рецензирована)
Аннотация. Предлагается вариант машины Тьюринга, названный в работе МТ с «подсматривающей» головкой (ph-машиной). В отличие от классической МТ, считывающе-записывающая головка ph-машины снабжена дополнительным (для определенности, левым) «глазом», который позволяет наряду с текуьцей обрабатываемой ячейкой ленты видеть также и содержимое соседней с ней слева ячейки. Изучен подкласс ph-машин, имеющих только одно внутреннее состояние. Любая команда такой машины имеет вид <Si,Sj,Sk,D>, где Si, Sj - два одновременно обозреваемых головкой символа, Sk - новый символ, заменяющий текущий символ Sj, и D — направление последующего сдвига головки (L — влево, или R - вправо). Доказывается, что класс ph-машин с одним состоянием функционально полон. В частности, это означает неразрешимость проблемы останова и существование универсальной МТ в указанном классе.
Ключевые слова: машины Тьюринга, минимальные машины Тьюринга, алгоритмическая вычислимость, универсальные вычислительные формализмы, алгоритмическая неразрешимость, проблема останова.
Tlyusten V.Sh.
Candidate of Physics and Mathematics, Associate Professor of Applied Mathematics and Information Technologies Department of Faculty of Mathematics and Computer Sciences, Adyghe State University, Maikop, ph. (8772) 59-39-04, e-mail: [email protected]
Variant of peeper head Turing mashine
Abstract The variant of Turing Machine (TM) is suggested, which is called in this paper Peeper Head Turing Machine (phTM). Such machines differ from classical TM by having an additional eye which can see the content of left nearby cell at the moment of current cell processing. In the paper, one internal state phTMs are considered. Any command of such a machine looks like <Si,Sj,Sk,D>, where Si and Sj are two symbols observed by peeper head at the same time, Sk is a new symbol, replacing current symbol Sj, and D is direction of the following head shift (L, to the left, or R, to the right). It is proved in the paper that the set of one state phTMs is functionally full. In particular, it means that in the class of phTM with one internal state, a halting problem is unsolvable and a universal machine exists.
Keywords: Turing Machines, small turing machines, algorithmic computability, universal computational formalisms, computational unsolvability, halting problem.
Введение
Машину Тьюринга (МТ) с п внутренними состояниями и т символами будем обозначать ШТ(п/т), заменяя при необходимости символом '*' ту компоненту пары т/п, значение которой в контексте рассмотрения может быть любым. Как показано в работе К. Шеннона [1], классические машины Тьюринга (КМТ) с двумя внутренними состояниями - КМТ(2/*) - представляют собой функционально полный класс, в том смысле, что способны моделировать вычислительное поведение любой машины из класса КМТ(*/*). Кроме того, как установлено в той же работе и независимо в работе [2], класс МТ с одним внутренним состоянием - КМТ(1/*) - функционально полным не является. Таким образом, между классами КМТ(1/*) и КМТ(2/*) существует качественный разрыв, внутри которого возникает феномен универсальной вычислимости и, как следствие, неразрешимости многих алгоритмических проблем. Уточнение границ этого разрыва представляет собой интересную задачу и может быть осуществлено определе-
нием новых вычислительных формализмов, которые либо ограничивают (ослабляют) вычислительные возможности класса КМТ(2/*), либо наоборот, расширяют (усиливают) вычислительные возможности класса КМТ(1/*).
Классический пример реализации первого подхода представляет работа [3], определяющая некоторые ограничения на структуру команд КМТ и, соответственно, ряд формализмов МТ с ослабленной функциональностью. Влияние этого ослабления на снижение вычислительных возможностей некоторых из указанных формализмов внутри класса КМТ(2/*) показано как в вышеуказанной работе, так, например, и в статьях [4, 5].
Реализацию второго подхода представляют, например, МТ(1/*) с многомерной лентой - усиление, все еще не приводящее к функциональной полноте [6], а также другие, с функциональной точки зрения более существенные конструктивные усиления базовой архитектуры КМТ, такие, например, как многоголовочные или многоленточные МТ. Последние в общем случае могут приводить к расширению вычислительных возможностей КМТ настолько, что в принципе позволяют обойтись без внутренней памяти, обеспечивая полноту соответствующих классов МТ даже при одном внутреннем состоянии. Однако в плане целевого минимального наращивания вычислительных возможностей КМТ(1/*) до полных, указанные расширения представляются несколько избыточными и, как мы покажем в данной статье, могут быть существенно смягчены.
А именно, нами будет показано, что расширение КМТ(1/*) до функционально полного класса может быть достигнуто за счет простого оснащения головки КМТ дополнительным «глазом» («подсматривающей» головкой), позволяющим МТ во время штатной обработки текущей ячейки видеть и учитывать также содержимое ячейки, расположенной непосредственно рядом с ней (для определенности, слева от нее). Абстрактные вычислительные устройства, полученные в результате такой модификации КМТ, будем называть ph-машинами (phMT).
1. Основная теорема и общая схема ее доказательства
Очевидно, при наличии только лишь одного внутреннего состояния ph-машина, как и КМТ, оказывается полностью лишенной «памяти справа» (т.е. способности переносить информацию на ленте справа налево), в то время как «память слева» у нее сохраняется, благодаря дополнительной «подсматривающей» головке.
Теорема. Класс phMT(l/*) функционально полон.
Следуя обычной технике доказательства полноты классов МТ (см., например, [3]), покажем, что для произвольно взятой КМТ Т всегда можно эффективно построить ph-машину TPh с одним внутренним состоянием, которая в определенном смысле [1] эквивалентна данной. Действительно, пусть Q={q\,q2,...,qn} и Z={So,Si,...,5^.i} (и>1, т>\) -внутренний и внешний алфавиты вышеуказанной машины Т, соответственно. Программа Т может быть задана множеством пятерок вида <qa,Sk,Sp,T),q/;>, где qa,qp& Q; SfoS^^Z; De {L,R}. Пятерка указанного вида интерпретируется следующим образом. Если Т находится в состоянии qa и обозревает символ S ¡с, то к следующему моменту времени она заменяет обозреваемый символ на S^ и сдвигает головку влево (при D=L) или вправо (при D=R) и переходит в состояние qp. Указанные действия составляют один такт работы машины. Считается, что в программе нет пятерок, начинающихся с одной и той же пары «состояние-символ», и Т останавливается в любой ситуации «состояние-символ», для которой в программе нет пятерки, начинающейся с этой пары. Кроме того, не делается различия между пустой ячейкой ленты и ячейкой, содержащей символ So (пустой символ).
Сопоставим теперь выбранной нами машине Т ph-машину Трь, имеющую только одно внутреннее состояние (т.е. не обладающую внутренней памятью) и внешний алфавит Z*, который состоит из трех следующих подалфавитов.
Подалфавит S (исходный): S[0;0], S[1;m], S[2;m].
Подалфавит N: N[l,l;z,x], N[l,l;z,x,/|, N[1,1;m,x], N[2,1;m], N[1,2;»i,x], N[2,2;m].
Подалфавит M; M[1 ,l;z,y], M[2,1;z,m], M[1,2;m], M[2,2;m], M[2,2;z,x], М[1,3;и],
M[l,3;w,x], М[2,2;х,и], M[2,3;M,V], M[2,3;Z,X,M], M[1,4;M], M[2,4;Z,X], M[2,4;
M[1,5;m], M[1,5;Z,X], М[2,5;и], M[1,6;M,V], M[1,6;Z^C,M], M[2,6;M,X], M[2,6;X,M],
M[1,7;M], M[1,7;z,X], M[2,7;x].
Как это видно из приведенных обозначений, каждый символ алфавита Z* имеет две группы строчных индексов, разделенных знаком «;». В первой группе кодируется информация о логическом местоположении символа (слева или справа от головки в соответствии с моделируемой конфигурацией), а также о текущей стадии процесса моделирования. Вторая группа содержит переносимые вдоль ленты индексы символов и состояний. Более подробно назначение индексов и динамика их движения будут рассмотрены ниже. Отметим также, что всюду в этой работе принято 1 <aß,z<n\ 0<K,y,k,p,iJ<m-1; 0<u,v<m, где n - число состояний, т - число символов моделируемой машины.
Следуя [3], для доказательства теоремы ограничимся указанием способа моделирования произвольной пятерки машины Т посредством подходящей совокупности команд машины Tph. Последние будем задавать в форме четверок вида <G,H,P,D>, где G,H,Pe Z*, a De {L,R}. Каждая такая четверка означает, что если в текущем такте своей работы (расширенная) головка ph-машины обозревает символы G и Н, записанные в соседние ячейки в указанном порядке, то к следующему такту Н заменяется на Р, и головка сдвигается на одну позицию в сторону D.
Как это обычно и принято, конфигурацией МТ будем называть информацию о содержимом ячеек ее ленты, внутреннем состоянии и положении головки в рассматриваемый момент времени. Будем также считать, что в любой конфигурации МТ лишь конечное число ячеек ее ленты заполнено символами, отличными от пустого.
Произвольную конфигурацию F моделируемой машины Т будем изображать в
виде:
F: Siа Sia-i ... Shqa Sk S/'i S/2 ..., SyV-i S/V, где a,r> 1; qa - состояние, S& - символ из обозреваемой ячейки, а все ячейки ленты левее Si'a-i и правее SyV-i - пустые.
Слово Sia Sza-1 ... Si'i, записанное на ленте левее головки Т, назовем левой, а слово qa St Sy'i S/2 • • SyV-i Sjr - правой зонами конфигурации F.
Соответствующую конфигурацию FPh машины TPh будем изображать в виде:
Fph: Sr0:01 S\haM S[VJ{\ Sflj/J S[l-jr] S[l;m] S[2S[2;г2] ... S[2;y S[2;m],
где обозреваемая головкой TPh пара символов подчеркнута; символы с первыми индексами 1 и 2 сопоставлены, соответственно, символам правой и левой зон конфигурации F машины Т и составляют, по определению, соответственно, правую и левую зоны конфигурации Fph; символы со вторыми индексами, равными т - это граничные маркеры соответствующих зон; символ S[l;a,&] выражает ситуацию <qa,Sk> моделируемой конфигурации F; символ S[0,0] соответствует пустому символу алфавита машины Т.
Заметим, что в конфигурации FPh, логически ближайшим слева к символу S[l;cc,£] является символ S[2;i'i]. Такая асимметрия в конфигурации Fph необходима для того, чтобы иметь возможность моделировать и левые, и правые сдвиги головки Т посредством «активных» лишь правых сдвигов головки Трь. Поскольку в принятом способе моделирования головка машины Трь в процессе работы все дальше уходит вправо, посещая любую достигнутую ячейку не более чем конечное число раз, будем изображать конфигурацию FPh без учета содержимого ячеек ленты левее головки, которые уже не будут достигнуты. Справа от изображаемой части ленты в конфигурации Fph предполагается неограниченный запас пустых ячеек.
Доказательство сформулированной выше теоремы проведем в два этапа, отдельно рассмотрев Tph - программы моделирования левого (используется подалфавит М) и правого (используется подалфавит N) сдвига.
2. Моделирование правого сдвига
Задача моделирования произвольной пятерки вида <qa,Sk,Sp,R,qß> из программы Т состоит в преобразовании конфигурации FPh (см. выше) в следующую конфигурацию
FRpb
FRph: Sr0:01 Sri:Ä/i1 S[l-J2] ... S[1 -jr] S[1,0] S[1;0] S[l;m] S[2;/?] S[2S[2;г2] ... S[2;ij S[2;m].
Так как моделирование сдвига головки Т уменьшает длину одной из зон соответствующей конфигурации машины Трь, то необходимо заботиться о том, чтобы в каждой зоне этой конфигурации всегда были бы символы, отличные от маркера зоны. Поэтому при моделировании сдвига вправо к правой зоне конфигурации машины Трь добавляется символ S[1,0].
Вот совокупность команд машины Трь, осуществляющих нужное преобразование конфигурации FPh в конфигурацию FRPh (табл. 1).
Таблица 1
Команды TPh, моделирующие сдвиг головки вправо
№ Команды № Команды
1. S ГО; 01, Sri: а, £1, №1,1; ß. d1, R 12. Nr2.2:xl.Nr2.2: Ml.Sr2:xl.L
2. №1,1: ß. d1. Sri; xl. №1,1: ß. x, d1. R 13. Nri.l: m. dl. Nr2.1: x 1. №1,2; m, d1. R
3. №1,1: ß. x, d1, ST1; wl, №1,1: и, ol,R 14. №1,2; m,ol,№2,2;xl,Sr2; d1, L
4. Ш.1:х. pl, Sri; wl, Nri.l; и, ol,R 15. Nri.l: m. Dl. №1,2; m, d1, Sri: ml. L
5. Nri.l; m. pl. ST2; xl. Nr2.1: xl. R 16. Nri.l: x. pl. Nri.l: m. pl. Sri: 01. L
6. Nr2.1:xl.Sr2: и1. Nr2.1: и1. R 17. Nri.l: ß. x. pl. №1.1: m. pl. Sri: 01. L
7. Nr2.1: wl.SrO; 01. №2.2; ml. R 18. №1.1: x. pl. Nri.l: v. pl. ST1: vi. L
8. Ni2,2; ml. SiO; 01. Sr2; ml. L 19. Ш.1:/ff. x. Dl. Ш.1: v. Dl.Sri:vl.L
9. Ш.1: ml. Nr2,2; ml. Nr2,2; ml. L 20. №1,1: ß. Dl. №1,1: ß, x, d1, SU: ß, xl. L
10. Nr2.1:xl.Nr2.2: ul Ш.2: mI.L 21. SiO; 01, Nil.l: ß. d1, ST0; 01, R
11. Nr2.1:xl. Nr2.1: и1. №2.2; xl. R
Поясним ключевые моменты процесса моделирования. После замены на в текущей ячейке и вычисления нового состояния /? (команда 1), начинается цикл переноса 8^ в начало «левой» зоны 2 (команды 2-4). При этом индекс нового состояния /? копируется на свое место - в ячейку, ставшую теперь текущей и находящуюся непосредственно правее стартовой ячейки (команда 2). Далее, оставив индекс символа 8^ в маркере конца зоны 1, Трь уходит за маркер конца зоны 2 в «чистое поле» (команды 58). Там ставится новый маркер, расширяющий зону 2 на одну ячейку справа, после чего начинается процесс сдвига зоны 2 вправо к новому маркеру с целью освобождения места слева для символа 8^ (команды 9-12) и 8^ копируется на свое новое место (команды 13-14). Наконец, осуществляется цикл возврата влево, к началу ленты, с одновременным восстановлением исходного вида символов зоны 1, измененных на предыдущих этапах описанного процесса (команды 15-21).
3. Моделирование левого сдвига
Выполнению пятерки вида машиной Т должна соответствовать со-
вокупность команд машины Трь, переводящая конфигурацию Ррь в РЬ^ь
гар11: 8ШЖЖШ11 8[2;г2] ... 8[2;га] 8[2;0]
8[2;ю].
Поскольку программа, осуществляющая необходимое преобразование исходной конфигурации РрЬ, достаточно громоздка, будем собирать ее из отдельных блоков.
Блок Б1 (табл. 2) переводит исходную конфигурацию Брь машины Трь в следующую ее конфигурацию:
Рх: МГ1.3:р1 МГ1.2;/11 ... М[1,2^] М[1,2;да] М[2,2фА] М[2,2;г2] ... М[2,2;га] М[2,2;0] М[2,2;да].
Таблица 2
Подготовка моделирования сдвига влево - блок Б1
№ Команды № Команды
1. SrO; 01, SU: а, £1, МГ1,1: ß, vi R 6. МГ2,1: ß,xl МГ2,1: ß, ml, МГ2,2; 01, L
2. МГ1.1: ß. xl. Sri: ul МГ1.1: ß. ul. R 7. МГ2.1: ß. xl, МГ2.1: ß. vi. МГ2.2: vi. L
3. МГ1.1: ß. ml. ST2: xl. МГ2.1: ß. xl. R 8. МГ1.1: ß. ml. МГ2.1: ß. xl. МГ2.2: ß. xl. L
4. МГ2Л: ß,xl ST2; ul МГ2,1; ß, и]. R 9. МГ1Л: ß. xl, МГ1Л: ß, ul МГ1,2; ul L
5. МГ2Л: ß, ml, STO: 01, МГ2.2; ml, L 10. SrO: 01, МГ1Л: ß, т>1 МГ1.3: ol, R
Таблица 3
Перестановка зон - блок Б2 (и>,0 (принято, что -ги>=2*, если и>=1, и —если \и=2)
№ Команды № Команды
1. Miw.i; xl, МГм>,М; м1, Miw.i; mjcI, R 11. МГ-w.i; ßjcjnl МГ-w.i-l; vl,Mr->w,i; v,ml, R
2. Miw.i; x,vl, МГм>,М; м1, Miw.t; m,v1, R 12 МГ-w.i; х,м1, МГ-w.i-l; vi, МГ-w.i; v,m1, R
3. Mrw,i; mjc], Mr-w,i-l; ß,vl Mhwi;ß.vjcl R 13. Mhw,i; mjcl SrO; 01, МГм>,М; xl, L
4. Mhw,i mjcl МГ-w.i-l; &vl, Mhw,i ß,vjcl R 14. Mr->w,i; m,u 1, Mr-w,i-l; xl, Miw.i; х,м1, R
5. Mrw,i; х,и1, Mrw,i-1; vi, Mrw,i; v,m1, R 15. Mrw,i; mjcl Mhw,i; ß,vjc\, Mp->w,i-l; /?,vl, L
6. Mrw,i; x,ul SrO; 01, МГм>,М; м1, L 16. Mrw,i; x,vl, Mrw,i; u,v 1, Mrw,i-1; ul L
7. Miw.i; х,м1, Mrw.i; v,m1, Mrw.i-1; vi, L 17. Mrw.i; xl, Miw.i; mjcI, Miw.i; м1, R
8. МГ-w.i; m,u 1, Miw.i; х,и1, МГм>,£-1; xl, L 1& Miw.i; ml, МГ-w.i-l; ßjc], Mhwi;ßjc,m 1, R
9. МГ-w.i; х,м1, Mhw,i; v,m1, МГ-w.i-l; vi, L 19. Mfw.i; ml, Mhw.i; ßjc,m], МГ-w.i-l; ßjc], R
Ю ßjc,ul Mhw,i; v,m1, Mr-w,i-l; vi, L
Примечание: * (-■) - знак отрицания
Приведенную выше реализацию блока Б2 (табл. 3) можно рассматривать как процедуру, в которой wиtиспользуются как формальные параметры.
Применив вызов этой процедуры Б2 (1,3) к конфигурации Б], получим следующую конфигурацию Р2:
М[2,4;Дг'1] М[2,2;г2] ... М[2,2;У М[2,2;0] М[2,2;да] Ш[\,2\р\ М[2,2;0] М[1,2^] ... М[1,2^] М[1,2;да].
Начиная работу с конфигурации Р2, блок БЗ (табл. 4) приводит к конфигурации Р3: М[2,6;г2] М[2,5;г3] ... М[2,5;У ... М[2,5;0] М[2,5;/и] М[1,5;Р,г1] М[1,5-,р] М[1,5^] ... М[1,5^] М[1,5;т].
Таблица 4
Перенос символов в новую зону - блок БЗ
№ Команды № Команды
1. МГ2.4: ßjcl МГ2.2: vi. МГ2.4: v.ßxl R 6. МГ1.4: xl. МГ1.4: ul МГ1.5: xl. L
2. МГ2.4: x,ß,vl МГ2.2; ul M, Г2,4; uAv1, R 7. МГ2,4: тДх1, МГ1,4; vi МГ1.5: ßjcl L
3. МГ2.4: m,ßjcl МГ1.2; vi МГ1.4; vi R 8. МГ2.4: x,ß,vl МГ2.4; u,ß,v 1, МГ2.5: ul L
4. МГ1.4: xl. МГ1.2: ul МГ1.4: ul R 9. МГ2.4: ßjcl МГ2.4: v.ßjcl МГ2.6: vi. R
5. МГ1.4: ml. SrO: 01. МГ1.5: ml L
Далее к конфигурации Бз применяется блок Б2 (2,6), результатом работы которого является конфигурация
М[2,6;0] М[2,6;да] М[\,1ф4й М[1,5\р\ М[1,5^] ... М[1,5;/,] М[1,5;т] М[2,5;г2] ... М[2,5;г'а] М[2,5;0] М[2,5;т].
Программный блок Б4 (табл. 5) завершает процесс моделирования левого сдвига головки Т, переводя конфигурацию в конфигурацию РЯрЬ.
Таблица 5
Перекодировка символов в исходный алфавит - блок Б4
№ Команды № Команды
1. МГ1.7; ß, xl, МГ1.5; ol, МГ1.7; ol, R 7. МГ1.7; ml, МГ2.7; xl, ST2; xl, L
2. МГ1.7; xl, МГ1.5; ul, МГ1.7; ul, R 8. МГ1,7; xl, МГ1.7; ul, SU: ul, L
3. МГ1.7: ml. МГ2.5: xl. МГ2.7: xl. R 9. МГ1.7: ß. xl. МГ1.7: pi. SU: pi. L
4. МГ2.7: xl. МГ2.5: vl. МГ2.7: vi. R 10. МГ2.6: ml. M 1.7: ß. xl. S[l; ß, x], L
5. МГ2.7; xl, МГ2.5; ml, МГ2; ml, L 11. МГ2.6; 01, МГ2.6; ml, SrO; 01, R
6. МГ2.7; xl, МГ2.7; vl, МГ2; vi, L
Доказательство теоремы завершено. Остается лишь добавить, что полная программа машины TPh, моделирующей машину Т, может быть получена, если для каждой пятерки машины Т выписать соответствующую полную совокупность команд машины Трь.
Следствие 1. Существует универсальная ph-машина с одним состоянием.
Следствие 2. Проблема останова в классе phMT(l/*) алгоритмически неразрешима.
С учетом использованной при доказательстве теоремы техники ph(l/*)-моделирования произвольных КМТ, а также того факта, что соответствующие утверждения имеют место для моделируемого класса КМТ(*/*), справедливость указанных двух следствий для моделирующего класса ph-машин представляется очевидной.
Примечания:
1. Shannon С.Е. A universal Turing machine with two internal states // Automata Studies, Annals of Mathematics Studies. 1956. No. 34. P. 157-165.
2. Herman G.T. On the impossibility of a one state universal Turing machines. Technical report Electronics Research Laboratory. Berkeley: University of California, 1966. P. 108-112.
3. Fischer P.C. On formalisms for Turing machines // Journal of the Association for Computing Machinery. 1965. No. 12 (4). P. 570-580.
4. Aanderaa S., Fischer P.C. The solvability of the halting problem for 2-state post machines // Journal of the Association for Computing Machinery. 1967. No. 14 (4). P. 677-682.
5. Тлюстен В.Ш. Разрешимость униформной проблемы останова в классе машин Поста с двумя состояниями // Кибернетика. 1978. № 1. С. 2430.
6. Herman G.T. The Halting Problem of One State Turing Machines with n-Dimensional Tape // Math. Logik und Grundlagen. 1968. Bd. 14. S. 185-191.
References:
1. Shannon C.E. A universal Turing machine with two internal states // Automata Studies, Annals of Mathematics Studies. 1956. No. 34. P. 157-165.
2. Herman G.T. On the impossibility of a one state universal Turing machines. Technical report Electronics Research Laboratory. Berkeley: University of California, 1966. P. 108-112.
3. Fischer P.C. On formalisms for Turing machines // Journal of the Association for Computing Machinery. 1965. No. 12 (4). P. 570-580.
4. Aanderaa S., Fischer P.C. The solvability of the halting problem for 2-state post machines // Journal of the Association for Computing Machinery. 1967. No. 14 (4). P. 677-682.
5. Tlyusten V.Sh. Solvability of the uniform halting problem in the class of two-state Post machines // Cybernetics. 1978. No. 1. P. 24-30.
6. Herman G.T. The Halting Problem of One State Turing Machines with n-Dimensional Tape // Math. Logik und Grundlagen. 1968. Bd. 14. S. 185-191.