Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CHast_8_Konechnye_avtomaty.DOC
Скачиваний:
22
Добавлен:
22.09.2019
Размер:
797.18 Кб
Скачать

7.6. Распознавание слов автоматами

Пусть = (A, B, Q, , )  некоторый автомат и q0  начальное состояние , а DQ множество состояний, называемых распознающими состояниями.

Тогда автомат распознает входное слово , если после переработки из состояния 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 Q2Q1 D2.

Действительно, при переработке произвольного входного слова из начального состояния (q0, q1) компоненты состояния автомата изменяются так же, как состояния автоматов 1 и 2, когда эти автоматы перерабатывают из состояний q0 и q1 соответственно.

Поэтому заканчивает переработку в состоянии из D тогда и только тогда, когда автомат 1 заканчивает переработку в состоянии из D1 или 2 заканчивает переработку этого же слова в состоянии из D2.

То есть U1U2 заканчивает переработку этого слова в состоянии из множества D1 Q2Q1 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} не является автоматным.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]