
Лекція 2. Машина Тьюрінга
План:
1.Поняття про машини Тьюрінга.
2.Структура та система команд машин Тьюрінга.
3.Приклади роботи машин Тьюрінга.
4. Функції обчислюванні за Тюрінгом.
Література: [2], [4], [10].
Англійський математик А.М.Тьюрінг запропонував 1936 р. клас абстрактних машин, які задають алгоритми, що можуть бути виконані людиною з олівцем і достатнім запасом паперу. Зараз відомо багато різних варіантів машин Тьюрінга та їх узагальнень (багатострічкові машини, машини з еластичною стрічкою і т.п.).
Зупинимось на такому визначенні машини Тьюрінга (МТ). Під МТ розумітимемо впорядковану п’ятірку (Q, Т, δ, q0, F), де
Q(q0 ,q1 ,…, qn) ― скінченна множина внутрішніх станів ;
Т(t1 ,…, tm) ― скінчений алфавіт символів стрічки, причому він обов’язково містить спеціальний символ пустої клітки λ ;
δ : Q × T→Q × T× {R, L, S} - функція переходів ;
q0
Q
– початковий стан;
F Q – множина фінальних станів .
Функцію
переходів δ
на практиці задають скінченою множиною
команд одного з трьох видів: qa→pbR,
qa→pbL, qa→pbS,
де p,
q
Q;
a, b
T.
При цьому, як правило, не для всіх пар
(q,
a )
Q
× T
існує команда з лівою частиною qa.
Це означає, що функція δ
не всюди визначена. Надалі ,eltv вважати,
що δ всюди визначена, тому для всіх пар
(q,
a)
Dδ
неявно ( не додаючи відповідні команди
виду qa→qa
до множини команд) вводимо позначення
δ (q, a)=(q,a,ε).
Конструктивно МТ складається із пам’яті, яка утворена з нескінченної в обидва боки стрічки розділеної на клітки, пристрою керування та голівки читання – запису. В кожній клітинці стрічки міститься єдиний символ із алфавіту Т, причому, в кожен конкретний момент стрічка містить скінченну кількість символів, відмінних від символу λ . Голівка читання – запису у кожен дискретний момент оглядає єдину клітку стрічки.
Якщо МТ знаходиться в стані q і голівка читає символ а, то при виконанні команди qa → pbR ( команди qa → pbL, команди qa → pbS) МТ переходить в стан p, замість символу а записує на стрічці символ b і зміщує голівку на одну клітку вправо ( на одну клітку вліво, залишає голівку на місці ).
Конфігурація, або повний стан МТ – це слово виду xqy, де x, y T* , q Q. Неформальне це означає, що на стрічці записане слово ху (зліва і справа від ху – тільки символи λ), МТ знаходиться в стані q , голівка читає перший символ під слова у.
Конфігурацію виду q0x , де перший та останній символи слова х ,відмінні від λ, називають початковою. Конфігурацію виду xqy , де q F , називають фінальною. Після переходу до фінального стану, тобто до фінальної конфігурації, МТ зупиняється . Машина Тьюрінга також зупиняється , якщо для певної конфігурації відповідна клітинка пуста (команда відсутня).
Нехай МТ знаходиться в конфігурації xcqay, де x, y T*, a,c T , q Q .
Після виконання команди qa → pbL (команди qa → pbR , qa → pbS) MT перейде до конфігурації xpcby (конфігурації xcbpy , xcpby ).
Кожна МТ задає деяке словникове відображення Т* → Т*. Будемо вважати, що деяка машина Тьюрінга М переводить слово u T* в слово v T*, якщо вона з початкової конфігурації q0u переходить до фінальної конфігурації xqy , де q F, xy = αvβ , α, β {λ}* , причому перший та останній символи слова v відмінні від λ , або v=ε. Цей факт записуємо так: v=M(u). Якщо МТ М, починаючи роботу з початкової конфігурації q0u, ніколи не зупиняється, то кажуть, що М зациклюється при роботі над словом u. Тоді значеня М (u) не визначене.
Дві машини Тьюрінга М1 та М2 вважаються еквівалентними, якщо вони задають одне і те ж словникове відображення Т* → Т*.
МТ називається детермінованою, якщо функція δ однозначна. Інакше МТ називається не детермінованою .
Не
обмежуючи загальності можна вважати ,
що множина F
складається з єдиного фінального стану
q*.
Справді, нехай М
=(Q,T,δ,q0,F).
Візьмемо q*
Q.
Тоді МТ М1
=
(Q
{q*},
T, δ1,
q0,
{q*}),
де δ1=
δ
{qa→q*a|q
F,
a
T},
очевидно,
еквівалентна машині М.
Надалі розглядатимемо тільки детерміновані МТ з єдиним фінальним станом і позначатимемо їх (Q,T,δ,q0,q*). Конкретні МТ будемо задавати, вказуючи множину команд. При цьому початковий стан завжди позначатимемо q0, фінальний стан позначатимемо q*.
Машина
Тьюрінга М
обчислює
деяку часткову функцію
,
якщо вона кожне слово виду
переводить в слово f(
)
у випадку
,
та
машина Тьюрінга не визначена на цьому
наборі, якщо
. Функція називається обчислювальною
за Тьюрінгом, або МТ-обчислювальною,
якщо існує МТ, яка її обчислює.
Наведемо приклади машини Тьюрінга .
Приклад 1. Машина Тьюрінга, яка реалізує функцію f(x,y)=x+y в алфафіті Т(1, λ,+) матиме вигляд:
|
1 |
+ |
λ |
q0 |
q1λR |
q* λS |
|
q1 |
q1 1R |
q1+R |
q21L |
q2 |
q21L |
q2+L |
q0 λR |
Тобто, якщо x=4, y=2, вхідне слово має вигляд 1111+11,
а фінальне слово 111111.
Приклад 2. Машина Тьюрінга, яка реалізує функцію f(x,y)=x-y в алфафіті Т(1, λ,-) матиме вигляд:
|
1 |
- |
λ |
q0 |
q1λR |
q* λS |
|
q1 |
q1 1R |
q1-R |
q2 λ L |
q2 |
q3 λ L |
q* λ S |
|
q3 |
q3 1 L |
q3-L |
q0 λR |
Тобто, якщо x=5, y=2, вхідне слово має вигляд 11111-11,
а фінальне слово 111.