
- •Теорія алгоритмів та автоматів Частково-рекурсивні функції
- •Машина Тюрінга
- •Програма копіювання
- •Операції над програмами
- •Операція суперпозиції
- •2. Операція введення заборонених символів
- •3. Розгалудження за сигнальною буквою
- •4.Операція проекції
- •5. Операція об'єднання двох програм
- •6. Операція циклу
- •Теорема Тюрінга
- •Скінченні автомати Детерміновані і обмежено-детерміновані функції
- •Інформативні дерева
- •Вага дерева. Обмежено-детерміновані функції
- •Представлення детермінованої функції інформативно навантаженими деревами на алфавітах а і в.
- •Представлення детермінованих функцій багатьох змінних в вигляді інформативних навантажених дерев
- •Найпростіші скінченні автомати
- •Логічні мережі
- •Операції над логічними мережами
Програма копіювання
Машина
Тьюрінга
починає
працювати зі стрічкою, на якій записано
слово Р з алфавіту А, і через скінченну
кількість тактів зупиняється і на
стрічці записано слово Р*Р.
Р –
слово з алфавіту А=
,
тобто скінченна послідовність символів
з А. Сукупність всіх слів з алфавіту А
позначаємо
.
Будемо вважати що:
1) що *
;
2) що машина починає і закінчує свою роботу на самому лівому непорожньому символі, записаному на стрічці;
3) слово Р складається тільки з не порожніх символів, тобто без прогалин (Λ ми можемо винести з слова).
Програма м.т.
Наприклад,
├
├…├
├
├
├…├
├…├
├
├
├
├
├
├
├
├
├…├
├
├
├
├
├…├
├
├
├…├
├
├
├
├…├
├
Програма посиленого копіювання
Слово дублюється n раз.
Напишемо програму для n=3
Програма м.т.
Програма перекладу
Є два
алфавіти: А=
і
В=
.
Слово Р – з А, Р/
- з В.
Машина
Тюрінга Т2
переводить довільне слово Р з А в слово
Р/
з
алфавіту В наступним чином: кожний
елемент
замінюється на
2.1 Програма вибіркового переводу
Нехай на стрічці написано n слів Р1,…,Pn , що розділені * з алфавіта А.
Виділимо слова з номерами i1,i2,…ik. Машина Т2i1…ik переводить в алфавіт В слова Рi1 ,…,Pik в Рi1/,…,Pik/, а всі інші залишає без змін.
Приклад:
Програма сортування
Нехай
два неперетинних алфавіти А=
і
В=
,
Розглянемо
Позначимо
через
слово
з алфавіту С,
.
(А) – слово, що отримане з видаленням символів з алфавіту В, що до нього входять.
(В) – слово, що отримане з видаленням символів з алфавіту А, що до нього входять.
Наприклад:
=
(А)=
(В)=
Машина Тюрінга Т3 починає зі слова і через скінченну кількість тактів зупиняється і на стрічці записано слово (А)* (В)
Програма м.т.
Операції над програмами
Операція суперпозиції
Введення заборонених символів
Розгалуження за сигнальною буквою (або умовний перехід)
Операція проекції
Об’єднання двох програм
Цикл
Операція суперпозиції
Побудуємо
машину
,
яка задане слово
перекладає в слово
Для
цього змінимо в програмі
стан
на
Програма
А програму перенумеруємо
Програма
стара:
;
нова:
В програмі стан не змінимо.
2. Операція введення заборонених символів
Побудуємо
машину
,
яка задане слово Р з алфавіту С перекладає
в нове слово, причому з символами з
алфавіту А буде працювати так само як
і машина
,
а символи з алфавіту В не помічатиме.
Для
цього кожний стан машини
перепишемо двома станами
Наприклад,
перепишемо
перепишемо
і
доповнимо командами
та
3. Розгалудження за сигнальною буквою
Нехай
задані дві машини
та
,
що підраховують функції
та
Побудуємо
машину
,
яка перекладає слово
,
де
-
спеціальний символ з алфавіту
,
в нове слово, при цьому якщо
,
то в слово
,
а якщо
,
то в слово
Для этого:
Перенумеруємо стани так, щоб не співпадали з станами машини
Попередньо запишемо 4 команди
Стани
машини
перенумеруємо через
,
не змінюємо. Стани
машини
перенумеруємо через
,
не змінюємо.