ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
2011 Прикладная теория автоматов №2(12)
УДК 512.5
СКЕЛЕТНЫЕ АВТОМАТЫ
В. Н. Салий
Саратовский государственный университет им. Н. Г. Чернышевского, г. Саратов, Россия
E-mail: [email protected]
Автомат (без выходов) называется сильносвязным, если любые два его состояния взаимно достижимы. Скелетный автомат характеризуется противоположным свойством: в нем никакие два различных состояния не являются взаимно достижимыми. Показано, что автомат тогда и только тогда допускает правильную нумерацию состояний, когда он скелетный (теорема 1). Предлагается метод, позволяющий для заданного автомата построить автомат с наименьшим возможным числом состояний, имеющий такую же решетку подавтоматов, при этом полученный автомат оказывается скелетным (теорема 2). Описывается процедура, позволяющая получить из данного автомата скелетный автомат путем удаления (замены петлями) минимального числа дуг в диаграмме переходов исходного автомата.
Ключевые слова: автомат, сильносвязный автомат, скелетный автомат, правильная нумерация состояний, решетка подавтоматов.
Под автоматом понимается тройка A = (S, X, 8), где S и X — конечные непустые множества (соответственно множество состояний и множество входных сигналов), а 8 : S х X ^ S — отображение, называемое функцией переходов. Запись 8(s, x) = s; для s,s; Е S, x Е X означает, что автомат A, находящийся в состоянии s, под действием входного сигнала x переходит в следующий момент дискретного времени в состояние s;. Функция переходов естественным образом продолжается на множество S х X*, где X* — совокупность всех конечных слов над алфавитом X: по определению, 8(s,e) = s для любого s Е S и пустого слова е, и 8(s,px) = 8(8(s,p),x) для любых s Е S, x Е X, p Е X*.
Автомату A сопоставляется диаграмма — мультиграф G(A), вершинами которого являются элементы множества S и дуги помечены элементами из X: из вершины s в вершину sf ведет дуга с меткой x, если 8(s,x) = s;. Другим объектом, связанным с автоматом A, является матрица переходов M(A) —матрица размерности m х m, где m = |S|, элементами которой являются подмножества множества X, при этом [M(A)]jj = {x Е X : 8(si,x) = sj}.
Говорят, что состояние s; достижимо в автомате A из состояния s, если существует входное слово p Е X*, такое, что 8(s,p) = s;. В этом случае пишут (s,s;) Е т, и так определенное отношение т С S х S называют отношением достижимости в автомате A. Понятно, что т рефлексивно и транзитивно, т. е. является квазипорядком. Его симметричная часть а = т П т-1 называется отношением взаимной достижимости в автомате A. Классы эквивалентности а называют слоями автомата A. В [1] было введено понятие каркаса автомата. Каркас автомата A — это упорядоченное множество (F(A), ^), элементами которого являются слои автомата A, а порядком на множестве слоев F(A) = S/а — отношение, обратное отношению достижимости т, именно a(s;) ^ a(s) :^^ (s;,s) Е т-1 (s,s;) Е т. Очевидно, что для любого автомата A
выполняются неравенства 1 ^ |^(А)| ^ |Б1. Если |^(А)| = 1, т. е. отношение а универсально, а = Б х Б, автомат А называется сильносвязным. Если же |^(А)| = |Б|, т. е. отношение а тождественно, а = А, автомат А называется скелетным. В скелетном автомате отношение достижимости т является порядком на множестве состояний Б.
Поскольку в скелетном автомате А все слои одноэлементны, можно считать, что
в этом случае каркасом является множество Б, упорядоченное обратной достижимо— 1 \ / /
стью т 1, так что 5 ^ 5 означает, что состояние 5 достижимо из состояния 5.
Нумерацией состояний автомата называется биективное отображение множества его состояний Б на начальный отрезок [1,т] натурального ряда. Нумерация, по определению, является правильной, если (sг,sj) Е т =^ г ^ ], т. е. если состояния, достижимые из данного состояния, имеют меньшие, чем у него, номера.
Теорема 1. В автомате А существует правильная нумерация состояний тогда и только тогда, когда А — скелетный автомат.
Доказательство. Пусть в автомате А существует правильная нумерация состояний, но А не является скелетным, т. е. а = А. Тогда в А найдутся два различных взаимно достижимых состояния, скажем 5г и Sj. Так как (sг,sj) Е т, то г > ], а так как (sj, 5г) Е т, то ] > г, что невозможно. Значит, а = А и А — скелетный автомат.
Пусть теперь, напротив, дан скелетный автомат А и нужно правильно пронумеровать его состояния. Построим диаграмму каркаса ^(А), отождествляя его элементы с соответствующими состояниями автомата А. Под высотой элемента 5 в каркасе ^(А) понимается наибольшая из длин убывающих цепей, начинающихся с 5. Диаграмму строим следующим образом: если I — наибольшая из высот элементов в каркасе, то на I + 1 горизонталях, пронумерованных снизу вверх числами 0,1,... ,/, расположим элементы каркаса в соответствии с их высотами, а затем, двигаясь снизу вверх, будем соединять прямолинейными отрезками каждый элемент 5 с его нижними соседями (т. е. с теми элементами, за которыми 5 непосредственно следует в смысле порядка в ^(А)). Построив диаграмму каркаса ^(А), пронумеруем его элементы (т. е. состояния автомата А) слева направо и снизу вверх. Состояние достижимо из состояния 5 в точности тогда, когда в диаграмме каркаса ^(А) есть восходящая ломаная от к 5. Но это означает, что в построенной нумерации 5 имеет больший номер, чем 5;, т. е. нумерация — правильная. ■
Подмножество Б1 С Б называется устойчивым в автомате А, если 8(5, х) Е Б1 для любых 5 Е Б1 и х Е X. Если Б1 устойчиво в А, то, ограничивая функцию переходов 8 на Б1 х X, получают подавтомат А; = (Б;,Х, 8). Совокупность БиЬА всех подавтоматов автомата А, упорядоченная отношением А1 ^ А2 ^ Б1 С $2, где Аг = (&,Х,8), г = 1, 2, является дистрибутивной решеткой. Это — решетка подавтоматов автомата А.
Известно (см. [1]), что для каждого автомата А существует автомат В с двумя входными сигналами, такой, что БиЬА = БиЬВ, и что не всегда найдется автономный (т. е. с |Х| = 1) автомат В с такой же, как у А, решеткой подавтоматов. Минимизацию по числу состояний дает следующее предложение.
Теорема 2. Пусть А = (Б, X, 8) и В = (Т, У, 7) —автоматы, такие, что
БиЬА = БиЬВ. Тогда |Т| ^ |^(А)|. При этом существует скелетный автомат В, такой, что БиЬА = БиЬВ и |Т| = |^(А)|.
Доказательство. Как показано в [2], БиЬА = БиЬВ тогда и только тогда, когда ^(А) = ^(В). Так как |^(А)| ^ |Б|, то |Т| ^ |^(В)| = |^(А)|. Определим автомат В = (Т, У, 7) следующим образом. Положим Т = ^(А). Ветвлением элемента а в конечном упорядоченном множестве называется количество Ь(а) его нижних со-
седей. Пусть в каркасе F(A) наибольшее из ветвлений элементов равно t. Возьмем Y = {y^ y2, • • • , yt}. Построим диаграмму переходов автомата B. Ее вершинами будут элементы каркаса F(A). Все ребра диаграммы каркаса F(A) ориентируем сверху вниз. Пусть для a(s) Е F(A) будет b(a(s)) = k. Присвоим дугам, исходящим из a(s), последовательно слева направо метки y1,y2,... , yk. Если k < t, то вершине a(s) соотнесем еще t — k петель с метками yk+1, Ук+2, • • • , yt. Проделав это для каждой вершины, получим мультиграф, из любой вершины которого исходят t дуг с метками из Y. Это и есть диаграмма переходов автомата B. Очевидно, что этот автомат скелетный и что F(B) = F(A). Из последнего равенства следует, что SubA = SubB и |T| = |F(A)|. ■
Доказанная теорема соотносится со следующими известными фактами: для любого автомата A существуют сильносвязные (т. е. с универсальным отношением а) автоматы B и C, такие, что у A и B изоморфны решетки конгруэнций (ConA = ConB), у A и C изоморфны группы автоморфизмов (AutA = AutC). Теорема 2 показывает, что для любого автомата A существует скелетный (т. е. с тождественным отношением а) автомат B с такой же, как у A, решеткой подавтоматов (SubA = SubB).
Пусть K — некоторый класс автоматов и A Е K. Как можно путем в том или ином смысле минимальных изменений в структуре автомата A получить из него автомат A' из класса K? В числе допустимых приемов реконструкции автомата можно рассматривать, например, отождествление некоторых вершин (факторизация), введение дополнительных состояний и/или входных сигналов (расширения), перенаправление дуг диаграммы переходов, удаление дуг (замена их петлями) и т. п.
Напомним, что конгруэнцией автомата A = (S, X, $) называется эквивалентность в на множестве его состояний, согласованная с функцией переходов в том смысле, что (Vs,s' Е S)(x Е X)((s,s') Е в =^ (£(s, x), £(s', x)) Е в). Если в Е ConA, то фактор-автомат автомата A по конгруэнции в определяется как A/в = (S/e,X, $), где £(e(s),x) = в(£(в,х)) для любых s Е S, x Е X.
Одной из задач об оптимальных реконструкциях автоматов является построение для данного автомата сильносвязного фактор-автомата с наибольшим возможным числом состояний. Частный случай — факторизация на максимальный по числу состояний циклический автомат — рассматривался в [3] (циклический автомат — это такой автомат, в котором все входные сигналы действуют одинаково и все состояния образуют при этом цикл). В этом контексте покажем, как путем удаления минимального числа дуг в диаграмме G(A) получить из данного автомата A скелетный автомат.
Из теоремы 1 непосредственно вытекает
Следствие 1. Автомат A тогда и только тогда является скелетным, когда при некоторой нумерации его состояний матрица переходов M(A) будет нижней треугольной матрицей.
Доказательство. То, что матрица M(A) является нижней треугольной матрицей, равносильно тому, что соответствующая нумерация состояний автомата — правильная. ■
Прямолинейный подход к решению рассматриваемой задачи состоит в том, чтобы для каждой из m! возможных нумераций состояний автомата A взять в соответствующей матрице M(A) множество IJ [M(A)]j С X, выбрать один из вариантов, при ко-
i>j
тором это множество будет минимальным по мощности, и построить матрицу M'(A),
полагая [M/(A)]ij- = [M(A)]ij- при i > j и [M/(A)]ii = (J [M(A)]ij. Автомат A' с матри-
j>i
цей переходов M'(Л) является скелетным, и он получен путем удаления из диаграммы G(A) минимально возможного числа дуг.
Понятно, что предложенный способ ни в коей мере не является оптимальным для исполнения. Более эффективный способ дает обращение к известной в теории графов проблеме расконтуривания. Действуя в этом русле, удалим в диаграмме переходов G(A) все метки дуг. Далее к полученному мультиграфу применим модификацию какой-либо процедуры удаления в графе минимального числа дуг, приводящей к бес-контурному графу (см., например, [4]). Затем в G(A) каждую удаленную дугу заменим петлей в начале этой дуги и восстановим все метки дуг. Полученный мультиграф с помеченными дугами является диаграммой переходов скелетного автомата, дающего решение задачи.
ЛИТЕРАТУРА
1. Богомолов А. М., Салий В. Н. Алгебраические основы теории дискретных систем. М.: Наука, 1997. 368 с.
2. Салий В. Н. Каркас автомата // Прикладная дискретная математика. 2010. №1(7).
С.63-67.
3. Верзаков Г. Ф., Киншт Н. В., Рабинович В. И., Тимонен А. Г. Введение в техническую диагностику. М.: Энергия, 1968. 224 с.
4. Gill F. and Flexer R. Periodic decomposition of sequential machines // J. Assoc. Comput. Mach. 1967. V. 15. P.666-676.