Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Машина Тьюринга является гипотетическим вычислительное устройство, первый зачат Алан Тьюринг в 1936 году машины Тьюринга манипулировать символами на потенциально бесконечной полосы ленты в соответствии с конечной таблицей правил, и они обеспечивают теоретические основы для понятия алгоритма компьютера.

Хотя ни одна из следующих моделей не продемонстрировала большей мощности, чем однопленочная, односторонняя бесконечная, многосимвольная модель машины Тьюринга, их авторы определили и использовали их для исследования вопросов и решения проблем более легко, чем они могли бы. если бы они остались с Тьюринга -machine модель.

Машины, эквивалентные модели машины Тьюринга [ править ]

Эквивалентность Тьюринга

Можно показать, что многие машины, которые, как можно было бы подумать, обладают большими вычислительными возможностями, чем простая универсальная машина Тьюринга, не обладают большей мощностью. [1] Они могут вычислять быстрее, возможно, использовать меньше памяти, или их набор инструкций может быть меньше, но они не могут выполнять вычисления более мощно (то есть больше математических функций). ( Тезис Черча-Тьюринга предполагает, что это правда: все, что можно «вычислить», можно вычислить с помощью некоторой машины Тьюринга.)

Последовательные машинные модели

Все нижеперечисленное называется «последовательными моделями машин», чтобы отличать их от «параллельных машинных моделей». [2]

Ленточные машины Тьюринга [ править ]

Тьюринг -machine модели

А-машина Тьюринга (как он ее называл) была левосторонней, правосторонней - бесконечной. Он предоставил символы əə, чтобы отметить левый конец. Допускалось ограниченное количество символов ленты. Инструкции (если это универсальная машина), а также «вход» и «выход» были написаны только на «F-квадратах», а маркеры должны были появиться на «E-квадратах». По сути, он разделил свою машину на две ленты, которые всегда двигались вместе. Инструкции представлены в табличной форме, называемой «кортежами из 5 элементов», и не выполняются последовательно.

Однопленочные машины с ограниченными символами и / или ограниченными инструкциями [ править ]

Следующие модели представляют собой однопленочные машины Тьюринга, но ограничены (i) ограниченными ленточными символами {mark, blank} и / или (ii) последовательными компьютерными инструкциями и / или (iii) полностью атомизированными машинными действиями.

Модель вычислений "Формулировка 1" публикации [ править ]

Эмиль Пост в независимом описании вычислительного процесса сократил разрешенные символы до эквивалентного двоичного набора меток на ленте {"mark", "blank" = not_mark}. Он изменил понятие «ленты» с односторонней бесконечности вправо на бесконечный набор комнат, каждая с листом бумаги в обоих направлениях. Он разделил 5-кортежи Тьюринга на 4-кортежи - инструкции движения отдельно от инструкций печати / стирания. Хотя его модель 1936 года неоднозначна по этому поводу, модель Поста 1947 года не требовала последовательного выполнения инструкций.

Его чрезвычайно простая модель может имитировать любую машину Тьюринга, и хотя в его Формулировке 1 1936 года не используются слова «программа» или «машина», это фактически формулировка очень примитивного программируемого компьютера и связанного с ним языка программирования , с прямоугольниками, действующими как неограниченная память битовых строк и набор инструкций, составляющих программу.

Машины Ван [ править ]

В влиятельной статье Хао Ван свел « формулировку 1 » Поста к машинам, которые все еще используют двустороннюю бесконечную двоичную ленту, но чьи инструкции проще - являются «атомарными» компонентами инструкций Поста - и по умолчанию выполняются последовательно (например, "компьютерная программа"). Его заявленная основная цель состояла в том, чтобы предложить в качестве альтернативы теории Тьюринга теорию, которая «более экономична в основных операциях». Его результатами были «программные формулировки» множества таких машин, включая 5-командную машину Ванга W с набором команд.

{SHIFT-LEFT, SHIFT-RIGHT, MARK-SQUARE, ERASE-SQUARE, JUMP-IF-SQUARE-MARKED-to xxx}

и его наиболее сильно сокращенная 4- командная B-машина Ванга («B» для «базового») с набором команд

{SHIFT-LEFT, SHIFT-RIGHT, MARK-SQUARE, JUMP-IF-SQUARE-MARKED-to xxx}

в котором нет даже инструкции ERASE-SQUARE.

Позже многие авторы представили варианты машин, о которых говорил Ван:

Мински развил идею Ванга с его версией (многолентой) модели «встречной машины», которая позволяла сдвигать-ВЛЕВО и СДВИГ-ВПРАВО для отдельных головок, но не печатала вообще. [3] В этом случае ленты должны быть с левым концом, каждый конец отмечен единственной «меткой» для обозначения конца. Он смог сократить это до одной ленты, но за счет введения движения нескольких лент и квадратов, эквивалентного умножению и делению, а не гораздо более простому {SHIFT-LEFT = DECREMENT, SHIFT-RIGHT = INCREMENT}.

Дэвис, добавив явную инструкцию HALT к одной из машин, обсуждаемых Ван, использовал модель с набором инструкций

{SHIFT-LEFT, SHIFT-RIGHT, ERASE, MARK, JUMP-IF-SQUARE-MARKED-to xxx, JUMP-to xxx, HALT}

а также рассматривались версии с ленточными алфавитами размером больше 2.

Теоретический машинный язык Бема P » [ править ]

В соответствии с проектом Ванга по поиску теории, эквивалентной Тьюрингу, «экономичной в основных операциях» и стремящейся избежать безусловных скачков, заметным теоретическим языком является язык P с 4 инструкциями, представленный Коррадо Бемом в 1964 году - первый «GOTO -без «императивного» языка структурированного программирования быть доказанным по Тьюрингу .

Многоленточные машины Тьюринга [ править ]

В практическом анализе часто используются различные типы многоленточных машин Тьюринга. Многоленточные машины похожи на однопленочные, но существует некоторое постоянное k независимых лент.

Детерминированные и недетерминированные машины Тьюринга [ править ]

Если в таблице действий есть не более одной записи для каждой комбинации символа и состояния, тогда машина является «детерминированной машиной Тьюринга» (DTM). Если таблица действий содержит несколько записей для комбинации символа и состояния, тогда машина является «недетерминированной машиной Тьюринга» (NDTM). Оба они вычислительно эквивалентны, то есть любой NDTM можно превратить в DTM (и наоборот ) , хотя обычно они имеют разное время выполнения. Это можно доказать с помощью построения.

Забывчивые машины Тьюринга [ править ]

Невидимая машина Тьюринга - это машина Тьюринга, в которой для каждой длины ввода движение различных головок является фиксированной функцией времени, независимо от ввода. Другими словами, существует заранее определенная последовательность, в которой различные ленты сканируются, продвигаются и записываются. Фактические значения, записываемые на ленту на любом этапе, могут по-прежнему отличаться для каждого ввода такой длины. Пиппенгер и Фишер показали, что любое вычисление, которое может быть выполнено многоленточной машиной Тьюринга за n шагов, может быть выполнено зашаговой двухленточной машиной Тьюринга . [4]

Зарегистрировать модели машин [ править ]

Питер ван Эмде Боас объединяет все машины этого типа в один класс - «регистровые машины». [2] Однако исторически в литературе также называли наиболее примитивного представителя этой группы, то есть «счетную машину» - «регистровую машину». А самый примитивный вариант «счетной машины» иногда называют «машиной Минского».

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

Регистровая машина примитивной модели, по сути, представляет собой двухленточную двухсимвольную машину Пост-Тьюринга с ограниченным поведением, поэтому ее ленты действуют как простые «счетчики».

Ко времени Мелзака, Ламбека и Мински понятие «компьютерная программа» произвело другой тип простой машины с множеством левых лент, вырезанных из ленты Пост-Тьюринга. Во всех случаях модели допускают использование только двух символов ленты {метка, пробел}. [3]

Некоторые версии представляют положительные целые числа только в виде строк / стопки меток, разрешенных в «регистре» (т. Е. С левой стороны ленты), и пустой ленты, представленной счетчиком «0». Минский исключил инструкцию ПЕЧАТЬ за счет того, что снабдил свою модель обязательной одиночной отметкой в ​​левом конце каждой ленты. [3]

В этой модели несимметричные ленты-регистры рассматриваются как «счетчики», их инструкции ограничиваются только двумя (или тремя, если команда TEST / DECREMENT атомизируется). Вот два общих набора инструкций:

(1): {INC (r), DEC (r), JZ (r, z)}, т.е.
{INCrement содержимое регистра №r; Укажите содержимое регистра №r; ЕСЛИ содержимое # r = Zero THEN Перейти к инструкции #z}
(2): {CLR (r); INC (r); JE (r i , r j , z)}, т.е.
{CLeaR содержимое регистра r; Увеличить содержание r; сравнить содержимое r i с r j, и если равно, то перейти к инструкции z}

Хотя его модель сложнее, чем это простое описание, модель «гальки» Мелзака расширила это понятие «счетчик», чтобы разрешить сложение и вычитание нескольких гальк.

Модель машины с произвольным доступом (RAM) [ править ]

Мелзак обнаружил пару серьезных недостатков в своей модели регистра / контрмашины: [5] (i) без формы косвенной адресации он не смог бы «легко» показать, что модель эквивалентна Тьюрингу , (ii) программа и регистры находились в разных «пространствах», поэтому самомодификация программ была бы непростой задачей. Когда Мелзак добавил в свою модель косвенную адресацию, он создал модель машины с произвольным доступом.

(Однако с помощью гёделевской нумерации инструкций Мински предложил доказательство того, что с такой нумерацией общерекурсивные функции действительно возможны; он предлагает доказательство того, что μ-рекурсия действительно возможна [3] ).

В отличие от модели RASP, модель RAM не позволяет действиям машины изменять ее инструкции. Иногда модель работает только регистр-регистр без аккумулятора, но в большинстве моделей, похоже, есть аккумулятор.

Ван Эмде Боас делит различные модели RAM на несколько подтипов: [2]

  • SRAM, «преемник RAM» только с одной арифметической инструкцией, преемник (INCREMENT h). Остальные включают «CLEAR h» и ЕСЛИ равенство между регистрами THEN переход к xxx.
  • RAM: стандартная модель с добавлением и вычитанием
  • MRAM: оперативная память, дополненная умножением и делением
  • BRAM, MBRAM: побитовые логические версии RAM и MRAM.
  • N ****: недетерминированные версии любого из вышеперечисленных с буквой N перед именем.

Модель машины с хранимой программой с произвольным доступом (RASP) [ править ]

RASP - это ОЗУ, в котором инструкции хранятся вместе с данными в одном и том же «пространстве», то есть в последовательности регистров. Понятие RASP было описано, по крайней мере, еще в Kiphengst. В его модели была «мельница» - аккумулятор, но теперь инструкции были в регистрах с данными - так называемая архитектура фон Неймана . Когда RASP имеет чередующиеся четные и нечетные регистры - четный хранит «код операции» (инструкция), а нечетный - его «операнд» (параметр), тогда косвенная адресация достигается простым изменением операнда инструкции. [6]

Исходная модель RASP Элгота и Робинсона имела только три инструкции в стиле модели регистровой машины [7], но они поместили их в регистровое пространство вместе со своими данными. (Здесь COPY заменяет CLEAR, когда один регистр, например, «z» или «0» начинается с и всегда содержит 0. Этот трюк не является необычным. Единица 1 в регистре «unit» или «1» также полезна.)

{INC (r), COPY (r i , r j ), JE (r i , r i , z)}

Модели RASP допускают как косвенную, так и прямую адресацию; некоторые также допускают «немедленные» инструкции, например, «Загрузить аккумулятор с константой 3». Инструкции могут иметь строго ограниченный набор, такой как следующие 16 инструкций Хартманиса. [8] В этой модели используется аккумулятор A. Мнемоника - это те, которые использовали авторы (их CLA - это "аккумулятор загрузки" с константой или из регистра; STO - "аккумулятор хранения"). Их синтаксис следующий, за исключением переходов: «n, <n>, <<n>>» для «непосредственного», «прямого» и «косвенного»). Переходы через две «инструкции передачи» TRA - безусловный переход через прямо «n» или косвенно «<n>» заклинивание содержимого регистра n в счетчик команд, TRZ (условный переход, если Accumulator равен нулю, так же, как TRA):

{ДОБАВИТЬ n, ДОБАВИТЬ <n>, ДОБАВИТЬ << n >>, SUB n, SUB <n>, SUB << n >>, CLA n, CLA <n>, CLA << n >>, STO <n> , STO << n >>, TRA n, TRA <n>, TRZ n, TRA <n>, HALT}

Модель машины указателя [ править ]

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

Машины с вводом и выводом [ править ]

Любая из вышеперечисленных ленточных машин может быть оборудована входными и выходными лентами; любая из вышеперечисленных машин на основе регистров может быть оснащена специальными регистрами ввода и вывода. Например, модель указательной машины Шёнхаге имеет две инструкции, называемые « вход λ 0 , λ 1 » и « выход β ».

Сложно исследовать сублинейную пространственную сложность на многоленточных машинах с традиционной моделью, потому что вход размера n уже занимает пространство n . Таким образом, чтобы изучить небольшие классы DSPACE , мы должны использовать другую модель. В некотором смысле, если мы никогда не «записываем» на входную ленту, мы не хотим заряжать себя за это пространство. И если мы никогда не «читаем» с нашей выходной ленты, мы не хотим заряжать себя за это пространство.

Мы решаем эту проблему, вводя k -струнную машину Тьюринга с вводом и выводом. Это то же самое, что и обычная k- струнная машина Тьюринга, за исключением того, что функция перехода δ ограничена так, что входная лента никогда не может быть изменена, а выходная головка никогда не может перемещаться влево. Эта модель позволяет нам определять детерминированные пространственные классы меньшие, чем линейные. Машины Тьюринга с вводом и выводом также имеют такую ​​же временную сложность, как и другие машины Тьюринга; по словам Пападимитриу 1994, Предложение 2.2:

Для любой k -струнной машины Тьюринга M, работающей в пределах времени, существует -струнная машина Тьюринга M ' с входом и выходом, которая работает в пределах времени .

k -струнные машины Тьюринга с вводом и выводом могут использоваться в формальном определении ресурса сложности DSPACE . [9]

Другие эквивалентные машины и методы [ править ]

  • Многомерная машина Тьюринга: Например, модель с Шёнхагом использует четыре команды головного движения { N Orth, S outh, E AST, W EST}. [10]
  • Однолента, многоголовочная машина Тьюринга: в доказательстве неразрешимости «проблемы тегов» Мински, Шепердсон и Стерджис описали машины с одной лентой, которая могла бы писать вдоль ленты одной головкой и читать дальше вдоль ленты другой. . [11] [12]
  • Алгоритм Маркова - еще одна удивительно простая вычислительная модель, основанная на перезаписи строк, эквивалентная машинам Тьюринга.
  • Лямбда-исчисление
  • Автомат очереди

Ссылки [ править ]

  1. ^ Джон Хопкрофт и Джеффри Уллман (1979). Введение в теорию автоматов, языки и вычисления (1-е изд.). Эддисон – Уэсли, штат Массачусетс, штат Массачусетс, ISBN 0-201-02988-X.
  2. ^ a b c Питер ван Эмде Боас , Модели машин и симуляторы ; Ян ван Леувен , изд. Справочник по теоретической информатике. Том A: Алгоритмы и сложность , стр. 3-66, MIT Press / Elsevier, 1990. ISBN 0-262-72014-0 (том A). QA76.H279 1990. 
  3. ^ a b c d Марвин Мински , Вычисления: конечные и бесконечные машины , Prentice-Hall, Inc., Нью-Джерси, 1967. См. главу 8, раздел 8.2 «Неразрешимость проблемы остановки».
  4. ^ Пиппенгер, Николас ; Фишер, Майкл Дж (1979), "отношения между" Меры сложности, J ACM , 26 (3): 361-381, DOI : 10,1145 / 322123,322138 CS1 maint: discouraged parameter (link)
  5. ^ ZA Melzak , Неформальный арифметический подход к вычислимости и вычислениям , Canadian Mathematical Bulletin, vol. 4, вып. 3. Сентябрь 1961 г., стр. 279–293.
  6. ^ Стивен А. Кук и Роберт А. Рекхоу (1972), Машины с произвольным доступом с ограничением по времени , Журнал компьютерных систем науки 7 (1973), 354–375.
  7. ^ Кальвин Элгот и Абрахам Робинсон (1964), Машины с хранимыми программами с произвольным доступом, подход к языкам программирования , Журнал Ассоциации вычислительной техники, Vol. 11, № 4 (октябрь 1964 г.), стр. 365–399.
  8. ^ Дж. Хартманис (1971), "Вычислительная сложность машин, хранимых с произвольным доступом," Теория математических систем 5, 3 (1971) стр. 232–245.
  9. Христос Пападимитриу (1993). Вычислительная сложность (1-е изд.). Эддисон Уэсли. ISBN 0-201-53082-1. Глава 2: Машины Тьюринга, стр. 19–56.
  10. ^ А. Шёнхаг (1980), хранение Модификация машина , Общество промышленного и прикладная математика SIAM J. вычислы. Vol. 9, No. 3, август 1980 г.
  11. Марвин Мински (15 августа 1960). "Рекурсивная неразрешимость проблемы Поста" тега "и других тем теории машин Тьюринга". Анналы математики . Анналы математики. 74 (3): 437–455. DOI : 10.2307 / 1970290 . JSTOR 1970290 . 
  12. ^ Джон С. Шепердсон и Х. Стерджис получили в декабре 1961 г. « Вычислимость рекурсивных функций» , журнал Ассоциации вычислительной техники (JACM) 10: 217-255, 1963 г.