Преобразование недетерминированных автоматов на основе графотрансформационного подхода

УДК 519.171

А. С. Войнов, И. В. Сенокосов

ПРЕОБРАЗОВАНИЕ НЕДЕТЕРМИНИРОВАННЫХ АВТОМАТОВ НА ОСНОВЕ ГРАФОТРАНСФОРМАЦИОННОГО ПОДХОДА

Аннотация. Рассмотрен графотрансформационный подход для двух видов преобразований недетерминированных автоматов. В первом случае - графотрансформационный подход к преобразованию регулярных выражений алгебры событий в системы канонических выражений, представляющих недетерминированные автоматы. Разработаны графовые представления (метамодели) регулярных выражений алгебры событий и системы канонических выражений, показаны основные правила графовых трансформаций регулярных выражений алгебры событий в системы канонических выражений. Также рассмотрен графотрансформационный подход к детерминизации недетерминированных автоматов, разработаны их метамодели и метамодели детерминированных автоматов, описаны шаги алгоритма детерминизации. Правила графовых трансформаций реализованы в инструментальной системе «Атрибутные графовые грамматики».

Ключевые слова: недетерминированный автомат, детерминированный автомат, детерминизация недетерминированных автоматов, регулярные выражения алгебры событий, система канонических уравнений, графовые трансформации, метамодель, атрибутный граф, система «Атрибутные графовые грамматики».

В ходе проектирования технических систем возникает необходимость в различного рода описаниях, а также исследовании и преобразованиях автоматных моделей, например, часто используются эквивалентные преобразования автоматов. Для решения этих задач привлекательным является подход на основе графовой модели. Теория графов является одной из основополагающих теорий в информатике и вычислительной технике [1]. С использованием теории графов возможно как описание практически любой предметной области, так и ее исследование. Одним из существенных недостатков теории графов является статический характер графовой модели, который был преодолен введением механизма графовых трансформаций и графовых грамматик [2]. Графовые трансформации автоматных и сетевых моделей были успешно использованы в работах [3-5]. Для реализации графовых трансформаций в работах [4, 5] была использована инструментальная система AGG [6].

В данной работе предлагается набор правил перезаписи графов для преобразования графового представления формул языка регулярных выражений алгебры событий (РВАС) [7-9] в графовое представление системы канонических уравнений (СКУ), описывающей недетерминированный автомат (НДА), генерирующий язык, определяемый исходным выражением РВАС. Также в работе представлен набор правил перезаписи графов для преобразования графового представления НДА в графовое представление детерминированных автоматов (ДА), эквивалентное начальному НДА.

1. Недетерминированные автоматы

Ниже приводится краткое определение НДА в соответствии с работой [9], однако используются другие обозначения, что не изменяет сути дела.

НДА определяется следующим кортежем:

A = (X, Y, S, А, Ф, до),

где X = {xi, x2, ..., xm} - множество элементарных (бинарных) входов; Y = {yi, y2, ..., yq} -множество элементарных (бинарных) выходов; S = {s1, s2,..., sk} - множество локальных

состояний НДА; ф - функция, назначающая каждому локальному состоянию комбинацию элементарных выходов; go - начальное глобальное состояние автомата.

2. Регулярные выражения алгебры событий

Язык РВАС базируется на использовании алгебры событий, что позволяет представлять бесконечные события в виде конечных выражений. Этот язык и его использование для синтеза цифровых автоматов был впервые фундаментально представлен в монографии академика В. М. Глушкова «Синтез цифровых автоматов» [7].

Событием в любом конечном входном алфавите [Z] называют произвольное множество слов в этом алфавите. Элементарными событиями в алфавите Z = [zi, z2, ..., zF] называются события, состоящие из одной буквы алфавита [Z] и событие S = е, где е - пустое слово.

3. Атрибутные графовые грамматики

В качестве системы трансформации графов в данной работе выбрана система «Атрибутные графовые грамматики» (AGG) [6]. Каждое правило трансформации состоит минимум из двух частей: графов левой и правой частей. Граф левой части (Left Hand Side -LHS) представляет собой фрагмент графа (паттерн) для поиска и замены в исходном графе. Граф правой части (Right Hand Side - RHS) представляет собой заменяющий фрагмент. Кроме того, существуют дополнительные условия выполнения правил: отрицательные и положительные. Отрицательные условия применения (Negative Application Condition - NAC) - это фрагменты графа, при нахождении которых запрещается срабатывание правила. Положительные условия применения (Positive Application Condition -PAC) вводят дополнительные условия срабатывания правила (в дополнение к LHS). Если PAC не найдется в исходном графе, то правило не сработает. В AGG также возможно использование в правилах математических и логических операций над атрибутами вершин и дуг. Все правила можно расположить либо по слоям, либо по приоритетам. Отличие между ними состоит в том, что каждый слой срабатывает только один раз, а в случае использования приоритетного механизма каждый раз выбирается правило с наименьшим значением приоритета среди всех правил (используется принцип «чем меньше номер, тем выше приоритет»).

4. Метамодели графовых представлений

Для графового представления формул языка РВАС использовалось два типа вершин:

1) вершина типа Е, представляющая собой слова [7] (в данном случае - входные сигналы) или операции, используемые в РВАС. Вершина типа Е представляется в виде прямоугольника и содержит два атрибута:

а) type - тип вершины. Возможные значения: «in», означающее сигнал, или «op», означающее операцию алгебры событий;

б) name - атрибут, зависящий от атрибута type. Атрибут name обозначает название входного сигнала для типа «in», а для типа «op» - имя операции алгебры событий (дизъюнкция, конкатенация или итерация);

2) вершина типа R, определяющая идентификатор, соответствующий регулярному выражению (в виде окружности красного цвета).

Метамодель языка РВАС в виде типизированного атрибутного графа представлена на рис. i.

equ

left

right

Е

String name

-4

Рис. 1. Метамодель графового представления формул РВАС

Для представления систем канонических уравнений в виде графа используются три типа вершин:

1) вершина типа Б - (локальное) состояние автомата (в виде окружности). Атрибут п используется для нумерации вершин;

2) вершина типа Е - слово или операция (в виде прямоугольника). Атрибуты соответствуют атрибутам вершины типа Е метамодели РВАС;

3) вершина типа Я, соответствующая каноническому уравнению верхнего уровня (в виде окружности красного цвета).

Связи, используемые между вершинами, аналогичны дугам графового представления языка РВАС. Метамодель графового представления СКУ изображена на рис. 2.

Для графового представления НДА использовалось четыре типа вершин:

1) вершина типа S - локальное состояние НДА. Вершина имеет только один атрибут Num - номер состояния;

2) вершина типа y - элементарный выходной сигнал из множества Y. Атрибут вершины Name обозначает имя выходного сигнала;

3) вершина типа arc - переход автомата;

4) вершина типа х - элементарный входной сигнал из множества X. Атрибут вершины Name обозначает имя входного сигнала.

Для графового представления НДА использовались следующие типы дуг:

1) дуга arc - для связывания состояний автомата с соответствующими переходами, а также для назначения состояниям автомата элементарных выходных сигналов;

2) дуга inv - для назначения инверсного элементарного входного сигнала переходу

left

Рис. 2. Метамодель графового представления СКУ

автомата;

3) дуга right - для назначения прямого (т.е. положительного) элементарного входного сигнала переходу автомата.

Метамодель графового представления НДА показана на рис. 3,а.

а) б)

Рис. 3. Метамодели графовых представлений: a - НДА; б - ДА

В графовом представлении ДА использовано четыре типа вершин. Для представления состояний вместо вершин типа S используются вершины типа a (ДА-состояния). У данных вершин имеется два атрибута: Num - номер состояния, names - номера локальных состояний НДтА, образующих состояние ДА. Остальные вершины эквивалентны аналогичным вершинам графового представления НДА. Метамодель графового представления ДА изображена на рис. 3,б.

5. Преобразование РВАС в СКУ

Для представления языка РВАС в виде графа необходимо учитывать важное правило: все операнды должны быть связаны с операциями дугой типа right, за исключением самого левого операнда в группе операндов для операции дизъюнкции.

В ходе разработки были сформированы 11 правил. Все созданные правила распределены по трем слоям. На первом слое обрабатывается дизъюнкция, на втором расположены все основные правила, на третьем добавляется начальное состояние (S0). Ниже

представлены основные правила преобразования языка РВАС в НДА.

Правило перезаписи графов (рис. 4) соответствует следующему «строковому» правилу, нацеленному на раскрытие итерационных скобок в выражении РВАС:

если P = S {Q} , то P = S v PQ, где Q, S обозначают события (подформулы) в РВАС.

, . tYP,"'5r , right

пГ^ ню

Рис. 4. Правило преобразования «итерационного фрагмента» РВАС

Правило, реализующее свойство дистрибутивности РВАС, соответствует следующему тождественному соотношению: P(Q v S) = PQ v PS, где P, Q, S - произвольные события. Правило показано на рис. 5.

Рис. 5. Правило, реализующее свойство дистрибутивности

6. Преобразование НДА в ДА

В ходе выполнения проекта было разработано 66 правил графовых трансформаций. Эти правила распределены по 29 приоритетам. Помимо данного деления введено деление по слоям, которое реализуется неявно с использованием атрибута mode. Данная схема была выбрана потому, что система AGG в процессе выполнения не поддерживает возвращение к предыдущему слою, но поддерживает «возвращение» к предыдущему приоритету, что позволяет неявно реализовывать циклы. В приведенном проекте правила работают следующим образом: сначала выполняются правила, находящиеся на слое с минимальным номером и имеющие минимальное значение приоритета. Затем выполняются правила с более высоким приоритетом на этом же слое. Когда сработали все правила из одного слоя, происходит переход к следующему по номеру слою. С любого слоя

О ' о о и 1

можно перейти на любой слой, изменив значение переменной mode.

Приведенные правила используются для построения совмещенного графа НДА и ДА. После его построения происходит удаление всех вершин, относящихся к НДА.

Основные шаги алгоритма детерминизации НДА [7]:

1. Фиксация начального глобального состояния НДА в качестве текущего.

2. Для каждого локального состояния НДА, входящего в состав текущего глобального состояния НДА, выполняется построение множеств структурных сигналов, ассоциированных с локальным состоянием НДА. Множество структурных сигналов образуется из структурных сигналов, помечающих выходные дуги, исходящие из локального состояния НДА. Пример нахождения множеств структурных сигналов представлен на рис. 6.

Глобальное состояние НДА Множества структурных сигналов Результаты декартова произведения

(экв. ai) ' ' 1 Л", Л'., — Si

•Г, Л., — S2S3

Л", Л., — S3S5

л L л , —^ S3

/\

Q- ! CSD

JSH

*2

Рис. 6. Иллюстрация процесса детерминизации НДА

3. Декартово произведение структурных сигналов, входящих в множества структурных сигналов. После умножения множеств производится коррекция полученных структурных сигналов. Например, если в структурном сигнале присутствует один и тот же элементарный входной сигнал с инверсиеи и без инверсии, то такой структурный сигнал удаляется. После проведения коррекции на основе оставшихся структурных сигналов генерируются глобальные состояния НДА, в которые возможен переход из текущего глобального состояния НДА. Данные состояния помечаются как «не рассмотренные».

4. Слияние эквивалентных глобальных состояний НДА. Если полученное на шаге 3 новое глобальное состояние НДА уже было достигнуто ранее, то производится его «совмещение» с достигнутым ранее состоянием.

5. Если имеются непомеченные глобальные состояния НДА, то производится выбор одного из таких необработанных состояний и переход к пункту 2, иначе глобальные состояния НДА преобразуются в ДА-состояния (путем переименования) и работа алгоритма считается законченной.

Наибольший интерес из алгоритма детерминизации представляет третий шаг.

Декартово произведение структурных сигналов реализуется путем построение дерева, проходя по ветвям которого будут найдены все варианты перемножения структурных сигналов. Вначале происходит пометка множества - вершины Б (глобального исходного состояния), для которой будет построен ряд структурных сигналов для перехода в новое состояние. После построения вершина помечается как неактивная, она больше не будет использоваться в процессе построения дерева.

Пример построения дерева перемножения структурных сигналов приведен на рис. 7. Данное дерево представляет собой все возможные варианты перемножения структурных сигналов локальных состояний НДтА, входящих в одно глобальное состояние НДтА.

На рисунке выделен один из результатов перемножения структурных сигналов (ххх2 ), по

которому будет добавлено новое состояние ДтА.

О—

т Counter

Рис. 7. Пример построения дерева

Список литературы

1. Касьянов, В. Н. Графы в программировании: обработка, визуализация и применение / В. Н. Касьянов, В. Н. Евстигнеев. - СПб. : БХВ-Петербург, 2003. - 1104 с.

2. Ehrig, H. Fundamental theory for typed attributed graph transformation / H. Ehrig, U. Prange, G. Taenzer // Graph Transformation: 2nd Int. Conf. (ICGT 2004). Lecture Notes in Computer Science. - Berlin ; Heidelberg : Springer Verlag, 2004. - Vol. 3256. - P. 161-177.

3. Vyatkin, V. Refactoring of Execution Control Charts in Basic Function Blocks of the IEC 61499 Standard / V. Vyatkin, V. Dubinin // IEEE Transactions on Industrial Informatics. - 2010. - Vol. 6, Iss. 2. -

P. 155-165.

4. Войнов, А. С. Редукция сетей Петри в системе AGG / А. С. Войнов, И. В. Сенокосов, В. Н. Дубинин // Актуальные проблемы технических наук в России и за рубежом : сб. ст. Междунар. науч.-практ. конф. - Самара : Аэтерна, 2016. - С. 35-39.

5. Графовые трансформации форм представления недетерминированных автоматов - от регулярных выражений алгебры событий к системе канонических уравнений / А. С. Войнов, И. В. Сенокосов, В. Н. Дубинин, Л. П. Климкина // Научная дискуссия: вопросы математики, физики, химии, биологии : сб. ст. по материалам XXXVIII Междунар. науч.-практ. конф. «Научная дискуссия: вопросы математики, физики, химии, биологии». - М. : Интернаука, 2016. - № 2 (30). - С. 42-52.

6. AGG - The Attributed Graph Grammar System. - URL: http://user.cs.tu-berlin.de/~gragra/agg/

7. Глушков, В. М. Синтез цифровых автоматов / В. М. Глушков. - М. : Физматгиз, 1962. - 476 с.

8. Хопкрофт, Дж. Введение в теорию автоматов, языков и вычислений / Дж. Хопкрофт, Р. Мотвани, Дж. Ульман. - М. : Вильямс, 2002. - 528 с.

9. Вашкевич, Н. П. Недетерминированные автоматы в проектировании систем параллельной обработки / Н. П. Вашкевич. - Пенза : Изд-во ПГУ, 2004. - С. 62-115.

Войнов Артем Сергеевич

студент,

Пензенский государственный университет E-mail: vt@pnzgu.ru

Voynov Artem Sergeevich

student,

Penza State University

Сенокосов Илья Владимирович

студент,

Пензенский государственный университет E-mail: vt@pnzgu.ru

Senokosov Il'ya Vladimirovich

student,

Penza State University

УДК 519.171 Войнов, А. С.

Преобразование недетерминированных автоматов на основе графотрансформационного подхода / А. С. Войнов, И. В. Сенокосов // Вестник Пензенского государственного университета. - 2016. -№ 3 (15). - С. 53-59.