Машины Тьюринга
В 1936—1937 гг. независимо друг от друга и почти одновременно с работами А. Черча и С. Клини было дано определение понятия алгоритма американским и английским математиками Э. Постом и А. Тьюрингом. Их подход базируется на определении специальных абстрактных (т. е. существующих не реально, а лишь в воображении) - автоматов (машин). Основная мысль при этом заключалась в том, что алгоритмические процессы — это процессы, которые может совершать подходяще устроенная «машина». В соответствии с этим с помощью точных математических терминов ими были описаны классы машин, способные осуществить или имитировать все алгоритмические процессы, когда-либо описываемые математиками.
Машины, введенные Постом и Тьюрингом, отличались не очень существенно и в дальнейшем стали называться машинами Тьюринга.
В общем случае такая машина состоит из следующих частей (рис.1.4):
Рис 1.4. Состав машины Тьюринга
1) информационной ленты, представляющей собой бесконечную (неограниченную) память машины. В качестве информационной ленты может служить магнитная или бумажная бесконечная лента, разделенная на отдельные ячейки. В каждой ячейке можно поместить лишь один символ, в том числе и ноль;
2) «считывающей головки» - специального чувствительного элемента, способного обозревать содержимое ячеек. Вдоль головки информационная лента перемещается в обе стороны так, чтобы в каждый рассматриваемый момент времени головка находилась в одной определенной ячейке ленты;
3) управляющего устройства, которое в каждый рассматриваемый момент находится в некотором «состоянии». Предполагается, что устройство управления машины может находиться в некотором конечном числе состояний. Состояние устройства управления часто называют внутренним состоянием машины. Одно из этих состояний называется заключительным и управляет окончанием работы машины.
Рассмотрим алгоритмическую систему, предложенную Постом. В алгоритмической системе Поста информация представляется в двоичном алфавите А = {1, 0}, т. е. в каждой ячейке информационной ленты можно поместить либо 0, либо 1. Алгоритм представляется в виде конечного упорядоченного набора правил, называемых приказами. Работа алгоритма начинается с некоторой начальной ячейки, соответствующей первому приказу алгоритма. Составляющие алгоритм приказы могут принадлежать к одному из шести приказов, выполняемых устройством управления машины Поста.
Записать в рассматриваемую ячейку 1 и перейти к i-му приказу.
Записать в рассматриваемую ячейку 0 и перейти к i-му приказу
Сдвинуть ленту вправо на одну ячейку и приступить к выполнению i-го приказа.
Сдвинуть ленту влево на одну ячейку и перейти к выполнению i-го приказа.
Если в рассматриваемой ячейке записана 1, то перейти к выполнению j-го приказа, а если записан 0, то перейти к выполнению i-го приказа.
Окончание работы алгоритма, остановка.
Алгоритмы, составленные из любого конечного числа правил представленных приказами машины Поста, называются алгоритмами Поста.
Алгоритмы Поста сводятся к алгоритмам, реализуемым с помощью частично рекурсивных функций, и наоборот — любая частично рекурсивная функция может быть представлена алгоритмом системы Поста.
В отличие от машины Поста машина Тьюринга может работать в произвольном конечном алфавите и выполнять некоторое конечное число приказов. При этом машины Тьюринга, как и машины. Поста, могут сдвигать ленту на одну ячейку вправо или влево, оставляя содержимое ячеек неизменным, или могут изменять состояние воспринимаемой ячейки, оставляя ленту неподвижной.
Машина Тьюринга называется стандартной, если она при сдвиге ленты может предварительно изменять состояние воспринимаемой ячейки.
Пусть алфавит машины Тьюринга задан в виде множества , где соответствует пустой ячейке, а число состояний устройства управления задано в виде множества , где соответствует заключительному состоянию.
Конечную совокупность символов алфавита, с которой работает машина, называют внешним алфавитом, конечную совокупность состояний устройства управления — внутренним алфавитом.
Совокупность, образованную последовательностью состояний всех ячеек ленты и состоянием устройства управления, называют конфигурацией машины. Конфигурация задается в виде слова, описывающего конкретное состояние машины.
Пусть в некоторый момент времени машина Тьюринга находится в состоянии, представленном на рис.1.5.
Рис 1.5. Состояние машины Тьюринга
Конфигурация машины для данного случая будет представлена в виде слова:
,
где - символ, обозначающий пустую ячейку;
r - число заполненных ячеек на ленте;
- состояние первой слева непустой ячейки;
- состояние ячейки, просматриваемой в данный момент времени;
- состояние устройства управления.
Каждая конфигурация содержит лишь одно вхождение символа из внутреннего алфавита. Этот символ может быть в слове самым левым, но не может быть самым правым, так как справа от него должен помещаться символ состояния обозреваемой ячейки.
Если стандартная машина Тьюринга, находясь в состоянии и воспринимая записанный на ленте символ , переходит в новое состояние осуществляя при этом замену символа в рассматриваемой ячейке на символ и сдвиг ленты влево на одну ячейку, то говорят, что машина выполняет команду .
При манипуляциях с лентами используют следующие обозначения:
Л — движение ленты влево; П— движение ленты вправо; С — нет движения ленты.
Команды стандартной машины Тьюринга могут задаваться набором пятерок символов вида , т.е. стрелка опускается.
Рассмотрим пример машины Тьюринга с алфавитами А={0, 1}, и командами. Л, С.
Пусть на ленте имеется слово 11100. Головка стоит над первой слева единицей (таблица 1.1).
Таблица 1.1. Алгоритм работы машины Тьюринга по переработке слова 11100 в слово 11110
В результате работы машины Тьюринга за четыре шага это слово превращается в 11110. По окончании работы машины головка стоит над крайней правой единицей. Можно сказать, что данная машина выполнила сложение в двоичной системе десятичных чисел 28 + 2.
Совокупность всех команд, которые может выполнять машина, называется ее программой.
Машина Тьюринга считается заданной, если заданы:
Пусть машина Тьюринга задана внешним алфавитом А={0,а,b,с,d}, внутренним алфавитом и совокупностью команд:
, , , , ,
, .
Пустую ячейку обозначает символ , а заключительное состояние - .
В таблице 1.2 представлен процесс переработки машиной Тьюринга исходного слова bcadc в слово bcdcc. Начальная конфигурация имеет вид bcadc.
Таблица 1.2. Алгоритм работы машины Тьюринга по переработке слова bcadc в слово bcdcc
Достарыңызбен бөлісу: |