You are on page 1of 21

Лекція 2. Машини Тьюринга.

Тема. Детерміновані алгоритми.


Питання

• Машини з натуральнозначними регістрами.


• Детермінована однострічкова машина
Тьюринга.
• Багатострічкові машини.
• Еквівалентність машин.
• Ієрархія класів DTIME.
Основне з теорії алгоритмів
• Усі команди, які може виконувати певний виконавець
алгоритму, складають систему команд виконавця
(СКВ).
• Алгоритм будується з команд СКВ.
• Об’єкти, над якими виконавець може виконувати дії,
складають так зване середовище виконавця.
• Клас задач, на розв’язання яких орієнтований
виконавець, визначається його системою команд.
• В теорії алгоритмізації прийнято виокремлювати дві
категорії виконавців:
 виконавці, що працюють в певній ситуації,
 виконавці, що працюють з величинами.
Машина з натуральнозначними
регістрами (МНР)
• МНР є ідеалізованою моделлю комп'ютера.
• МНР складається із необмеженої
послідовності регістрів, вмістом яких є
натуральні числа.
• Регістри нумеруємо натуральними числами,
починаючи з 0, позначаючи їх R0, R1, ..., Rn, ...
• Вмiст регiстру Rn позначаємо 'Rn .
• Послiдовнiсть ('R0, 'R1,..., 'Rn, ...) вмiстiв
регiстрiв МНР називається конфiгурацiєю
МНР.
• МНР може змiнити вмiст регiстрiв згiдно до команди, яку виконує.
Скiнченний список команд утворює програму МНР.
• Команди програми послідовно нумеруємо натуральними числами,
починаю­чи з 1. Номер команди в програмі називаються адресою
команди.
• МНР-програму з командами I1, I2,..., Ik позначимо I1I2...Ik.
• Довжину (кiлькiсть команд) МНР-програми P позначимо |P|.
• Команди МНР бувають 4-х типiв.
• Тип 1. Обнуління n-го регістру Z(n): 'Rn : 0.
• Тип 2. Збільшення вмісту n-го регістру на 1 S(n): 'Rn : 'Rn+1 –
інкремент регістру (n=n+1).
• Тип 3. Копіювання вмісту регістру T(m, n): 'Rn : 'Rm (при цьому 'Rm
не змiнюється).
• Тип 4. Умовний перехід J(m, n, q): якщо 'Rn = 'Rm, то перейти до
виконання q-ї команди, інакше виконувати наступну за списком
команду програми.
• Число q в команді J(m, n, q) назвемо адресою переходу.
• Виконання однiєї команди МНР назвемо кроком МНР.
• Формальними моделями алгоритмів є саме МНР-
програми.
• Якщо МНР-програма P нiколи не зупиняється при
роботi над початковою конфiгурацiєю (a0, a1, ...), це
позначаємо P(a0, a1, ...), якщо коли-небудь зупиниться,
це позначаємо P(a0, a1,...).
• Якщо МНР-програма P при роботi над початковою
конфiгурацiєю (a0, a1, ...) зупиняється iз фiнальною
конфiгурацiєю (b0, b1, ...), це позначаємо P(a0, a1, ...)(b0,
b1, ...).
• Конфiгурацiю вигляду (a0, a1, ..., aп, 0, 0, ...), в якiй 'Rm = 0
для всiх m > n, назвемо скiнченною. Таку конфігурацію
позначаємо (a0, a1, ..., aп).
• МНР-програма P стандартна, якщо в P для кожної
команди вигляду J(m, n, q) виконується умова q  |P| + 1.
• Конкатенацією стандартних МНР-програм P = І1I2...Ik та Q
= I1I2...Im назвемо стандартну МНР-програму I1...IkIk+1...Ik+m,
де команди Ik+1,..., Ik+m по суті є командами програми Q, у
яких кожна команда вигляду J(m, n, q) замінена командою
J(m, n, q + k).
• МНР-програми P та Q еквiвалентнi, якщо при роботi над
однаковими початковими конфiгурацiями вони або обидві
зупиняються з однаковими фiнальними конфiгурацiями,
або обидвi не зупиняються.
• МНР-програма P обчислює часткову n-арну функцiю
f : Nn→N, якщо
• f(a1, a2, ..., aп) = b  P(a1, a2, ..., aп)(b, ...).
• Функцiя f : Nп→N МНР-обчислювана, якщо iснує МНР-
програма, яка обчислює цю функцiю.
Машина Тьюринга
• Машина Тьюрінга – це абстрактна машина, що
працює зі стрічкою, що складається із окремих
комірок, в яких записано символи.
• Машина також має голівку для запису та читання
символів із комірок і яка може рухатись вздовж
стрічки.
• На кожному кроці машина зчитує символ із
комірки, на яку вказує голівка та, на основі
зчитаного символу та внутрішнього стану, робиться
наступний крок.
• При цьому, машина може змінити свій стан,
записати інший символ в комірку або пересунути
голівку на одну комірку ліворуч або праворуч.
• У кожної машини Тьюрінга є стрічка, потенційно
нескінченна в обидві сторони.
• Є скінченна множина символів стрічки S0,...,Sn, що
називається алфавітом машини.
• У кожен момент часу кожна комірка може бути
зайнята не більш ніж одним символом.
• Машина має деяку скінченну множину внутрішніх
станів q0, q1,...,qn. У кожен даний момент часу
машина знаходиться лише в одному із цих станів.
• Голівка у кожний даний момент часу знаходиться на
одній із комірок стрічки.
Дія машини Тьюрінга визначена однією із
чотирьох дій:
1. голівка затирає символ Si, і записує у тій же комірці
новий символ Sk,
2. голівка пересувається в сусідню ліву комірку,
3. голівка пересувається в сусідню праву комірку,
4. машина зупиняється.

• Перші три з можливих дій машини можуть бути описані


відповідно такими упорядкованими четвірками, які
називаються командами:
1. Siqj → SkqrS
2. Siqj → SkqrL
3. Siqj → SkqrR
• Зафіксуємо два скінчених алфавіти – А={а0, а1,…,
аn}, де n ≥0, і Q={q1, q2,…qm}, де m ≥1.
• При цьому А будемо називати зовнішнім
алфавітом, а Q внутрішній алфавіт або алфавіт
станів.
• Додатково поставимо вимогу, що А∩Q=Ø і
символи →, L, R не належать А∪Q.
• Один символ А називають порожнім, зазвичай
його позначають ∧. Усі інші букви з А називають
непорожніми.
Машиною Тьюрінга (МТ) називають упорядковану шістку
{A, Q, a0, q0, q1, P}, яка задовольняє таким умовам:
•Множини A і Q скінчені, не перетинаються і не містять
символів →, L, R;
•a0∈А, q0∈Q, q1∈Q. При цьому a0 називається символом
порожньої комірки, q1 – початковий стан машини, q0 –
стан, у якому машина зупиняється;
•Р – програма із зовнішнім алфавітом А і внутрішнім
алфавітом Q, причому:
a)програма не містить двох різних команд з однаковими
лівими частинами;
b)будь-яка з команд не починається символом q0.
• Алфавітом називається довільна не порожня злічена
множина. 
• Зазвичай розглядають кінцеві алфавіти. 
• Елементи алфавіту називаються символами або
буквами. 
• Словом в алфавіті A називається кінцева
послідовність літер з цього алфавіту. 
• Кількість букв в слові x називається довжиною слова
і позначається |x|. 
• A* = множина всіх слів над алфавітом A.
• Ak = множина всіх слів довжини k.

• Машинним словом або конфігурацією називається


будь-яке слово в алфавіті А∪{qi}, для якого qi∈Q,
причому символ qi входить у це слово один раз і не на
останньому місці.
Детермінована однострічкова машина
Тьюринга (ДМТ) – це четвірка M = (Q, A,
S, Π), де A – «стрічковий» алфавіт (містить
спеціально виділений символ ∧ - «пробіл»),
Q = {q0, q1, ..., qm} – алфавіт станів, S = {- 1,
0, +1} – алфавіт зрушень (рос. сдвигов),
і Π – програма, що представляє собою
відображення Q × A → Q × A × S.
Багатострічкові машини Тьюринга

• Нехай k - ціле число, k ≥ 1, k- стрічкова


машина Тьюринга – це п'ятірка:
M = (k, A, Q, S, Π), де Π: Q × Ak →Q × (A × S)k.
Еквівалентність машин
• ТЕОРЕМА 3. Для будь-якого k ≥ 1 існує
універсальна (k +1) – стрічкова машина Тьюрінга.

• Будемо говорити, що машини M і M' еквівалентні,


якщо вони обчислюють одну і ту ж функцію.

• ТЕОРЕМА 4. Для будь-якої k-стрічкової машини M,


що має часову складність T(n), існує еквівалентна їй
однострічкова машина M' з тимчасовою
складністю T'(n) = O(T2(n)).
Ієрархія класів DTIME
• Визначення. DTIME (f (n)) – це клас задач, для
кожної з яких існує детермінована МТ, що
розв’язує цю задачу з часовою
складністю O(f(n))).
• Визначимо також класи:
P = PTIME =∪k> 0DTIME (nk) – клас задач, що
розв’язуються за поліноміальний час.
EXPTIME =∪k> 0DTIME  (2 ^ (nk)) – клас задач,
що розв’язуються за експоненціальний час. 
• Клас P – це клас ефективно розв’язуваних
задач. Алгоритм, що має поліноміальну
тимчасову складність, називається ефективним.
• Задача, для якої в даний час ніхто не знає
ефективний алгоритм або для якої доведено
відсутність такого алгоритму, називається
складнорозв’язаною.
• ТЕОРЕМА 5. (Теорема про лінійне
прискорення). Для будь-якої машини M з
часовою складністю T(n) і будь-який
константи c> 0, існує еквівалентна машина
Тьюринга M' з тимчасовою складністю
T '(n) = з T (n) + n.
• Визначення. Функція f називається той, що конструюється
за часом, якщо існує машина Тьюринга M, яка для даного вхідного
слова довжини n зупиняється рівно через f (n) кроків.
• Визначення. Функція f називається той, що конструюється за
місткістю, якщо існує машина Тьюринга M, яка для даного
вхідного слова довжини n переглядає рівно f (n) комірок на однієї
зі своїх стрічок і не більше f (n) комірок на інших стрічках.
• Визначення. Розглянемо машину Тьюринга M, що має два
заключних стану qY (допускає стан) і qN (відхилює стан) і довільне
слово x ∈ A*.
 Якщо M на вході x через кінцеве число кроків зупиняється в стані
qY, то будемо говорити, що машина M допускає рядок x.
 Якщо M на вході x зупиняється в стані qN або «зациклюється», то
будемо говорити, що машина M відхиляє рядок x.
• Визначення. Через L (M) позначимо множину всіх слів x ∈ A*, що
допускаються машиною Тьюринга M.
• Визначення. Нехай L – мова над алфавітом A. Кажуть, що машина
M розпізнає мову L, якщо L(M) = L.
Теорема про ієрархію
• Нехай f і g – дві функції, що обчислюються і
конструюються за часом, і g(n)=ω(f(n)logf(n)).

• СЛІДСТВО 1. Для будь-якого цілого числа k (k>


0) виконується DTIME(nk) ⸦ DTIME(nk + 1).
• СЛІДСТВО 2. PTIME ⸦ EXPTIME.

You might also like