Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VDM-123.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.47 Mб
Скачать

Раздел 8. Вычислимые функции Машины Тьюринга

Мы говорили, что можно задать при помощи канонических уравнений

q(1) = 0,

y(t) = F(x(t),q(t)),

q(t+1) = G(x(t),q(t)).

Эти уравнения позволяют определить по входной последовательности значений переменных x(1), … , x(k) выходную последовательность:

Значения выходной последовательности находятся постепенно по мере поступления входных значений. Это позволяет трактовать выписанные выше уравнения как описание работы некоторого дискретного преобразователя или автомата, который обладает r состояниями (r – вес ) и работает дискретно во времени, формируя состояние памяти и выходное значение в соответствии с каноническими уравнениями:

q(t)

x(t) y(t)

t=1,2…

Данное устройство, в отличие от реальных автоматов, никогда не заканчивает работы. Это устройство можно трактовать в виде «машины» таким образом:

Машина состоит из бесконечной вправо ленты и автомата:

1 2 t k

X(1)

X(2)

X(k)

X(t)

Бесконечная лента разделена на ячейки, которые нумеруются натуральными числами 1, 2, … ; в ячейки с номерами 1, 2, … , k вписываются символы x(1), x(2), … , x(k) из алфавита (0,1, …, k-1). Автомат обладает головкой и может находиться в одном из (конечного числа) состояний q(1), q(2), …, q(r ). Головка в каждый из моментов времени t (t = 1,2,…) обозревает одну ячейку ленты. По символу, прочитанному на ленте, и по внутреннему состоянию автомат вырабатывает новое состояние и некоторый символ, который через головку вписывает в ту же ячейку. После этого головка сдвигается по ленте на одну ячейку вправо и т. д. Машина останавливается при появлении в поле зрения головки символа (пусто), и на ленте в ячейках 1, 2, … , k получается выходная последовательность {y(1),y(2),…,y(k)}. Работу этой машины можно задать при помощи так называемой программы, т.е. специальной таблицы:

q(1)

q(j)

q(r)

0

{F,R,G}

k-1

В данной таблице строки занумерованы символами , 0, 1, … , k-1; а столбцы – символами q(1), … , q(r). Строка, соответствующая символу , оставляется незаполненной. В клетку, расположенную в строке  и в j-м столбце, выписывается тройка символов {F(,q(j)), R, G(,q(j))}. Эта тройка называется командой. Машина выполняет команду следующим образом: если головка обозревает на ленте символ ,и машина к этому моменту находится в состоянии q(j), то в рассматриваемый момент в ячейку вместо символа записывается символ F(,q(j)), а машина переходит в состояние G(,q(j)) и передвигает головку по ленте на одну ячейку вправо (R). Если читаемым символом является , то в соответствующей клетке таблицы стоит пустая команда, что рассматривается как команда остановки машины. Очевидно, что программа машины полностью определяется каноническими уравнениями .

Данный тип машины можно обобщить, допуская более широкий класс программ и более сложное взаимодействие автомата с лентой.

Пусть машина M состоит из бесконечной в обе стороны ленты, разбитой на квадратные ячейки, и конечного автомата G:

… …

G

В ячейки ленты вписываются символы из алфавита {0,1,…,k-1}, автомат G обладает головкой, в каждый момент времени обозревающей некоторую ячейку ленты и способной осуществлять одно из следующих движений: R - сдвигаться на одну ячейку вправо, L – сдвигаться на одну ячейку влево и S – продолжать обозревать ту же ячейку. Состояние автомата G обозначаем .

Работа машины M определяется программой Т:

0

cDq

k-1

В ней часть клеток может быть незаполненной, т.е. содержать пустые команды, остальная часть заполняется тройками символов cDq, где с  {0, 1, …, k-1}, D  {R, L, S}, q { ,…, }, представляющими команды машины.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]