Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОДМ_Розд. 3.doc
Скачиваний:
6
Добавлен:
28.03.2016
Размер:
343.04 Кб
Скачать

3.6. Основні поняття теорії кінцевих автоматів

Кінцевим автоматом називається система S={A, Q, V, }, у котрої A={a1,…,am},Q={q1,…qn},V={v1,…,vk}- кінцеві множини (алфавіти); a : Q x A Q і : Q x A V - функції, визначені на цих множинах. А називається вхідним алфавітом, V - вихідним алфавітом, Q - алфавітом стана; - функцією переходів, - функцією виходів. Якщо, крім того, в автоматі S виділене один стан, який називається початковим (будемо вважати, що цей стан q0), то отриманий автомат називається ініціальним і позначається ( S, q0 ) ; таким чином, по не ініціальному автоматі з n станами можна n різноманітними засобами визначити ініціальний автомат.

Оскільки функції і визначені на кінцевих множинах, їх можна задавати таблицями. Звичайно дві таблиці зводяться в одну таблицю і , яка називається таблицею переходів - виходів автомата або автоматною таблицею.

Приклад. Таблиця 3.5 задає функції переходів і виходів для автомата з алфавітами A = { a1, a2, a3}, Q = {q1, q2, q3, q4}, V = {v1, v2}.

Таблиця 3.5 - Табличне завдання кінцевого автомата

a1

a2

a3

q1

q3 / v1

q3 / v2

q2 / v1

q2

q4 / v1

q1 / v1

q1 / v1

q3

q2 / v1

q3 / v1

q3 / v2

q4

q4 / v1

q2 / v1

q1 / v2

Ще один поширений і наочний засіб завдання автоматів - орієнтований мультиграф, називаний графом переходів або діаграмою переходів. Вершини графа відповідають станам; якщо (qi, aj) = qk і (qi, aj)= vl, то з qi у qk веде ребро, на якому написані aj і vl . Граф переходів для таблиці 3.5 зображений на рис. 3.7. Кратні ребра не обов'язкові; наприклад два ребра з q2 у q1 можна замінити одним, на якому будуть написані обидві пари a3/v1 і a2/v1 . Для будь-якого графа переходів у кожній вершині qi виконані такі умови, що називаються умовами коректності:

1) Для будь-якої вхідної букви ai є ребро, що виходить із qi, на якому написане aj (умова повноти);

2) Будь-яка буква aj зустрічається тільки на однім ребрі, що виходить із qi (умова несуперечності або детермінованості).

Для даного автомата S його функції S і S можуть бути визначені не тільки на множині А усіх вихідних буквах, але і на множині А* усіх вхідних слів. Для будь-якого вхідного слова j j2jkqi, aj1, aj2, … , ajk qi, aj1), aj2), … ,

ajk-1), ajk).

a1/v1

a1/v1

a2/v1

a1/v1

a2/v1

a3/v1

a3/v2

a2/v2

a1/v1

a1/v1

a2/v1

a3/v2

Рис. 3.7 - Граф кінцевого автомата

Іншим способом це традиційне визначення можна представити таким чином:

1)  ( Qi , aj ) задається автоматною таблицею s;

2) Для будь-якого слова а* і будь-якої букви аj

qi,ajqi,aj).

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

За допомогою розширеної функції  визначається (індуктивно) розширена функція .

qiajqjaj).

Зафіксуємо в автоматі S початковий стан q1 і кожному вхідному слову = аj1, аj2, …, аjk поставимо у відповідність слово у вихідному алфавіті:

q1, aj1q1,aj1aj2q1,aj1,…,ajk.

Ця відповідність, що відображає вхідні слова у вихідні слова називається автоматним відображенням, а також автоматним оператором. Якщо результатом застосування оператора до слова є вихідне слово , те це будемо позначати відповідно S (q1, ) = або S( ) = . Число букв у слові , як звичайно є довжиною і позначається або l(

Автоматне відображення має такі властивості:

  • слова і = S( ) мають однакову довжину;

  • якщо = і S()= , де = , то S( )= .

Остання властивість відбиває той факт, що автоматні оператори - це оператори, які, переробляючи слово зліва праворуч, не «заглядають вперед». При цьому i - я буква вихідного слова залежить тільки від перших i - букв вихідного слова.

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