Материал: discrete_mathematics

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Зв'язок наведених вище означень і понять установлює таке важливе твердження: будь-які ізоморфні автомати A1 і A2 є невідрізнюваними. Для його обґрунтування слід довести, що для будь-якого стану a автомата A1 стани a та γ(a) є невідрізнюваними, де γ – ізоморфізм автоматів A1 і A2.

У різних розділах математики в множині (класі) еквівалентних між собою об'єктів часто означають стандартних представників – канонічні, або нормальні, форми. Зведенням до канонічної форми можна перевірити (або встановити) еквівалентність або нееквівалентність певних об'єктів множини. Такою канонічною формою в теорії автоматів є мінімальний автомат.

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

Завдання для самостійної роботи

1.Довести, що відношення невідрізнюваності є відношенням еквівалентності.

2.Побудувати приклад невідрізнюваних автоматів, які не ізоморфні.

5.4.Основні проблеми теорії автоматів

Стосовно зовнішніх умов функціонування розрізняють два типи поведінки і два відповідні типи скінченних автоматів.

Перший тип поведінки – це розглянуте вище й уже знайоме нам перетворення вхідних слів на вихідні, тобто реалізація автоматних відображень. Автомати, що реалізують зазначений тип поведінки, називають автоматами перетворювачами.

Другий тип поведінки – це розпізнання певних множин вхід-

них слів. Автомат розпізнавач, або автомат акцептор, для

211

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

Найпоширенішу модель ініціального автомата-розпізнавача A = (X, Y, U, δ, λ) означають так. Множину станів U розбивають на дві підмножини: U1 та U2. Вважають, що слово p X* розпізнається автоматом A, якщо δ(a1, p) U1; в іншому разі (δ(a1, p) U2) слово p відкидається.

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

Основними проблемами теорії автоматів для кожного з типів поведінкийтипівавтоматіввважаютьпроблемианалізутасинтезу.

Проблема аналізу полягає в тому, щоб за заданим автоматом визначити його поведінку й дослідити певні її властивості. Як правило, розв'язання проблеми аналізу принципових труднощів не становить, оскільки зазвичай разом із заданням автомата наводять правила опису його поведінки.

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

212

5.5. Зображення подій у автоматах

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

Автомат без виходів A = (X, U, δ, a1, F) означають так: перші три об'єкти X, U і δ мають той самий зміст, що й раніше, a1 U – початковий стан, F – множина заключних станів автомата A, F U. У найближчих параграфах будемо розглядати без додаткових застережень ініціальні скінченні автомати без виходів.

Множину P слів у вхідному алфавіті X, тобто P X*, називатимемо подією в алфавіті X.

Цей термін став традиційним у теорії автоматів, хоча він не містить нічого принципово нового: можна було б користуватися просто терміном множина слів у алфавіті X. Інший термін для цього самого поняття – мова.

Подія P зображувана в автоматі A = (X, U, δ, a1, F) (або ав-

томат A зображує подію P), якщо δ(a1, w) F, тоді й тільки тоді, коли w P.

Кожному автомату A = (X, U, δ, a1, F) відповідає зображувана в ньому подія P. Подію P зручно проілюструвати за допомогою графа автомата A: подія P складається зі всіх вхідних слів, відповідні шляхи яких у графі автомата A ведуть із вершини a1 у вершини з множини F.

Подію P називають зображуваною (в автоматі), якщо існує автомат A, який її зображує. Інші терміни для цього поняття: мно-

жина, або мова, яка визначає, допускає чи розпізнає автомат.

Можлива ситуація, коли a1 F. У цьому разі вважатимемо, що події P, зображуваній у автоматі A, належить порожнє слово e. Порожнє слово не слід плутати з порожньою подією. Автомат A зображує порожню подію, якщо не існує жодного вхідного слова, яке переводить автомат A з початкового стану a1 в будь-який

213

із заключних станів. Порожню подію будемо позначати символом порожньої множини .

Будь-яка скінченна множина слів P = {w1, w2, …, wk} в алфавіті X (скінченна подія) зображувана в скінченному автоматі.

Приклад 5.3.

1. На рис. 5.4 подано граф автомата A, що зображує скінченну

подію P = {x1x2x1x1, x1x1x2, x1x1x1x2, x1x1x1}. Нижче виписано всі підслова слів множини P і відповідні до них стани шуканого

автомата A. Заключні стани автомата A позначено подвійними кругами (кожен з них відповідає одному зі слів події P).

e a1, x1 a2, x1x1 a3, x1x2 a4, x1x1x1 a5, x1x1x2 a6, x1x2x1 a7, x1x1x1x2 a8, x1x2x1x1 a9.

 

 

 

 

 

 

 

 

 

 

 

 

х1

 

 

 

 

 

 

 

 

 

 

 

х1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2

 

 

 

 

 

 

 

 

 

 

 

 

 

а2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а3

 

 

 

 

 

 

 

а5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1

 

 

 

х1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х

1

 

 

а4

 

 

 

 

 

 

 

 

 

 

а7

 

 

а9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1

 

 

 

 

 

х2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2

 

Pис. 5.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Побудувати автомат-розпізнавач, який зображує подію в алфавіті B = {0, 1}, що складається зі всіх слів, які починаються з 00 і закінчуються парою символів 11, тобто мають вигляд

00w11, w B*.

Таблиця переходів цього авто-

δ

1

2

3

4

5

f

мата має такий вигляд (1 – почат-

0

2

3

3

3

f

f

ковий, 5 – заключний стани):

1

f

f

4

5

5

5

Зауваження. Радимо для наочності та кращого розуміння алгоритмів функціонування будувати за наведеними у прикладах таблицями переходів автоматів їхні діаграми (графи).

3. Побудувати скінченний автомат для розпізнавання, чи є вхідний набір символівідентифікатором якоїсьмови програмування.

У більшості мов програмування ідентифікатор – це послідовність літер і цифр, що починається з літери. Позначимо через x1 вхідний сигнал, що відповідає літері, x2 – вхідний сигнал, що

214

відповідає цифрі, і через x3 – вхідний сигнал,

δ

1

2

f

 

що відповідає будь-якому іншому символу

 

 

 

 

 

x1

2

2

f

 

вхідного алфавіту (див. таблицю переходів

 

 

 

 

 

x2

f

2

f

 

відповідного автомата: заключним станом

 

 

 

 

 

x3

f

f

f

автоматаєстан 2).

Завдання для самостійної роботи

1. Побудувати автомат-розпізнавач, що зображує скінченну подію P:

(а) P = {x1x1x1x2, x1x1x2x2x1, x1x1x1x1x2, x1x1x1x2x1x1}; (б) P = {e, x1x2x1x1x2x2, x1x1x2x1x1x2, x1x2x1x1}.

2.Нехай подія P зображувана в скінченному автоматі A та e P. Як побудувати новий скінченний автомат A′, що зображує подію P {e}?

3.Побудувати автомат-розпізнавач, який зображує подію в алфавіті B = {0, 1}, що складається зі всіх слів, які починаються

йзакінчуються парами символів 00 або 11, тобто мають вигляд

00w00 або 11p11, w, p B*.

4. Побудувати скінченний автомат для розпізнавання певної синтаксичної конструкції:

(а) число з фіксованою крапкою; (б) простий арифметичний вираз; (в) коментарі.

5.6.Алгебра регулярних подій

Упопередньому параграфі ми навели приклад класу подій – клас скінченних подій, які завжди зображувані в скінченних автоматах. Однак існують події, незображувані в скінченних автоматах. Зрозуміло, що в скінченних автоматах зображувані не тільки скінченні події. Бажано було б мати засоби, за допомогою яких можна було б описувати події, зображувані в скінченних автоматах. Один із таких засобів, запропонований С.-К. Кліні, розвинутий і вдосконалений В. М. Глушковим, Р. Ф. Мак-Ното-

ном та іншими, має назву мови регулярних виразiв.

215