Разложение автоматов и расщепляемый автомат

Пусть H k (S i) обозначает множество всех состояний автомата М, соединенных с состояниями S i = { σ i 1, σ i 2,..., σ i r} посредством k или меньшего числа дуг, причем направление дуг несущественно. В частности, H0(S i) = S i. Множество H1S(i) есть объединение S i - состояний, расположенных в строках σ i 1, σ i 2,..., σ i r s v+1 -подтаблицы таблицы переходов автомата М, и состояний основного столбца таблицы переходов, соответствующих строкам s v+1 -подтаблицы, в которых есть какое-либо состояние из множества S i. С другой стороны, Н1 (S i) можно составить путем просмотра графа переходов автомата М. Если задано Hk-l(S i), k≥1, то H k (S i) может быть определено из соотношения

H k (S i) = H1(H k-l (S i)). (2.10)

Если H k (S i) = H k-1 (S i). то H k+u (S i) = H k-l (S i) для всех неотрицательных целых u и, следовательно, H k-l (S i) составляет множество всех состояний, связанных с S i цепью ребер[12] любой длины. Определение этого множества, обозначаемого просто H(S i), может быть теперь описано при помощи следующего алгоритма.

Алгоритм 2.2. Дано S i, требуется найти H(S i). (1) Пусть H0(S i) = S i. Полагаем k =1. (2) Определяем H k (S i) = H1(H k-l (S i)). (3) (а) Если H k (S i) ≠ H k-1 (S i), то увеличиваем k на единицу и возвращаемся к (2). (б) Если H k (S i) = H k-l (S i). то H k (S i) = H(S i).

При помощи аргументов, аналогичных тем, которые были использованы для алгоритма 2.1, можно показать, что алгоритм 2.2 требует не более n - r итераций пункта 2, где n - мощность множества состояний S автомата М, а r - мощность множества S i. Таблица 2.6 иллюстрирует применение этого алгоритма для автомата ЛЗ, изображенного на рис. 2.5 для S i = {1, 4}, H(1, 4) = {1, 2, 4, 5, 7, 8}.

Автомат или подавтомат, который содержит два или большее число изолированных подавтоматов, будем называть разложимым. Ранее упоминалось, что если S i содержит единственное состояние σ i, то H(σ i) составляет множество всех состояний, соединенных с σ i посредством цепей ребер любой длины. Следовательно, если H(σ i) ≠ S, то H(σi) составляет неразложимый изолированный подавтомат автомата М. Если H(σ i) = S, то можно заключить, что автомат М неразложим. Теперь можно описать метод получения максимального разложения автомата, т. е. метод разложения автомата на максимально возможное число изолированных

подавтоматов.

Алгоритм 2.3. Определение максимального разложения заданного автомата М с множеством состояний S.

(1) Пусть S1=S. Пологаем k =1. (2) Выбираем любое состояние из S k, например σi k, и определяем H(σik). Множество H(σik) – множество состояний k -го изолированного подавтомата автомата M. (3) (а) Если H(σi1) H(σi2) ... H(σik) ≠ S, то полагаем, что S k+1 содержит состояния множества S, не содержащиеся H(σi1) H(σi2) ... H(σik). Увеличиваем k на единицу и возвращаемся к (2). (б) Если H(σi1) H(σi2) ... H(σik) = S, то подавтоматы, определяемые множествами H(σi1), H(σi2), H(σik) представляют максимальное разложение автомата M. В частности, если H(σi1) = S, то автомат M неразложим.

Алгоритм 2.3, конечно, не обязателен, если автомат задан в виде графа. Однако он нужен, когда максимальное разложение надо провести без использования графа, например при помощи цифровой вычислительной машины.

Два или большее число автоматов называются сравнимыми, если они имеют одинаковые входные алфавиты. Пусть М1, M2,..., M N — сравнимые автоматы, представляющие N различных систем, и пусть M — автомат, который состоит из изолированных подавтоматов М1, M2,..., M N. М называется расщепляемым автоматом автоматов М1, M2,..., M N и обозначается так: ∆(М1, M2,..., M N). При заданных таблицах переходов М1, M2,..., M N таблица переходов ∆(М1, M2,..., M N) может быть построена следующим образом. (1) Переобозначим состояния автомата M i, если необходимо, так, чтобы не было в одном и том же автомате или в двух различных автоматах двух состояний, обозначенных одинаково. (2) Запишем строки всех N таблиц последовательно в одну общую таблицу; эта таблица является таблицей переходов автомата ∆(М1, M2,..., M N). Если M i определены графами, то граф переходов ∆(М1, M2,..., M N) является просто объединением всех отдельных графов, состояния которых могут быть перенумерованы в случае необходимости в соответствии с указанным выше правилом.

Понятно, что расщепляемый автомат ∆(М1, M2,..., M N) и, следовательно, каждый автомат, содержащий ряд подавтоматов, определенных так же, как М1, M2,..., M N, может рассматриваться как «система», которая есть автомат M1 или

автомат М2 или автомат M N. Эта интерпретация основывается на том факте, что если ∆(М1, M2,..., M N) находится в состоянии σ u, принадлежащем подавтомату M i, то ∆(М1, M2,..., M N) никогда не может перейти в какое - либо состояние подавтомата M j, где j ≠ i, так как M i и M j — два изолированных подавтомата. Поведение автомата ∆(М1, M2,..., M N), находящегося в состоянии σ u, совпадает поэтому с поведением автомата M i, находящегося в состоянии σ u. Следовательно, автомат ∆(М1, M2,..., M N) может быть представлен автоматом М1, или автоматом M2 или автоматом M N, в зависимости от начального состояния.

В качестве примера рис. 2.6 и таблица 2.7 представляют автомат A4, а рис. 2.7 и таблица 2.8—автомат A5. Расщепляемый автомат, составленный из автоматов A4 и A5, ∆ (A4, A5), представлен на рис. 2.8 и в таблице 2.9.

2.8. Матрица переходов [13]

Матрицы переходов являются математической копией графов переходов; они дают возможность формализовать ряд операций, которые на графе переходов могут быть выполнены визуально. Матрицы переходов поэтому имеют преимущества в тех случаях, когда эти операции не могут быть выполнены человеком-исследователем и, следовательно, не могут быть выполнены визуально или когда граф переходов настолько сложен, что использование визуальной методики бесполезно.

Для автомата М, имеющего n состояний, матрица переходов состоит из n. строк и n столбцов и обозначается [М]. Пусть {σ1, σ2,.:., σn}—множество состояний автомата М и пусть b ij обозначает дугу графа переходов автомата М, направленную от σ i к σ j. Элемент (i, j) (т. е. содержимое клетки, расположенной на пересечении i-й строки и j-го столбца матрицы [М] обозначается е ij и определяется так:

Для ясности обычно обозначение k -го состояния σ k приписывают k-й строке и k-му столбцу и называют их «строка σ k» и «столбец σ k» соответственно. Выражение (2.12) изображает матрицу переходов автомата А1, заданного в виде графа на рис. 2.2.

Если р — мощность входного алфавита автомата М, то каждая строка в [М] должна содержать точно р пар вход-выход, причем каждая пара имеет входной символ, отличный от входного символа любой другой пары. Дуги, заходящие в состояние σ k, представляются недиагональными элементами[14] столбца σ k; дуги, исходящие из состояния σ k, представляются недиагональными элементами строки σ k; петля состояния σ k представляется диагональным элементом в строке σ k или

столбце σ k. Следовательно, если σ k — переходящее состояние, то все недиагональные элементы в столбце σ k (но не в строке σ k) равны нулю; если σ k —тупиковое состояние, то все недиагональные элементы в строке σ k (но не в столбце σ k) равны нулю; если σ k —изолированное состояние, то все недиагональные элементы в строке σ k и столбце σ k равны нулю.

Если S i = {σ i 1, σ i 2,..., σ i r}, то определенное в § 2.6 множество G 1 (S i) представляет собой объединение S i и обозначений столбцов, в которых элементы, принадлежащие строкам σ i 1, σ i 2,..., σ i r, не равны нулю. Определенное в § 2.7 множество HI(S i) представляет собой объединение S i обозначений столбцов, в которых элементы, принадлежащие строкам σ i 1, σ i 2,..., σ i r, не равны нулю, и обозначений строк, в которых элементы, принадлежащие столбцам σ i 1, σ i 2,..., σ i r, не равны нулю. Например, из матрицы [Al] ясно видно, что для автомата A1 G1(l, 2) = {1, 2, 3} и Н1(4, 5)={1, 3, 4, 5}. Таким образом, ясно, что матрица переходов является удобным инструментом для выполнения алгоритмов 2.1, 2.2 и 2.3.

Для того чтобы определить, составляет ли множество S(σ i 1, σ i 2,..., σ i r) преходящий, тупиковый или изолированный подавтомат автомата М, надо строки и столбцы матрицы [М] переставить так, чтобы строки и столбцы σ i 1, σ i 2,..., σ i r заняли соседние положения, начиная с первой строки и первого столбца соответственно. Как показано в (2.13), эта перестановка делит матрицу [М] на четыре подматрицы [М11], [М12], [M21], [М22], причем строками и столбцами [М11] являются строки и столбцы σ i 1, σ i 2,..., σ i r

Обозначая матрицу, все элементы которой равны нулю, через [0], можно сделать вывод, что S i составляет преходящий подавтомат, если [M21] = [0], а [М12] ≠ 0, тупиковый подавтомат, если [М12] = [0], а [M21] ≠ 0, и изолированный подавтомат, если [М12] = [М21] = [0]. В (2.14) представлена матрица переходов автомата A3, изображенного на рис. 2.5, в которой строки и столбцы переставлены так, чтобы выделить тупиковый подавтомат {1, 4, 7}, преходящий подавтомат {2, 5, 8} и изолированный подавтомат {3, 6, 9}.

Если Si составляет тупиковый или изолированный подавтомат, то [M12] = [0] и, следовательно, каждая строка в [М11] содержит все р пар вход-выход, где р — мощность входного алфавита. Удалив [M12], [M21] и [М22] из [М], получим матрицу [М11] размером r r, которую можно трактовать как матрицу, представляющую независимый автомат М11 с r состояниями, имеющий тот же входной алфавит, что и М. Отсюда следует то же заключение, которое было получено в § 2.6: если автомат находится в состоянии, принадлежащем тупиковому или изолированному подавтомату, то все состояния, которые не принадлежат этому подавтомату, и все дуги, исходящие из этих состояний, могут быть исключены.


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



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