- •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.6. Распознавание слов автоматами
Пусть = (A, B, Q, , ) некоторый автомат и q0 начальное состояние , а D Q множество состояний, называемых распознающими состояниями.
Тогда автомат распознает входное слово , если после переработки из состояния q0 он оказывается в состоянии из множества D. Способность конечных автоматов распознавать слова из заданных множеств слов делает возможным применение автоматов в качестве устройств, проверяющих правильность входных слов автоматов.
Определение
Множество U A* распознается автоматом из начального состояния q0 и множества D Q распознающих состояний, если
A* ( U распознает ).
Например. Если A = {o, s}, то множество слов в этом алфавите, имеющих вид: 1 sos 2, где 1 и 2 это произвольные слова из A*, распознается автоматом, изображенным на рис.7.10. В приведенной на этом рисунке диаграмме не отображены сведения о значениях вункции выхода автомата, поскольку они не влияют на процесс распознавания
о
q0
s o s, o
s q1 q3
o q2 s
Рис.7.10
Здесь q0 начальное состояние автомата, а {q3} множество распознающих состояний.
Состояние q0 соответствует ситуации, когда поступившая на вход автомата часть перерабатываемого слова не заканчивается никаким началом слова вида sos 2.
Тогда состояние q1 соответствует ситуации, когда последний поступивший на вход символ может быть первым в слове sos, q2 соответствует случаю, когда два последних символа это so. Наконец, q3 соответствует случаю, когда на входе автомата уже появились последовательно все символы слова sos .
Заметим, что для распознавания слов конечными автоматами значения символов на выходе автомата несущественны.
Поэтому в диаграмме из приведенного примера дуги не размечены значениями выходных символов.
В дальнейшем автомат = (A, B, Q, , ), который распознает множество слов U из начального состояния q0 для множества распознающих состояний D, будем записывать как = (A, Q, , q0, D).
Если некоторое множество U A*распознается некоторым конечным автоматом, то U называется автоматным языком.
ТЕОРЕМА 7.6
Множество автоматных языков замкнуто относительно операций объединения, пересечения, разности и дополнения языков.
Доказательство
Пусть языки U1 и U2 распознаются автоматами
1 = (A, Q1, 1, q0, D1) и 2 = (A, Q2, 2, q1, D2).
Построим конечный автомат , который функционирует из своего начального состояния так же, как и два параллельно работающих автомата 1 и 2.
Определим автомат как (A, Q1 Q2, , (q0, q1), D), где D обозначает множество состояний, которое будет выбираться так, чтобы обеспечить распознавание множеств U1 U2, U1 U2, и U1 \ U2.
Состояния это пары (qi, qj), где qi Q1 и qj Q2. Начальным состоянием является состояние (q0, q1). Функция перехода представляет собой пару функций (1, 2), каждая из которых определяет значение соответствующей компоненты состояния . То есть, если в момент времени t автомат находится в состоянии (q(t), q(t)), то значение состояния в момент t+1 равно (1(x(t), q(t)), 2(x(t), q(t))).
Тогда автомат из начального состояния (q0, q1) распознает множество U1 U2, если в качестве множества распознающих состояний D выбрано множество
D1 Q2 Q1 D2.
Действительно, при переработке произвольного входного слова из начального состояния (q0, q1) компоненты состояния автомата изменяются так же, как состояния автоматов 1 и 2, когда эти автоматы перерабатывают из состояний q0 и q1 соответственно.
Поэтому заканчивает переработку в состоянии из D тогда и только тогда, когда автомат 1 заканчивает переработку в состоянии из D1 или 2 заканчивает переработку этого же слова в состоянии из D2.
То есть U1 U2 заканчивает переработку этого слова в состоянии из множества D1 Q2 Q1 D2.
Аналогично можно показать, что если в качестве множества распознающих состояний взять D1 D2, то автомат из начального состояния (q0, q1) распознает U1 U2.
Множество U1 \ U2 распознается конечным автоматом , для которого D = D1 (Q2 \ D2).
Если множество слов U распознается автоматом
= (A, Q, , q0, D), то A* \ U распознается автоматом
(A, Q, , q0, Q \ D).
Доказательство окончено.
Упражнение. Показать, что множество всех симметричных слов в алфавите {0, 1} не является автоматным.