Материал: discrete_mathematics

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

5.1.Поняття скінченного автомата. Методи задання автоматів

Скiнченним автоматом (далі – просто автоматом) називають систему

A = (X, Y, U, δ, λ),

у якій X = {x1, x2, …, xm} та Y = {y1, y2, …, yn} – скінченні

жини (алфавіти) відповідно вхідних і вихідних сигналів, U = {a1, a2, …, as} – множина внутрішніх станів автомата. Функ-

ції δ та λ описують алгоритм функціонування (поведінку) автомата A. Функцію δ: U × X U називають функцією переходів, а

λ: U × X Y функцією виходів автомата A.

Необхідно підкреслити одну особливість моделі автомата, яка випливає з її подальшої фізичної інтерпретації. Вважаємо, що автомат A функціонує в дискретному часі, тобто час функціонування автомата розбито на відрізки однакової довжини – та кти. Межи тактів t називають моментами абстрактного дискретного автоматного часу й нумерують натуральними числами, починаючи з одиниці. Значення вхідних і вихідних сигналів та значення станів автомата можуть змінюватися тільки в моменти автоматного часу t = 1, 2, ….

Якщо позначимо через

x(t) X, y(t) Y, a(t) U

значення вхідного й вихідного сигналів і стану автомата в момент автоматного часу t, то робота автомата A описуватиметься співвідношеннями

a(t + 1) = δ(a(t), x(t)), y(t) = λ(a(t), x(t)). (5.1)

Співвідношення (5.1) називають канонічними рівняннями автомата A.

Перше із канонічних рівнянь можна прочитати так: стан автомата A в будь-який момент автоматного часу t + 1 однозначно визначається сигналом, поданим на вхід автомата, і станом автомата A в попередній момент автоматного часу. При цьому кажемо, що автомат A переходить зі стану a(t) у стан a(t + 1).

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

201

суміщену таблицю пе
таблицею перехо

терпретації розглядуваної моделі слід брати до уваги, що зазначений перехід відбувається поступово й потребує певного фізикного часу. Однак вважатимемо, що цей час завжди менший від тривалості такту введеного дискретного часу; отже, від моменту t до моменту t + 1 весь перехідний процес завершується.

Крім зміни станів, результатом роботи автомата є також видача вихідних сигналів за законом, визначеним другим канонічним рівнянням автомата.

Якщо у автоматі A виділено стан, у якому автомат A перебуває в момент автоматного часу t = 1, то цей стан називають початко вим (зазвичай початковим станом уважають a1), а автомат A називають ініціальним і позначають A/a1. Надалі не вказуватимемо явно залежність змінних і результатів функцій переходів і виходів від автоматного часу t, крім тих випадків, коли це потрібно.

Для розв'язання задач теорії автоматів зручно використовувати різні способи (методи) задання автоматів. Опишемо два найпоширеніші. У цих методах істотним є те, що функції δ та λ автомата A мають скінченні області визначення.

Табличний спосіб. Функції δ і λ можна задавати за допомогою двох таблиць, які називають відповідно

дів і таблицею виходів автомата A. Загальна структура обох таблиць однакова: рядки таблиць позначено вхідними сигналами x1, x2, …, xm, а стовпчики – станами a1, a2, …, as. На перетині i-го рядка та j-го стовпчика в таблиці переходів записують стан δ(aj, xi), а в таблиці виходів – вихідний сигнал λ(aj, xi). Іноді для задання автомата використовують одну

реходів/виходів, у якій на перетині i-го рядка та j-го стовпчика

записують відповідну пару ak /yl, де ak = δ(aj, xi) та yl = λ(aj, xi). Графічний спосіб задання автомата за допомогою орієнтова-

ного мультиграфа називають графом, або діаграмою автомата

(автоматним графом, автоматною діаграмою). Вершини графа позначають символами станів автомата A. Якщо δ(ai, xk) = aj та λ(ai, xk) = yl , то в графі автомата проводять орієнтовану дугу (або стрілку) з вершини ai у вершину aj й позначають її символами xk/yl. Задання автомата за допомогою графа особливо наочне, якщо кількість його станів порівняно невелика.

202

Зрозуміло, що досить легко можна перейти від одного способу задання до іншого.

Автомат A називають детермінованим, якщо функції δ і λ всюди визначені, і недетермінованим, якщо δ і λ – усюди визначені відповідності між U × X і U та U × X та Y, відповідно, але вони не задовольняють умову функціональності. Автомат A називають частковим, якщо функції δ і λ не є всюди визначеними.

Приклад 5.1.

1. Розглянемо автомат D, який регулює дорожній рух на перехресті вулиць В і П.

В автомат дорожнього руху D з періодом одна хвилина надходить тактовий сигнал Г генератора синхроімпульсів, що послідовно перемикає сигнали світлофора С, дозволяючи транспорту рух відповідно вулицями В і П (рис. 5.1, а). Крім світлофора є також кнопка виклику К, за допомогою якої пішохід може надіслати автомату запит З на призупинення руху на перехресті. При надходженні запиту З і по завершенні поточного інтервалу часу в одну хвилину автомат перериває генерування послідовності сигналів В і П на дві хвилини, сигналом Д запалює транспарант, що дозволяє перехід пішоходам, а по вичерпанні двох хвилин формує сигнал скидання СС, повертаючи автомат до відновлення формування послідовності сигналів В та П. Таким чином, автомат D виробляє вихідні сигнали В, П, Д і СС для дозволу руху транспорту по вулицях В і П, дозволу переходу пішоходам та скидання кнопки виклику. Роботу автомата D ілюструє часова діаграма на рис. 5.1, б.

 

 

К

 

 

 

К

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Г

Г

Г

Г

Г

ГЗ Г

Г

Г

Г

ГЗ

Г

Г

Г

Г

Г Г

 

 

 

 

 

 

 

Вхід

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Час

 

 

 

 

П

 

 

 

 

 

С

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Стан

 

 

а1

а2

а3

а4

а5

а6

а7

8

9 10

11 12 13 14 15 1617

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а

а

 

а

а

а

 

а

 

а

а

а

а

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вихід

 

1

2

1

2

1

3

4

2

 

1

2

5

 

6

 

1

2

1

2

1

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

К

 

 

 

К

 

 

 

 

 

В П В П В Д СС П В П Д СС В П В П В

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.1

 

 

 

 

 

 

 

б

 

 

 

 

 

 

Таблиці переходів і виходів автомата дорожнього руху мають такий вигляд:

203

δ

a1

a2

a3

a4

a5

a6

 

λ

a1

a2

a3

a4

a5

a6

x1

a2

a1

a4

a2

a6

a1

 

x1

y2

y1

y4

y2

y4

y1

x2

a3

a5

a4

a2

a6

a1

 

x2

y3

y3

y4

y2

y4

y1

Тут використано позначення:

x1 = Г, x2 = З & Г, y1 = В, y2 = П, y3 = Д, y4 = Д & СС):

Граф автомата дорожнього руху подано на рис. 5.2.

 

 

 

 

 

 

 

 

 

 

 

 

х1/у4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а4

 

 

 

 

 

 

 

 

 

а3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2/у4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2/у3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1/у2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2/у2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1/у2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а5

 

 

 

 

 

 

 

 

 

а2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1/у1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1/у1

 

 

 

 

 

 

х1/у4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2/у1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а6

 

 

 

 

х2/у4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.2

2. Побудуємо автомат S, який описує алгоритм функціонування послідовного двійкового суматора. На вхід автомата надходять пари розрядів двійкових чисел, що додаються, починаючи з молодших розрядів. На виході автомата має з'являтися розряд результату додавання. Потрібно також фіксувати й ураховувати ситуацію наявності чи відсутності перенесення в наступний розряд. Ці дві ситуації відображають два стани автомата S: початковому стану a1 відповідає ситуація немає перенесення, а стану a2 – ситуація є перенесення.

Вхідні сигнали x0 = (0, 0), x1 = (0, 1), x2 = (1, 0) і x3 = (1, 1) за-

дають чотири можливі комбінації розрядів, що додаються. Граф автомата S подано на рис. 5.3.

 

 

 

х1/0

 

 

 

 

 

х2/0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х4/0

 

 

 

х2/1

 

 

 

 

 

 

 

 

 

 

 

а2

 

 

 

 

 

 

а1

 

 

 

 

 

 

 

 

 

 

 

х3/0

 

 

 

 

 

 

 

 

х1/1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х3/1

 

 

 

 

 

 

х4/1

 

 

Рис. 5.3

 

 

 

 

 

 

 

204

 

 

 

 

 

 

 

 

3. Побудуємо суміщену таблицю переходів/виходів автомата A, на виході якого з'являється сигнал 1 тоді й лише тоді, коли на його вхід було подано послідовність символів, що відповідає ідентифікатору якоїсь мови програмування; в іншому разі вихідним сигналом є 0. Вхідні сигнали автомата A: x1 – літера, x2 – цифра, x3 – будь-який інший символ.

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

δ/λ

П

T

H

x1

T/1

T/1

H/0

x2

H/0

T/1

H/0

x3

H/0

H/0

H/0

4. Побудувати автомат-пошуковець S для X = Y = {0, 1}, на виході якого з'являється сигнал 1 тоді й лише тоді, коли чотири останні вхідні сигнали – це 0110.

Позначимо через 0 стан, що відповідає очікуванню бажаної (шуканої) четвірки символів, через 1 – стан, що фіксує появу на вході автомата першого 0 четвірки, через 2 – стан, що відповідає появі пари 01, через 3 – стан, що відповідає появі 011, і через 4 – стан, у який автомат переходить, коли останніми вхідними сигналами є 0110. Суміщену таблицю переходів/виходів автомата-

пошуковця S наведено нижче:

 

 

 

 

δ/λ

0

1

2

3

4

 

0

1/0

1/0

1/0

4/1

1/0

 

1

0/0

2/0

3/0

0/0

2/0

5. Побудувати таблиці переходів і виходів, граф автомата P, що за допомогою своїх станів запам'ятовує два останні символи (двійкові розряди), які було подано на його вхід. Вихідним сигналом є останній символ, що "забувається".

δ/λ

00

01

10

11

0

00/0

10/0

00/1

10/1

1

01/0

11/0

01/1

11/1

Для зручності стани автомата P позначено чотирма можливими варіантами значень двох останніх символів (двійкових розрядів) вхідного слова, тобто автомат P перебуває в стані ab, якщо двома останніми вхідними символами були ab, a, b {0, 1}.

205