Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота5-6(печать).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
90 Кб
Скачать
☆

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

Тема: Обчислювані по Т'юрингу функції

Обчислювані по т'юрингу функції

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

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

Тут корисно ввести наступні позначення. Для натурального х позначаємо:

Додатково вважаємо 0° = 1° = Λ - порожнє слово. Отже на слова 1° = Λ, 11 = 1, 12 = 11, 13 = 111, .. дивитимемося як на "зображення" натуральних чисел 0, 1, 2, 3, ..відповідно.

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

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

Приклад 1. S(x) = х + 1. Функція здійснює переведення: q101x0 => q001x+1. Початковий і кінцевий стани повинні знаходитися на нулі зліва. Її програма: q10→q2П, q21→q21П, q20→q31, q31→q31Л, q30→q00.

A/Q

q1

q2

q3

0

q20П

q31

q00

1

q21П

q31Л

Перевірити роботу на словах.

Приклад 2. О(х) = 0. Функція О(x) = 0 здійснює переведення: q101x0 => q000x+1. Її програма: q10→q20П, q21→q21П, q20→q30Л, q31→q40, q40→q30Л, q30→q00. Відповідну машину Т'юринга позначили О (онулення).

A/Q

q1

q2

q3

q4

0

q20П

q30Л

q00

q30Л

1

q21П

q40

Перевірити роботу на словах.

Приклад 3. Побудувати машину "ліве зрушення" Б-, з початкового стандартного положення оброблюється слово 01xq10 в те ж саме слово і зупиняється, оглядаючи найлівішу комірку з нулем q001x0.

Програма машини Б-: q10→ q20Л, q2l → q2lЛ, q20 → q00.

A/Q

q1

q2

0

q20Л

q00

1

q2lЛ

Перевірити роботу на словах.

Приклад 4. Побудувати машину "праве зрушення" Б+ Друга машина з початкового стану, в якому оглядається ліва комірка з нулем, слово q101x0 переробляє в те ж саме слово і зупиняється, оглядаючи найправішу комірку з нулем 01xq00.

Ясно, що програма машини Б+ виходить з програми Б- машини з заміною символу "Л" символом "П". Написати програму цієї машини, та перевірити роботу на словах.

Приклад 5. Машина Т'юринга називається "транспозицією" і позначається В, здійснює перехід 01xq101y0   01yq001x0.

Машина Т'юринга (називається "подвоєння" і позначається Г), здійснює перехід q101x0   q001x01x0.

(Побудувати самостійно у варіантах)