Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

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

МОВИ, ГРАМАТИКИ, АВТОМАТИ


Мета роботи – вивчити формальні породжувальні граматики, типи
граматик, дерева виведення, форми Бекуса-Наура, скінченні автомати з
виходом та без виходу, методи подання мов.

ВСТУП
Методи і положення математичної лінгвістики є теоретичною базою для
створення алгоритмічних мов, для побудови систем автоматичного
опрацювання мовного матеріалу в ЕОМ: машинного перекладу,
інформаційного пошуку, автоматизації видавничих процесів, реферування й
анотування наукової літератури, створення термінологічних банків, машинних
фондів різних мов (система автоматизації трудомістких процесів у
мовознавстві), автоматичного укладання словників, машинного розпізнавання і
синтезу усного мовлення тощо.
1. ГРАМАТИКИ
1.1. Граматики з фразовою структурою
Алфавіт (або словник) V – це скінченна непорожня множина елементів, які
називаються символами. Слово (або речення) над V – це ланцюжок скінченої
довжини елементів з V. Порожній (або нульовий) ланцюжок – це ланцюжок,
який не містить символів; він позначається через  . Множина всіх слів над V
позначається через V * .
Мова над V – це підмножина V * . Мови можуть бути задані різними
способами. Один з них – задати всі слова мови. Інший – означити критерій,
якому повинні задовольняти слова, щоб належати мові.
Розглянемо ще один важливий спосіб задати мову – через використання
граматики. Граматика складається з множини символів різного типу та
множини правил побудови слів. Є спеціальний символ – елемент алфавіту –
початковий символ, який позначається через S, з якого ми завжди починаємо.
Правила, які визначають, коли ми можемо замінити ланцюжок з V * іншим
ланцюжком, називаються продукціями граматики. Позначимо w0  w1
продукцію, яка означає, що ланцюжок w0 має бути замінений на w1 .
Підсумуємо сказане. Граматика із фразовою структурою (ГФС) G  V , T , S , P 
містить алфавіт – множину V, її підмножину T термінальних елементів,
початковий символ S  S V  та множину продукцій P. Множина V / T
позначається через N . Елементи з N називаються нетермінальними. Кожна
продукція з P повинна містити принаймні один нетермінальний елемент у лівій
частині.
5
Приклад 1. G  V , T , S , P  , де V  a, b, A, B, S  , T  a, b , S-початковий
символ, P  S  ABa, A  BB, B  ab, AB  b .
Нас цікавитимуть слова (ланцюжки), які можуть бути породжені
продукціями ГФС.
Ланцюжок Aaba безпосередньо виводиться з ABa у заданій граматиці,
оскільки B  ab є продукцією граматики. Ланцюжок abababa породжується
ланцюжком ABa , оскільки ABa  Aaba  BBaba  Bababa  abababa з допомогою
продукцій B  ab, A  BB, B  ab та B  ab послідовно.
Нехай G  V , T , S , P  – ГФС. Мовою, що породжується G, позначається
через L  G  , є множина всіх ланцюжків терміналів, які виводяться з
*
 
початкового символу S, тобто L  G    w  T * S  w .
 
Приклад 2. Нехай G – граматика з алфавітом V  S , A, a, b , множина
терміналів T  a, b , початковий символ S і множина продукцій
P   S  aA, S  b, A  aa . Знайти мову L G  , яка породжується цією
граматикою.
Із початкового символу S можна вивести aA використовуючи продукцію
S  aA ; можна також використати продукцію S  b , щоб вивести b. З aA,
скориставшись продукцією A  aa , можна вивести aaa . Ніяких інших слів
вивести не можна. Отже, L  G   b, aaa .
Приклад 3. Нехай G граматика з алфавітом V  S , 0,1 , T  0,1 ,
початковий символ S та множина продукцій P  S  11S , S  0 . Знайти L  G  .
Отримаємо з S 0  S  0 або 11S  S  11S  . З 11S може бути отримано 110
або 1111S . З 1111S виводяться 11110 або 1111110 . Тобто після кожного
виведення ми або додаємо дві одиниці в кінець ланцюжка або закінчуємо
ланцюжок нулем. Тобто L  G   0,110,11110,1111110,... – це множина всіх
ланцюжків з парною кількістю тільки 1, після яких (у кінці) один 0.
Важливою є проблема побудови граматики для заданої мови.
Приклад 4. Знайти ГФС, яка породжує множину 0 n1n n  0,1, 2,... .
Потрібно дві продукції, щоб побудувати ланцюжок, який складається з
однакової кількості нулів за яким слідує така ж кількість одиниць. Перша
продукція додає один 0 на початок і одну 1 у кінець ланцюжка. Друга
продукція замінює S на порожній ланцюжок  . Розв’язком є граматика
G  V , T , S , P  , V  0,1, S , T  0,1 , S – початковий символ, P   S  0S1, S   .
Приклад 5. Знайти ГФС, яка генерує множину 0 n1m n, m  0,1, 2,....

6
Таких граматик вважаємо дві:
G1 : V  S ,0 ,1, T  0 ,1, P  S  0 S , S  S1, S   G2 : V  S , A,0 ,1, T  0 ,1
P  S  0S , S  1A, A  1A, A  1, S   .
Цей приклад свідчить, що дві різні граматики можуть породжувати одну
мову. Іноді множина, яка легко описується, задається достатньо складною
граматикою.

2. ТИПИ ГРАМАТИК З ФРАЗОВОЮ СТРУКТУРОЮ


Продукція, яка також називається правилом перетворення, дає можливість
заміняти одну послідовність символів іншою. ГФС класифікуються за типами
продукцій. Ми розглянемо класифікацію, яку запропонував Хомський (Noah
Chomsky).
Мова називається контекстно залежною, якщо існує принаймні одна
контекстно залежна граматика, яка породжує цю мову. Мова називається
контекстно вільною, якщо існує принаймні одна контекстно вільна граматика,
яка породжує цю мову. І, нарешті, мова називається регулярною, якщо існує
принаймні одна регулярна граматика, яка породжує цю мову.
Приклад 6. Мова 0m1n m, n  0,1, 2,... є регулярною, оскільки вона може
бути породжена регулярною граматикою G2 прикладу 6.
Приклад 7. Мова 0n1n n  0,1, 2,... є контекстно вільною мовою, оскільки
вона породжена граматикою з продукціями S  0S1 та S   . Проте ця мова не
є регулярною: не існує регулярної граматики, яка б цю мову породжувала. Цей
факт вимагає окремого доведення.
Приклад 8. Мова 0n1n 2 n n  0,1, 2,... є контекстно залежною мовою,
оскільки вона може породжуватись граматикою типу 1 (див. приклад 7). Ця
мова не може бути породжена жодною граматикою типу 2, цей факт також
вимагає окремого доведення.

3. АВТОМАТИ
3.1. Скінченний автомат з виходом
Скінченний автомат M  S , I , O, f , g , s0  складається з: скінченної множини
станів S ; скінченного вхідного алфавіту I ; скінченного вихідного алфавіту O ;
функції переходів f : S  I  S ; функції виходів g : S  I  O ; початкового
стану s0 .
Скінченний автомат може бути заданий двома способами:
1. За допомогою таблиці станів, яка містить значення функції переходів f та
функції виходів g для всіх пар s, i  , де s  S , i  I .

7
2. За допомогою діаграми станів, яка є орієнтованим графом з поміченими
дугами. Кожна вершина графа відповідає стану. Дуга позначається вхідним і
вихідним сигналами, які відповідають заданому цією дугою переходу з одного
стану в інший.
Приклад 9. Задання автомата таблицею (табл. 2) і діаграмою (рис. 2).

Таблиця 2 0,1 s1 1,0


1,0
Задання автомата таблично
g Поч.
f s0 1,1 0,1 s3
Стан 0,0
вхід вхід 0,0
s2
0 1 0 1
s0 s1 s0 1 0
s1 s3 s0 1 1 1,1
s2 s1 s2 0 1
s3 s2 s1 0 0 Рис. 2. Задання автомата
діаграмою станів.

Таблиця 3

Розв’язок для прикладу 9


f g
Стан вхід вхід
00 01 10 11 00 01 10 11
s0 s0 s0 s0 s1 0 1 1 0
s1 s0 s1 s1 s1 1 0 0 1

3.2. Скінченний автомат без виходу


Скінченний автомат без виходу – це п’ятірка M  S , I , f , s0 , F  , яка
містить: скінченну множину S станів; скінченний вхідний алфавіт I ; функцію
переходів f : S  I  S ; початковий стан s0 ; підмножину F  S , елементи F
називаються заключними станами.
Скінченний автомат без виходу може бути заданий:
 таблицею станів;
 діаграмою станів, заключні стани на діаграмі позначаються
подвійними кружечками.
Приклад 13. Зобразити діаграму станів для автомата M  S , I , f , s0 , F  , де
S  s0 , s1, s2 , s3  , I  0,1, F  s0 , s3 . Функція переходів задана таблицею 4.
Діаграма станів зображена на рис. 3.

8
Таблиця 4
Функція переходів
f
Стан вхід
0 1
s0 s0 s1
s1 s0 s2
s2 s0 s0
s3 s2 s1 Рис. 3. Діаграма станів

4. МОВИ
Мова, що розпізнається, або сприймається автоматом M , позначається
через LM  – це множина всіх ланцюжків, які розпізнаються автоматом M .
Два автомати називаються еквівалентними, якщо вони розпізнають одну і ту
саму мову.
Приклад 10. Визначити мову, що розпізнається автоматом M з діаграмою
на рис. 4.
0
0

Початок 1 1
s0 s1 s2 s3

0,1 0,1

Рис. 4. Діаграма станів автомата


Відповідь: LM   0 n ,0 n10 x | n  0,1,2,... та x є довільним ланцюжком .
Розглянуті скінченні автомати без виходу називаються детермінованими,
оскільки для кожної пари стан – вхідний символ існує єдиний наступний стан,
який задається функцією переходів. Існує інший тип автоматів без виходу – це
недетерміновані автомати. У таких автоматах може бути декілька можливих
наступних станів для кожної пари стан – вхідний символ.
Недетермінований скінченний автомат без виходу – це п’ятірка
M  S , I , f , s0 , F  , де:
 S – скінченна множина станів;
 I – скінченний вхідний алфавіт;
 f – функція переходів, яка кожній парі стан – вхідний символ
ставить у відповідність множину станів;
 s0 – початковий стан;
 F  S , де F – множина кінцевих станів.
5. ЗАВДАННЯ
Порядок виконання роботи: Скласти комп’ютерні програми із зазначеними
вхідними даними та результатами для завдань 1-3.
Завдання 1. Задано множину продукцій у формі Бекуса-Наура:

E ::  E  | E  E | E  E | V | C

V :: x | y
C :: 1| 2
Вивести ланцюжок. Намалювати дерево виведення.

1. x   y  y   y; 11. x  y   x 1 y  ;
2. x  y   x  x  y; 12. 2   x  y  1 ;
3.  x 1   y  2 ; 13. 2  1  x  2   y  y   ;

4. x   y   x  y  ; 14.  x 1   x 1   y 1 ;


5. x  x   x  2 ; 15. y  y  y   x  x  1 ;
6. 2  x  y   x  1 ; 16. 2   x  y  1  1;
7. x   x 1 2  x  ; 17. 2  2   x  y  1  x;
8.  2  x  y  x  y; 18. x  y   x  1  2;
9. 1  x  y    x  x ; 19. 2  y  2   x  y   1;
10. x  1   2   x  y    ; 20. x  y  y  y   x  1 ;

Завдання 2 . Дано граматику G=(V, T, S, P), де V={0, 1, S, A, B}, T={0,1}, S –


початковий символ. Виконати наступні завдання:
 Побудувати мову, породжену такою граматикою.
 Визначити тип граматики;
 Побудувати недетермінований скінчений автомат, що допускає мову,
породжену даною граматикою; задати автомат діаграмою та таблицею.
1. P  S  0 A, S  , S  0, A 1 ;
2. P  S 101A, A 1A, A  0 ;
3. P  S  0 A, S 1B, A  0, B  0
4. P  S  0 A, A  01, S  0B, B 10 ;
5. P  S 1S, S  0, S  B, B  01 ;
6. P  S  0 B, B  1B, B  0 ;
7. P  S 1A, A 1, A  0, S  0 ;
8. P  S 111S , S   ;

10
9. P  S  0 A, A  01B, S  0B, B 10 ;
10. P  S  0S , A  A1, S  A, A   ;
11. P  S  S1, S  A, S  1, S  , A  0 ;
12. P  S 1A, A  101, S  0B, B  010 ;
13. P  S  01A, A  00, S  0B, B  110 ;
14. P  S 1A, S  0, S  , B  1, A  0B ;
15. P  S  0S , S  , S 1 ;
16. P  S 1B, S  0, A 1A, A  0B, A 1, A  0, B  1  ;
17. P  S  AB, A 1, S 1A, B  01 ;
18. P  S  S11, S  0 ;
19. P  S 10S1, S   ;
20. P  S 1B0, B  1B, B  0 ;
21. P  S  0 A, S  1B, B  1B, A  0 B ;
22. P  S  0S , S  1B, B  0 B, B  1A, A  1;
23. P  S  0 B, B  0 A, B  0 B, A  1A, A  0;
24. P  S  1A, S   , A  0 B, B  1B, B  0;
25. P  S  1, S  1A, A  1B, B  1B, A  0;
26. P  S  0 S , S   , S  1B, B  0;
27. P  S  01B, B  1A0, B  01, A  0;
28. P  S  0, S  1A, A  0 B, B  0 B, B  1;
29. P  S   , S  1B, B  0 A, A  1 ;
30. P  S  1S , S  0 A, A  0 B, B  0, A  1, A  1A .
Завдання 3 . Побудувати граматику, яка породжує мову.
1. LG   2 2n1, n  0,1, 2, ... 11. L  G   22 n12 n 1 , n  0, 1, 2, ...
2. L  G   22  n , n  0, 1, 2, ... 12. L  G   0132 n1, n  0, 1, 2, ...
3. L  G   02 n a n  2 , n  0, 1, 2, ... 13. L  G   22 n aba , n  0, 1, 2, ...
4. L  G   2n1m 2 , n, m  0, 1, 2, ... 14. L  G   2n1n  m3m , n, m  0, 1, 2, ...
5. L  G   22 n12 n , n  0, 1, 2, ... 15. L  G   2n1, n  2, 3, 4, ...
6. L  G   0n 23m , n, m  0, 1, 2, ... 16. L  G   c 22 n , n  1, 2, ...
7. L  G   22 n12 n , n  0, 1, 2, ... 17. 
L(G )  12 n ab 2 n , n  1, 2, ... 
8. L  G   22 n 03 m , n, m  0, 1, 2, ... 18. L(G )  a 2 n 1 2 n
1 2 m , n, m  1, 2, ... 
9. L  G   23 n 0, n  0, 1, 2, ... 19. L(G)  0 n 1
2 n 3n1 , n  1, 2, ...
20. L(G )  1 2n
b2 n
a, n  1, 2, ...
10. L  G   22 n 0 n  2 , n  0, 1, 2, ...
11
21. L(G )  1n b n1 2 n , n  1, 2, ... 26. L(G )  (01) 2 n (10) n , n  1, 2, ...
22. L(G )  0 2n ab1m , n, m  1, 2, ... 27. L(G )  1n 2 m 2n 0 m , n, m  1, 2, ...
23. L(G )  a nb 2 n c n1 , n  1, 2, ...  2
28. L(G )  0n 1b 2 n , n  1, 2, ... 
 2
24. L(G )  (01)n (1 2) n , n  1, 2, ... 29. L(G )  0n (10)m , n, m  1, 2, ...
25. L(G )  12 2n 0 2n , n  1, 2, ... 30. L(G )  (1 2) 2 n (2 0) n1 , n  1, 2, ...
Завдання 4. Побудувати детермінований скінченний автомат. Задати його
діаграмою станів та таблицею.
1. Побудувати скінченний автомат з виходом, у якого вхідний алфавіт {0, 1, Q}
і вихідний {0, 1, P, N}. Вихідна послідовність з 0 та 1 збігається з вхідною, а на
кожний символ запиту Q друкується P - якщо кількість 1 від початку роботи
парна, і N - якщо непарна.
2. Побудувати скінченний автомат для реалізації процедури входу в систему.
Користувач вводить ідентифікаційний номер, а потім – на відповідний запит –
пароль. Якщо ідентифікаційний номер або пароль некоректні, то видається
запит ідентифікаційного номера користувача. Ідентифікаційний номер і пароль
вважати одиночними символами.
3. Побудувати скінченний автомат з вхідним і вихідним алфавітами {0, 1}.
Автомат видає на виході 1, якщо на вхід подано підряд 5 або більше одиниць і
видає 0 у протилежному випадку.
4. Побудувати скінченний автомат для додавання двох цілих додатних чисел у
трійковій системі. Продемонструвати роботу кількома прикладами.
5. Побудувати скінчений детермінований автомат, який подає на виході
одиницю тоді, коли першим на вхід було подано рядок 101011; двійку, якщо
першим на вхід було подано рядок 0010; нуль – у протилежному випадку.
6. Побудувати скінчений детермінований автомат, який подає на виході двійку
тоді, коли першим на вхід було подано рядок 22011; одиницю, якщо першим на
вхід було подано рядок 22010; нуль – у протилежному випадку.
7. Побудувати скінчений детермінований автомат, який подає на виході
одиницю тоді, коли першим на вхід було подано рядок 02121; двійку – якщо
вхідна послідовність починається з трьох одиниць підряд і нуль в
протилежному випадку.
8. Побудувати скінчений детермінований автомат, який подає на виході
одиницю тоді, коли першим на вхід було подано рядок 02121; двійку – якщо
вхідна послідовність починається з рядка 02221; нуль, якщо першими на вхід
подано два нулі поспіль.
9. Побудувати скінчений детермінований автомат, що реалізує перетин
кордону, коли наявність візи перевіряють на виїзді з країні-відправника і на
в’їзді в іншу країну. Врахувати, що повернення в країну-відправник

12
відбувається при порушеннях, виявлених у будь-який момент перевірки.
10. Побудувати скінчений детермінований автомат, що реалізує принципи
спортивного орієнтування: гравець робить позначки на чотирьох КПП,
причому відмітка не ставиться, якщо гравець не має відмітки з попереднього
пункту.
11. Побудувати скінчений детермінований автомат, що реалізує принципи
переведення з курсу на курс в університеті. якщо студент успішно склав іспити
за попередній рік, його переводять на наступний курс. Якщо іспити не
складено, студента залишають на другий рік. Після успішного завершення
останнього курсу студент отримує диплом.
12. Побудувати скінчений детермінований автомат, що реалізує процес здачі
лабораторної роботи: для того щоб отримати максимальний бал за роботу,
необхідно врахувати наявність усіх завдань, правильність виконання,
акуратність реалізації та підготовку студента. Якщо один з аспектів не
виконується, здача роботи призупиняється до його виконання.
13. Побудувати скінчений детермінований автомат, що реалізує процес
виробництва дверей: при відсутності необхідних деталей виробництво
призупиняється до поступлення сировини.
14. Побудувати скінчений детермінований автомат, що реалізує процес
приготування довільної страви: якщо немає відповідного інгредієнта, страва
псується.
15. Побудувати скінчений детермінований автомат, що реалізує алгоритм
підготовки до весілля: необхідно визначити щонайменше три аспекти,
наявність яких впливає на процес підготовки.
16. Побудувати скінчений детермінований автомат, що реалізує перевірку
документів для закордонної поїздки по обміну студентами: якщо наявні
український та закордонний паспорти, є віза, дозвіл ВУЗу та згода ВУЗу-
отримувача – поїздка відбудеться. Відсутність хоча б одного з документів
відміняє подорож.
17. Побудувати скінчений детермінований автомат, що реалізує набирання
телефонного номеру.
18. Побудувати скінчений детермінований автомат, вхідна послідовність
якого співпадає з вихідною, а кожну третю одиницю замінює на 3.
19. Побудувати скінчений детермінований автомат, який подає на виході нуль
тоді, коли першим на вхід було подано рядок 001122; одиницю, якщо першим
на вхід було подано рядок 221100; двійку – у протилежному випадку.
20. Побудувати скінчений детермінований автомат, який подає на виході
двійку тоді, коли першим на вхід було подано рядок 22022; одиницю, якщо
першим на вхід було подано рядок 11011; нуль – у протилежному випадку.
13
21. Побудувати скінчений автомат із вхідними та вихідними алфавітами {0,
1}. Автомат видає на виході 1, якщо три останні символи на вході були 101, і 0
– у всіх інших випадках.
22. Побудувати скінчений автомат із вхідними та вихідними алфавітами {0,
1}. Автомат видає на виході 0, якщо три останні символи на вході були 010, і 1
– у всіх інших випадках.
23. Побудувати скінчений автомат із вхідними та вихідними алфавітами {0, 1,
2}. Автомат видає на виході 2, якщо чотири останні символи на вході були
2221, 1 – якщо 2211, і 0 – у всіх інших випадках.
24. Побудувати скінчений детермінований автомат, вхідна послідовність
якого співпадає з вихідною, а кожну другу одиницю замінює на 2.
25. Побудувати скінчений детермінований автомат, вхідна послідовність
якого співпадає з вихідною, а дві підряд одиниці замінює на 2.
26. Побудувати скінчений детермінований автомат, що реалізує процес
відправлення листа по пошті: при відсутності необхідних відомостей (про
отримувача) та штампів (марок) лист повертається відправнику.
27. Побудувати скінчений детермінований автомат, що реалізує процес
відкриття власної справи (наприклад, магазину): при відсутності необхідних
дозволів та обладнання відкриття призупиняється.
28. Побудувати скінчений автомат із вхідними та вихідними алфавітами {a,
b}. Автомат видає на виході a, якщо три останні символи на вході були aba, і 0
– у всіх інших випадках.
29. Побудувати скінчений детермінований автомат, що реалізує процес
написання студентом дипломної роботи: якщо немає відповідного розділу чи
підпису рецензента і керівника, дипломна робота повертається на
доопрацювання.
30. Побудувати скінчений автомат із вхідними та вихідними алфавітами {0, 1,
2}. Автомат видає на виході 0, якщо три останні символи на вході були 100, 1 –
якщо 001, і 2 – у всіх інших випадках.
Завдання 5. Побудувати граматику, яка породжує мову, що її допускає
наступний автомат.
поч. 0 1 поч. 1 0,1
S0 S1 S2 S0 S1 S2
1. 2.
1 1 0 0

0 поч. 0 0
S0 S2 S3
поч. 1 1 1,0
3. S0 S1 S2 S3 4. 1
1 0,1
0 0
0,1
S1

14
поч. 1 0 0,1
S0 S1 S2 Початок
s0 1 s1 0,1 s2
5. 0 1 0,1
6.
0

поч. 0,1 1 0 поч. 1,0 0


S0 S1 S2 S3 S0 S1 S2
7. 8. 1
0 1 0,1 1

0,1 S1
0,1 1
поч. 0,1 0 0,1 0
S0 S1 S2 S3
9. 10. поч. 1,0
S0 S2 S3
0,1
0,1

1
поч. 1,0
S0 S1 Початок
0,1

1
1 s0 0 s1 s2
11. 0 12. 0
S2
1

поч. 0 0 1,0 поч. 1,0 1,0


S0 S1 S2 S3 S0 S1 S2
13. 1 0
14. 1 0

поч. 1 1,0 1 поч. 1 1


S0 S1 S2 S3 S0 S1 S2
0,1
0 0,1
15. 0 S4 16. 0 0 0,1

поч. 0,1
S0 S1 поч. 1
S0 S1
17. 0,1
0 0 18. 1 1
1

S2 S3 S2 0
S3
1

0
0

1 0
поч. 0
S0 S1 S2 поч. 0 1
S0 S1 S2
19. 20
0 1 1
0,1

1 Початок
0 0,1
0,1
Початок
21. 1
22. s0 0 s2 0,1 s3
s0 s1 s1
s2
0 1

0 1

15
Початок
1
23. s0 0,1 s1 1 s2 24.
s0 0,1 s1 0 s2
Початок
0
1

1
0 1 1
25. s0 s1 s2
26.
0
Початок s0 s1 0 s2 0,1 s3
1 Початок

0 0 0

1 0, 1
27. 1,0 1 1, 0 28. 0 1 1, 0
S0 S1 S2 S3 S0 S1 S2 S3
0
0,1 0
1

0 0
29. 30.
0,1 1 0 1
S0 S1 S2 S3
0 0
S0 S1 S2 S3 0, 1
1
1

6. ДОДАТКОВІ ЗАВДАННЯ З РОЗДІЛУ „ТЕОРІЯ АЛГОРИТМІВ”


Завдання 1. Знайти мову, яка розпізнається скінченним автоматом без виходу,
F   s0 , s1 :
f
Стан Вхід
0 1
s0 s1 s2
s1 s2 s1
s2 s2 s2
Завдання 2. Знайти мову, яка розпізнається недетермінованим скінченним
автоматом, F   s0 , s1 :
f
Стан Вхід
0 1
s0 s1 s1 , s 2
s1 – –
s2 s1 s2
Завдання 3. Довести, що мова 1n : n  0,1, не є регулярною.  2

16
Завдання 4. Побудувати недетермінований скінченний автомат, який
розпізнає таку множину ключових слів в англійській мові: network, neuron,
neat. Автомат задати діаграмою.
Завдання 5. Побудувати скінченний автомат з вхідним та вихідним алфавітами
{0, 1}. Автомат видає на виході 1, коли на вході останні 4 символи були 1; у
решті випадків на виході видається 0. Автомат задати діаграмою.
Завдання 6. Знайти мову, яка розпізнається скінченним автоматом без виходу,
F   s1 , s3  :
f
Стан Вхід
0 1
s0 s1 s0
s1 s1 s2
s2 s3 s3
s3 s3 s3
Завдання 7. Знайти мову, яка розпізнається недетермінованим скінченним
автоматом, F   s0 , s2 :
f
Стан Вхід
0 1
s0 s1 , s 2 –
s1 s1 s2
s2 – s2
Завдання 8. Довести, що мова 0 2 n 1n : n  0,1, не є регулярною.
Завдання 9. Побудувати недетермінований скінченний автомат, який
розпізнає таку множину ключових слів в українській мові: слово,
слововживання, словник. Автомат задати діаграмою.
Завдання 10. Нехай V = {S, A, B, a, b}, T = {a, b}. Знайти мову, породжену
граматикою G = {V, T, S, P} із зазначеною множиною P продукцій:
а) P = {S→AB, A→ab, B→bb};
б) P = {S→AB, S→aA, A→a, B→ba};
в) P = {S→AB, S→AA, A→aB, A→ab, B→b};
г) P = {S→AA, S→B, A→aaA, A→aa, B→bB, B→b} ;
д) P = {S→AB, A→aAb, B→bBa, A→λ, B→λ}.
Завдання 11. Задано граматику G = {V, T, S, P}, де V = {0, 1, S}, T = {0, 1},
множина продукцій P = {S→0S1, S→λ}. Потрібно:
а) побудувати виведення для 0313;
б) довести, що ця граматика породжує мову {0m1m|m=0, 1, 2, …}.
Завдання 12. Задано граматику G1 = (V, T, S, P), де V = {S, 0, 1}, T = {0, 1},
множина продукцій P = {S→0S, S→S1, S→λ}. Потрібно:

17
а) побудувати виведення для 0214;
б) довести, що ця граматика породжує мову {0m1n|m, n=0, 1, 2,…}.
Завдання 13. Задано граматику G2 = (V, T, S, P), де V = {S, A, 0, 1}, T = {0, 1},
множина продукцій P = {S→0S, S→1A, S→1, A→1A, A→1, S→λ}. Потрібно:
а) побудувати виведення для 0214;
б) довести, що ця граматика породжує ту саму мову, що й граматика
G1 із задачі 3.
Завдання 14. Побудувати граматики, які породжують такі мови:
а) {012n| n = 0, 1, 2, …};
б) {0n12n| n = 0, 1, 2, …};
в) {0n1m0n| m, n=0, 1, 2,…}.
Завдання 15. Нехай V = {S, A, B, a, b}, T = {a, b}. Множини продукцій P задано
нижче. Визначити, чи є G = (V, T, S, P) граматикою типу 0, але не типу 1;
граматикою типу 1, але не типу 2; граматикою типу 2, але не типу 3;
граматикою типу 3:
а) P = {S→aAB, A→Bb, B→λ}; е) P = {S→aA, aA→B, B→aA, A→b};
б) P = {S→aA, A→a, A→b}; ж) P = {S→bA, A→b, S→λ};
в) P = {S→ABa, AB→a}; и) P = {S→aB, B→aAb, aAb→b};
г) P = {S→ABA, A→aB, B→ab}; к) P = {S→aA, A→bB, B→b, B→λ};
д) P = {S→bA, A→B, B→a}; л) P = {S→A, A→B, B→λ}.
Завдання 16. Паліндромом називають ланцюжок, який однаково читається в
прямому й зворотному напрямках. Знайти контекстно вільну граматику, що
породжує всі паліндроми над алфавітом {0, 1}.
Завдання 17. Нехай G – граматика з V = {S, a, b, c}, T = {a, b, c}, S –
початковий символ і множина продукцій P = {S→abS, S→bcS, S→bbS, S→a,
S→cb}. Побудувати дерево виведення для кожного з ланцюжків:
а) bcbba; б) bbbcbba; в) bcabbbbbcb.
Завдання 18. Нехай G – граматика з V = { S, A, B, C, a, b, c}, T = {a, b, c}, S –
початковий символ і множина продукцій P = {S→AB, A→Ca, B→Ba, B→Cb,
B→b, C→cb, C→b}. Застосувати граматичний розбір зверху вниз для
визначення того, чи належить кожний із наведених нижче ланцюжків мові,
породженій цією граматикою:
а) baba; б) abab; в) cbaba; г) bbbcba.
Завдання 19. Побудувати діаграму станів для скінченного автомата з виходом,
заданого таблицею станів.
f g
Стан Вхід Вхід
0 1 0 1
s0 s1 s0 0 1
s1 s0 s2 0 1
s2 s1 s1 0 0
18
Завдання 20. Побудувати діаграму станів для скінченного автомата з виходом,
заданого таблицею станів.
f g
Стан Вхід Вхід
0 1 0 1
s0 s1 s0 0 0
s1 s2 s0 1 1
s2 s0 s3 0 1
s3 s0 s2 1 0
Завдання 21. Побудувати діаграму станів для скінченного автомата з виходом,
заданого таблицею станів.
f g
Стан Вхід Вхід
0 1 0 1
s0 s0 s4 1 1
s0 s0 s3 0 1
s2 s0 s2 0 0
s3 s1 s0 1 1
s4 s1 s0 1 0
Завдання 22. Знайти мову, яку розпізнає скінченний автомат без виходу,
заданий діаграмою станів. За діаграмою станів скінченного автомата з виходом
побудувати таблицю станів.
Початок
0 0,1

s0 0 s1 s2 0,1 s3
1
1
Завдання 23. Виявити належність ланцюжка 1011 до регулярної множини:
а) 10*1*; б) 0*(1011)*; в) 1(01)*1*; г) 1*01(01);
д) 1(00)*(11)*; е) (100)(010)1*.

7. КОНТРОЛЬНІ ЗАПИТАННЯ
1. Формальні породжувальні граматики.
2. Типи граматик. Ієрархія Хомскі.
3. Дерева виведення.
4. Форми Бекуса-Наура.
5. Скінченні автомати з виходом та без виходу.
6. Подання мов.

19

You might also like