машина Тьюринга


Машина Тьюринга — это математическая модель вычислений , определяющая абстрактную машину [1] , которая манипулирует символами на полосе ленты в соответствии с таблицей правил. [2] Несмотря на простоту модели, для любого компьютерного алгоритма можно построить машину Тьюринга, способную реализовать логику этого алгоритма. [3]

Машина работает на бесконечной [4] ленте памяти, разделенной на дискретные «ячейки». [5] Машина позиционирует свою «голову» над ячейкой и «считывает» или «сканирует» [6] символ в ней. Затем, основываясь на символе и собственном текущем состоянии машины в «конечной таблице» [7] заданных пользователем инструкций, машина сначала записывает символ (например, цифру или букву из конечного алфавита) в ячейку ( некоторые модели допускают стирание символов или запрет на запись), [8] , затем перемещают ленту на одну ячейку влево или вправо (некоторые модели не допускают движения, некоторые модели перемещают головку), [9]затем, основываясь на наблюдаемом символе и собственном состоянии машины в таблице, либо переходит к другой инструкции, либо останавливает вычисления. [10]

Машина Тьюринга была изобретена в 1936 году Аланом Тьюрингом [11] [12] , который назвал ее «а-машиной» (автомат). [13] Используя эту модель, Тьюринг смог ответить отрицательно на два вопроса:

Таким образом, предоставив математическое описание очень простого устройства, способного к произвольным вычислениям, он смог доказать свойства вычислений вообще — и, в частности, невычислимость Entscheidungsproblem («проблема принятия решения») . [16]

Машины Тьюринга доказали существование фундаментальных ограничений мощности механических вычислений. [17] Хотя они могут выражать произвольные вычисления, их минималистский дизайн делает их непригодными для вычислений на практике: компьютеры реального мира основаны на других конструкциях, которые, в отличие от машин Тьюринга, используют оперативную память .

Полнота по Тьюрингу — это способность системы инструкций имитировать машину Тьюринга. Язык программирования, полный по Тьюрингу, теоретически способен выразить все задачи, решаемые компьютерами; почти все языки программирования являются полными по Тьюрингу, если игнорировать ограничения конечной памяти.


Combinational logicFinite-state machinePushdown automatonTuring machineAutomata theoryТеория автоматов.svg
Об этом изображении
Классы автоматов
(Нажав на каждый слой, вы получите статью на эту тему)
Голова всегда находится над определенным квадратом ленты; показан только конечный участок квадратов. Инструкция, которую необходимо выполнить (q 4 ), показана над отсканированным квадратом. (Рисунок по Клини (1952), стр. 375.)
Здесь внутреннее состояние (q 1 ) показано внутри головки, а на иллюстрации лента описывается как бесконечная и предварительно заполненная «0», а символ служит пустым. Полное состояние системы (ее «полная конфигурация») состоит из внутреннего состояния, любых непустых символов на ленте (на этом рисунке «11B») и положения головки относительно этих символов, включая пробелы, т. е. «011B». ". (Рисунок по Минскому (1967) стр. 121.)
Занятый бобер с 3 состояниями. Черные значки обозначают расположение и состояние головы; квадратные цвета представляют 1 (оранжевый) и 0 (белый); время идет вертикально сверху вниз до состояния HALT .
Машина Тьюринга «занятого бобра с 3 состояниями» в представлении с конечным числом состояний . Каждый кружок представляет «состояние» таблицы — «м-конфигурацию» или «инструкцию». «Направление» перехода состояния показано стрелкой. Метка (например , 0/P,R ) рядом с исходящим состоянием (в «хвосте» стрелки) указывает отсканированный символ, который вызывает определенный переход (например , 0 ), за которым следует косая черта / , за которой следуют последующие «поведения» машины, например " P print ", затем переместите ленту " R вправо ". Общепринятого формата не существует. Показанная условность основана на МакКласки (1965), Буте (1967),
Эволюция вычислений занятого бобра начинается сверху и продолжается снизу.
Реализация машины Тьюринга
Реализация машины Тьюринга с использованием деталей Lego
Еще одна реализация машины Тьюринга