Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vidpovidi.doc
Скачиваний:
29
Добавлен:
14.09.2019
Размер:
2 Мб
Скачать
☆

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 - початковий стан FS- множина заключни (або приймаючих) станів.

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

Приклад: Побудуєм діаграму стану для скінченного автомата М= (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 початковий стан, FS- множина заключних станів.

Єдина відмінність між недетермінованими і детермінованими автоматами - тип значень функції переходів f.

Для недетермінованого автомата це множина станів (значень функції переходів), (вона може бути і порожньою), а для детермінованого - один стан. Недетермінований скінченний автомат задають таблицею чи діаграмою станівю у таблиці для кожної пари .„стан - вхід"' записують множину всіх можливих наступних станів (якщо вона порожня, то ставлять прочерк). У діаграмі переходів проводять дуги з кожного стану до всіх можливих наступних станів, на цих дугах записують переходи одного стану в інші.

Приклад: Знайдемо мову, яку розпізнає недетермінований скінченний автомат:

Цей недетермінований скінченний автомат розпізнає таку мову: {0", 0n01, 0"l1 п=0, 1,2,...}.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]