logo search
МЛиТА 6 - 7

Пример 1

Алфавит состоит из цифр 0,1,…,9. На ленте написано слово:

2

0

9

3

1

и головка показывает на 9. Тогда в следующий такт времени головка может записать вместо 9 цифру 8 и переместиться влево. После этого она будет показывать на 0.

Перейдем к точным определениям.

Машиной Тьюринга T  =  (A,Q,) называется тройка, состояний из непустых конечных множеств A  =  {a0,a1,…,an}, Q  =  {q0,q1,…,qm} и частичной функции :  Q  A  Q  A  {L,S,R}.

Здесь {L,S,R} – множество, состоящее из трех элементов. Оно одинаково для всех машин Тьюринга и интерпретируется командами перемещения головки: L – влево, R – вправо, S – стоять на месте.

Множество А называется внешним алфавитом, его элементы – буквами. Буквы a0 и a1 для всех машин Тьюринга одинаковы: a0 = 0, a1 = 1. Элементы q0,…,qm называются внутренними состояниями.

Частичная функция  называется программой и записывается или с помощью прямоугольной таблицы, в которой в клетке (qi,qj) записывается тройка (qi,qj)    Q  A  {L, S, R}, или с помощью списка команд вида:

Эти команды обозначим через T(i,j).

Машиным словом, или конфигурацией, называется слово вида: qkae, где 0    k    m, 0    e    n,  и  – слова (возможно, пустые), составленные из букв алфавита А. Для обозначения слова аа…а, в котором буква а повторяется x раз, пишем: ах.

Машинное слово: qkae интерпретируется как положение, при котором головка указывает на символ ae, машина находится во внутреннем состоянии qk, слева от текущей ячейки находятся символы, составляющие слово , а справа – слово . В примере 1 машинное слово равно: 20qi931 для некоторого i.

Пусть задана машина Тьюринга Т и машинное слово M  =  qiaj, где 0    i   m. Обозначим через MT’ слово, которое получается (за один такт) по правилам:

1) для i  =  0 положим MT’ = M;

2) для i  >  0 выполняем одно из следующих трех преобразований:

если  не пусто, то MT’ =  qeak, иначе MT ’=  qeaka0;

если  = 1as для некоторых 1 и as, то MT’ =  1qkasae,

иначе (т.е. если  пусто) MT’= qka0ae (дополнительная инструкция).

Положим: MT0 =  M, MT(n+1) =  (MT(n))’.

Будем говорить, что машина Т перерабатывает машинное слово М в слово М1, если MT(n)  =  M1 для некоторого n    0. Пишем: М  T M1, если Т перерабатывает М в М1, и при этом не используется дополнительная инструкция (из правил образования слова MT’).

Говорим, что машина Т вычисляет частичную функцию f: Nn  N, если выполнены следующие условия:

Говорим, что машина Т правильно вычисляет частичную функцию f: Nn  N, если выполнены условия:

Частичная функция f называется (правильно) вычислимой, если существует машина Тьюринга, которая (правильно) вычисляет f.