Jump to content

Универсальная машина Тьюринга

(Перенаправлено с U-machine )

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

Я утверждаю, что эти операции включают в себя все те операции, которые используются при вычислении числа. [3]

Алан Тьюринг представил идею такой машины в 1936–1937 годах.

Введение

[ редактировать ]

Дэвис приводит убедительный аргумент в пользу того, что концепция Тьюринга о том, что сейчас известно как «компьютер с хранимой программой», о размещении «таблицы действий» — инструкций для машины — в той же «памяти», что и входные данные, сильно повлияла на Джона. Концепция фон Неймана о первом американском компьютере с дискретными символами (а не аналоговом) — EDVAC . Дэвис цитирует журнал Time по этому поводу, что «каждый, кто стучит по клавиатуре… работает над воплощением машины Тьюринга» и что «Джон фон Нейман [построен] на основе работ Алана Тьюринга». [4]

Дэвис утверждает, что компьютер Тьюринга «Автоматическая вычислительная машина » (ACE) «предвосхитил» понятия микропрограммирования ( микрокода ) и RISC- процессоров. [5] Кнут цитирует работу Тьюринга над компьютером ACE как разработку «аппаратного обеспечения для облегчения связи подпрограмм»; [6] Дэвис также называет эту работу использованием Тьюрингом аппаратного «стека». [7]

Как машина Тьюринга способствовала созданию компьютеров , так и UTM поощряла развитие молодых компьютерных наук . Ранний, если не первый, ассемблер был предложен «молодым талантливым программистом» для EDVAC. [8] «Первая серьезная программа фон Неймана… [была] просто эффективной сортировкой данных». [9] Кнут отмечает, что возврат из подпрограммы, встроенный в саму программу, а не в специальные регистры, принадлежит фон Нейману и Гольдстайну. [б] Кнут далее утверждает, что

Можно сказать, что первой интерпретационной процедурой была «универсальная машина Тьюринга»... Интерпретационные процедуры в общепринятом смысле были упомянуты Джоном Мочли в его лекциях в Школе Мура в 1946 году… Тьюринг также принимал участие в этом развитии; Под его руководством были написаны системы интерпретации для компьютера Pilot ACE. [10]

Дэвис кратко упоминает операционные системы и компиляторы как результаты концепции программы как данных. [11]

Математическая теория

[ редактировать ]

Благодаря такому кодированию таблиц действий в виде строк машины Тьюринга в принципе становятся возможными отвечать на вопросы о поведении других машин Тьюринга. Однако большинство этих вопросов неразрешимы , а это означает, что рассматриваемую функцию невозможно вычислить механически. Например, в оригинальной статье Тьюринга было показано, что проблема определения того, остановится ли произвольная машина Тьюринга на определенном входе или на всех входах, известная как проблема остановки , в целом неразрешима. Теорема Райса показывает, что любой нетривиальный вопрос о производительности машины Тьюринга неразрешим.

Универсальная машина Тьюринга может вычислить любую рекурсивную функцию , определить любой рекурсивный язык и принять любой рекурсивно перечислимый язык . Согласно тезису Чёрча-Тьюринга , проблемы, решаемые универсальной машиной Тьюринга, — это именно те проблемы, которые можно решить с помощью алгоритма или эффективного метода вычислений , при любом разумном определении этих терминов. По этим причинам универсальная машина Тьюринга служит стандартом для сравнения вычислительных систем, а система, которая может имитировать универсальную машину Тьюринга, называется полной по Тьюрингу .

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

Эффективность

[ редактировать ]

Без ограничения общности можно предположить, что входные данные машины Тьюринга имеют алфавит {0, 1}; любой другой конечный алфавит может быть закодирован с помощью {0, 1}. Поведение машины Тьюринга M определяется ее функцией перехода. Эту функцию также можно легко закодировать как строку в алфавите {0, 1}. Размер алфавита M , количество лент в нем и размер пространства состояний можно вывести из таблицы функции перехода. Выделенные состояния и символы могут быть идентифицированы по их положению, например, первые два состояния могут по соглашению быть состояниями запуска и остановки. Следовательно, каждую машину Тьюринга можно закодировать как строку в алфавите {0, 1}. Кроме того, мы утверждаем, что каждая недопустимая кодировка сопоставляется с тривиальной машиной Тьюринга, которая немедленно останавливается, и что каждая машина Тьюринга может иметь бесконечное количество кодировок, дополняя кодировку произвольным количеством (скажем) единиц в конце, как и комментарии. работать на языке программирования. Неудивительно, что мы можем добиться такого кодирования, учитывая существование Число Гёделя и вычислительная эквивалентность машин Тьюринга и µ-рекурсивных функций . Аналогично, наша конструкция сопоставляет каждой двоичной строке α машину Тьюринга M α .

Начав с приведенной выше кодировки, в 1966 году Ф. К. Хенни и Р. Э. Стернс показали, что если дана машина Тьюринга M α , которая останавливается на входе x за N шагов, то существует многоленточная универсальная машина Тьюринга, которая останавливается на входах α , x (заданных на разные ленты) в CN log N , где C — константа, специфичная для машины, которая не зависит от длины ввода x , но зависит от размера алфавита M , количества лент и количества состояний. По сути, это моделирование с использованием Дональда Кнута нотации Big O . [12] Соответствующий результат для пространственной сложности, а не для временной сложности, состоит в том, что мы можем моделировать таким образом, чтобы CN . на любом этапе вычислений использовалось не более ячеек моделирование. [13]

Самые маленькие машины

[ редактировать ]

Когда Алан Тьюринг придумал идею универсальной машины, он имел в виду простейшую вычислительную модель, достаточно мощную, чтобы вычислить все возможные функции, которые можно вычислить. Клод Шеннон впервые явно поставил вопрос о поиске минимально возможной универсальной машины Тьюринга в 1956 году. Он показал, что двух символов достаточно, пока используется достаточное количество состояний (или наоборот), и что всегда можно обменять состояния на символы. Он также показал, что не может существовать никакой универсальной машины Тьюринга с одним состоянием.

Марвин Мински открыл универсальную машину Тьюринга с 7 состояниями и 4 символами в 1962 году, используя системы с 2 тегами . Другие небольшие универсальные машины Тьюринга с тех пор были найдены Юрием Рогожиным и другими путем расширения этого подхода к моделированию системы тегов. Если обозначить через ( m , n ) класс UTM с m состояниями и n символами, то будут найдены следующие кортежи: (15, 2), (9, 3), (6, 4), (5, 5), (4, 6), (3, 9) и (2, 18). [14] [15] [16] Машина Рогожина (4, 6) использует всего 22 инструкции, и неизвестен стандартный UTM меньшей сложности описания.

Однако обобщение стандартной модели машины Тьюринга допускает еще меньшие UTM. Одним из таких обобщений является разрешение бесконечно повторяющегося слова на одной или обеих сторонах входных данных машины Тьюринга, что расширяет определение универсальности и известно как «полуслабая» или «слабая» универсальность соответственно. Небольшие слабо универсальные машины Тьюринга, имитирующие клеточный автомат по Правилу 110, были даны для пар состояние-символ (6, 2), (3, 3) и (2, 4). [17] Доказательство универсальности трехсимвольной машины Тьюринга с двумя состояниями Вольфрама еще больше расширяет понятие слабой универсальности, допуская определенные непериодические начальные конфигурации. Другие варианты стандартной модели машины Тьюринга, которые дают небольшие UTM, включают машины с несколькими лентами или лентами нескольких измерений, а также машины, связанные с конечным автоматом .

Машины без внутренних состояний

[ редактировать ]

Если в машине Тьюринга разрешено несколько головок, то внутренние состояния не требуются; как «состояния» могут быть закодированы на ленте. Например, рассмотрим ленту с 6 цветами: 0, 1, 2, 0А, 1А, 2А. Рассмотрим ленту типа 0,0,1,2,2A,0,2,1, где трехголовая машина Тьюринга расположена над тройкой (2,2A,0). Затем правила преобразуют любую тройку в другую тройку и перемещают тройку влево или вправо. Например, правила могут преобразовать (2,2A,0) в (2,1,0) и переместить голову влево. Таким образом, в этом примере машина действует как трехцветная машина Тьюринга с внутренними состояниями A и B (не обозначаемыми буквами). Случай с двухголовой машиной Тьюринга очень похож. Таким образом, двухголовая машина Тьюринга может быть универсальной с 6 цветами. Неизвестно, какое наименьшее количество цветов необходимо для многоголовочной машины Тьюринга и возможна ли двухцветная универсальная машина Тьюринга с несколькими головками. Это также означает, что правила перезаписи являются полными по Тьюрингу, поскольку тройные правила эквивалентны правилам перезаписи. Расширяя ленту до двух измерений с головкой, отбирающей букву и ее 8 соседей, потребуется только 2 цвета, например, цвет можно закодировать в вертикальном тройном шаблоне, например 110.

Кроме того, если расстояние между двумя головками является переменным (лента имеет «провисание» между головками), то она может имитировать любую систему тегов Post , некоторые из которых являются универсальными. [18]

Пример кодирования

[ редактировать ]

Для тех, кто возьмется за разработку UTM точно так, как указал Тьюринг, см. статью Дэвиса в Коупленде (2004) . Дэвис исправляет ошибки в оригинале и показывает, как будет выглядеть образец. Он успешно провел (несколько упрощенное) моделирование.

Следующий пример взят из работы Тьюринга (1937) . Подробнее об этом примере см. в разделе Примеры машин Тьюринга .

Тьюринг использовал семь символов { A, C, D, R, L, N, ; } для кодирования каждого кортежа из 5 элементов; как описано в статье Машина Тьюринга , его 5-кортежи бывают только типов N1, N2 и N3. Номер каждой « m -конфигурации» (команды, состояния) представлен буквой «D», за которой следует одинарная строка из букв «А», например «q3» = DAAA. Аналогичным образом он кодирует пробелы символов как «D», символ «0» как «DC», символ «1» как DCC и т. д. Символы «R», «L» и «N» остаются как есть.

После кодирования каждый пятикортеж «собирается» в строку в порядке, показанном в следующей таблице:

Текущая м-конфигурация Символ ленты Операция печати Лента-движение Окончательная м-конфигурация Текущий код m-конфигурации Код символа ленты Код операции печати Код движения ленты Окончательный код m-конфигурации 5-кортежный ассемблерный код
q1 пустой Р0 Р кв2 И Д округ Колумбия Р ДАА ДАДДКРДАА
кв2 пустой И Р q3 ДАА Д Д Р ДААА ДАДААААААААААААААААА
q3 пустой П1 Р q4 ДААА Д ДКК Р ДА ДААДДККРДААААА
q4 пустой И Р q1 ДА Д Д Р И НАВОДНЕНИЕ

Наконец, коды для всех четырех кортежей из пяти частей объединяются в код, начинающийся с ";" и разделены знаком ";" то есть:

; ДАДДКРДАА ; ПАПОЧКА ; ДААДДККРДААААА ; НАВОДНЕНИЕ

Этот код он поместил на чередующиеся квадраты — «F-квадраты», оставив «E-квадраты» (те, которые подлежат стиранию) пустыми. Окончательная сборка кода на ленте для U-машины состоит из размещения двух специальных символов («e») один за другим, затем кода, разделенного на чередующиеся квадраты, и, наконец, символа с двойным двоеточием « :: » (пробелы здесь отмечены знаком «.» для ясности):

э-э. ; .DADDCRDAA ; .ДААДДРДААА ; .DAAADDCCRDAAAA ; .DAAAADDRDA :: ......

Таблица действий U-машины (таблица переходов состояний) отвечает за декодирование символов. Таблица действий Тьюринга отслеживает свое место с помощью маркеров «u», «v», «x», «y», «z», помещая их в «Е-квадраты» справа от «отмеченного символа» - например , чтобы отметить текущую инструкцию, z ставится справа от ";" x сохраняет свое место по отношению к текущей DAA «m-конфигурации». Таблица действий U-машины будет перемещать эти символы (стирать их и размещать в разных местах) по мере выполнения вычислений:

э-э. ; .DADDCRDAA ; z Д.АА x Д.ДРДААА ; .DAAADDCCRDAAAA ; .DAAAADDRDA :: ......

Таблица действий Тьюринга для его U-машины очень сложна.

Роджер Пенроуз приводит примеры способов кодирования инструкций для универсальной машины, используя только двоичные символы { 0, 1 } или { пробел, отметка | }. Пенроуз идет дальше и записывает весь код своей U-машины. Он утверждает, что это действительно U-машинный код, огромное число, занимающее почти две полные страницы, состоящие из единиц и нулей. [19]

Асперти и Риччиотти описали многоленточный UTM, определяемый путем составления элементарных машин с очень простой семантикой, а не путем явного указания полной таблицы действий. Этот подход был достаточно модульным, чтобы позволить им формально доказать корректность машины в помощнике по доказательству Matita . [20]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. Из стенограммы лекции, приписываемой Джону фон Нейману , цитируемой Коуплендом в Copeland & Fan (2023) .
  2. ^ В частности: Беркс, Голдстайн и фон Нейман (1971) [1946].

Оригинал статьи и исправления

[ редактировать ]
  • Тьюринг, AM (1937). «О вычислимых числах с применением к проблеме Entscheidungs» (PDF) . Труды Лондонского математического общества . 2. 42 (1): 230–265. дои : 10.1112/plms/s2-42.1.230 .
  • Тьюринг, AM (1938). «О вычислимых числах с применением к проблеме Entscheidungs: исправление». Труды Лондонского математического общества . 2. 43 (6): 544–6. дои : 10.1112/plms/s2-43.6.544 .

Другие цитируемые работы

[ редактировать ]

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4f4d54e074e5da466f590c22bf35da13__1717955100
URL1:https://arc.ask3.ru/arc/aa/4f/13/4f4d54e074e5da466f590c22bf35da13.html
Заголовок, (Title) документа по адресу, URL1:
Universal Turing machine - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)