- •Дискретна математика
- •Основні поняття теорії множин. Операції над множинами.
- •§1. Множини
- •2. Основні елементи комбінаторики: розміщення перестановки, комбінації.
- •3. Булеві функції. Властивості функцій алгебри логіки. Реалізація булевих функцій формулами.
- •4. Контактні схеми.
- •5.Основні поняття теорії графів. Операції над графами.
- •6. Дерева. Властивості дерев.
- •8. Орієнтовані графи і дерева.
- •7.Зважені графи і алгоритм пошуку найкоротшого шляху.
- •Мови. Формальні породжувальні граматики.
- •10. Автомати та їх різновиди
10. Автомати та їх різновиди
Скінченні автомати належить до найважливіших понять інформатики. Різні варіанти скінченних автоматів використовують для опису й аналізу технічних пристроїв, різних систем і процесів, різних систем і процесів, програм і алгоритмів. Теорія скінченних автоматів мас чимало застосувань у технічній інформатиці і є важливою частиною теоретичної інформатики. Скінченним автоматом називають систему М= (S, І, О, f, g. s0), у якій S і О - скінченні множини, a f: Sx J—> S та g: Sx I-> О - функції, визначені множиною станів, І- вхідним алфавітом. О- вихідним алфавітом, f- функцією переходів, g- функцією виходів, виділені елемент s0 є S- початковим станом.
Елементи вхідного алфавіту називають вхідними символами ( входами), а вихідного-вихідними символами (виходами).
Оскільки функції f та g визначені на скінченних множинах, то їх можна задавати таблицями. Звичайно дві таблиці зводяться в одну і називають таблицею станів або автоматною таблицею. Ця таблиця містить значення функції переходів f та функції g для всіх пар (s, x), де s є S, х є І.
Таблиця 1.
Іще один поширений і наочний спосіб подання автомата — за допомогою орієнтованого мультиграфа, який називають діаграмою станів. Вершини графа відповідають станам:
Якщо f(si, xj) = sk та g(si xj) = у то з вершини si, у вершину sk веде дуга з позначкою хj, уj, тут xj є j. у є О.
Діаграма станів для автомата заданого таблицею 1.
Для автомата М його функцією виходів g можна означити не тільки на множині І е вхідних ланцюжок а= х,, х2, Х3, ..., хк. Під час його обробки автоиат спочатку переходить з стану s0 в стан s,, де s,=f( s0, x, ), потім у стан s2, де s2= f( s,, x2) і цей процес триває до досягнення стану sk.
Приклад: Знайдемо вихідний ланцюжок, який видає скінченний автомат, зображен на малюнку 1, якшо вхідний ланцюжок 101001.
Скінченні автомати з виходом.
Одне з найважливіших застосувань скінченних автоматів - розпізнання (подання) мов. яке має фундаментальне значення в дослідженні й побудові компіляторів для мов програмування.
Скінченним автоматом без виходу називають систему М= (S, 1. f. s(). F), у якій S --скінченна множина станів, І - скінченний вхідний алфавіт, f: S x I-> S функція перечодів. означена декартовому добутку S х І, s0 є S - початковий стан FS- множина заключни (або приймаючих) станів.
Елементи вхідного алфавіту, як і раніше називають вхідними символами чи входами Скінченні автомати без виходу можна задавати таблицями станів або діаграмами станів. Заключні стани на діаграмі заключають подвійними кружечками. Позаяк у автоматах без виходу є тільки входи (символи вхідного алфавіту), то на дугах діаграм записують тільки їх.
Приклад: Побудуєм діаграму стану для скінченного автомата М= (S, І, f, s0, F). де S={s0, s1, s2. sз}, I={0:l),F={s0, s3}.
Приклад: Знайдемо мову, яку розпізнає скінченний автомат М1 із діаграмою станів:
Автомат М1, має тільки один заключний стан S2. Тільки два ланцюжки переводить S0 : 1;01.Отже,L(М1)={1,01}.
Скінченні автомати без виходу розглянуті вище називають детермінованими, бо для кожної пари ,. стан - вхід" існує єдиний наступний стан, заданий функцією переходів. Є й інший тип автоматів без виходу - недетерміновані. У них може бути декілька можливих наступних станів для кожної пари.
Недетермвнованим скінченним автоматом без виходу називають систему М= (S, І, f,s0,F), у якій S - скінченна множина станів, І - скінченний вхідний алфавіт, f - функція переходів, яка кожній парі „стан - вхід" ставить у відповідність множину станів. So є S початковий стан, FS- множина заключних станів.
Єдина відмінність між недетермінованими і детермінованими автоматами - тип значень функції переходів f.
Для недетермінованого автомата це множина станів (значень функції переходів), (вона може бути і порожньою), а для детермінованого - один стан. Недетермінований скінченний автомат задають таблицею чи діаграмою станівю у таблиці для кожної пари .„стан - вхід"' записують множину всіх можливих наступних станів (якщо вона порожня, то ставлять прочерк). У діаграмі переходів проводять дуги з кожного стану до всіх можливих наступних станів, на цих дугах записують переходи одного стану в інші.
Приклад: Знайдемо мову, яку розпізнає недетермінований скінченний автомат:
Цей недетермінований скінченний автомат розпізнає таку мову: {0", 0n01, 0"l1 п=0, 1,2,...}.
