Лекция № 3. Машины Тьюринга

 

1. Машины Тьюринга

2. Не распознаваемость самоприменимости машины Тьюринга

 

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

В состав любой машины Тьюринга входит бесконечная в обе стороны лента, разделенная на ячейки, и головка, способная передвигаться вдоль ленты вправо и влево (см. рис. 4).

 

                       

Ý – головка

Рис. 4. Представление машины Тьюринга.

В ячейку ленты может быть записана буква из алфавита A={a0, a1, a2, … an}. Для каждой машины Тьюринга этот алфавит, называемый внешним, вообще говоря, свой. Но принято резервировать символ a0 для обозначения пустой ячейки при определении внешнего алфавита любой машины. Будем также считать, что непустое слово в алфавите A–{a0} воспринимается любой машиной в стандартном положении, если головка находится напротив крайней справа ячейки ленты из тех, в которых записано слово[5] (см. рис. 5).

 

a0 a0 a0 a0 a0 A0 a0 a0

Ý – головка

Рис. 3. Стандартное положение в машине Тьюринга

(внешний алфавит A={a0, 0,1})

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

Полагается, что при каждом такте работы машина находится в каком-то состоянии, обозначаемом буквой qi из алфавита внутренних состоянийQ={q0, q1, q2, ….qm}. Каждая машина Тьюринга имеет свой собственный алфавит внутренних состояний, но принято считать, что символом q0 в таком алфавите обозначается состояние остановки, а символом q1начальное состояние. Из состояния q1 машина начинает работать, а попав в состояние q0, прекращает работу.

Работа любой машины Тьюринга осуществляется по своей собственной программе или в соответствии с функциональной схемой, представляющей собой совокупность выражений T(i, j) (1£i£m, 0£j£n, i,jÎZ), именуемыми командами, каждая из которых может иметь следующий вид (см. таблицу 1).

Функциональная схема машины Тьюринга (программа) может быть записана в виде последовательности команд или в виде таблицы (см. пример 3.1.1).

Таким образом, та или иная машина Тьюринга полностью определяется:

а) внешним алфавитом A={a0, a1, a2, … an};

б) алфавитом внутренних состояний Q={q0, q1, q2, ….qm};

в) программой (функциональной схемой).

Таблица 1

Команды машины Тьюринга
Формат команды Описание команды
qiaj →qkapЛ В ячейке, которую «обозревает» головка, стирается буква aj. Вместо нее в эту ячейку записывается буква ap. Из состояния qi машина переходит в состояние qk. Головка сдвигается на одну ячейку влево (Л).
qiaj →qkapП В ячейке, которую «обозревает» головка, стирается буква aj. Вместо нее в эту ячейку записывается буква ap. Из состояния qi машина переходит в состояние qk. Головка сдвигается на одну ячейку вправо (П).
qiaj qkap В ячейке, которую «обозревает» головка, стирается буква aj. Вместо нее в эту ячейку записывается буква ap. Из состояния qi машина переходит в состояние qk. Головка остается на месте.

 

Говорят, что слово a перерабатывается машиной Тьюринга в слово b, если от слова a, воспринимаемого в начальном состоянии q1, машина после выполнения конечного числа команд программы приходит к слову b, воспринимаемому в положении остановки.

Пример 3.1.1. Машина Тьюринга определяется функциональной схемой в виде следующей таблицы:

 

Q A q1 q2 q3
a0   q3 q1a0Л
q2a0Л q2 q3
* q0a0 q2 q31*П

 

Слово, воспринимаемое в начальном состоянии q1 имеет вид:

            *   q1

Ý

Определим, в какое слово переработает это слово машина.

Так машина находится в состоянии q1, обозревая ячейку в которой находится 1, то первой должна быть выполнена команда, стоящая на пересечении столбца q1 и строки 1 функциональной схемы. Это команда q2a0Л. После ее выполнения машина перейдет в следующее состояние:

            * a0   q2

Ý

После выполнения следующей команды q2*Л (записанной на пересечении столбца q2 и строки 1)машина перейдет в следующее состояние:

            * a0   q2

Ý

На пересечении столбца q2 и строки 1в функциональной схеме машины Тьюринга записана команда q2, выполнение которой приведет к состоянию:

            * a0   q2

Ý

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

q21→q2

            * a0   q2

Ý

q2a0→q3

          * a0   q3

Ý

q31→q3

          * a0   q3

Ý

q31→q3

          * a0   q3

Ý

q3*→q3

          * a0   q3

Ý

q3a0→q1a0Л

          * a0   q1

Ý

q1*→q0a0

                q1

Ý

Таким образом, машина Тьюринга, определенная приведенной выше функциональной схемой, перерабатывает слово 11*1 в слово 111. Взяв в качестве исходных слов 111*111, 111*11 и т.п., можно усмотреть определенную закономерность в работе машины.

Определение 3.1.1. Пусть на некотором множестве слов алфавита {a1, a2, … al} задана функция k переменных, значениями которой являются слова в том же алфавите. Предположим, что имеется машина Тьюринга с алфавитом A={a0, a1, a2, … al} (n³l), которая любой набор из k слов, входящий в область определения функции, записанный последовательно с промежутком в одну ячейку между словами, перерабатывает в слово, являющееся значением функции на этом наборе. А на любом наборе из k слов, не входящих в область определения функции, машина работает бесконечно. Тогда про такую машину Тьюринга говорят, что она вычисляет данную функцию, а сама функция называется вычислимой по Тьюрингу.