- •2.3. Арифметичні операції в різних системах числення.
- •3.8. Розв'язати системи рівнянь з регулярними коефіцієнтами.
- •Має два виводи
- •1.4. Скінченний автомат а заданий графом:
- •4.2. Приклад. Побудувати дса, еквівалентний до нса
- •Лекція 5. Скінченні автомати і регулярні мови. Лема про роздування.
- •6.3. Приклад. Побудувати мп-автомат, який розпізнає мову
- •(Д, аЬЬа, е) ь (д, ьЬа, а) ь (д, Ьа, Ьа) ь (р, Ьа, Ьа) ь (р, а, а) ь (р, е, е); (д, аЬЬа, е) ь (д, ьЬа, а) ь (д, Ьа, Ьа) ь (д, а, ьЬа) ь (р, а, ьЬа);
- •Зліва записуються всі стани, крім кінцевого ду, з множини станів
- •Проаналізуйте роботу мт на наступних вхідних словах:
- •3.7. Приклад. Побудуємо машину Тюрінґа, яка переводить натуральні числа з унарної системи числення в десяткову.
- •Лекція 4. Частково рекурсивні та примітивно рекурсивні функції
- •Приклад. Застосувати кожну з підстановок з попереднього прикладу до слова аЬЬасЬа максимальну можливу кількісить разів.
- •5.3. Приклад. Застосувати кожен з нам
- •8.7. Оцінити часову та ємнісну складність мт, заданої графом:
5
а1
а2
аі
ап
#
5
Яі
Яз
д',
а',
[Ь, Е]
Ят
Зліва записуються всі стани, крім кінцевого ду, з множини станів
Я = {5,Яі, ...,Яз,.. .,Ят ,Яу }
в яких може знаходитися керуючий пристрій МТ. Зверху - всі букви з алфавіту А (серед яких обов'язково є #), які головка МТ може аналізувати на стрічці. На перетених рядків і стовпців таблиці вказуються ті такти, котрі повинен виконувати керуючий пристрій, знаходячись в відповідному стані і аналізуючи відповідну букву на стрічці.
Підсумовуючи все вище сказане, машина Тюрінґа може бути визначена як п'ятірка МТ = (Я,А,5,з,д^), де Я - скінченна множина станів, А - скінченний алфавіт, 5 - фукція переходів, з Є Я - початковий стан, д^ Є Я - кінцевий стан.
Вияснимо, як машина працює на вхідному слові ш, до якого буде застосована програма роботи МТ. Вхідне слово - це скінченна послідовність букв з алфавіту X С А, записаних зліва направо по одній в кожній клітинці. Всередині вхідного слова порожніх клітинок немає. Всі клітинки зліва і справа від клітинок, заповнених буквами вхідного слова ш, вважаються порожніми і в них знаходиться символ Якщо вхідне слово порожнє, то на стрічці всі клітинки заповнені порожнім символом
Для того, щоб пояснити як машина Тюрінґа працює з вхідним словом ш, визначимо поняття конфігурації МТ. Припустимо, що на деякому етапі роботи МТ перебуває в стані д, її стрічка містить символи ... ###жіх2 ... хт### ..., де Хі Є А, і = 1,... ,т, і головка аналізує букву Хк. В випадку, коли к < т, ми будемо писати:
(д, ХіХ2 . . . Хк-іХкХк+1 . . . Хт),
щоб позначити цю конфігурацію. Якщо ж к > т, то позначимо цю конфігурацію наступним чином:
(д,Хі Х2 . ..Хт ## . . . #).
к-т
Таким чином, конфігурація - це пара (д, ш) Є Я х А1. Конфігурація (д,х1 х2 ... Хк-1 ХкХк+1... хт), позначає той факт, що машина перебуває в стані д, її стрічка містить слово х1 х2 ... Хк-1 ХкХк+1 ... хт і головка аналізує букву Хк.
Вживаючи ці позначення, результат кожного руху МТ можна описати наступним чином:
якщо 5(д,Хк) = (р,а,К), то після одного такту, конфігурація (д, х1 х2 ... Хк Хк+1 ... хт) МТ змінюється на конфігурацію (р,Х1 Х2 ... аХк+1 ...Хт);
якщо 5(д,хт) = (р,а,К), то після одного такту конфігурація (д, х1 х2 ... хт) МТ змінюється на (р, х1 х2 ... а#);
5 |
а |
6 |
# |
з |
з, 0, Д |
41, 1,Д |
42, |
41 |
42, 0,Д |
41,1,Д |
4/, 0,£ |
42 |
42, 0,Д |
42, 1,Д |
42, 0,Д |
Початкова конфігурація МТ на вхідному слові аа6а6а матиме вигляд (з, аа6а6а). Починаючи з цієї конфігурації, робота МТ на слові аа6а6а може бути описана наступним чином:
(з,аа6а6а) ^ (з, 0а6а6а) ^ (з, 006а6а) ^ (д1, 001а6а) ^ (д2, 00106а) ^ (^, 00101а) ^ (^2, 001010#) ^ (д2, 0010100#) ^ (^2, 001010... 0#)
Таким чином, МТ ніколи не вийде зі стану д2 і її головка нескінченно рухатиметься праворуч, міняючи при цьому порожні символи на 0. Іншими словами МТ в стані д2 зациклюється на вхідному слові аа6а6а і дане слово не розпізнається МТ.
На вхідному слові аааа66 МТ працює іншим чином: (з,аааа66) ^ (з, 0ааа66) ^ (з, 00аа66) ^ (з, 000а66) ^ (з, 000066) ^ (^1, 000016) ^ (^1, 000011#) ^ (/, 0000110).
Оскільки МТ перейшла в стан /, то вона зупиняє свою роботу. Вхідне слово аааа66 розпізнається МТ. Вихідним словом є 0000110.
Для зручності МТ зображують поміченим орієнтованим графом С(МТ). Вершинами даного графа є стани автомата. Кожна стрілка графа має позначку виду "а/6; Д"або "а/6; £". Якщо 5(д, а) = (р, 6, Д) (5(д, а) = (р, 6, X)), то граф містить стрілку з позначкою "а/6; ^"(відповідно "а/6; £"), початком якої є вершина д, а кінцем - вершина р. При цьому, якщо стрілка містить дві позначки виду "а/6; Д"і "с/6; Д "(відповідно "а/6; £"і "с/6; X"), то ми для компактності запису пишемо позначку "а, с/6; Д"(відповідно "а, с/6; £"). Наприклад, граф МТ з прикладу 1.1 має вигляд:
Ь/1;К
Мовою Ь1 (МТ), що розпізнається машиною Тюрінґа, називається множина всіх слів, які розпізнаються МТ, тобто
Ь1 (МТ) = {ш Є А* : ш розпізнається МТ}.
Легко бачити, що в прикладі 1.1 мова, що розпізнається машиною Тюрінґа Ь1 (МТ) = {атЬп : т > 0,п > 1}.
Кажемо, що деяка мова Ь розпізнається машиною Тюрінґа, якщо існує така МТ, що Ь = Ь(МТ).
Мовою Ь2(МТ), що породжується машиною Тюрінґа, називається множина всіх вихідних слів, які утворюються з вхідних слів мови (МТ), що розпізнається машиною Тюрінґа. Наприклад, в прикладі 1.1 мова, що породжується машиною Тюрінґа Ь2 (МТ) = {0т 1п0 : т > 0, п > 1}.
Вправи до лекції 1.
1.1. Нехай машина Тюрінґа задана як п'ятірка: МТ = А, 5, з, д^), де Я = {з, Яї}, А = {0,1, #}, а програма роботи 5 задана у вигляді таблиці:
5 |
0 |
1 |
# |
з |
з, 1,Е |
і, 0,Е |
з, #,П |
Виписуючи на кожному такті роботи МТ одержану конфігурацію, визначте в яке слово перетворює МТ кожне з наступних вхідних слів:
а) 100; в) 0010;
б) 001; г) 0000.
Зобразіть граф МТ з попереднього прикладу та визначте мову, що розпізнається даною МТ.
В чому полягає робота машини Тюрінґа МТ = , А, 5, з, /), де ^ = {з, /}, А = {0,1, #}, а програма роботи 5 задана у вигляді таблиці:
5 |
0 |
1 |
# |
з |
з, 0, К |
Я/, 1,К |
Я/, 1,ь |
1.4. Нехай машина Тюрінґа задана як п'ятірка: МТ = А, 5, з, /), де ^ = {з, д, /}, А = {0,1, #}, а програма роботи 5 задана у вигляді таблиці: