Компьютерные инструменты в образовании, 2014 № 6: 23-27
УДК: 519.682.1 + 681.142.2 http://ipo.spb.ru/journal
Мартыненко Борис Константинович Аннотация
Метод минимизации приведённых детерминированных конечных автоматов, описанный в частности в [1], не всегда даёт минимальный по числу состояний автомат. В данной статье предлагается процесс минимизации этим методом считать лишь первым этапом и дополнить его вторым этапом, гарантирующим искомый результат.
Ключевые слова: конечный автомат, минимизация.
1. ВВЕДЕНИЕ
Прежде всего, дадим несколько необходимых определений.
Определение 1. Детерминированный конечный автомат (dfa) Mесть пятерка
M = ^, Е, 5, q0, В), где Q — конечное множество состояний;
Е — входной алфавит;
5 : Q х Е ^ Q — функция изменения состояния;
q0 е Q — стартовое состояние;
В с Q — множество конечных состояний.
Функция перехода 5 называется полной, если она определена для каждой пары в Q х Е.
Если 5 является полной, то мы называем Мполным dfa.
Если представить dfa как ориентированный граф, где состояния — это узлы, и переходы между состояниями — дуги между узлами, то в вышеупомянутом определении не требуется, чтобы dfa был связаным [2], то есть не требуется, чтобы всегда существовал ориентированный маршрут, соединяющий любую пару его различных вершин. На рис. 1 представлен dfa в виде диаграммы переходов, который является связаным полным графом из одной компоненты.
Конечный автомат, такой что каждое состояние достижимо из стартового состояния и достигает конечного состояния, называют приведёнными dfa. Приведённый dfa может быть не полным dfa.
Следуя [1], определим отношение = неразличимости на множестве состояний приведённого детерминированного конечного автомата.
Определение 2. Пусть М = Е, 5, q0, В) — приведённый dfa с п состояниями.
Пусть q1, q2 е Q. Считается, что q1 =кq2 при двух следующих условиях:
© Мартыненко Б.К., 2014
(1) q1 =0 q2 тогда и только тогда, когда q1 и q2 оба либо принадлежат, либо не принадлежат F,
(2) q1 =к q2 тогда и только тогда, когда q1 =к-1 q2 и 5 а) =к-1 5 а) для всех а е Е.
По лемме 2.11 из [1] (см. 2.3: с. 149) состояния q1 и q2 неразличимы тогда и только тогда, когда они (п - 2)-не различимы.
Отношение =0 грубейшее; оно разбивает Q на два класса: F и Q/Е Если =к+1 Ф =к, то отношение =к+1 тоньше, чем =к, то есть в нём, по крайней мере, на один класс эквивалентности больше, чем в =к. Так как каждое из множеств Е и Q/Е содержит не более п - 1 элементов, можно получить не более п - 2 последовательных утончений отношения
Если =к+1 = =к для некоторого к, то, в силу условия (2), =к+1 = =к+2 =... . Таким образом, = — это первое из отношений =к, для которых =к+1 = =к.
Приведём пример, показывающий, что метод минимизации, о котором идёт речь, основанный на построении сходящейся последовательности отношений =к для к = 0, 1, 2, ..., не всегда даёт минимальный по числу состояний конечный автомат.
На этом же примере покажем, как дополнить процесс получения минимального автомата, эквивалентного исходному автомату.
2. КОНТРПРИМЕР
Следуя [3: С^ 2, р. 45-46], пусть А° — автомат, который читает цепочки из 0 и 1 и распознаёт эти цепочки как двоичные числа, конгруэнтные 2 (по модулю 3). Мы используем у3(х), чтобы обозначить значение бинарной цепочки х по модулю 3. Например, у3(100) = 1 и у3(1011) = 2.
Рассмотрим произвольную входную цепочку ^ = а1 ... ап в А0, где каждый а{, 1 < i < п, есть или 0 или 1. Ясно, что для каждого i, 1 < i < п, цепочка а1 ... а{ попадает в один из этих трёх случаев: (0) v3(a1 ... ) = 0, (1) v3(a1 ... ) = 1 и (2) v3(a1 ... ) = 2. Никакие другие случаи невозможны. Так что А0 нуждается только в трёх состояниях, которые соответствуют вышеупомянутым трём случаям (и начальное состояние соответствует случаю (0)). Обозначим эти три состояния (0), (1), и (2), соответственно. Правила, которые управляют изменениями состояний, должны быть определены соответственно.
Заметим, что
Vз(al ... аг +1) = 2 * Vз(al ... аг) + аг +1 (mod 3).
Так, если текущее состояние есть (1) и текущий входной символ есть 1, то следующее состояние есть (0), поскольку 2 * 1 + 1 = 0 (mod 3). Состояния и их правила перехода показаны на рис. 1.
Ясно, что каждый шаг изменения состояния единственным образом определён текущим состоянием и текущим входным символом. Мы выделяем состояние (2) как конечное состояние и определяем, что А0 принимает вход w, если А0 находится в состоянии (2) после чтения последнего символа w.
Итак, имеем dfа А0 = (<2, Е, 5, q0, Е),
где Q = {Po, Pl, P2},
Е = {0, 1}, Е = {Р2}, qo = Р0,
5 (Po, 0) = Po, 5 (Po, 1) = Pl,
5 (Р1, 0) = Р2, 5 (Р1, 1) = Р0,
5 (Р2, 0) = Р1, 5 (Р2, 1) = РТ
А0 — пример полного детерминированного конечного автомата (dfa), причём минимального по числу состояний. Его диаграмма переходов представлена на рис. 1.
Рис. 1. Диаграмма переходов dfa А0
Судя по диаграмме переходов, А0 — приведённый детерминированный конечный автомат, распознающий язык, определяемый регулярным выражением 0*(11)*1(00)*01*.
По этой же диаграмме переходов можно легко построить dfa М и соответствующую матрицу переходов (табл. 1). Результат представлен на рис. 2.
Дан ^аМ = (б, Е, 5, q0, р),
где б = ^ qv q2, qз, q4, q5}, Е = {0, 1},
р = {q2, q5},
5 (q0, 0) = qo, 5 ^ ) = ql
5 0) = q2, 5 ) = qз
5 ^2, 0) = q4, 5 ) = q5
5 0) = А , 5 ) = ql
5 ^ 0) = q2, 5 (яА, ) = А ,
5 ^ 0) = А , 5 ^ ) = q5
Табл. 1
5 0 1 8
0 0 1
1 2 3
2 4 5 +
3 А 1
4 2 А
5 А 5 +
Рис. 2. Три равнозначных представления dfa М
В определении отображения 5 и в табл. 1 символ А обозначает, что движение автомата в соответствующих состояниях и входных символов не определено. Следуя [1], разобьём всё множество состояний данного автомата на два подмножества:
{2, 5} и {0, 1, 3, 4 , А}.
Дальнейший процесс исключает по одному состоянию из этих двух подмножеств и образующихся подобных подмножеств по признаку различимости пар состояний.
Действия автомата в состоянии 0: 0 ^ 1.
Так как переходные состояния 1 и 0 в одном и том же подмножестве, то отношение не изменяется.
Действия автомата в состоянии 1: 2 ^ 3.
Так как переходные состояния 2 и 3 в разных подмножествах, то отношение изменяется на следующее:
{2, 5}, {1}, {0, 3, 4, А}.
Действия автомата в состоянии 2: 4 ^ 5.
Так как переходные состояния 4 и 5 в разных подмножествах, то отношение ^ изменяется на следующее: =2: {2}, {5}, {1}, {0, 3, 4, А}.
Действия автомата в состоянии 3: А ^ 1.
Так как переходные состояния А и 1 в разных подмножествах, то отношение =2 изменяется на следующее:
=3: {2}, {5}, {1}, {3}, {0, 4, Л}.
Действия автомата в состоянии 4: 2 ^ Л.
Так как переходные состояния 2 и Л в разных подмножествах, то отношение =3 изменяется на следующее: =4: {2}, {5}, {1}, {3}, {4}, {0, Л}.
Действия автомата в состоянии : Л ^ .
Это не добавляет нечего нового в отношение =4. Процесс закончен, и отношение = = =4. Результат минимизации М' = М.
Например, цепочка 1110001 принимается dfa М':
%0 ^ Ь^0 ^
Итак, по методу [1] (см. гл. 2, теор. 2.6, стр. 150) данный автомат минимальный. Однако это не так, ибо dfa Л0 распознаёт тот же самый язык 0*(11)*1(00)*01*, но имеет всего три состояния.
3. ДООПРЕДЕЛЕНИЕ МЕТОДА МИНИМИЗАЦИИ КОНЕЧНЫХ АВТОМАТОВ
Чтобы исправить метод минимизации приведённых детерминированных конечных автоматов, описанный в [1], достаточно считать его первым этапом процесса.
Второй этап процесса минимизации автомата базируется на следующих соображениях.
Перебираются все пары (%1, %2) е Q х Q, % Ф %2, полученные после первого этапа минимизации по [1]. Пусть и %2 — два различных состояния автомата М'. Соответствующие строки таблицы переходов окрашиваются в один и тот же цвет, если и только если для всех входных символов а е £ и {в} значения 5 (%1, а) и 5 (%2, а) оба не определены или определено только одно из этих значений, либо 5 (%1, а) = 5 (%2, а).
Табл. 1 а Табл. 1 б Табл. 2
5 0 1 в
0 0 1
1 2 3
2 4 5 +
3 1
4 2
5 5 +
5 0 1 в
0-3 0-3 1-4
1-4 2-5 0-3
2-5 1-4 2-5 +
3 1
4 2
5 5 +
5 0 1 в
Р0 Р0 Р1
Р1 Р2 Р0
Р2 Р1 Р2 +
> Исключить!
В применении к нашему примеру результат раскраски табл. 1 представлен на табл. 1 а.
Сопоставляя строчки таблицы переходов табл. 1 а этого автомата, можем заметить, что строчки, помеченные одним цветом, а именно, 0 и 3, 1 и 4, 2 и 5, можно слить в одну, 0-3, 1-4, 2-5, соответственно перенумеровать переходные состояния и исключить дубликаты строк 3, 4, 5 (см. табл. 1 б). Окончательный результат минимизации представлен dfaМ'' в табл. 2.
Итак, dfa М'' , полученный в два этапа, равен dfa Л0.
4. ЗАКЛЮЧЕНИЕ
Теорема 2.6 из [1, с. 150], утверждающая, что
АвтоматМ', который строится алгоритмом 2.2, имеет наименьшее число состояний среди всех конечных автоматов, допускающих язык L(М),
не верна.
Достаточно в этой формулировке заменить М' на Мчтобы утверждение стало верно.
Вопросы. При каких ограничениях на dfa даёт минимальный автомат:
1) метод, описанный в [1];
2) приём, использующий дополнительный этап минимизации, применённый в контерп-римере.
Проблема. Построить корректный метод минимизации приведённого dfa при допущении, что его диаграмма переходов не является связным графом.
Литература
1. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т. 1: Синтаксический анализ. М.: Мир, 1978.
2. Харари Ф. Теория графов. Второе издание. УРСС, М., 2003.
3. Rozenberg G., Salomaa A. Handbook of Formal Languages. Vol. 1: Word, Language, Grammar. Berlin, Heidelberg: Springer-Verlag, 1997.
ABOUT THE METHOD FOR MINIMIZATION OF FINITE AUTOMATA
Martynenko B. K. Abstract
The method for minimizing reduced deterministic finite automata, described in particular in [1], not always gives minimum on number of it states. It is offered to add the second stage to the method in question in order to guarantee required outcome.
Keywords: finite automaton, minimization.
(с) Наши авторы, 2014. Our authors, 2014.
Мартыненко Борис Константинович, доктор физико-математических наук, профессор кафедры информатики математико-механического фа кул ьтета СПбГУ,