Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторна машини Т.docx
Скачиваний:
7
Добавлен:
13.11.2019
Размер:
119.34 Кб
Скачать

Лабораторна робота № 3

Машини Т'юринга

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

Структура машини Т'юринга

Машина Т'юринга (МТ) складається з двох частин - стрічки і автомата (див ліворуч) :

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

Домовимося порожній вміст клітини називати символом "порожньо" і означати знаком Λ ("лямбда"). У зв'язку з цим зображення стрічки, показане на малюнку справа, таке ж, як і на малюнку ліворуч. Ця угода зручна тим, що операцію стирання символу в деякій клітині можна розглядати як запис в цю клітину символу Λ, тому замість довгої фрази "записати символ в клітину або стерти символ", що знаходиться там, можна говорити просто "записати символ в клітину".

Автомат - це активна частина МТ. У кожен момент він розміщується під однією з клітин стрічки і бачить її вміст; це видима клітина, а символ, що знаходиться в ній - видимий символ; вміст сусідніх і інших клітин автомат не бачить. Крім того, в кожен момент автомат знаходиться в одному із станів, які означатимемо буквою q з номерами: q1, q2 і тому подібне. Знаходячись в деякому стані, автомат виконує якусь певну операцію (наприклад, переміщається направо по стрічці, замінюючи усі символи b на а), знаходячись в іншому стані - іншу операцію.

Опишемо тепер машину Т'юринга Θ ретельніше. Машина Θ має в розпорядженні кінцеве число знаків (символів, букв), які створюють так званий зовнішній алфавіт А = {a0, а1, .., аn}. У кожну комірку стрічки, що оглядається, в кожен дискретний момент часу може бути записаний тільки один символ з алфавіта А. Заради одноманітності зручно вважати, що серед букв зовнішнього алфавіту А є "порожня буква", і саме вона записана в порожню комірку стрічки. Умовимося, що "порожньою буквою" або символом порожньоїкомірки являється буква Λа0. Стрічка передбачається необмеженою в обидві сторони, але в кожен момент часу на ній записано кінцеве число непорожніх букв.

Далі, в кожен момент часу машина Θ здатна знаходитися в одному стані з кінцевого числа внутрішніх станів, сукупність яких Q = {q0, q1, .., qm}. Серед станів виділяються два - початковий q1 і завершальний (чи стан зупинки) q0. Знаходячись в стані q1 машина починає роботу. Потрапивши в стан q0, машина зупиняється.

Автомат може виконувати три елементарні дії: 1) записувати у видиму клітину новий символ (міняти вміст інших клітин автомат не може); 2) зрушуватися на одну клітину вліво або управо ("перестрибувати" відразу через декілька клітин автомат не може); 3) переходити в новий стан. Нічого іншого робити автомат не уміє, тому усе більш складні операції так чи інакше мають бути зведені до цих трьох елементарних дій.

Робота машини Θ визначається програмою (функціональною схемою). Програма складається з команд. Кожна команда T(i,j)(i = 1, 2, .., m; j = 0, 1, .., n) є вираженням одного з наступних видів:

де 0 ≤ k ≤ т; 0 ≤ λ ≤ п. У виразах першого виду символ С часто опускатимемо.

Як же працює машина Т'юринга? Знаходячись в який-небудь момент часу в незавершальному стані (тобто в змозі, відмінному від q0), машина здійснює крок, який повністю визначається її поточним станом qiі символом aj, який сприймається нею в даний момент на стрічці. При цьому зміст кроку регламентований відповідною командою T(i,j):qiajqkalX, де X ϵ {С, П, Л}. Крок полягає в тому, що: 1) вміст aj, клітини, що оглядається на стрічці, стирається і на його місце записується символ al (який може співпадати з aj); 2) машина переходить в новий стан qk (воно також може співпадати з предыдущим станом q1); 3) машина переходить до огляду следующей правого комірки від тієї, яка оглядалася тільки що, якщо Х= П, або до огляду наступного лівого осередку, якщо X = Л, або ж продовжує оглядати ту ж комірку стрічки, якщо Х = С.

У наступний момент часу (якщо qk ≠ q0) машина робить крок, регламентований командою Т(k, l):qkalqrasXі так далі. Оскільки робота машини, по умові, повністю определяется її станом qi в даний момент і вмістом aj обозреваемой у цей момент осередки, то для кожних qi і aj(i = 1, 2, ...,m; j= 0, 1, ..., n) програма машини повинна містити одну і тільки одну команду, що починається символами qiaj. Тому програма машини Т'юринга із зовнішнім алфавітом А = {а0, а1 ,..., ап} і алфавітом внутрішніх станів Q = {q0, q1 ,..., qm} містить m(n + 1) команд.

Словом в алфавіті А або в алфавіті Q, або в алфавіті AUQ називається будь-яка послідовність букв відповідного алфавіта. Під k -ою конфігурацією розумітимемо зображення стрічки машини з інформацією, що склалася на ній на початок k -го кроку (чи слово в алфавіті А, записане на стрічку на початок k -го кроку), з вказівкою того, який осередок оглядається в цей крок і в якому стані знаходиться машина. Мають сенс лише кінцеві конфігурації, тобто такі, в яких усі комірки стрічки, за виключенням, можливо, кінцевого числа, порожні. Конфігурація називається завершальною, якщо стан, в якому при цьому знаходиться машина, завершальний.

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

Говоритимемо, що непорожнє слово α в алфавіті А\ А\ {a0} = {а1 ,..., ап} сприймається машиною в стандартному положенні, якщо воно записане в послідовних комірках стрічки, усі інші комірки порожні, і машина оглядає крайню справа комірку з тих, в яких записано слово α. Стандартне положення називається початковим (завершальним), якщо машина, сприймаюча слово в стандартному положенні, знаходиться в початковому стані q1 (відповідно в стані зупинки q0). Нарешті, будемо говорить, що слово α переробляється машиною в слово β, якщо від слова α, що сприймається в початковому стандартному положенні, машина після виконання кінцевого числа команд приходить до слова β, що сприймається в положенні зупинки.

Сама по собі МТ нічого не робить. Для того, щоб змусити її працювати, потрібно написати для неї програму. Ця програма записується у вигляді наступної таблиці:

А\Q

q1

qj

qm

А1

А2

Аi

q'A' [С, П, Л]

Аn

Λ

Ліворуч перераховуються усі стани, в яких може знаходитися автомат, згори - усі символи (у тому числі і Λ), які автомат може бачити на стрічці. (Які саме символи і стани вказувати в таблиці - визначає автор програми.) На перетинах (у елементах таблиці) вказуються ті такти, які повинний виконати автомат, коли він знаходиться у відповідному стані і бачить на стрічці відповідний символ.

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

(Зауваження. Часто МТ визначають як таку що складається із стрічки, автомата і програми, тому при різних програмах виходять різні МТ. Ми ж вважатимо, у дусі сучасних комп'ютерів, що МТ одна, але вона може виконувати різні програми).