Машина Пост-Тьюринга - Post–Turing machine

Статья Машина Тьюринга дает общее введение в машины Тьюринга, в то время как в данной статье рассматривается конкретный класс машин Тьюринга.

А Машина Пост-Тьюринга[1] представляет собой "программную формулировку" типа Машина Тьюринга, включающий вариант Эмиль Пост с Эквивалент Тьюринга модель из вычисление. Модель Поста и модель Тьюринга, хотя и очень похожи друг на друга, были разработаны независимо. Статья Тьюринга была получена для публикации в мае 1936 года, а в октябре - статья Поста.) В машине Пост-Тьюринга используется двоичный алфавит, бесконечный последовательность двоичного место хранения локации и примитивный язык программирования с инструкциями по двунаправленному перемещению между хранилищами и поочередному изменению их содержимого. Названия «программа Пост-Тьюринга» и «машина Пост-Тьюринга» использовали Мартин Дэвис в 1973–1974 годах (Дэвис 1973, стр. 69 и далее). Позже, в 1980 году, Дэвис использовал название «программа Тьюринга – Поста» (Дэвис, в Steen, стр. 241).

1936: Пост-модель

В своей статье 1936 года «Конечные комбинаторные процессы - формулировка 1», Эмиль Пост описал модель, о которой он предположил "логически эквивалентный к рекурсивность ".

Модель вычислений Поста отличается от модели машины Тьюринга дальнейшей «атомизацией» действий, которые человеческий «компьютер» будет выполнять во время вычислений.[2]

В модели Поста используется "символ пространство », состоящее из« двусторонней бесконечной последовательности пробелов или ящиков », причем каждый ящик может находиться в одном из двух возможных состояний, а именно« отмечен »(как один вертикальный штрих) и« немаркирован »(пуст). , конечно -многие поля отмечены, остальные не отмечены. Затем «рабочий» должен перемещаться между ящиками, находясь внутри и работая только в одном ящике за раз, в соответствии с фиксированным конечным «набором направлений» (инструкции ), которые нумеруются в порядке (1,2,3, ..., n). Начиная с поля, «выделенного в качестве отправной точки», рабочий должен следовать набору инструкций по одной, начиная с инструкции 1.

В частности, я th «Направление» (указание) работнику должно быть в одной из следующих форм:

(А) Выполните операцию Oя [Оя = (а), (б), (в) или же (d)] а затем следовать направлению jя,[требуется разъяснение ]
(В) Выполнить операцию (е) и в зависимости от ответа "да" или "нет" следуйте соответственно направлению jя'или jя' ' ,[требуется разъяснение ]
(С) Останавливаться.

(Вышеупомянутый текст с отступом и курсивом такие же, как в оригинале.) Пост отмечает, что эта формулировка находится «на начальных стадиях» разработки, и упоминает несколько возможностей «большей гибкости» в ее окончательной «окончательной форме», включая

(1) замена бесконечности ящиков конечным расширяемым пространством символов, «расширение примитивных операций для обеспечения необходимого расширения данного конечного пространства символов по мере продвижения процесса»,
(2) использование алфавита, состоящего более чем из двух символов, «наличие более одного способа пометить квадрат»,
(3) введение конечного числа «физических объектов, служащих указателями, которые рабочий может идентифицировать и перемещать от коробки к коробке».

1947: Формальное сокращение Постом 5-кортежей Тьюринга до 4-х кортежей

Как кратко сказано в статье Машина Тьюринга, Пост, в своей статье 1947 г. (Рекурсивная неразрешимость проблемы Туэ.) раздробил 5-кортежи Тьюринга на 4-кортежи:

«Наши четверки - это пятерки в развитии Тьюринга. То есть там, где наша стандартная инструкция предписывает либо печать (надпечатку), или же движение, влево или вправо, стандартная инструкция Тьюринга всегда заказывает печать и движение вправо, влево или ничего "(сноска 12, Неразрешимый, п. 300)

Как и Тьюринг, он определил стирание как печать символа «S0». Итак, его модель допускала четверки только трех типов (см. Неразрешимый, п. 294):

qя Sj L qл,
qя Sj р qл,
qя Sj Sk qл

В то время он все еще придерживался соглашения о машине состояний Тьюринга - он не формализовал понятие предполагаемого последовательный выполнение шагов до тех пор, пока конкретный тест символа не «разветвит» выполнение в другом месте.

1954, 1957: модель Ванга

Для дальнейшего сокращения - до четырех инструкций - модели Ванга, представленной здесь, см. Ван Б-машина.

Ван (1957, но представленный ACM в 1954 году) часто цитируется (см. Мински (1967), стр. 200) как источник «программной формулировки» бинарных ленточных машин Тьюринга, использующих нумерованные инструкции из набора

написать 0
написать 1
движение влево
переместить вправо
если сканирование 0, тогда инструкция goto я
если сканирование 1, то перейти к инструкции j

Любая машина Тьюринга с двоичной лентой легко конвертируется в эквивалентную «программу Ванга» с помощью приведенных выше инструкций.

1974: первая модель Дэвиса

Мартин Дэвис был студент ученица Эмиля Поста. Вместе с Стивен Клини он получил докторскую степень в Церковь Алонсо (Дэвис (2000) 1-я и 2-я сноски, стр. 188).

Следующую модель он представил в серии лекций в Институте Куранта Нью-Йоркского университета в 1973–1974 годах. Это модель, к которой Дэвис формально применил название «машина Пост-Тьюринга» с ее «языком Пост-Тьюринга».[2] Предполагается, что инструкции выполняются последовательно (Davis 1974, стр. 71):

1978: вторая модель Дэвиса

Следующая модель представлена ​​как эссе Что такое вычисление? в Стин, страницы 241–267. По какой-то причине Дэвис переименовал свою модель в «машину Тьюринга-Поста» (с одним сдвигом назад на странице 256).

В следующей модели Дэвис присваивает цифры «1» «отметке / косой черте» Поста и «0» пустому квадрату. Процитируем Дэвиса: «Теперь мы готовы представить язык программирования Тьюринга – Поста. В этом языке есть семь видов инструкций:

«ПЕЧАТЬ 1
«ПЕЧАТЬ 0
"ИДИ НАПРАВО
"ИДИ НАЛЕВО
"ПЕРЕЙДИТЕ К ШАГУ i ЕСЛИ 1 СКАНИРУЕТСЯ
"ПЕРЕЙДИТЕ К ШАГУ i ЕСЛИ 0 СКАНИРУЕТСЯ
"ОСТАНОВКА

Тогда программа Тьюринга-Поста представляет собой список инструкций, каждая из которых относится к одному из этих семи видов. Конечно, в реальной программе буква я в шаге пятого или шестого рода должно быть заменено определенным (положительным целым) числом »(Davis in Steen, p. 247).

1994 (2-е издание): Пост-Тьюринговая модель программы Дэвиса-Сигала-Вейукера.

«Хотя представленная нами формулировка Тьюринга ближе по духу к той, что была первоначально дана Эмилем Постом, именно анализ вычислений Тьюрингом сделал эту формулировку такой подходящей. Этот язык сыграл фундаментальную роль в теоретической информатике». (Дэвис и др. (1994) стр. 129)

Эта модель позволяет печатать несколько символов. Модель позволяет использовать B (пусто) вместо S0. Лента бесконечна в обоих направлениях. Либо голова, либо лента движется, но их определения ВПРАВО и ВЛЕВО всегда указывают один и тот же результат в любом случае (Тьюринг использовал одно и то же соглашение).

PRINT σ; заменить отсканированный символ на σ
IF σ GOTO L; ЕСЛИ отсканированный символ является σ THEN перейти к "первой" инструкции с меткой L
ВПРАВО; сканирование квадрата сразу справа от сканируемого квадрата
ВЛЕВО; сканировать квадрат сразу слева от сканируемого квадрата.

Эта модель сводится к представленным выше двоичным версиям {0, 1}, как показано здесь:

ПЕЧАТЬ 0 = УДАЛЕНИЕ; заменить отсканированный символ на 0 = B = ПУСТОЙ
ПЕЧАТЬ 1; заменить отсканированный символ на 1
IF 0 GOTO L; ЕСЛИ сканированный символ равен 0 THEN перейти к "первой" инструкции с меткой L
IF 1 GOTO L; ЕСЛИ отсканированный символ равен 1 THEN перейти к "первой" инструкции с меткой L
ВПРАВО; сканирование квадрата сразу справа от сканируемого квадрата
ВЛЕВО; сканировать квадрат сразу слева от сканируемого квадрата.

Примеры машины Пост-Тьюринга

Распыление пятерок Тьюринга на последовательность инструкций Пост-Тьюринга

Следующий метод «редукции» (декомпозиция, атомизация) - от 2-символьных 5-кортежей Тьюринга к последовательности 2-символьных инструкций Пост-Тьюринга - можно найти у Мински (1961). Он утверждает, что это сокращение до "a программа ... последовательность инструкции"в духе Хао Ван B-машина (курсив в оригинале, ср. Минский (1961), стр. 439).

(Сведение Мински к тому, что он называет «подпрограммой», приводит к 5, а не к 7 инструкциям Пост-Тьюринга. Он не атомизировал Wi0: «Записать символ Si0; перейти в новое состояние Mi0» и Wi1: «Записать символ Si1; перейти в новое состояние Mi1 ". Следующий метод дополнительно атомизирует Wi0 и Wi1; во всем остальном методы идентичны.)

Это сокращение 5-кортежей Тьюринга до инструкций Пост-Тьюринга может не привести к «эффективной» программе Пост-Тьюринга, но оно будет верным исходной программе Тьюринга.

В следующем примере каждый 5-кортеж Тьюринга 2-состояния занятой бобер превращается в

(i) начальный условный "переход" (goto, branch), за которым следует
(ii) 2 инструкции по работе с лентой для случая «0» - «Печать», «Стереть» или «Нет», затем «Влево», «Вправо» или «Нет», а затем
(iii) безусловный «переход» для случая «0» к его следующей инструкции
(iv) 2 инструкции по действиям с лентой для случая «1» - «Печать», «Стереть» или «Нет», затем «Влево», «Вправо» или «Нет», а затем
(v) безусловный "переход" для случая "1" к его следующей инструкции

в общей сложности 1 + 2 + 1 + 2 + 1 = 7 инструкции по состоянию Тьюринга.

Например, состояние Тьюринга «А» занятого бобра с двумя состояниями, записанное в виде двух строк по 5 кортежей, выглядит следующим образом:

Начальная m-конфигурация (состояние Тьюринга)Лента символОперация печатиДвижение лентыОкончательная m-конфигурация (состояние Тьюринга)
А0прB
А1пLB

Таблица представляет собой только одну «инструкцию» Тьюринга, но мы видим, что она состоит из двух строк по 5 кортежей, одна для случая «символ ленты под заголовком = 1», а другая для случая «символ ленты под заголовком = 0». ". Тьюринг наблюдал (Неразрешимый, п. 119), что два левых столбца - «m-конфигурация» и «символ» - представляют текущую «конфигурацию» машины - ее состояние, включая ленту и таблицу в данный момент, - а последние три столбца - ее последующее «поведение». Поскольку машина не может находиться в двух «состояниях» одновременно, машина должна «перейти» либо к одной конфигурации, либо к другой:

Исходная m-конфигурация и символ SОперация печатиДвижение лентыОкончательная м-конфигурация
S = 0 ->P ->R ->B
--> А <
S = 1 ->P ->L ->B

После «ветви конфигурации» (J1 xxx) или (J0 xxx) машина следует одному из двух последующих «поведений». Мы перечисляем эти два поведения в одной строке и пронумеровываем (или маркируем) их последовательно (однозначно). Под каждым прыжком (веткой, перейти) мы помещаем его "номер" перехода (адрес, местоположение):

Начальная m-конфигурация и символ SОперация печатиДвижение лентыОкончательный случай m-конфигурации S = ​​0Операция печатиДвижение лентыОкончательный случай m-конфигурации S = ​​1
Если S = ​​0, то:прB
---> А <
Если S = ​​1, то:пLB
инструкция #1234567
Инструкция Пост-ТьюрингаJ1прJпLJ
переход к инструкции #5BB

Согласно соглашениям машины Пост-Тьюринга, каждая из инструкций Print, Erase, Left и Right состоит из двух действий:

(i) Действие ленты: {P, E, L, R}, затем
(ii) Действие таблицы: переходите к следующей инструкции по порядку.

И, согласно соглашениям машины Пост-Тьюринга, условные «скачки» J0xxx, J1xxx состоят из двух действий:

(i) Действие ленты: посмотрите на символ на ленте под головой
(ii) Действие таблицы: если символ равен 0 (1) и J0 (J1), то перейдите к xxx, иначе перейдите к следующей инструкции в последовательности

И согласно соглашениям машины Пост-Тьюринга безусловный "прыжок" Jxxx состоит из одного действия или, если мы хотим упорядочить последовательность из двух действий:

(i) Действие ленты: посмотрите на символ на ленте под головой
(ii) Действие таблицы: если символ равен 0, перейдите к xxx, иначе, если символ равен 1, перейдите к xxx.

Какие и сколько прыжков необходимы? Безусловный прыжок Jххх просто J0 за которым сразу следует J1 (или наоборот). Ван (1957) также показывает, что требуется только один условный переход, т. Е. Либо J0xxx или J1ххх. Однако из-за этого ограничения на машине становится трудно писать инструкции. Часто используются только два, т.е.

(i) { J0ххх, J1xxx}
(ii) { J1ххх, Jxxx}
(iii) { J0ххх, Jxxx},

но использование всех трех { J0ххх, J1ххх, Jxxx} устраняет лишние инструкции. В примере Busy Beaver с 2 состояниями, который мы используем только { J1ххх, Jххх}.

2-х штатный бобер

Миссия занятой бобер - это напечатать как можно больше перед остановкой. Команда «Печать» записывает 1, команда «Стереть» (не используется в этом примере) записывает 0 (т. Е. То же, что и P0). Лента движется «влево» или «вправо» (т.е. «голова» неподвижна).

Таблица состояний для машины Тьюринга с двумя состояниями занятой бобер:

Лента символТекущее состояние АТекущее состояние B
Написать символПереместить лентуСледующее состояниеНаписать символПереместить лентуСледующее состояние
01рB1LА
11LB1NЧАС

Инструкции для версии Пост-Тьюринга занятого бобра с двумя состояниями: обратите внимание, что все инструкции находятся в одной строке и в последовательности. Это существенное отличие от версии «Тьюринга» и имеет тот же формат, что и так называемая «компьютерная программа»:

Инструкция #123456789101112131415
ИнструкцияJ1прJпLJJ1пLJпNJЧАС
Перейти к #58812115
Метка состояния ТьюрингаАBЧАС

Как вариант, мы можем записать таблицу в виде строки. Использование «разделителей параметров» «:» и разделителей инструкций «,» является полностью нашим выбором и не используется в модели. Условий нет (но см. Бут (1967), стр. 374, и Булос и Джеффри (1974, 1999), стр. 23), где можно найти некоторые полезные идеи о том, как комбинировать условные обозначения диаграммы состояний с инструкциями, т. Е. Использовать стрелки для обозначения место назначения прыжков). В приведенном ниже примере инструкции последовательный начиная с «1», а параметры / «операнды» считаются частью их инструкций / «кодов операций»:

J1: 5, P, R, J: 8, P, L, J: 8, J1: 12, P, L, J1: 1, P, N, J: 15, H

Диаграмма состояний занятого бобра с двумя состояниями (маленький рисунок, правый угол) преобразуется в эквивалентную машину Пост-Тьюринга с заменой 7 инструкций Пост-Тьюринга на каждое состояние «Тьюринга». Инструкция HALT добавляет 15-е состояние:

Busy Beaver с 2 состояниями работает на P – T-машине

Показан "запуск" занятого бобра с двумя состояниями со всеми промежуточными этапами машины Пост-Тьюринга:

Busy Beaver с 2 состояниями работает на P – T-машине

Примечания

  1. ^ Раджендра Кумар, Теория автоматов, Tata McGraw-Hill Education, 2010 г., стр. 343.
  2. ^ а б В его главе XIII Вычислимые функции, Клини принимает модель Поста; В модели Клини используется пробел и один символ «метка подсчета» (Kleene p. 358), «подход, в некоторых отношениях более близкий к Post 1936. Post 1936 рассматривал вычисления с двусторонней бесконечной лентой и только одним символом» (Kleene p. 361). Клини отмечает, что трактовка Поста привела к дальнейшему сокращению «акта Тьюринга» до «атомных актов» (Клини, стр. 357) (Клини, стр. 379). Как описано Клини, «Акт Тьюринга» представляет собой объединенные 3 (последовательных по времени) действия, указанных в строке в таблице Тьюринга: (i) print-symbol / erase / do-nothing, за которым следует (ii) move-tape-left / move-tape-right / do-nothing, за которым следует (iii) test-tape-go-to-next-command: например «s1Rq1» означает «Напечатать символ« », затем переместить ленту вправо, затем, если символ ленты« ¤ », то перейти в состояние q1». (См. Пример Клини на стр. 358.) Клини замечает, что Пост разделил эти 3-действия на два типа 2-действий. Первый тип - это действие «печать / стирание», второй - действие «перемещение ленты влево / вправо»: (1.i) символ печати / стирание / ничего не делать, за которым следует (1.ii) тестовая лента- перейти к следующей инструкции, ИЛИ (2.ii) move-tape-left / move-tape-right / ничего не делать, за которым следует (2.ii) test-tape-go-to-next-command. Но Клини замечает, что пока
    «Действительно, можно было бы утверждать, что действие машины Тьюринга уже является составным и психологически состоит из печати и изменения состояния ума, за которым следует движение и другое состояние ума [, и] Пост 1947, таким образом, разделяет акт Тьюринга на два; у нас нет здесь, в первую очередь потому, что это экономит место в машинных столах, чтобы не делать этого »(Kleene p. 379)
    На самом деле трактовка Поста (1936) неоднозначна; после обоих (1.1) и (2.1) может следовать «(.ii) перейти к следующей инструкции в числовой последовательности». Это представляет собой дальнейшее разделение на три типа инструкций: (1) символ печати / стирание / ничего не делать, затем переход к следующей инструкции в числовой последовательности, (2) перемещение ленты влево / перемещение ленты -right / ничего не делать, затем перейти к следующей инструкции в числовой последовательности (3) тестовая лента затем перейти к инструкции xxx иначе перейти к следующей инструкции в числовой последовательности .

Рекомендации

  • Стивен С. Клини, Введение в мета-математику, издательство North-Holland Publishing Company, Нью-Йорк, 10-е издание, 1991 г., впервые опубликовано в 1952 г. Глава XIII - прекрасное описание машин Тьюринга; Клини использует в своем описании модель, похожую на Пост, и допускает, что модель Тьюринга может быть подвергнута дальнейшему дроблению, см. Сноску 1.
  • Мартин Дэвис, редактор: Неразрешимые, основные статьи о неразрешимых предложениях, неразрешимых проблемах и вычислимых функциях, Raven Press, New York, 1965. Статьи включают статьи Гёдель, Церковь, Россер, Клини, и Опубликовать.
  • Мартин Дэвис, «Что такое вычисление», в Математика сегодня, Линн Артур Стин, Vintage Books (Random House), 1980. Замечательная маленькая статья, возможно, лучшая из когда-либо написанных о машинах Тьюринга. Дэвис сводит машину Тьюринга к гораздо более простой модели, основанной на модели вычислений Поста. Включает небольшую биографию Эмиля Поста.
  • Мартин Дэвис, Вычислимость: с заметками Барри Джейкобса, Институт математических наук Куранта, Нью-Йоркский университет, 1974.
  • Мартин Дэвис, Рон Сигал, Элейн Дж. Вейкер, (1994) Вычислимость, сложность и языки: основы теоретической информатики - 2-е издание, Academic Press: Harcourt, Brace & Company, Сан-Диего, 1994 г. ISBN  0-12-206382-1 (Первое издание, 1983 г.).
  • Фред Хенни, Введение в вычислимость, Аддисон – Уэсли, 1977.
  • Марвин Мински, (1961), Рекурсивная неразрешимость проблемы Поста о «теге» и других разделов теории машин Тьюринга, Анналы математики, Vol. 74, No. 3, ноябрь 1961 г.
  • Роджер Пенроуз, Новый разум императора: о компьютерах, разуме и законах физики, Oxford University Press, Oxford England, 1990 (с исправлениями). Ср. Глава 2, «Алгоритмы и машины Тьюринга». Чрезмерно сложное представление (см. Статью Дэвиса для лучшей модели), но полное представление машин Тьюринга и проблема остановки, и Черч лямбда-исчисление.
  • Хао Ван (1957): «Вариант теории вычислительных машин Тьюринга», Журнал Ассоциации вычислительной техники (JACM) 4, 63–92.