Обчислювальні за Т’юрингом функції.
Визначення: Функція називається обчислювальною за Т’юрингом, якщо існує машина Т’юринга, що обчислює її значення для тих наборів значень аргументів, для яких функція визначена і працює нескінченно довго, якщо функція для даного набору значень аргументів невизначена.
Зауваження. 1.Розглядаємо функції, що задаються на множині натуральних чисел, і що приймають значення з множини натуральних чисел.
2. Значення аргументів функції будемо розміщувати на стрічці у вигляді наступного слова:
Введемо позначення
- пусте слово.
3. Переробку вхідного слова будемо починати зі стандартного положення, при якому в стані буде оглядатись крайня одиниця записаного слова, що розміщена праворуч. Якщо функція визначена на деякому наборі значень аргументів, то в результаті роботи машини Т’юринга на стрічці повинно бути записано послідовно одиниць.
В іншому випадку машина Т’юринга повинна працювати нескінченно довго. При виконанні всіх перерахованих вище умов будемо говорити, що машина Т’юринга обчислює дану функцію. Побудова машини Т’юринга відбувається в 2 етапи:
1) Створюється алгоритм обчислення функції.
2) Алгоритм записується на мові машини Т’юринга.
Приклад 5.
Побудуємо машину Т’юринга, що обчислює функцію . Дана функція визначена не на всій множині натуральних чисел. Областю її визначення є множина всіх парних чисел. Тому необхідно побудувати таку машину Т’юринга, яка у випадку, коли на її вхід поступає парне число в якості результату отримувала б половину даного числа, а коли на її вхід поступає непарне число, працювала б необмежено довго. В якості зовнішнього алфавіту візьмемо двоелементну множину . В цьому алфавіті натуральне число зображується словом 1…1, що складається з одиниць, що розміщені у комірках послідовно. Робота машини починається із стандартного початкового положення: .
А) Розробимо комплекс команд, які забезпечують рух каретки машини Т’юринга ліворуч, при цьому кожну другу одиницю замінюємо на 0. Вищезазначену процедуру забезпечують наступні команди:
(1)
(2)
(3)
Якщо кількість одиниць непарна, то машина продовжує рух по стрічці необмежено ліворуч, тобто буде працювати нескінченно. Якщо число одиниць парне, то в результаті роботи машини Т’юринга утворюється конфігурація , в якій число одиниць дорівнює .
Б) Далі необхідно перемістити одиниці так, щоб між ними не стояли нулі.
Перемістимо каретку за першу одиницю, не змінюючи інформацію на стрічці.
(4)
(5)
(6)
В результаті виконання команд (4)-(6) отримаємо конфігурацію: (*).
Замінимо 0, перед яким зупинилась каретка на 1 і перемістимося праворур до найближчого 0.
(7)
(8)
Отримаємо конфігурацію: , в якій праворуч від комірки, яка переглядається записані пари 01,01,…,01. Крім того, на стрічці одна 1 записана зайва. Перемістимося по стрічці праворуч до останньої пари 01.
(9)
(10)
Отримаємо конфігурацію:
Повернемося на дві комірки назад і замінимо одиницю з останньої пари 01 на 0.
(11)
(12)
(13)
Отримаємо конфігурацію: . Число одиниць на стрічці дорівнює . Перемістимося ліворуч на одну комірку.
(14)
В результаті отримаємо конфігурацію: . Тепер замінимо праву одиницю на 0 і перемістимося по стрічці до наступної одиниці.
(15)
(16)
Тепер на стрічці не вистачає однієї одиниці (число одиниць дорівнює ).
Перемістимося по стрічці ліворуч до останньої пари 10.
(17)
(18) .
Послідовне виконання команд (17), (18) приведе до наступної конфігурації: . Вернемося праворуч до найближчого нуля і замінимо його на 1.
(19)
(20)
(21) .
Отримаємо конфігурацію: . В якій число одиниць знову дорівнює .
Якщо тепер перемістити каретку праворуч і перевести машину в стан за допомогою команди , то отримаємо конфігурацію: , яка аналогічна конфігурації (*).
В результаті програма стає циклічною, знову найближчий нуль перетворюється в одиницю, а остання одиниця, що розміщується на стрічці праворуч, перетворюється в нуль. Потім машина переміщує каретку до першого нуля, що розміщується у слові ліворуч і т.д.
В деякий момент роботи програми конфігурація буде мати вигляд: . Виконавши команди (17) і (18), отримаємо конфігурацію: . В подальшому виконуються команди (19),(20),(21), що приводять до конфігурації . Зупинимо машину за допомогою команди . Заключна конфігурація має вигляд: .
Таблична форма програми машини Т’юринга має вигляд:
Дата добавления: 2015-10-13; просмотров: 1379;