- •Розділ 3. Основи теорії скінченних автоматів
- •3.1. Логічні функції
- •3.2. Приклади логічних функцій
- •3.3 Зв'язок логічних функцій і функціональних схем
- •3.4. Канонічне представлення логічних функцій
- •3.5. Задача мінімізації логічних функцій
- •3.6. Основні поняття теорії скінченних автоматів
- •3.7. Абстрактна і структурна теорії скінченних автоматів
- •3.8. Зіставлення скінченних автоматів
- •3.9. Синхронні мережі з автоматів
- •3.10. Приклад синтезу скінченного автомата
- •Перетворимо вихідну таблицю в спеціальну форму з виділенням вхідних-вихідних сигналів і внутрішніх станів.
- •3.11. Програмна реалізація логічних функцій і автоматів
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 можуть бути визначені не тільки на множині А усіх вихідних букв, але і на множині А* усіх вхідних слів. Для будь-якого вхідного слова jj2jkqi, aj1, aj2, …, ajk
qi, aj1), aj2), … , ajk-1), ajk).
Іншим способом це традиційне визначення можна представити так:
1) ( qi , aj ) задається автоматною таблицею S;
2) для будь-якого слова А* і будь-якої букви аj
qi,ajqi,aj).
Рис. 3.7. Граф скінченного автомата
Тут і надалі символи станів для формування коротких позначень будуть замінятися їхніми індексами.
За допомогою розширеної функції визначається (індуктивно) розширена функція .
qiajqjaj).
Зафіксуємо в автоматі S початковий стан q1, і кожному вхідному слову = аj1, аj2, …, аjk поставимо у відповідність слово у вихідному алфавіті
q1, aj1q1,aj1aj2q1,aj1,…,ajk.
Ця відповідність, що відображає вхідні слова у вихідні, називається автоматним відображенням, а також автоматним оператором. Якщо результатом застосування оператора до слова є вихідне слово , то це будемо позначати відповідно S (q1, ) = або S( ) = . Число букв у слові , як звичайно, є довжиною і позначається або l(
Автоматне відображення має такі властивості:
слова і = S( ) мають однакову довжину;
якщо = і S()= , де = , то S( )= .
Остання властивість відбиває той факт, що автоматні оператори - це оператори, які, переробляючи слово зліва праворуч, не «заглядають вперед». При цьому i - а буква вихідного слова залежить тільки від перших i - букв вихідного слова.
Зазначені властивості були б достатніми умовами автоматного відображення, якби мова йшла про нескінченні автомати. Для скінченних автоматів цих умов недостатньо при реалізації для довільних вхідних і вихідних алфавітів.