Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
математическая логика.docx
Скачиваний:
20
Добавлен:
08.07.2019
Размер:
181.46 Кб
Скачать

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

Машина Тьюринга — это воображаемое вычислительное устройство,

имеющее следующие составные части. Оно имеет ленту, разбитую на

ячейки и каретку, расположенную в каждый конкретный момент работы

машины над некоторой ячейкой ленты. Каждая ячейка содержит ровно

один из символов 0 или 1. Лента представляется конечной, но дополняе-

мой в любой момент ячейками слева и справа для записи новых символов

0 Или 1. Если каретка, расположена над некоторой ячейкой с символом 0

(с символом 1), то будем говорить, что каретка обозревает символ 0 (обо-

зревает символ 1).

Машины Тьюринга имеет программу. Это конечная последователь-

ность строк из 5 компонент.

Пример программы.

(0, 0, L, 0, 1)

(0, 1, R, 0, 1)

(1, 0, L, 0, 1)

(2, 0, L, 0, 1)

Строка программы имеет вид (i a x y z).

Первая компонента в строке i — номер инструкции. Поэтому преды-

дущая программа имеет инструкции с номерами 0, 1 и 2.

Вторая компонента равна 0 или 1. Выполняя инструкцию с номером i,

машина смотрит обозреваемый кареткой символ. Если он равен 0, то ис-

полняется строка с началом i 0; если обозреваемый символ равен 1, то

исполняется строка с началом i 1. Если строки с началом i нет, то маши-

на останавливается. Это единственное условие остановки машины Тью-

ринга. Символы x, y, z в исполняемой строка описывают выполняемые

действия.

• Записать в обозреваемую ячейку x. При этом x = 0 или x = 1.

Поэтому содержимое обозреваемой ячейки останется прежним или

сменится на противоположное, например, 0 заменится на 1.

• Компонента y равна R или L. При y = R нужно сдвинуть каретку на

одну ячейку вправо, при y = L—влево.

• Перейти к инструкции с номером z. Возможно, что инструкции с но-

мером z нет, тогда остановка машины.

Тем самым выполнение инструкции q0 первый такт работы машины Тью-

ринга, затем второй такт — выполнение другой инструкции и так далее.

В начале работы на ленте имеется исходный набор из символов 0,1 —

входные данные, а после остановки на ленте выходные данные.

Пример. Пусть дана машина Тьюринга со следующей программой

0 0 1 R 0.

Пусть входные данные следующие — на ленте во всех ячейках располо-

жен символ 0.

Выполним вначале инструкцию с номером 0. Так как обозреваемый ка-

реткой символ равен 0, нужно выполнить следующее.

1. Заменить этот символ на 1.

60

2. Сдвинуть каретку вправо.

3. Применить инструкцию с номером 0.

Итак, возникла одна единица, каретка снова обозревает 0 и заново вы-

полняются действия 1)–3). Поэтому машина Тьюринга работает беско-

нечно, заполняя ленту символами 1.

Опишем вычисление значений n-арной функции машиной Тьюринга.

Рассмотрим произвольное натуральное число x = 0, 1, 2, . . .. И зобразим

его на ленте как группу из x + 1 единиц. Данную группу из x + 1 единиц

обозначаем знаком _x_. Например, группа из 3 единиц 111 изображает

число 2, а группа 1 изображает число 0. Для изображения последова-

тельности x1, x2, . . .xn используем последовательность символов ленты,

равную _x1_, _x2_, . . . _xn_, где группы единиц разделены символом 0.

Обычно мы рассматривали всюду определенные n-арные функции.

Определим теперь частичную n-арную функциюf(x1, x2, . . . , xn), опреде-

ленную на множестве натуральных чисел {0, 1, 2, . . . }. Это правило, ко-

торое сопоставляет некоторым наборам (a1, a2, . . . , an) натуральных чи-

сел однозначно определенное натуральное число f(a1, a2, . . . , an)— зна-

чение функции f при данном наборе аргументов. Множество всех набо-

ров (a1, a2, . . . , an), для которых определено значение функции, называ-

ется областью определения функции и обозначается через Dom(f).Мно-

жество всех значений функции f называется областью значений функции

и обозначается через Ran(f).

Мыбудем говорить, что машина ТьюрингаM с программой q0, q1 . . . qn,

вычисляет частичную n-арную функцию f, если выполняется следующие

условия.

1) Если (a1, a2, . . . , an) находится в области определения функции f, то

M начиная с инструкции q0 и обозревая самый левый символ строки

(a1, a2, . . . , an) ( остальная часть ленты пуста), на некотором шаге оста-

навливается, обозревая самый левый символ строки f(a1, a2, . . . , an) (

часть ленты справа от строки пуста).

2) Если (a1, a2, . . . , an) не находится в области определения функции f,

тоM никогда не останавливается.

Пример. Указать машину Тьюринга, вычисляющую сумму натураль-

ных чисел x + y.

Рассмотрим машину M со следующей программой ( рядом с каждой

инструкцией – комментарий).

61

0 1 1 R 0 прохождение через x

0 0 1 R 1 заполнение промежутка

1 1 1 R 1 прохождение через y

1 0 0 L 2 конец y

2 1 0 L 3 стирание 1

3 1 0 L 4 стирание другой 1

4 1 1 L 4 движение назад

4 0 0 R 5 остановка