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

Лекція 3 Машини т’юрінга Основні поняття

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

Це було зроблено в 1936-1937 р. Постом і Тьюрінгом незалежно друг від друга й майже одночасно з роботами Черча й Кліні. Основна думка Поста й Тьюрінга полягала в тім, що алгоритмічні процеси-це процеси, які може робити відповідно улаштована «машина». Відповідно до цього ними за допомогою точних математичних термінів були описані досить вузькі класи машин. На цих машинах виявилося можливим здійснити або імітувати всі алгоритмічні процеси, які фактично коли-небудь, описувалися математиками.

Машини, уведені Постом і Тьюрінгом, відрізнялися не дуже істотно й надалі сталі називатися машинами Тьюрінга. Розглянемо алгоритмічні системи, представлені цими машинами.

Під машинами Поста й Тьюрінга розуміється деяка гіпотетична (умовна) машина, що складається з наступних частин:

1) інформаційної стрічки, що представляє собою нескінченну (необмежену) пам'ять машини. Як інформаційна стрічка може служити магнітна або паперова нескінченна стрічка, розділена на окремі комірки. У кожному комірку можна помістити лише один символ, у тому числі й нуль;

  1. « голівки, щозчитує,» - спеціального чутливого елемента, здатного обслідувати вміст комірок. Уздовж голівки інформаційна стрічка переміщається в обидва боки так, щоб у кожен розглянутий момент часу голівка перебувала в одній певній комірці стрічки;

  2. керуючого пристрою, що у кожен розглянутий момент перебуває в деякому «стані». Передбачається, що пристрій керування машини може перебувати в деякому кінцевому числі станів. Стан пристрою керування часто називають внутрішнім станом машини. Один із цих станів називається заключним й у роботі машини відіграє особливу роль, тому що воно управляє закінченням роботи машини.

Схематично машина представлена на мал. 4.

Розглянемо тепер алгоритмічну систему, запропоновану Постом.

В алгоритмічній системі Поста інформація представляється у двійковому алфавіті А = {1,0}.

Таким чином, у кожному комірці інформаційної стрічки можна помістити або 0, або 1. Алгоритм представляється у вигляді кінцевого впорядкованого набору правил, називаемих на казами. Робота алгоритму починається з деякої початкової комірки, що відповідає першому наказу алгоритма. Складаючі алгоритм накази можуть належати до одному з 6 наказів, виконуваних пристроєм керування машини Поста:

  1. Записати в розглянутий комірку 1 і перейти до i-го наказу.

  2. Записати в розглянутий комірку 0 і перейти до i-го наказу.

  3. Зрушити стрічку вправо на одну комірку і приступити до виконання i-го наказу.

4. Зрушити стрічку вліво на одну комірку і перейти до виконання i-го наказу.

5. Якщо в розглянутій комірці записана 1, то перейти до виконання j-го наказу, а якщо записано 0, то перейти до виконання i-го наказу.

6. Закінчення роботи алгоритму, зупинка.

Таким чином, алгоритмічна система Поста являє собою машину з інформаційною стрічкою, що містить у кожній комірці або 0, або 1; зі стрічкою, що переміщається вліво й вправо уздовж голівки; із пристроєм керування, що виконує 6 наказів (із внутрішніми станами).

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

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

Цей список операцій можна розширити. Машина Тьюрінга називається стандартною, якщо вона при зсуві стрічки може попередньо змінювати стан сприймаючої комірці.

Надалі будемо розглядати тільки стандартні машини Тьюрінга.

Нехай алфавіт машини Тьюрінга заданий у вигляді множини А = {s0, s1,..., sn}, де s0 відповідає порожній комірці, а число станів пристрою керування задано у вигляді множини Q = {qo, q1, ..., qm}t де q0 відповідає заключному стану.

Кінцева сукупність символів алфавіту, з якої працює машина, називається зовнішнім алфавітом, кінцева сукупність станів пристрою керування -внутрішнім алфавітом.

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

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

Рис.5

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

s0sj1sj2 … qisjk …sjrs0 … , (6)

де s0 — символ, що позначає порожню комірку;

r — число заповнених комірок на стрічці;

Sj1 — стан першої ліворуч непустої комірці;

Sjk — стан комірці, що переглядається в цей момент часу;

qi — стан пристрою керування.

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

Якщо стандартна машина Тьюрінга, перебуваючи в стані qi і сприймаючи записаний на стрічці символ Sk, переходить у новий стан qj здійснюючи при цьому заміну символу в розглянутій комірці на символ sm і зсув стрічки вліво на одну комірку, то говорять, що машина виконує команду qisk→qjsmЛ. Якщо заміни символу не відбувається, sm може бути відсутньою в команді.

При маніпуляціях зі стрічками приймемо наступні позначення:

Л - рух стрічки вліво;

П - рух стрічки вправо;

С - немає руху стрічки.

Звичайно команди стандартної машини Тьюринга задаються набором п'ятірок символів виду qiskqism Л, тобто стрілка опускається, або виду

qisk→qjsmЛ (7)

Розглянемо приклад машини Тьюрінга з алфавітами А = {0, 1},

Q = { q0, q1 } і командами q11q11Л, q10q01C.

Нехай на стрічці є слово 11100. Голівка стоїть над першою ліворуч одиницею. У результаті роботи машини Тьюрінга це слово перетворюється в 11110. По закінченні роботи машини голівка стоїть над крайньою правою одиницею.

Стандартна машина Тьюрінга із зовнішнім алфавітом А = {0, 1} називається нестираючою, якщо вона здатна виконувати лише команди виду

qα0→qβa;

(8)

qα1→qβ1T,

де а = {0, 1}, Т = {З, Л, П}, тобто якщо вона може вписати 1 у порожню комірку, але не може видалити символ 1, якщо він вжевписаний в комірку.

Сукупность всіх команд, які може виконувати машина, називається її програмою.

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

Нехай машина Тьюрінга задана зовнішнім алфавітом А = {s°, а, b, з, d), внутрішнім алфавітом Q = {q0, q1, q2, q3, q4, q5) і сукупністю команд q0aq1aЛ, q0bq0bЛ, q2aq5dП, q0cq0cЛ, q1dq2cП, q3aq4dП, q4bq2cП. Порожню комірку позначає символ s0, а заключний стан — q5.

Розглянемо застосування даної машини Тьюрінга для переробки первинного слова bcadc, що дасть нам слово bcdcc. Початкова конфігурація має вигляд q0bcadc, при цьому машиною буде породжена наступна послідовність конфігурацій:

I крок bq0cadc результат

виконання

команди (q0b→q0bЛ)

  1. крок bcq0adc те ж (q0c→q0cЛ)

  2. крок bcaq1dc „ (q0a→ q1aЛ)

IV крок bcq2acc результат

виконання

команди (q1d→q2сП)

V крок bq5cdcc „ (q2a→q5dП)

Програма розглянутої машини Тьюрінга може бути представлена у вигляді таблиці відповідності:

Запис алгоритму, реалізованого машиною Тьюрінга, виробляється за допомогою програми роботи цієї машини, що представляє собою сукупність команд. У розглянутому прикладі алгоритм переробки вхідного слова bcadc у слово bcdcc представляється командами q0bq0bЛ, q0cq0cЛ, q0aq1aJI, q1dq2cП, q2aq5dП.

Алгоритми пишуться стовпчиками. Для контролю проти деяких команд указується слово, у яке переходить спочатку задане слово після виконання всіх попередніх команд, включаючи й команду ліворуч.

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

Початкова конфігурація машини має вигляд q10010, кінцева конфігурація машини повинна мати вигляд q00100. Таким чином, q0 — заключний стан машини Тьюрінга. Алгоритм буде мати такий вигляд:

Команди Конфігурації

q10q2Л 0q2010

q20q31C 0q3110

q31q3 Л 01q310→011q30

q30q4 П 01q410

q41q50C 01q500

q50q6 П 0q6100

q61q6 П q60100

q60q00C q00100

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

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

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

Машини Т'юрінга із двома виходами

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

Виявляється, що якщо задані дві машини Т'юрінга T1 й T2, які допускають непересічні множини слів X1 і Х2 відповідно, то завжди можна побудувати машину Т'юрінга Т3 із двома виходами, що буде допускати X1 і забороняти Х2. Ці машини Т'юрінга будуть нам корисні при розгляді питання про можливість розв'язання.

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