Маши́на Тью́ринга (МТ) — абстрактный исполнитель (абстрактная вычислительная машина). Была предложена Аланом Тьюрингом в 1936 для формализации понятия алгоритма
Машина Тьюринга является расширением конечного автомата и, согласно тезису Черча - Тьюринга, способна имитировать все другие исполнители (с помощью задания правил перехода), каким-либо образом реализующие процесс пошагового вычисления, в котором каждый шаг вычисления достаточно элементарен.
В состав машины Тьюринга входит бесконечная в обе стороны лента (возможны машины Тьюринга, которые имеют несколько бесконечных лент), разделённая на ячейки, и управляющее устройство, способное находиться в одном из множества состояний. Число возможных состояний управляющего устройства конечно и точно задано.
Управляющее устройство может перемещаться влево и вправо по ленте, читать и записывать в ячейки символы некоторого конечного алфавита. Выделяется особый пустой символ, заполняющий все клетки ленты, кроме тех из них (конечного числа), на которых записаны входные данные.
Управляющее устройство работает согласно правилам перехода, которые представляют алгоритм, реализуемый данной машиной Тьюринга. Каждое правило перехода предписывает машине, в зависимости от текущего состояния и наблюдаемого в текущей клетке символа, записать в эту клетку новый символ, перейти в новое состояние и переместиться на одну клетку влево или вправо. Некоторые состояния машины Тьюринга могут быть помечены как терминальные, и переход в любое из них означает конец работы, остановку алгоритма.
Машина Тьюринга называется детерминированной, если каждой
комбинации состояния и ленточного символа в таблице соответствует не
более одного правила. Если существует пара «ленточный символ —
состояние», для которой существует 2 и более команд, такая машина
Тьюринга называется недетерминированной
Конкретная машина Тьюринга задаётся перечислением элементов множества букв алфавита A, множества состояний Q и набором правил, по которым работает машина. Они имеют вид: qiaj→qi1aj1dk (если головка находится в состоянии qi, а в обозреваемой ячейке записана буква aj, то головка переходит в состояние qi1, в ячейку вместо aj записывается aj1, головка делает движение dk, которое имеет три варианта: на ячейку влево (L), на ячейку вправо (R), остаться на месте (N)). Для каждой возможной конфигурации <qi, aj> имеется ровно одно правило (для недетерминированной машины Тьюринга может быть большее количество правил). Правил нет только для заключительного состояния, попав в которое машина останавливается. Кроме того, необходимо указать конечное и начальное состояния, начальную конфигурацию на ленте и расположение головки машины.
МТ, которая вычисляет функцию x+y:
q0|→ q0|R
q0#→ q0|R
q0λ→ q1λL
q1| → q*λ
МТ, которая вычисляет функцию f(x, y) =x-y:
q0|→ q1λR
q1|→ q1|R
q1#→ q1#R
q1λ→ q2λL
q2|→ q3λL
q3|→ q3|L
q3#→ q3#L
q1|→ q1λR
q1λ→ q*λ
МТ, которая вычисляет предикат "x парное":
q0|→ q1λR
q1|→ q0λR
q0λ→ q*|
q1λ→ q*λ
МТ, которая вычисляет функцию f(x, y)=x+2y:
q0|→ q0|R
q0#→ q0#R
q0λ→ q1λL
q1|→ q2λR
q2|→ q2|R
q2λ→ q3|L
q3|→ q3|L
q3λ→ q1|L
q1#→ q4|L
q4|→ q4|L
q4λ→ q5λR
q5|→ q*λ