Автоматы с 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