Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕОРІЯ АЛГОРИТМІВ ТА АВТОМАТІВ_Конспект лекцій(....doc
Скачиваний:
16
Добавлен:
20.04.2019
Размер:
3.18 Mб
Скачать

4.Операція проекції

Побудуємо машину , яка отримує з слова , зберігає та без зміни, а зі словом діє за програмою

тобто

Для цього:

З алфавіту А слово перекладемо в слово з В, з алфавіту А’ слово перекладемо в слово з алфавіту В’, а слово збережемо без змін

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

5. Операція об'єднання двох програм

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

Цього можна досягти наступним чином:

6. Операція циклу

В програмах машини Тюрінга могуть бути цикли. Розглянемо один з них:

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

; , де

Можна скласти машину Тюрінга , яка буде працювати наступним чином:

  1. Якщо задане слово Р задовольняє вказаній властивості, то машина обчислює значення ;

  2. Якщо задовольняє цій же властивості, то машина обчислює ; і т.д.

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

Цього можна досягти наступним чином:

(*)

- програма копіювання (подвоєння слова)

- перше слово перекладає по в символ з

Заключний стан програми перенумеруємо на початковий стан машини

Теорема Тюрінга

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

Доведення: вестимемо за структурою побудови функції.

Розглянемо найпростіші функції o(x), S(x) та . Покажемо, що ці функції обчислюванні.

Розглянемо алфавіт . Будемо вважати, що нуль кодується нулем, а число кодується , - пустий символ, а * - символ відокремлення, тоді

  1. програма обчислення функції о(х)≡0

на стрічці

  1. програма додавання одиниці S(x)=x+1

  1. програма вибору m-тої координати для обчислення функції

Програма стирає всі символи до слова , рахуючи при цьому *, не змінює слова та продовжує стирати до поява порожнього символу.

Розглянемо операції С, ПР та µ. Складемо відповідні машини Тюрінга.

  1. Операція С(суперпозиції)

Нехай функція має вигляд:

, де - функція к змінних, а - n змінних

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

програма копіювання к раз

  1. Операція ПР(примітивної рекурсії)

Нехай функція отримана за схемою примітивної рекурсії за допомогою константи а та функції , якщо:

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

f(0)=a,

f(1)=g(0,f(0))=g(0,a)

f(2)=g(1,f(1))

f(x+1)=g(x,f(x))

Розглянемо алгоритм

(*)

Побудуємо додаткові машини:

, де

Програма : Програма :

Тоді програма операції примітивної рекурсії матиме вигляд:

(*)

(*)

  1. Операція мінімізації

Нехай задана машина , яка обчислює функцію .

та

:

Тоді (*)

Теза Черча: будь-який індуктивно-зрозумілий алгоритм може бути сформульований у вигляді частково рекурсивної функції.