Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
А Гилл Введение в теорию конечных автоматов.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
39.46 Mб
Скачать

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

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

Hk(Si) = H1(Hk-l(Si)). (2.10)

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

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

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

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

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

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

(1) Пусть S1=S. Пологаем k=1. (2) Выбираем любое состояние из Sk , например σik , и определяем H(σik). Множество H(σik) – множество состояний k-го изолированного подавтомата автомата M. (3) (а) Если H(σi1) H(σi2) ... H(σik) ≠ S, то полагаем, что Sk+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, ..., MN — сравнимые автоматы, представляющие N различных систем, и пусть M — автомат, который состоит из изолированных подавтоматов М1, M2, ..., MN. М называется расщепляемым автоматом автоматов М1, M2, ..., MN и обозначается так: ∆( М1, M2, ..., MN). При заданных таблицах переходов М1, M2, ..., MN таблица переходов ∆( М1, M2, ..., MN) может быть построена следующим образом. (1) Переобозначим состояния автомата Mi, если необходимо, так, чтобы не было в одном и том же автомате или в двух различных автоматах двух состояний, обозначенных одинаково. (2) Запишем строки всех N таблиц последовательно в одну общую таблицу; эта таблица является таблицей переходов автомата ∆( М1, M2, ..., MN). Если Mi определены графами, то граф переходов ∆( М1, M2, ..., MN) является просто объединением всех отдельных графов, состояния которых могут быть перенумерованы в случае необходимости в соответствии с указанным выше правилом.

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

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

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