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