- •7. Конечные автоматы
- •7.1. Начальные понятия
- •7.2. Определение и задание автоматов
- •Определение
- •7.2.1. Диаграммы переходов
- •7.2.2. Табличное задание автоматов
- •7.2.3. Канонические уравнения
- •Очевидно, что если в последовательные моменты времени
- •7.3. Функции конечных автоматов
- •Определение
- •Теорема 7. 1
- •7.4. Отличимость состояний автоматов
- •Определение
- •7.5. Минимальные автоматы определение
- •1. Построение минимального автомата
- •2. Доказательство минимальности автомата
- •7.6. Распознавание слов автоматами
- •Определение
- •7.7. Схемы конечных автоматов
- •7.7.1. Композиция автоматов
- •7.7.2. Операция обратной связи
- •Определение
- •Определение
- •7.8. Схемы из элементарных автоматов
7.2. Определение и задание автоматов
Алфавитом называется всякое конечное множество A = {a1, . . . , an}. Элементы множества A называются символами.
Определение
Конечным автоматом называется всякая пятерка
A = (A, B, Q, , ), где:
A входной алфавит;
B выходной алфавит;
Q конечное множество состояний автомата;
: A Q Q функция перехода;
: A Q B функция выхода автомата.
В дальнейшем мы будем использовать наименование автомата, применительно только к конечным автоматам.
Символы входного и выходного алфавитов представляют входные и выходные сигналы автомата.
Отображения и задают функционирование автомата A и называются функциями перехода и выхода.
При этом отображение определяет, как изменяется состояние автомата на каждом шаге его работы для произвольных значений входного символа и текущего состояния.
Отображение задает символ на выходе A для такой же ситуации.
На практике используют и другие способы задания автоматов, которые либо удобны для решения специальных задач, либо имеют большую наглядность.
Рассмотрим основные способы представления автоматов.
7.2.1. Диаграммы переходов
Пусть = (A, B, Q, , ) это автомат и A = {a1, . . . , am}, Q = {q1, . . . , qr}.
Изобразим состояния с помощью системы из r непересекающихся кругов на плоскости, которые помечены символами этих состояний. Из каждого круга, изображающего состояние, проведем m ориентированных дуг, каждая из которых помечена одним из символов входного алфавита.
Дуге, выходящей из состояния qj, помеченной входным символом ai, припишем также выходной символ (ai, qj), заключив его в скобки.
Проведем эту дугу в состояние (ai, qj).
Соответствующий фрагмент изображения автомата имеет вид, приведенный на рис.7.1.
qj qk
ai((ai, qj))
Рис. 7.1
Здесь qk = (ai, qj).
Построенное по заданным правилам представление автомата называется диаграммой переходов.
Диаграммы переходов полностью определяют представляемые ими автоматы.
Множества A и B определяются символами, приписанными дугам без скобок и в скобках соответственно.
(Без ограничения общности можно считать, что каждый символ выходного алфавита принадлежит области значений функции выхода и поэтому присутствует на диаграмме переходов.)
Множество всех состояний автомата задается помеченными кругами.
Отображения и полностью представлены в диаграмме. При этом значение (ai, qj) равно состоянию, в которое ведет дуга диаграммы, выходящая из состояния qj и помеченная входным символом ai.
Значение (ai, qj) равно символу выходного алфавита, который приписан в скобках для той же дуги.
Основным свойством диаграмм переходов является наглядность представления как отдельных действий, так и функционирования автоматов в течение нескольких последовательных моментов времени.
Если в некоторый момент времени t автомат находится в состоянии qj и на его вход поступает символ ai, то функционирование этого автомата можно представить с помощью перемещения по диаграмме из состояния qj по дуге, помеченной входным символом ai.
При этом выбранная дуга ведет в состояние, в котором будет находиться в момент времени t + 1. Символ на выходе автомата в момент t приписан этой же дуге в скобках.
Поэтому функционирование автомата в последовательные моменты t0, t0+1, . . . , t0+i, . . . можно промоделировать с помощью прохождения соответствующего пути в диаграмме переходов.
Упражнение. Покажите, что диаграмма переходов всякого автомата имеет элементарные циклы ненулевой длины.