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

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

CC BY
219
53
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СУБРЕГУЛЯРНЫЕ ЯЗЫКИ / ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ МИНИМИЗАЦИИ / КОНЕЧНЫЕ АВТОМАТЫ / ТЕХНОЛОГИИ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ / SUBREGULAR LANGUAGES / PARALLEL ALGORITHMS FOR MINIMIZATION / FINITE STATE MACHINES / PARALLEL PROGRAMMING TECHNOLOGIES

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

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

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

A PARALLEL ALGORITHMS FOR MINIMIZATION OF FINITE AUTOMATA FOR SUBREGULARY LANGUAGES

Subregular languages are a subclass of regular languages with certain properties, the most important from the point of view of applications are finite languages, the languages are closed under taking prefixes, suffixes and subwords prefix suffix, factorial regular languages. Finite automata that recognize these languages, representing a subclass of automata, the states of finite automata have certain properties. We consider parallel algorithms for the minimization of finite automata for these languages. Parallelization is achieved by using the transition functions for each class of equivalent states. To investigate the possibilities of parallel algorithms uses a technology called MPI Parallel processes with message passing the most common parallel programming technology.

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

Иванов Дмитрий Владимирович - ФГБОУ ВПО «Самарский государственный университет путей сообщения»; e-mail: dvi85@list.ru; 443066 г. Самара 1-й Безымянный пер., 18; тел.: 884629995460; кафедра мехатроники в автоматизированных производствах; старший преподаватель; к.ф.-м.н.

Уеков Олег Владимирович - e-mail: quentyn@bk.ru; кафедра мехатроники в автоматизированных производствах; аспирант.

Ivanov Dmitriy Vladimirovich - Samara State University of Transport; e-mail:dvi85@list.ru; 18, 1-st Bezymyanniy lane, Samara, 443066, Russia; phone: +784629995460; the department of mechatronics in automated production; senior lecturer; cand of phis.-math. sc.

Uskov Oleg Vladimirovich - e-mail: quentyn@bk.ru; the department of mechatronics in automated production; postgraduate student.

УДК 519.713.4

Н.И. Крайнюков

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

Субрегулярные языки — это подклассы регулярных языков, обладающие определенными свойствами, например к наиболее важным, с точки зрения приложений относятся ко, , -префиксные суффиксные, факториальные регулярные языки. Конечные автоматы, распознающие эти языки, представляют более узкий класс автоматов, состояния, таких конечных автоматов обладают определенными свойствами. Рассматриваются параллельные алгоритмы минимизации конечных автоматов для таких языков. Распараллеливание достигается применением функции перехода для каждого класса эквивалентных состояний. Для исследования возможностей параллельных алгоритмов используется технология MPI — параллельные процессы с передачей сообщений — наиболее распространенная технология

.

Субрегулярные языки; параллельные алгоритмы минимизации; конечные автоматы; технологии параллельного программирования.

N.I. Krayinyukov

A PARALLEL ALGORITHMS FOR MINIMIZATION OF FINITE AUTOMATA FOR SUBREGULARY LANGUAGES

Subregular languages are a subclass of regular languages with certain properties, the most important from the point of view of applications are finite languages, the languages are closed under taking prefixes, suffixes and subwords — prefix suffix, factorial regular languages. Finite automata that recognize these languages, representing a subclass of automata, the states of finite automata have certain properties. We consider parallel algorithms for the minimization of finite automata for these languages. Parallelization is achieved by using the transition functions for each class of equivalent states. To investigate the possibilities of parallel algorithms uses a technology called MP! — Parallel processes with message passing — the most common parallel programming technology.

Subregular languages; parallel algorithms for minimization; finite state machines; parallel programming technologies.

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

терминированных конечных автоматов были разработаны Е.Ф. Муром [1] в 60-х гг. XX в., этот алгоритм работал с временной сложностью O(m ■ n2), где m - количество букв входного алфавита; n - количество состояний минимизируемого де-

( ). .

[2] значительно более быстрый алгоритм с временной сложностью O(m ■ n ■ log n).

1. Теоретическая часть. Приведем необходимые обозначения и сведения из теории регулярных языков и конечных автоматов. Детерминированным конечным автоматом называется пятерка A = (Q,X,8,i, F), где Q = {q0, q1,...qn} - конечное множество состояний; 'L = {a1,a2,...am} - входной алфавит; al,a2,...am -буквы алфавита X ; 8 - функция S: Q xX^ Q переходов со стояний; i - начальное состояний; F - множество заключительных состояний. Обозначим X свободный моноид всех конечных слов над алфавитом X, относительно операции

конкатенации. Языком L называется подмножество L С X , слово языка w £ L - это конечная последовательность букв w = Oi1,OCi2 ,..Oik,; |w| = k - длина слова из к букв алфавита X . Продолжим функцию переходов 8(s,O) = t на множество X стандартным образом, 8(s, ow) = 8(8(s, о), w) , слово w £ L, если S(i, w) £ F. Язык L = L(A) называется регулярным, если он распознается конечным детерминированным автоматом A = (Q,X, 8, i, F). Два автомата Д и A2 ,

L(Aj) = L(A2). В дальнейшем будем предполагать, что все состояния минимизируемого автомата являются достижимыми и ко-достижимыми. Классическая зада-

[3] , A

минимальным количеством состояний, распознающий заданный регулярный язык

L. , -

ка L = L(A) существует минимальный ДКА A с точностью до изоморфизма, количество состояний которого является числом классов эквивалентности, порожденной правой конгруэнтностью р( w1, w2). Слово w1 эквивалентно слову w2 ,

если для любого слова v £ X , w1v £ L тогда и только тогда, когда w2v £ L. Другая естественная постановка задачи - минимизация количества переходов между состояниями или любого функционала от числа состояний и переходов.

Алгоритм минимизации сводится к поиску разбиения множества состояний на непересекающиеся блоки B■, j = 1,...T Q = B2 У ...у BT с минимальной

T ,

конгруэнции р( w1, w2 ) .

Ниже приведено описание параллельного алгоритма на псевдоПаскале: Program^^^^^^^^^^^OHe4ABTOMaTOB {Вход: ДКА A = (Q, X, 8, i, F), РазбиениеБлоки(Q \ F, F)}

{Выход: МинимКонечАвтомат} begin do

for i:=1 to m

for j:= 0 to n-1 concurent exec

Bj :=ВзятьБлокСост( q ■);

Bt j _ next :=БлокСост(8(qj, at));

B :=Р^биениеНаБлок( Q, (B: ; _ next, B;));

1 ,J J

endfor concurent exec;

B _ next :=НовоеРазбиение( Q, B ); endfor;

while not (ПоявилсяНовБлок( B _ next));

ПострМинАвтоматИзРазбиения( B);

end.

2. Практическая часть. Вычислительные экспери менты проводились первоначально локально на одном компьютере с процессором AMD 64 операционной системой Linux Debian. Были установлены система компьютерной алгебры GAP и соответствующие пакеты Automata и Pargap. Пакет Automata предназначен для работы с конечными автоматами. Он обеспечивает различные функции создания, генерации, представления конечных автоматов. Пакет Pargap, используя технологию MPI, позволяет поддерживать параллельную работу кластера. Затем был создан кластер, состоящий из трех компьютеров, использовалась технология программирования MPICH2. Для конечных языков всегда присутствует «мертвое» (sink) состояние, для , , -мых состояний расширяется вдоль пути, слова, принадлежащего языку.

. -. -разно применять параллельные алгоритмы.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Moore E.F. Gedanked-expiriments on Sequential Circuits Automata Studies // Princeton University Press. - 1956. № J. - P. 129-153.

2. Hopckoft J. An n log(n) Algorithm for Minimizing States in a Finite Automaton na, Theory of Machines and Computations, Academic Press. - 1971. - P. 189-196.

3. ., ., . .

исчислений. - М.: Вильямс, 2008. - 528 с.

4. Лаллеман Ж. Полугруппы и комбинаторные приложения. - М.: Мир, 1985. - 440 с.

Статью рекомендовал к опубликованию к.т.н, доцент С.В. Мкртычев.

- ; e-mail:

nik9kr@google.com; 445667, г. Тольятти, ул. Белорусская, 14; тел.: 89372162054; кафедра прикладной математики и информатики; к.т.н.; доцент.

Kraynyukov Nikolai Ivanovich - Togliatti State University; e-mail: nik9kr@google.com; 14, Belarusian street, Togliatti 445667, Russia, phone: +79372162054; the department of applied mathematics and computer science; cand. of eng. sc.; associate professor.

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