Professional Documents
Culture Documents
Лаб3
Лаб3
Теоретичні відомості
Скінченним автоматом з виходом називають систему
M = (S , I , O, f , g , s 0 ) , яка складається з:
▪ скінченної множини станів S ;
▪ скінченного вхідного алфавіту I ;
▪ скінченного вихідного алфавіту O ;
▪ функції переходів f : S I → S ;
▪ функції виходів g : S I → O ;
▪ початкового стану s 0 .
Елементи вхідного алфавіту називають вхідними символами, або входами, а
вихідного – вихідними символами, або виходами. Рівність f(si, x)=sj означає, що в
разі входу x автомат, який перебуває у стані si, переходить у стан sj, а рівність
g(si, x)=y, – що в цьому разі на виході з’являється y; тут si, sjS, xI, yO.
Скінченний автомат з виходом може бути заданий двома способами:
1. За допомогою таблиці станів, яка містить значення функції переходів
f та функції виходів g для всіх пар (s, i ) , де s S , i I .
2. За допомогою діаграми станів, яка є орієнтованим графом з
поміченими дугами. Кожна вершина графа відповідає стану. Дуга позначається
вхідним і вихідним сигналами, які відповідають заданому цією дугою переходу
з одного стану в інший, якщо f(si, x) = sj та g(si, x) = y (тут xI, yO), то з вершини
si у вершину sj веде дуга з позначкою x, y.
Розглянемо скінченний автомат з виходом M. Кожному вхідному ланцюжку
поставимо у відповідність вихідний ланцюжок . Нехай вхідний ланцюжок
= x1x2xk. Тоді під час читання цього ланцюжка автомат спочатку переходить зі
стану s0 у стан s1, де s1 = f(s0, x1), потім у стан s2, де s2 = f(s1, x2), і цей процес
триває до досягнення стану sk = f(sk–1, xk). Зазначимо, що тут xk – останній символ
вхідного ланцюжка. Ця послідовність переходів у нові стани формує вихідний
ланцюжок = y1y2...yk, де y1 = g(s0, x1) – вихідний символ, який відповідає
переходу з s0 в s1, y2 = g(s1, x2) – вихідний символ, що відповідає переходу з s1 в
s2, і так до отримання вихідного символа yk = g(sk–1, xk). Загалом yj = g(sj–1, xj) для
j = 1, 2, …, k.
Відповідність, яка відображає вхідні ланцюжки у вихідні, називають
автоматним відображенням, а також автоматною (або обмежено
детермінованою) функцією, яка реалізується автоматом M . Якщо результат
застосування цього відображення до ланцюжка – вихідний ланцюжок , то це
позначають M()=. Кількість символів у ланцюжку , як завжди, називають
довжиною та позначають чи l().
Автоматне відображення має дві властивості.
1. Ланцюжки та = M() мають однакову довжину: = (властивість
збереження довжини).
2. Якщо =12 і M(12)=12, де 1=1, то M(1)=1, тобто образ
відрізка довжиною l дорівнює відрізку образу з такою самою довжиною.
Властивість 2 означає, що автоматні відображення – це відображення без
випередження, тобто такі, котрі, переробляючи ланцюжок зліва направо, „не
підглядають уперед”: i-та літера вихідного ланцюжка залежить тільки від
перших i літер вхідного ланцюжка. Приклад відображення з випередженням –
те, яке ланцюжку =x1x2...xk ставить у відповідність ланцюжок = xk...x2x1;
перша літера вихідного ланцюжка тут дорівнює останній літері вхідного
ланцюжка. Зазначимо, що ці дві властивості – це не достатні умови автоматності
відображення: існують відображення, які задовольняють умови 1 і 2, але не
реалізуються у скінченному автоматі. Розглянемо деякі корисні приклади
скінченних автоматів. Ці приклади свідчать, що стани скінченного автомата
дають змогу використовувати їх як скінченну пам’ять. Стани можна
використовувати для запам’ятовування ситуацій або символів, які читає автомат.
Проте через скінченну множину станів скінченні автомати не можна
використовувати в деяких важливих застосуваннях.
Автомати, які ми розглянули, називаються автоматами Мілі (G.H. Mealy).
Вперше введені у 1955 році.
Існує також інший тип автоматів з виходом, так звані автомати Мура (E.F.
Moore), які запроваджені у 1956 році. У цих автоматах вихід визначається лише
станом, тобто не залежить від вхідного сигналу.
Автомат Мілі може бути використаний для розпізнавання мови. Проте з
цією метою звичайно використовують інший тип автоматів – скінченні автомати
без виходу. Такі автомати мають множину кінцевих станів і розпізнають
ланцюжок тоді і тільки тоді, коли цей ланцюжок переводить автомат без виходу
із початкового стану у кінцевий стан.
Початок
s0 1,1 0,1 s3
0,0
s2 0,0
1,1
Рис. 3.1. Діаграма станів для автомата, заданого табл. 3.1
Таблиця 3.2
Послідовності станів і вихідних символів
Вхід 1 0 1 0 0 1
Стан s0 s0 s1 s0 s1 s3
Вихід 0 1 1 1 1 0
Новий стан s0 s1 s0 s1 s3 s1
01,1 01,0
11,0
Початок
s0 s1
00,1
00,0 11,1
10,1 10,0
Рис. 3.3. Діаграма станів автомата з прикладу 3.4
Таблиця 3.3
Таблиця станів автомата
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.4
Таблиця станів автомата
f g
Стан вхід вхід
0 1 0 1
s0 s0 s1 0 0
s1 s0 s2 0 0
s2 s0 s2 0 1
1 Контрольні запитання
1. Дайте визначення скінченного автомата з виходом.
2. Які способи задання автомата з виходом ви знаєте?
3. Дайте визначення функції переходів
4. Дайте визначення функції виходів.
Перший рівень
Другий рівень
3. Задано тип ідентифікатора – це ланцюжок довжини 6, який може
складатися з цифр, великих або малих літер українського алфавіту. Побудувати
скінченний автомат з виходом, що розпізнає ланцюжок заданого типу, і лише
його, з певними обмеженнями (вказані як номер завдання). Автомат задати з
допомогою діаграми станів та таблиці станів.
1. 1, 5, 6 символ – приголосна.
2. 1-й і 3-й символи – великі не голосні.
3. Починається з букви і закінчується цифрою.
4. Закінчується не великою літерою.
5. Непарні символи – букви.
6. 4-й, 6-й символ – цифра або велика голосна.
7. Останній та передостанній символ – не маленька літера і не цифра.
8. 1, 2, 6 символ – голосна або цифра
9. Всі, крім останніх двох символів – не цифри.
10. Всі парні символи – маленькі літери або цифри.
11. 1-й, 2-й, 5-й символ – цифри.
12. Парні символи – великі літери або цифри.
13. 1-й символ – велика літера, 6-й – цифра.
14. 1-й, 2-й, 3-й символи – цифри або малі приголосні.
15. Перший і останній символ – не приголосна.
16. Останні 3 символи – не цифри.
17. Перший символ – велика літера, всі інші – цифри.
18. Всі символи – великі літери або цифри.
19. У послідовності заборонено використовувати малі літери.
20. Всі символи – малі або великі приголосні.
21. Два перших символи – 38.
22. Останні 2 символи – А або М
23. Другий символ – велика літера, 1–й – цифра або маленька літера.
24. Перший символ – голосна, два останніх – цифри.
25. Символи з парними номерами – цифри.
26. Перший та останній символ – не цифри.
27. Третій символ – не А, останній не В.
28. Перших два символи – не 09.
Третій рівень