Автоматы с l - переходами

Автоматы с l - переходами естественно возникают в различных приложениях, и позволяют представить любой автомат в виде двухполюсников с одним входом и одним выходом, а так же строить сети из таких автоматов, сохраняя в них единственный вход и единственный выход. От рассмотренных ранее автоматов они отличаются тем, что в них присутствуют переходы, осуществляемыми без чтения входной цепочки (на диаграмме такие переходы обозначаются стрелками, помеченными символом l).

Рис. 8

Рис.9

Например, рассмотрим автомат с двумя выходами, представленный на рис. 9. Он имеет два выхода. Если просто объединить две выходные вершины, то получившийся автомат не будет эквивалентен исходному, т.к. после построения символа b в результирующем автомате возможно будет построение символов а, что было невозможно в исходном автомате. Эквивалентный исходному автомат представлен на рис. 10.

Рис.10.

Иногда в двухполюснике конечные состояния изображаются как

Очевидно, что если L – А-язык, то ему можно сопоставить двухполюсник.

Пусть языкам L1 и L2 сопоставлены соответствующие двухполюсники

(рис.11 а). Тогда их объединению, конкатенации и итерации языка L1 будут, соответственно, сопоставлены двухполюсники рис. 11б, 11в, 11г

Рис.11

Т.о. доказана теорема: Класс А-языков замкнут относительно операций объединения, конкатенации и итерации.

Оптимизация автоматов с l-переходами.

Если из состояния А исходит единственная дуга и это l-дуга в состояние В, то вершины А и В можно слить.

Если из вершины А выходит l-дуга в вершину В, являющуюся начальной вершиной некоторой дуги(не петли) или последовательности дуг, а С – конечная вершина этой дуги (последовательности дуг), и единственная дуга из С - l-дуга в вершину А, то вершины А,В и С можно слить (примеры такого слияния приводятся на рис. 12 (для одной дуги – а, б; для последовательности – в, г).

Рис.12

Теорема:

Классы языков, допускаемых детерминированными автоматами и автоматами с l-переходами, совпадают.

Док-во:

Пусть автомат А = <Q, VT, q0, F, K> - автомат l-переходами. Построим соответствующий детерминированный автомат А’= <Q’, VT, q0’, F’, K’>, такой, что L(A)=L(A’) следующим образом.

F’(q,a)={p / (q,ax) ├+ (p,x)}

K’ = K È{p / (q, l) ├* (p, l)& pÎK}

Несложно показать, с использованием математической индукции по числу символов в распознаваемой цепочке, что получаемый таким образом автомат А’ переходит при распознавании цепочки Х в конечное состояние тогда и только тогда, когда существует последовательность переходов в конечное состояние автомата А при распознавании этой же цепочки символов.

Пример. Пусть автомат представлен диаграммой на рис. 13а. Объединим по правилу 1 упрощения автоматов с l-переходами состояния 4 и 5 и переобозначим состояния, как показано на рис. 13б.

Построим функцию переходов детерминированного автомата А’.

F(A, a) = [B,C, D, F] F(A, b) = [E] F(A,c) = Æ F([B, C, D, F], a) = [C,D, F], F([B, C, D, F], b) = [D, E], F([B, C, D, F], c) = Æ, F([E], a) = Æ, F([E], b) = Æ, F([E], c) = [D],
F([C, D, F], a) = [C, D, F] F([C, D, F], b) = [E] F([C, D, F],c) = Æ F([D, E], a) = [D, F] F([D, E], b) = [E] F([D, E],c) = [D] F([D, F], a) = [D, F] F([D, F], b) = [E] F([D, F], c) = Æ
F([D], a) = [D, F] F([D], b) = [E] F([D], c) = Æ    

K’ = { [B, C, D, F], [ D, F], [C, D, F]}

Диаграмма детерминированного автомата представлена на рис. 14.

Рис.14

Тот же автомат после переобозначения состояний представлен на рис. 15.

Рис.15


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: