Машини Тьюрінга. Обчислюваність за Тьюрінгом

Пiд (детермінованою) машиною Тьюрiнга (скорочено МТ) будемо розумiти впорядковану 5-ку (Q,T,d, q0 ,q*), де:

- Q - скінченна множина внутрішніх станiв;

- T - скінченний алфавіт символів стрiчки, причому T мiстить спецiальний символ порожньої клiтки l;

- d : Q´TQ´T´{R,L,e} - однозначна функція переходів;

- q0ÎQ - початковий стан;

- q*ÎQ - фiнальний стан.

Функцiю переходiв на практицi задають скiнченною множиною команд одного з 3-х видiв: qa®pbR, qa®pbL та qa®pb, де p, qÎQ, a, bÎT, ®ÏQÈT. При цьому, як правило, не для всiх пар (q,aQ´T iснує команда з лiвою частиною qa. Це означає, що функцiя d не є тотальною. Проте зручніше вважати функцію d тотальною, тому для всiх пар (q,aDd неявно (не додаючи вiдповiднi команди вигляду qa®qa) вводимо довизначення d(q,a)=(q,a,e).

Неформально МТ складається зі скiнченної пам’ятi, роздiленої на клiтки нескiнченної з обох бокiв стрiчки та головки читання-запису. В кожнiй клiтцi стрiчки мiститься єдиний символ iз T, причому в кожен даний момент стрiчка мiстить скiнченну кiлькiсть символiв, вiдмiнних вiд символа l. Головка читання-запису в кожен даний момент оглядає єдину клiтку стрiчки.

Якщо МТ знаходиться в станi q та головка читає символ a, то при виконаннi команди qa®pbR (команди qa®pbL, команди qa®pb) МТ переходить у стан p, замiсть символу a записує на стрiчцi символ b та змiщує головку на 1 клiтку направо (відповідно на 1 клiтку налiво, залишає головку на мiсцi).

Конфiгурацiя, або повний стан МТ, - це слово вигляду xqy, де x,yÎT*, qÎQ. Неформально це означає, що на стрiчцi записане слово xy, тобто злiва i справа вiд xy можуть стояти тiльки символи l, МТ знаходиться в станi q, головка читає 1-ий символ пiдслова y.

Конфiгурацiю вигляду q0x, де 1-й та останнiй символи слова x вiдмiннi вiд l, називають початковою. Конфiгурацiю вигляду xq*y називають фiнальною. Пiсля переходу до фiнального стану, отже, до фiнальної конфiгурацiї МТ спиняється.

Нехай МТ знаходиться в конфiгурацiї xcqay, де x,yÎT*, a, cÎT, qÎQ. Пiсля виконання команди qa®pbR (команди qa®pbL, команди qa®pb) МТ перейде до конфiгурацiї xcbpy (вiдповiдно до конфiгурацiї xpcby, конфiгурацiї xcpby).

Кожна МТ задає вербальне вiдображення T* T* таким чином.

МТ М переводить слово uÎT у слово vÎT*, якщо вона з початкової конфiгурацiї q0u переходить до фiнальної конфiгурацiї xqy, де qÎF*, xy=avb, a, bÎ{l}* . При цьому перший та останнiй символи слова v вiдмiннi вiд l, або v=e. Цей факт записуємо так: v=M(u).

Якщо МТ M, починаючи роботу з початкової конфiгурацiї q0u, нiколи не спиниться, кажуть, що M зациклюється при роботi над словом u. Тодi M(u)не визначене.

МТ M1 та M2 еквiвалентнi, якщо вони задають одне і те ж вербальне вiдображення.

МТ M обчислює часткову функцiю f:Nk → N, якщо вона кожне слово вигляду переводить у слово у випадку (x1,...,xkDf , та M( ) не визначене при (x1,...,xkDf .

Функцiя називається обчислюваною за Тьюрiнгом, або МТ-обчислюваною, якщо iснує МТ, яка її обчислює.

Зауважимо, що кожна МТ обчислює безліч функцій натуральних аргументів та значень, але, зафіксовуючи наперед арність функцій, дістаємо, що кожна МТ обчислює єдину функцію заданої арності.

Розглянемо приклади МT.

Приклад 1. МТ, яка обчислює функцiю x+y:

q0|® q0|R

q0#® q0|R

q0l® q1lL

q1| ® q*l

Приклад 2. МТ, яка обчислює функцiю f(x)=sg(x):

q0l® q*l

q0|® q1|R

q1|® q1lR

q1l® q*l

Приклад 3. МТ, яка обчислює функцiю f(x, y) =x-y:

q0|® q1lR

q1|® q1|R

q1#® q1#R

q1l® q2lL

q2|® q3lL

q3|® q3|L

q3#® q3#L

q3l® q0lR

q2#® q*|

q0#® q4lR

q4l® q*l

Приклад 4. МТ, яка обчислює функцiю f(x, y)=

q0|® q1lR

q1|® q1|R

q1#® q1#R

q1l® q2lL

q2|® q3lL

q3|® q3|L

q3#® q3#L

q3l® q0lR

q2#® q*|

q0#® q4lR

q4|® q4lR

(єдина відмінність від МТ для f(x, y) =x-y )

q4l® q*l