- •Раздел 3. Основы теории конечных автоматов
- •3.1. Логические функции
- •3.2. Примеры логических функций
- •3.2. Связь логических функций и функциональных схем
- •3.3. Каноническое представление логических функций
- •3.4. Задача минимизации логических функций
- •3.5. Основные понятия теории конечных автоматов
- •1) Для любой входной буквы ai имеется ребро, выходящее из qi , на котором написано aj (условие полноты);
- •2) Любая буква aj встречается только на одном ребре, выходящем из qi (условие непротиворечивости или детерминированности).
- •1) ( Qi , aj ) задается автоматной таблицей s;
- •2) Для любого слова а* и любой буквы аj
- •3.6. Абстрактная и структурная теория конечных автоматов
- •3.6. Сопоставимость конечных автоматов
- •3.7. Синхронные сети из автоматов.
- •1. Параллельное соединение (рис. 3.11). Различаются соединения с общими и раздельными входами (алфавитами).
- •3.8. Пример синтеза конечного автомата
- •X(n) (состояние / выход)
- •Преобразуем исходную таблицу в специальную форму с выделением входных - выходных сигналов и внутренних состояний.
- •X1(n) Комб. Y(n)
- •3.9. Программная реализация логических функций и автоматов.
3.5. Основные понятия теории конечных автоматов
Конечным автоматом называется система 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 - букв выходного слова.
Указанные свойства были бы достаточными условиями автоматного отображения, если бы речь шла о бесконечных автоматах. Для конечных автоматов этих условий недостаточно при реализации для произвольных входных и выходных алфавитов.