Научная статья на тему 'О методе минимизации конечных автоматов'

О методе минимизации конечных автоматов Текст научной статьи по специальности «Математика»

CC BY
557
53
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОНЕЧНЫЙ АВТОМАТ / МИНИМИЗАЦИЯ / MINIMIZATION / FINITE AUTOMATON

Аннотация научной статьи по математике, автор научной работы — Мартыненко Борис Константинович

Метод минимизации приведённых детерминированных конечных автоматов, описанный в частности в [1], не всегда даёт минимальный по числу состояний автомат. В данной статье предлагается процесс минимизации этим методом считать лишь первым этапом и дополнить его вторым этапом, гарантирующим искомый результат.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

About the method for minimization of finite automata

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.

Текст научной работы на тему «О методе минимизации конечных автоматов»

Компьютерные инструменты в образовании, 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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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.

Мартыненко Борис Константинович, доктор физико-математических наук, профессор кафедры информатики математико-механического фа кул ьтета СПбГУ,

[email protected]

i Надоели баннеры? Вы всегда можете отключить рекламу.