Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Одне з найважливіших застосувань скінченних автоматів є подання (розпізнавання) мов. Це застосування має фундаментальне значення у дослідженні та побудові компіляторів для мов програ­мування. У прикладі 9.23 описано, як скінченний автомат з виходом може розпізнавати мову: він видає на виході 1, якщо вхідний ланцюжок належить мові, і 0 у протилежному випадку. Проте є інший тип скінченних автоматів, спеціально призначений для подання мов. Замість виходу ці автомати мають множину заключ­них станів. Ланцюжок допускається автоматом, якщо він перево­дить автомат з початкового стану в один із заключних станів.

Скінченним автоматом без виходу називають систему M =(S, І, f, s0, F), у якій S -скінченна множина станів, І -скінченний вхідний алфавіт, f: S × I→ S - функція переходів, визначена на декартовому добутку S × I, s 0S — початковий стан, FS — множина заключних (або приймаючих) станів.

Елементи вхідного алфавіту, як і раніше, називаютьвхідними символами абовходами.

Таблиця 9.5

  f
Стан Вхід
   
s0 s0 s1
s1 s0 s2
s2 s0 s0
s3 s2 s1

 

Рис. 9.10

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

Оскільки далі ми будемо розглядати лише скінченні автомати без виходу, то називатимемо їх скінченними автоматами, або просто автоматами.

Приклад 9.24. Зобразимо діаграму станів для скінченного автомата M =(S, І, f, s0, F), де S ={ s 0, s 1, s 2, s 3}, I ={0, 1}, F ={ s 0, s 3}.Функцію переходів задано табл. 9.5. Діаграму станів зображено на рис. 9.10. Наголосимо, що оскільки обидва входи 0 та 1 перево­дять автомат зі стану s 2 у стан s 0 то замість двох дуг s 2від до s 0використано лише одну дугу, на якій написано два входи: 0 та 1.▲

Функцію переходів f можна розширити й визначити її для всіх пар станів і ланцюжків. У такому разі нехай𝛼 = x 1 x 2xk -ланцюжок з I *. Тоді f (s 1, α)-стан, обчислений із використанням послідовних символів ланцюжка α зліва направо як вхідних символів, почи­наючи зі стану s 1. Процес іде так: s 2= f (s 1, x 1); s 3= f (s 2, x 2),... Нареш­ті приймаємо f (s 1, α)= sK = f (sK, xK).

Говорять, що ланцюжокα допускається (приймається)скінченним автоматом M =(S, І, f, s0, F)якщо він переводитьпочатковий стан s 0 у заключний стан - це означає, що стану(s 0, α) є елементом множини F. Мова, що розпізнається автоматом М, позначаєтьсяL(М), - це множина всіх ланцюжків, які допускаються автоматом М. Два автомати називають еквівалентними, якщо вони розпізнають одну й ту саму мову.

Рис. 9.11

Рис. 9.12

Приклад 9.25. Визначимо мову, яка розпізнається скінченним автоматом М1 з діаграмою станів на рис. 9.11.

Автомат М 1 має лише один заключний стан s 1. Тільки два ланцюжки переводять s 1 в s 2; цими ланцюжками є 1 та 01. Отже, L (M 1)={1, 01}.▲

Приклад 9.26. Визначимо мову, яка розпізнається скінченним автоматом М2 з діаграмою станів на рис. 9.12.

Заключними станами автомата М2 є s 0 та s 3. Ланцюжками, які переводять s 0 самого в себе, є порожній ланцюжок λ, а також лан­цюжки з довільної кількості нулів: 0, 00, 000.... Ланцюжки, які переводять s 0 в s 3складаються з деякої кількості нулів, після яких є 10 і довільний ланцюжок β з нулів та одиниць. Отже,

- довільний ланцюжок}.▲

Розглянуті скінченні автомати без виходу називають детерміно­ваними, оскільки для кожної пари стан-вхід існує єдиний наступ­ний стан, заданий функцією переходів. Є й інший тип автоматів без виходу - це недетерміновані автомати. У таких автоматах може бути декілька можливих наступних станів для кожної пари стан-вхідний символ.

Недетермінованим скінченним автоматом без виходу нази­вають систему M =(S, І, f, s0, F), у якійS - скінченна множина станів, I -скінченний вхідний алфавіт, f-функція переходів, яка кожній парі стан-вхід ставить у відповідність множину станів, s 0S -початковий стан, FS - множина заключних станів.

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

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

Приклад 9.27. На рис. 9.13 і у табл. 9.6 зображено відповідно діаграму і таблицю станів деякого недетермінованого автомата. ▲

 

Таблиця 9.6

Стан f
Вхід
   
s0 s0, s2 s1
s1 s3 s4
s2 - s4
s3 s3 -
s4 s3 s3

Тепер визначимо, як недетермінований скінченний автомат допускає (приймає) ланцюжок𝛼 = x 1 x 2xk. Перший вхідний символ х 1 переводить стан s 0 у множину S 1, яка може містити понад один стан. Наступний вхідний символх2 переводить кожний зі станів множини S 1 у деяку множину станів, і нехай S 2 є об'єднанням цих множин. Цей процес продовжують, вибираючи на кожній стадії всі стани, отримані з використанням поточного вхідного символу і всіх станів, отриманих на попередній стадії. Недетермінований скінченний автоматдопускає (приймає) ланцюжок а, якщо у множині станів, отриманій з початкового стану під дією лан­цюжка а, є заключний стан. Мова, що розпізнаєтьсянедетермінованим скінченним автоматом - це множина всіх ланцюжків, які допускаються цим автоматом.

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

Оскільки s 0 є заключним станом, і вхід 0 переводить s 0 у себе, то автомат допускає ланцюжки λ, 0, 00, 000, 0000,... Стан також заключний, і нехай s 4 є у множині станів, що досягаються зі стану s 0 з ланцюжком а на вході. Тоді ланцюжок а допускається. Такими ланцюжками є 0 n 01 та 0 n 11, де n =0, 1, 2,... Оскільки інших заключ­них станів немає, то мова, яка розпізнається цим недетермінованим автоматом, є такою: {0 n, 0 n 01, 0 n 11| n =0, 1, 2,...}.

Важливо зазначити: якщо мова розпізнається недетермінованим автоматом, то вона також розпізнається детермінованим автоматом.

Теорема 9.1. Якщо моваL розпізнається недетермінованим скінченним автоматом М 0, то L розпізнається також детерміно­ваним скінченним автоматомМ1.

Доведення. Опишемо, як автоматМ1 конструюють за автоматом М0. Кожний станM1 будують у вигляді підмножини станів М 0. Сим­волом початкового стану автоматаМ1 є { s 0} тобто це множина, єдиним елементом якої є початковий станs0 автоматаМ0. ВхіднийалфавітМ1 той самий, що іМ0. Нехай задано стан автоматаМ1. Вхідний символх переводить цей стан в об'єднання множин наступних станів для елементів цієї множини, тобто в .Стани автоматаМ1 - це всі такі підмножини множини S (множини станів автомата М 0), які отри­мують зазначеним способом, починаючи від. (Отже, може бути до2n станів у детермінованому автоматі, де п -кількість станів у недетермінованому автоматі, проте, як звичайно, їх буває значно менше). Заключними станами автоматаМ1 є ті підмножини, які містять заключні стани автоматаМ0.

Нехай вхідний ланцюжок а допускається автоматомМ0. Тоді один зі станів, який досягається з при вході а, буде заключним станом. Це означає, що в М 1 ланцюжок а веде з { s 0} до такої підмно­жини станів автомата М 0, яка містить заключний стан. Ця підмножина є за побудовою заключним станом автомата М 1 отже, ланцю­жок α також допускається автоматомМ1. Якщо ж вхіднийланцюжок β не допускається автоматом М0, то цей ланцюжок не веде до жодного із заключних станів М0. Звідси випливає, що β не веде з { s 0} до жодного заключного стану М1. ▲

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

Приклад 9.29.Побудуємо детермінований скінченний автомат, який розпізнає ту саму мову, що й недетермінований автомат з рис. 9.13.

Детермінований автомат, зображений на рис. 9.14, його стани є підмножинами станів недетермінованого автомата з рис. 9.13. Їх отримують так, як це описано у доведенні теореми 9.1. Зокрема, вхід 0 переводить стан { s 0} у стан { s 0, s 2} в детермінованому автоматі, оскільки s 0 у разі входу 0 переходить у самого себе і в s 2 в недетермі­нованому автоматі. Аналогічно, вхід 1 переводить множинуу множину { s 1, s 4}, оскільки у разі входу 1 в недетермінованому автоматі s 0 переходить в s 1, а s 2– в s 4. Нарешті, вхід 0 переводить

Рис. 9.14

множину { s 1, у 4} у множину { s 3}, оскільки в недетермінованому автоматі вхід 0 переводить обидва станиs1таs4у станs3.Усі підмножини, які отримують таким способом, є станами детерміно­ваного скінченного автомата з рис. 9.14. Наголосимо, що одним із станів цього автомата є порожня множина - множина станів, в які вхід 1 переводить { s 3}. Початковий стан - {s0}, а заключними є всі стани, які містять s 0або s 4. ▲


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал