Научная статья на тему 'Исследование статистических свойств алгоритмов минимизации недетерминированных конечных автоматов с использованием программы ReFaM'

Исследование статистических свойств алгоритмов минимизации недетерминированных конечных автоматов с использованием программы ReFaM Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Цыганов А. В., Винокуров С. Д., Ведин А. А.

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

Текст научной работы на тему «Исследование статистических свойств алгоритмов минимизации недетерминированных конечных автоматов с использованием программы ReFaM»

зации в секундах. Для столбцов Мм и I <2М\ приведены средние значения.

Таблица 7

N NT NU Nm IQmI T

1 84 16 0,84 3,43 0,0109

2 92 15 0,92 3,42 0,0115

4 96 15 0,96 3,41 0,0136

8 101 12 1,01 3,47 0,0246

16 105 14 1,05 3,43 0,0445

32 113 12 1,13 3,47 0,0843

64 128 12 1,28 3,47 0,1602

Из таблицы 7 видно, что с увеличением числа потоков число найденных минимальных (редуцированных) автоматов увеличивается, а число не-минимизированных автоматов уменьшается. Среднее время минимизации по сравнению с точным алгоритмом мало и остается практически постоянным при числе потоков от 1 до 4, а затем увеличивается пропорционально числу потоков из-за ограничений аппаратной платформы, поддерживающей одновременное исполнение лишь четырех потоков.

Проведенные численные эксперименты показали, что предложенный метод позволяет получать приемлемые результаты намного быстрее точного метода. Заметим, что полный перебор при поиске минимальных легитимных покрытий в алгоритме Камеды-Вейнера может быть заменен не только ГА, но и другими эвристическими алгоритмами, в частности алгоритмами локального поиска, что позволяет получить на основе классического алгоритма минимизации НКА новые эвристические алгоритмы вершинной минимизации.

Литература

1. Мельников Б.Ф. Недетерминированные конечные автоматы. Тольятти: Изд-во ТГУ, 2009. 160 с.

2. Jiang T., Ravikumar B. Minimal NFA problems are hard // SIAM J. Comput. 1993. December. Vol. 22, pp. 1117-1141.

3. Kell V., Maier A., Potthoff A. et al. AMORE: a system for computing automata, monoids and regular expressions // Proc. of the 6th Annual Symposium on Theoretical Aspects of Computer

Science on STACS 89. NY, USA: Springer-Verlag New York, Inc., 1989, pp. 537-538.

4. Mohri M., Pereira F., Riley M. AT&T General-purpose finite-state machine software tools.

5. Raymond D., Wood D. Grail: Engineering Automata in C++: Tech. Rep. HKUST-CS96-24: Hong Kong University of Science and Technology, 1996.

6. Lombardy S., Poss R., Régis-Gianas Y., Sakarovitch J. Introducing VAUCANSON // Implementation and Application of Automata, Proc. Of the 8th Intern. Conf., CIAA 2003, Santa Barbara, California, USA, July 16-18, 2003, Vol. 2759 of Lecture Notes in Computer Science. Springer, 2003, pp. 96-107.

7. Rodger S.H. JFLAP: An Interactive Formal Languages and Automata Package. USA: Jones and Bartlett Publishers, Inc., 2006.

8. Kameda T., Weiner P. On the State Minimization of Nondeterministic Finite Automata // IEEE Transactions on Computers. 1970. Vol. 19, pp. 617-627.

9. Панченко Т.В. Генетические алгоритмы: учеб.-метод. пособ. Астрахань: Издат. дом «Астраханский университет», 2007. 87 с.

10. Цыганов А.В., Булычов О.И. HeO: библиотека метаэв-ристик для задач дискретной оптимизации // Программные продукты и системы. 2009. № 4. С. 148-151.

References

1. Melnikov B.F., Nedeterminirovannye konechnye avtomaty, Tolyatti, Tolyattinsky Gos. Univ., 2009, 160 p.

2. Jiang T., Ravikumar B., SLAM J. Comput, 1993, December, Vol. 22, pp. 1117-1141.

3. Kell V., Maier A., Potthoff A., Thomas W., Wermuth U., Proc. of the STACS 89, NY, USA: Springer-Verlag New York, Inc., 1989, pp. 537-538.

4. Mohri M., Pereira F., Riley M., AT&T General-purpose finite-state machine software tools, 2001.

5. Raymond D., Wood D., Grail: Engineering Automata in C++: Tech. Rep. HKUST-CS96-24, Hong Kong Univ. of Science and Technology, 1996.

6. Lombardy S., Poss R., Régis-Gianas Y., Sakarovitch J., Proc. of the Lntern. Conf., CLAA 2003, Santa Barbara, California, USA, July 16-18, 2003, Vol. 2759, LNCS, Springer, 2003, pp. 96107.

7. Rodger S.H., JFLAP: An Interactive Formal Languages and Automata Package, USA: Jones and Bartlett Publishers, Inc., 2006.

8. Kameda T., Weiner P., LEEE Transactions on Computers, 1970, Vol. 19, pp. 617-627.

9. Panchenko T.V., Geneticheskie algoritmy, Astrakhan, «Astrahansky universitet», 2007, 87 p.

10. Tsyganov A.V., Bulychov O.I., Programmnye produkty i sistemy, 2009, no. 4, pp. 148-151.

УДК 519.713

ИССЛЕДОВАНИЕ СТАТИСТИЧЕСКИХ СВОЙСТВ АЛГОРИТМОВ МИНИМИЗАЦИИ НЕДЕТЕРМИНИРОВАННЫХ КОНЕЧНЫХ АВТОМАТОВ С ИСПОЛЬЗОВАНИЕМ ПРОГРАММЫ REFAM

(Работа выполнена в рамках государственного задания Министерства образования и науки РФ, шифр 1.919.2011)

А.В. Цыганов, к.ф.-м.н., доцент; С.Д. Винокуров, студент; А.А. Ведин, студент (Ульяновский государственный педагогический университет им. И.Н. Ульянова,

площ. 100-летия со днярожд. В.И. Ленина, 4, г. Ульяновск, 432700, Россия, [email protected], [email protected], [email protected])

В статье рассматриваются вопросы минимизации недетерминированных конечных автоматов с использованием программы ReFaM. В данном экспериментальном программном продукте с открытым исходным кодом с использованием технологий параллельного программирования OpenMP и MPI реализованы несколько точных и приближенных алгоритмов вершинной минимизации, в частности классический алгоритм Камеды-Вейнера и эвристические алгоритмы на его основе. Как правило, из-за вычислительной сложности алгоритмы минимизации недетерминированных конечных автоматов редко реализуются в программных средствах для работы с конечными автоматами и родственными структурами, поэтому данная программа может использоваться как в исследовательских, так и в учебных целях. Одной из ее отличительных особенностей является детальное описание процесса минимизации и сбор статистики на каждом его шаге. В данной работе приводятся описание основных возможностей программы и некоторые экспериментальные результаты.

Ключевые слова: недетерминированные автоматы, вершинная минимизация, эвристические алгоритмы, параллельные вычисления, OpenMP, MPI.

STUDYING THE STATISTICAL PROPERTIES OF FINITE AUTOMATA MINIMIZATION ALGORITHMS USING REFAM

Tsyganov A V., Ph.D., Associate Professor; Vinokurov S.D., Student; Vedin AA, Student (UlyanovskState Pedagogical University, 4, 100-letiya so dnya rozhdeniya V.I. Lenina Sq., Ulyanovsk, 432 700, Russia,

andrew. tsyganov@gmail. com, PhoenixDragon ViSta@yandex. ru, [email protected]) Abstract. In the present paper we consider the minimization of nondeterminisitc finite automata using ReFaM. This experimental open source software tool provides several exact and approximate state minimization algorithms, such as classical Kameda-Weiner algorithm and some heuristic algorithms based on it, which are implemented using OpenMP and MPI parallel programming techniques. Usually software products that deal with finite automata and related structures do not provide algorithms for nondeterministic finite automata minimization due to their computational complexity therefore the considered program can be used for research and educational purposes. One of the distinguishing features of this software is that it explains the minimization process in details and collects statistics of all minimization steps. The description of the program features as well as some experimental results is provided.

Keywords: nondeterministic finite automata, state minimization, heuristic algorithms, parallel computing, OpenMP, MPI.

Недетерминированным конечным автоматом (НКА) называется пятерка A=(Q, Е, 5, I, F), где Q -конечное множество состояний (вершин автомата); Е - конечный алфавит; 5:QxE^-2q - функция переходов; I и F - соответственно множества начальных и конечных состояний. НКА называется детерминированным (ДКА) тогда и только тогда, когда |I|=1 и Vqe Q, VaeE:|5(q, а) 1=1 (иногда I 5(q, a) | <1).

Конечные автоматы (КА) широко применяются в разных областях, в частности в теории формальных языков, где они наряду с другими структурами, например регулярными выражениями (РВ), используются для описания языков [1].

В теории конечных автоматов одной из важнейших является задача вершинной минимизации, которая формулируется следующим образом: для данного автомата A найти эквивалентный ему автомат (то есть автомат, задающий тот же язык), который имел бы минимально возможное число состояний. Как показано в [2], для НКА задача вершинной минимизации является вычислительно трудной (PSPACE-полной), в то время как для ДКА соответствующая задача имеет сложность O(n-log(n)), где n - число состояний в автомате.

Из-за малой практической применимости алгоритмы вершинной минимизации НКА (особенно их точные версии) обычно не реализуются в большинстве программ для работы с конечными автоматами и родственными структурами. Рассмотрим некоторые возможности нового экспериментального программного средства ReFaM (Rational Expressions and Finite Automata Minimiza-

tion). Основными отличиями данной программы от других программ для работы с КА являются реализация нескольких точных и приближенных алгоритмов минимизации НКА и возможность получения подробного отчета и статистики о каждом шаге работы алгоритма. Все это делает возможным применение рассматриваемой программы как в исследовательских, так и в учебных целях.

Основные сведения о программе ReFaM

Настоящая программа является проектом с открытым исходным кодом, написанным на языке С++. Данный проект - это часть библиотеки параллельных метаэвристических алгоритмов НеО [3]. Для описания КА в программе ReFaM используется хт1-формат. Приведем пример хт1-описа-ния НКА (на рисунке соответствующий автомат представлен в виде графа): <£а пате="ехатр1е" symbols_num="3" states_num="3"> ^утЬоЬ>

^утЬо1 id="0">a</symbol> ^утЬо1 id="1">b</symbol> ^утЬо1 id="2">c</symbol> <^утЬоЬ> <states>

<state id="0">1</state> <state id="1">2</state> <state id="2">3</state> </states>

<тШа1>0</тШа1> <Впа1>1 2</Впа1> <1еЙа>

^га^Шоп src="0" sym="" dst="2"/> ^га^Шоп src="0" sym="1" dst="1"/> ^га^Шоп src="0" sym="2" dst="1"/>

<transition src="1" sym="0" dst="1"/> <transition src="1" sym="1" dst="1"/> <transition src="2" sym="1" dst="0"/> <transition src="2" sym="1" dst="2"/> </delta> </fa>

a, b

Каждому символу и состоянию в автомате присваивается уникальный номер (id). При описании автоматов узлы <symbols> и <states>, описывающие метки символов и состояний, могут быть опущены пользователем. В этом случае данные метки генерируются автоматически. В автоматах допускается наличие пустых е-переходов.

Список команд ReFaM с описанием их аргументов приведен в таблице 1.

Большинство команд ReFaM имеют вид command in_dir out_dir. Каждая такая команда сканирует все xml-файлы в каталоге in_dir и, если в них содержатся описания автомата или регулярного выражения, обрабатывает их содержимое, а результаты помещает в каталог out_dir. Назначение многих команд понятно из их названия. Остановимся подробнее на некоторых командах.

Команда canonize строит для данного автомата минимальный детерминированный (канонический) автомат. Команда re2fa формирует по данному регулярному выражению конечный автомат (с е-переходами), используя теорему Клини. Команда export позволяет конвертировать xml-представление автоматов в другие форматы. Команда generate может использоваться для случайной генерации автоматов. Как правило, подобные команды имеются и в других программах для работы с КА.

Команда export может использоваться для ав-тематического перевода xml-представления автоматов в иные форматы: GAP (для использования в пакете Automata программы GAP), Graphviz (для построения графов автоматов в программе Graphviz), а также для получения таблиц переходов в текстовом формате и в формате LaTeX. Например, в результате экспорта xml-описания НКА в формат GAP получается следующий результат:

Automaton("epsilon", 3, 4, [[,[2],], [[2],[2],[1,3]], [[2],,], [[3],,]], [1], [2,3]),

а описание таблицы переходов в формате LaTeX будет выглядеть так:

\documentclass[12pt] {article} \usepackage [cp1251]{ inputenc} \usepackage {amssymb}

\begin{document}

Automaton example (symbols: 3, states: 3, transitions: 7, type: epsilon)

\begin{tabular} {lr||c|c|c|c} & & $a$ & $b$ & $c$ & $\epsilon$ \\ \hline \hline

$\rightarrow$ & $1$ & $\varnothing$ & $\{2\}$ & $\{2\}$

& $\{3\}$ \\

\hline

$\leftarrow$ & $2$ & $\{2\}$ & $\{2\}$ & $\varnothing$ &

$\varnothing$ \\

\hline

$\leftarrow$ & $3$ & $\varnothing$ & $\{1,3\}$ &

$\varnothing$ & $\varnothing$ \\

\end{tabular}

\end{document}

С помощью команд build_ba и build_com могут быть построены соответственно базисный и полный (COM) автоматы для данного КА или РВ. Оба автомата являются инвариантами для данного регулярного языка, а их определение и алгоритмы построения можно найти, например, в [1]. Заметим, что в известных программах для работы с КА возможность построения данных автоматов отсутствует, кроме того, оба автомата могут использоваться для минимизации НКА по различным критериям.

Вершинная минимизация НКА осуществляется с помощью двух команд - min_kw и min_com. В настоящее время в программе ReFaM реализованы точные и приближенные алгоритмы минимизации, основанные на классическом алгоритме Камеды-Вейнера [4] и алгоритме, использующем COM-автомат [1, 5]. В обоих алгоритмах используются двоичные матрицы соответствия состояний (RAM и таблица # соответственно) и минимальные автоматы строятся на основе покрытий данных матриц гридами (подмножествами строк и столбцов). Второй метод идеологически ближе к методу минимизации на основе так называемого уиверсаль-ного автомата [6]. Кроме входного и выходного каталогов, в этих командах дополнительно могут указываться конфигурационный файл config.xml с настройками алгоритмов минимизации и начальное значение генератора случайных чисел seed для эвристических версий алгоритмов.

В числе отличительных особенностей ReFaM -распараллеливание наиболее трудоемких частей алгоритмов с использованием технологий параллельного программирования OpenMP и MPI и

Таблица 1

Список доступных команд

Команда Аргументы Вход Выход

build ba in dir out dir НКА, РВ НКА

build com in dir out dir НКА, РВ НКА

canonize in dir out dir НКА, РВ минДКА

codeterminize in dir out dir НКА, РВ ДКА

determinize in dir out dir НКА, РВ ДКА

equivalent in filel.xml in file2.xml НКА, РВ true/false

export in dir out dir НКА TXT, GAP, LaTeX, Graphviz

generate out dir [options.xml] - ДКА, НКА

isomorphic in filel.xml in file2.xml ДКА true/false

min com in dir out dir [options.xml [seed]] НКА, РВ минНКА

min kw in dir out dir [options.xml [seed]] НКА, РВ минНКА

re2fa in dir out dir РВ s-НКА

reverse in dir out dir НКА НКА

Таблица 2

Результаты минимизации

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

Параметры D=0,2 D=0,3 D=0,4

min max Д CT min max Д CT min max Д CT

Число состояний в det(A) 7 51 27,46 9,43 4 28 14,37 4,53 3 17 8,88 2,46

состояний в det(rev(A)) 8 44 20,48 7,54 5 15 8,94 2,20 4 9 6,06 1,06

строк в RAM, m 1 29 7,91 4,78 1 9 4,50 1,27 1 6 4,10 0,97

столбцов в RAM, n 1 27 8,09 5,00 1 12 4,66 1,52 1 7 4,19 1,06

Размер RAM (mxn) 1 754 87,03 122,12 1 108 22,78 14,37 1 42 18,16 7,82

Плотность единиц в RAM 0,58 1,00 0,74 0,06 0,60 1,00 0,71 0,06 0,60 1,00 0,73 0,06

Число гридов 1 453 41,30 68,49 1 29 7,23 4,20 1 15 6,41 2,95

возможность получения подробного отчета и статистики о каждом шаге процесса минимизации. Например, для точного алгоритма Камеды-Вейнера в отчете показываются следующие объекты: исходный автомат A, автоматы det(A) - соответствующий ДКА, rev(A) - зеркальный автомат для A , det(rev(A )) - детерминированный зеркальный автомат для A, min(det(A )) - канонический автомат для A , min(det(rev(A ))) - зеркальный канонический автомат для A , а также матрица RAM автомата A и гриды матрицы RAM.

Кроме того, для данного алгоритма собирается определенная статистика: размеры всех автоматов, число строк, столбцов, единиц и гридов в матрице RAM, плотность единиц в матрице RAM и др., а также замеряется время выполнения каждого шага алгоритма. В конце работы данные результаты статистически обрабатываются: вычисляются минимальные, максимальные и средние значения, а также среднеквадратическое отклонение. При этом имеется возможность задавать подробность отчета с помощью уровней от 0 (только статистика) до 3 (самый подробный отчет). Аналогичным образом документируется минимизация на основе COM-автомата.

Численные эксперименты

Как уже было отмечено, задача вершинной минимизации НКА является вычислительно трудной. Поскольку в точных алгоритмах вершинной

минимизации используется полный перебор, то из-за сложности возникающих в процессе минимизации объектов (размеров канонических автоматов, количества гридов и т.п.) данный этап может оказаться очень длительным даже для сравнительно небольших автоматов. Очень интересной задачей является практическое изучение статистических свойств объектов, возникающих в процессе минимизации, в зависимости от характера входных данных. Для решения данной задачи может использоваться программа ReFaM.

В командах min_kw и min_com предусмотрена возможность, позволяющая с помощью соответствующей опции в конфигурационном файле построить все необходимые для минимизации объекты, не запуская сам процесс поиска.

Рассмотрим результат обработки трех случайных выборок из ста попарно независимых НКА без недостижимых и бесполезных состояний со следующими параметрами: число состояний I Q| =10, число начальных состояний I II =1, число конечных состояний I F I =2, размер алфавита

T

I Е I =2, плотность переходов D =---= 0,2;

IQ|2|2|

0,3; 0,4, где T - число переходов в автомате (40, 60 и 80 соответственно).

Для каждой выборки оценивались число состояний в автоматах det(A ) и det(rev(A )), число непустых состояний в канонических автоматах (число строк и столбцов RAM), размер, плотность

единиц и число гридов в RAM. Результаты исследования представлены в таблице 2 (ц - среднее значение, ст - среднеквадратическое отклонение). Из приведенных данных видно, что для рассматриваемых выборок с увеличением плотности переходов средняя сложность рассматриваемых объектов уменьшается.

В заключение следует отметить, что в работе были рассмотрены некоторые возможности программы ReFaM, предназначенной для минимизации НКА. Отличительными особенностями программы являются возможность получения подробных отчетов о процессе минимизации и сбор обширной статистики, что делает возможным применение данной программы как в исследовательских, так и в учебных целях.

В настоящее время ведется работа по добавлению в программу новых точных и приближенных алгоритмов минимизации, а также алгоритмов вершинной минимизации.

Литература

1. Мельников Б.Ф. Недетерминированные конечные автоматы. Тольятти: Изд-во ТГУ, 2009. 160 с.

2. Jiang T., Ravikumar B. Minimal NFA problems are hard. SIAM J. Comput. 1993. December. Vol. 22, pp. 1117-1141.

3. Цыганов А.В., Булычов О.И. HeO: библиотека метаэв-ристик для задач дискретной оптимизации // Программные продукты и системы. 2009. № 4. С. 148-151.

4. Kameda T., Weiner P. On the State Minimization of Nondeterministic Finite Automata. IEEE Transactions on Computers. 1970. Vol. 19, pp. 617-627.

5. Melnikov B. A new algorithm of the state-minimization for the nondeterministic finite automata. Journal of Applied Mathematics and Computing. 1999. Vol. 6, pp. 277-290.

6. Polak L. Minimalizations of NFA using the universal automaton // Int. J. Found. Comput. Sci. 2005. Vol. 16, no. 5, pp. 999-1010.

References

1. Melnikov B.F., Nedeterminirovannye konechnye avtomaty. Tolyatti, Tolyattinsky Gos. Univ., 2009, 160 p.

2. Jiang T., Ravikumar B., SLAM J. Comput, 1993, December, Vol. 22, pp. 1117-1141.

3. Tsyganov A.V., Bulychov O.I., Programmnye produkty i sistemy, 2009, no. 4, pp. 148-151.

4. Kameda T., Weiner P., LEEE Transactions on Comput., 1970, Vol. 19, pp. 617-627.

5. Melnikov B., Journ. of Applied Math. and Comput., 1999, Vol. 6, pp. 277-290.

6. Polak L., Lnt. J. Found. Comput. Sci., 2005, Vol. 16, no. 5, pp. 999-1010.

УДК 519.71

МЕТОД ПОСТРОЕНИЯ ИНТЕРАКТИВНЫХ СИСТЕМ МОНИТОРИНГА НА ОСНОВЕ ГИБКИХ ТЕХНОЛОГИЧЕСКИХ ПРОЦЕССОВ

С.В. Вышенский, к.ф.-м.н., с.н.с.; Ю.Ю. Дубенская, м.н.с.

(Научно-исследовательский институт ядерной физики им. Д.В. Скобельцына Московского государственного университета им. М.В. Ломоносова, Ленинские горы, 1, строение 2, г. Москва, 119234, Россия, svysh@pn. sinp.msu.ru, jdubenskaya@pn. sinp.msu.ru); П.В. Григорьев, к.ф.-м.н., с.н.с. (Научный центр волновых исследований Института общей физики им. А.М. Прохорова РАН, ул. Вавилова, 38, г. Москва, 119991, Россия, [email protected])

Предложен метод построения гибких интерактивных систем мониторинга, применимых в практически значимом случае, когда информация об исходной системе поступает в систему мониторинга нерегулярно, с опозданиями, с перерывами или с нарушением хронологического порядка, а также способных обрабатывать ситуацию, при которой в исходной системе произошло сознательное нарушение технологической дисциплины. Система мониторинга строится на основе управления технологическими процессами. При этом нарушение технологической дисциплины описывается вспомогательным технологическим процессом. В системе мониторинга создается следящий токен, парный токену исходной системы. Технологический процесс для следящего токена задается на языке высокого уровня и является простой функцией технологического процесса исходной системы. Для осуществления гибких переходов в системе предусмотрен специальный режим. Предложенная система позволяет восстановить историю каждого экземпляра исходного технологического процесса, анализируя разрозненные сообщения об исходной системе, и обладает некоторой устойчивостью к потере сообщений об исходной системе.

Ключевые слова: технологический процесс, интерактивная система, мониторинг, информационная система, граф, гибкие связи.

IMPLEMENTATION METHOD FOR INTERACTIVE MONITORING SYSTEMS BASED ON FLEXIBLE WORKFLOWS

Vyshensky S. V., Ph.D., Senior Researcher; Dubenskaya Yu.Yu., Junior Researcher (Lomonosov Moscow State University Skobeltsyn Institute of Nuclear Physics, 1/2, Leninskie Gory, Moscow, 119234, Russia, [email protected], [email protected]);

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