Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теорія алгоритмів Лекції.docx
Скачиваний:
41
Добавлен:
20.11.2019
Размер:
3.94 Mб
Скачать

Багатострічна машина т'юрінга

Схема багатострічної машини Т'юрінга представлена на Рис. 6. Вона складається з деякого кінцевого числа стрічок, розбитих на комірки. У кожній комірці може перебувати один із символів зовнішнього алфавіту А = {s0, s1, ..., sn}. Комірки із символом s0 будуть уважатися порожніми. Пристрій керування машини в кожен момент часу перебуває в одному з кінцевої множини станів Q = {q0, q1, ...,qm}. Стан q0 уважається заключним станом машини.

П рипустимо, що в кожен момент часу машина «обдивляється» одну комірку кожної стрічки.

Конфігурація машини вважається заданою, якщо відомо стан пристрою керування q, стану всіх комірок всіх стрічок і зазначені комірки, сприймані машиною. Для k-стрічкової машини конфігурація її в i-й момент часу описується системою k-слів виду:

si11 ... si1eqisi1e+1 ... Si1t;

……………...... (9)

Sikl ... SikeqiSike + 1 ... Sikv.

по одному слову для кожної стрічки перший індекс відповідає моменту часу, другий-номеру стрічки, третій - номеру комірки на стрічці, рахуючи з ліва на право.

Залежно від внутрішнього стану пристрою керування qi умісту комірок, що оглядаються у даний момент, Si1e+1 ... Sike+1 машина переходить у наступний стан за допомогою таких дій:

  1. стан кожної сприйманої комірки заміняється новим станом (який може збігатися зі старим);

  2. кожна стрічка пересувається на одну комірку вправо, уліво або залишається нерухомої;

  3. внутрішній стан пристрою керування qi переводиться в новий стан qj (який може збігатися зі старим).

Уважається, що якщо пристрій керування в якийсь момент приходить у заключний стан q0, то машина зупиняється й у наступні моменти часу конфігурація машини не міняється.

Говорять, що машина виконує команду

qisα1... sαk →qjsβ1T1 … sβkTk, Т = {Л, З, П}, (10)

якщо, перебуваючи в стані qi і сприймаючи комірки із символами sα1... sαk, машина переходить у стан qj, заміняючи вміст комірок відповідно символами sβ1... sβk. Після цього стрічки відповідно зрушуються в напрямках Т1 ... Tk.

Задати програму багатострічкової машини Т'юрінга - це значить для кожного слова

qisα1... sak(i=1, …, m; α1, …, αk=0,1, …, n)

задати яку-небудь команду виду (10). Таким чином, k-стрічкова машина Т'юрінга визначає алгоритм для переробки слів виду (9).

Помітимо, що вичислимість на багатострічковій машині Т'юрінга частково рекурсивних функцій є прямий наслідок вичислимості цих функцій на однострічковій машині.

Універсальна машина т'юрінга

Дотепер ми дотримувалися тієї точки зору, що різні алгоритми здійснюються на різних машинах Т'юрінга, що відрізняються набором команд, внутрішнім і зовнішнім алфавітами. Однак можна побудувати універсальну машину Т'юрінга, здатну у відомому змісті виконувати будь-який алгоритм, а виходить, здатну виконувати роботу будь-якої машини Т'юрінга.

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

Це досягається шляхом кодування конфігурації й програми будь-якої даної машини Т'юрінга в символах вхідного (зовнішнього) алфавіту універсальної машини. Саме кодування повинне виконуватися в такий спосіб:

  1. різні букви повинні замінятися різними кодовими групами, але та сама буква повинна замінятися всюди, де б вона не зустрічалася, однієї й тією же кодовою групою;

  2. рядки кодових записів повинні однозначним образом розбиватися на окремі кодові групи;

  3. повинна мати місце можливість розпізнати, які кодові групи відповідають різним зсувам, тобто кожної з букв Л, П, С окремо, і розрізняти кодові групи, що відповідають буквам внутрішнього алфавіту й буквам зовнішнього алфавіту.

Розглянемо приклад такого кодування для машини Т'юрінга Т, що має зовнішній алфавіт А = {s1, s2, ..., Sk} і внутрішній алфавіт Q = {q1, q2, ..., qm}.

Якщо зовнішній алфавіт універсальної машини Т'юрінга складається із символів А = {0, 1}, то ці умови будуть напевно дотримані при наступному способі кодування.

1. В якості кодових групи беруться 3 + k + т різних слів виду 100 ... 01 (між одиницями — суцільно нулі), де k — число символів зовнішнього алфавіту;

т - число станів пристрою керування.

Тоді розбивка рядків на кодові групи провадиться однозначним шляхом виділення послідовностей нулів, укладених між двома одиницями.

2. Зіставлення кодових груп вихідним символам зовнішнього й внутрішнього алфавітів здійснюється відповідно до наступної таблиці кодування:

Буква

Кодова група

Л

С

П

101

1001

10001

Зовнішній алфавіт Парне число нулів, більше чим 2

Зовнішній алфавіт Парне число нулів, більше чим 2

Так, наприклад, для машини Т'юрінга, що переробляє слова bcadc у слово bcdcc, вхідне слово в універсальній машині Т'юрінга з даним кодом буде представлено наступним рядком: 10000001 1000000001 100001 100000000001 1000000001, де 100001 —a, 10000001 — b, 1000000001 — з, 100000000001 — d. Програма ж буде представлена наступними рядками:

1000001 10000001 1000001 10000001 101 (q0bq0bЛ)

1000001 1000000001 1000001 1000000001 101 (q0Cq0cJl)

1000001 100001 100000001 100001 101 {q0aq1aЛ)

100000001 100000000001 10000000001 1000000001 10001 (q1d2q2cП)

10000000001 100001 100000000000001 100000000001 10001 (d2aq3dП)

При кодуванні програм, конфігурацій і вхідних слів замість нулів й одиниць можна брати будь-які інші два символи, наприклад а й b.

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

Якщо ж алгоритм, реалізований машиною Тп, не застосовний до слова хп, то алгоритм, реалізований універсальною машиною Ти, також не застосовний до слова, утвореному із зображення хп і програми машини Тп.

Таким чином, машина Т'юрінга Тп може розглядатися як одна із програм для універсальної машини Ти.

У зв'язку з існуванням універсальної т'юрингової машини таблиці відповідності, що описують різні стани пристрою керування машини, мають двояке призначення:

1)для опису станів пристрою керування спеціальної машини Т'юрінга, що реалізує відповідний алгоритм;

2) для опису програми, що подається на стрічку універсальної машини Т'юрінга, при реалізації відповідного алгоритму.

Сучасні електронні обчислювальні машини будуються як універсальні; у запам'ятовувальний пристрій поряд з вихідними даними поставленого завдання уводиться також і програма її рішення.

Однак на відміну від машини Т'юрінга, у якій зовнішня пам'ять (стрічка) нескінченна, у будь-якій реальній обчислювальній машині вона скінеченна.

Для порівняння структур різних машин й оцінки їхньої складності необхідно мати відповідну міру величини або складності машин. Шеннон запропонував розглядати як таку міру добуток числа символів і числа станів. Таким чином, «складність» машини Т'юрінга дорівнює добутку числа символів зовнішнього алфавіту на число внутрішніх станів, відмінних від заключного. Значний інтерес викликало завдання побудови універсальних машин Т'юрінга мінімальної складності.

До початку 1963 р. останніми результатами в цьому напрямку були теорема Ватанабе про існування універсальної машини з 5-ю символами й 6-ю станами, теорема Мінського про існування машини з 4-мя символами й 7-ю станами й теорема Тригера про існування універсальної машини з 4-мя символами й 6-ю станами.