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

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

CC BY
396
65
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МУЛЬТИАГЕНТНЫЕ СИСТЕМЫ / ВЕРИФИКАЦИЯ / СЕТИ ПЕТРИ / ВЛОЖЕННЫЕ СЕТИ ПЕТРИ / РАЗВЕРТКИ / MULTI-AGENT SYSTEMS / VERIFICATION / PETRI NETS / NESTED PETRI NETS / UNFOLDINGS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ермакова В.О., Ломазова И.А.

Вложенные сети Петри являются одним из удобных формализмов для моделирования и анализа поведения распределенных мультиагентных систем. Они естественным образом представляют структуру мультиагентных систем, так как фишки в системной сети сами являются классическими сетями Петри и могут иметь автономное поведение. Мультиагентные системы являются системами с высоким уровнем параллелизма. При верификации таких систем методами проверки модели (model checking) возникают серьезные трудности, связанные с взрывным ростом числа промежуточных состояний системы (state-space explosion problem). Для решения этой проблемы в литературе был предложен подход, основанный на построении развертки поведения системы. Ранее была изучена применимость разверток для верификации вложенных сетей Петри и предложен метод построения разверток для безопасных консервативных вложенных сетей Петри. В этой работе предлагается другой метод построения разверток для безопасных консервативных вложенных сетей Петри, основанный на трансляции таких сетей в классические сети Петри. Для классических сетей Петри затем применяются стандартные методы построения разверток. Также в работе обсуждаются сравнительные достоинства двух подходов.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ермакова В.О., Ломазова И.А.

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

Translation of Nested Petri Nets into Classical Petri Nets for Unfoldings Verification

Nested Petri nets (NP-nets) have proved to be one of the convenient formalisms for distributed multi-agent systems modeling and analysis. It allows representing multi-agent systems structure in a natural way, since tokens in the system net are Petri nets themselves, and have their own behavior. Multi-agent systems are highly concurrent. Verification of such systems with model checking method causes serious difficulties arising from the huge growth of the number of system intermediate states (state-space explosion problem). To solve this problem an approach based on unfolding system behavior was proposed in the literature. Earlier in [4] the applicability of unfolding for nested Petri nets verification was studied, and the method for constructing unfolding for safe conservative nested Petri nets was proposed. In this work we propose another method for constructing safe conservative nested Petri nets unfoldings, which is based on translation of such nets into classical Petri nets and applying standard method for unfolding construction to them. We discuss also the comparative merits of the two approaches. Key words: multi-agent systems; verification; Petri nets; nested Petri nets; unfoldings.

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

Трансляция вложенных сетей Петри в классические сети Петри для верификации разверток

В. О. Ермакова <ermakovavo@gmail.com> И.А. Ломазова <ilomazova@hse.ru> National Research University Higher School of Economics, 20Myasnitskaya St., Moscow, 101000, Russia

Аннотация. Вложенные сети Петри являются одним из удобных формализмов для моделирования и анализа поведения распределенных мультиагентных систем. Они естественным образом представляют структуру мультиагентных систем, так как фишки в системной сети сами являются классическими сетями Петри и могут иметь автономное поведение. Мультиагентные системы являются системами с высоким уровнем параллелизма. При верификации таких систем методами проверки модели (model checking) возникают серьезные трудности, связанные с взрывным ростом числа промежуточных состояний системы (state-space explosion problem). Для решения этой проблемы в литературе был предложен подход, основанный на построении развертки поведения системы. Ранее была изучена применимость разверток для верификации вложенных сетей Петри и предложен метод построения разверток для безопасных консервативных вложенных сетей Петри. В этой работе предлагается другой метод построения разверток для безопасных консервативных вложенных сетей Петри, основанный на трансляции таких сетей в классические сети Петри. Для классических сетей Петри затем применяются стандартные методы построения разверток. Также в работе обсуждаются сравнительные достоинства двух подходов.

Ключевые слова: мультиагентные системы; верификация; сети Петри; вложенные сети Петри; развертки.

DOI: 10.15514/ISPRAS-2016-28(4)-7

Для цитирования: Ермакова В.О., Ломазова И.А. Трансляция вложенных сетей Петри в классические сети Петри для верификации разверток. Труды ИСП РАН, том 28, вып, 4, 2016, стр. 115-136. DOI: 10.15514/ISPRAS-2016-28(4)-7

1. Введение

Мультиагентные системы активно изучаются уже в течение нескольких десятилетий. Они используются в различных практических областях, таких как искусственный интеллект, облачные сервисы, грид системы, системы

встроенной реальности с интерактивными агентами среды, сборе информации, кооперации мобильных агентов и коммуникации.

Мультиагентные системы сложны из-за их распределенной структуры. Они состоят из взаимодействующих агентов, имеющих общую среду и автономное поведение. Когда разрабатывается такая система, важно проверить, будет ли она отвечать необходимым требованиям. Для сложных распределенных систем обычно сначала строят и анализируют (верифицируют) модель системы и только после проверки корректности модели переходят к этапу реализации. Одним из формализмов, успешно представляющих поведение распределенных систем, являются сети Петри. Однако из-за плоской структуры классических сетей Петри они оказываются неудобны для моделирования сложных мультиагентных систем. Для таких систем используется специальные расширения сетей Петри, в частности, вложенные сети Пети [1]. Вложенные сети Петри естественно представляют структуру и поведение мультиагентных систем, так как фишки в системной сети сами являются сетями Петри и имеют собственное поведение.

Для проверки свойств сетей Петри часто используются методы верификации, основанные на проверке моделей (model checking). Основная идея этого подхода заключается в построении графа достижимости и проверке свойств на полученном графе. Однако при использовании этого метода для верификации высоко параллельных систем возникает серьезная проблема, связанная с размером графа достижимости системы. Эта проблема известна как проблема взрывного роста числа состояний (state-space explosion problem) - число промежуточных состояний системы растет экспоненциально от числа независимых параллельных агентов.

Одним из решений этой проблемы является проверка свойств системы не на графе достижимости, а на так называемой развертке (unfolding) ее поведения [2,3]. Ранее в работе [4] было показано, как теория разверток может быть применена для верификации вложенных сетей Петри, а именно, для безопасных консервативных вложенных сетей Петри было дано определение развертки и описан алгоритм ее построения. Было доказано, что для вложенных сетей Петри выполняется фундаментальное свойство разверток и, следовательно, развертки вложенных сетей могут быть использованы для верификации консервативных вложенных сетей Петри так же, как классические развертки используются для верификации классических сетей Петри.

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

Мы показываем, что для любой безопасной консервативной вложенной сети Петри можно построить эквивалентную классическую сеть Петри, а затем применить метод построения разверток для классических сетей. Полученная в результате развертка будет изоморфна развертке вложенной сети Петри, построенной методом, описанным в [4].

1.1 Сравнение с другими исследованиями

Вложенные сети Петри широко используются в моделировании распределенных систем [5,6,7], последовательных и реконфигурируемых системах [8,9,10], верификации протоколов [11], координации сенсорных сетей с мобильными агентами [12], инновационных архитектурах космических систем [13], распределенных вычислениях [14].

В литературе было предложено несколько методов для поведенческого анализа вложенных сетей Петри, среди них композициональные методы для проверки ограниченности и живости вложенных сетей Петри [15], трансляция вложенных сетей Петри в раскрашенные сети Петри и верификация их с помощью CPNtools [16], верификация подкласса рекурсивных вложенных сетей Петри с помощью SPIN [17].

Подход, основанный на построении развертки, и проблема взрывного роста числа состояний подробно описаны в литературе. Начало разработкам в области построения разверток для классических сетей Петри было положено в [18]. К. МакМилан [2] был первым, кто использовал развертки для верификации. Он представил концепцию конечных префиксов разверток и показал применимость этого подхода для верификации асинхронных цепей. Исходный алгоритм МакМиллана был использован для решения проблемы выполнимости перехода - проверить, может данный переход сработать или нет. Этот алгоритм применим также для проверки наличия дедлоков и для решения некоторых других проблем. Позже улучшения алгоритма были представлены в [19,20,21]. Имеются также работы по применению разверток для верификации высокоуровневых сетей Петри [22], алгебр процессов [23] и М-сетей [22]. Общий подход для отсечения разверток с сохранением информации в конечном префиксе развертки предложен в [24,25]. Этот метод основан на понятии усеченного контекста. Мы используем этот подход для определения ветвящегося процесса и развертки консервативной вложенной сети Петри.

1.2 Структура работы

В разделе 2 даны основные определения сетей Петри и вложенных сетей Петри. В разделе 3 представлен алгоритм для трансляции безопасных консервативных вложенных сетей Петри в классические. Раздел 4 посвящен сравнению метода построения разверток на основе трансляции вложенной сети Петри в классическую и метода непосредственного построения развертки вложенной сети. Последний раздел содержит выводы и обсуждения результатов работы.

2. Предварительные сведения

Пусть S - конечное множество. Мультимножеством т над множеством S называется функция Nat, где Nat - множество неотрицательных целых

чисел. Другими словами, мультимножество может содержать несколько копий одного и того же элемента.

Для двух мультимножеств т и т' полагаем m £ т', если Vs Е S ■ m(s) < т' (s) (отношение включения). Сумма и объединение двух мультимножеств т и т' также определяются стандартно: Vs Е S ■ (т + m')(s) = m(s) + m'(s),(m Um')(s) = max(m(s),m'(s)).

2.1 Классические сети Петри

Пусть Р и Т - два конечных непересекающихся множества позиций и переходов и F £ (р хТ) U (Т х Р) - функция инцидентности. Тогда N = (Р, Т, F) является сетью Петри. Разметкой сети N = (P,T,F) называется мультимножество над множеством позиций Р. Через M(N) будем обозначать множество всех разметок сети N. Размеченная (маркированная) сеть Петри (N, М0) - это сеть Петри вместе с её начальной разметкой М0. Графически сеть Петри представляется в виде ориентированного графа, в котором вершины-позиции изображаются кругами, а вершины-переходы -прямоугольниками. Позиции могут содержать фишки, представленные закрашенными кружками. Текущая разметка m определяется помещением т(р) фишек в каждую позицию р Е Р.

Для перехода t Е Т дуга (х, t) называется входящей дугой, а (t, х) - исходящей. Для каждой вершины х Е Р UT мы определяем пред-множество элементов для вершины х как • х = {у | (у,х) Е F}.

Мы говорим, что переход t в сети Петри N = (Р, Т, F) активен в разметке М

если • t £ М. Активный переход может сработать и произвести новую

t

разметку М' = М —• t + t • (обозначается как М ^ М'). Разметка М называется

достижимой, если существует (возможно, пустая) последовательность

ti t2

срабатываний ••• ^ М из начальной разметки в M. Через

!RM(N) обозначим множество всех достижимых разметок в N.

Разметка М называется безопасной, если для всех позиций р Е Р имеем М(р) <

1. Маркированная сеть Петри называется безопасной, если каждая достижимая

разметка МЕКМ^) безопасна. Граф достижимости сети Петри (N,M0)

представляет детальную информацию о поведении сети. Это помеченный

ориентированный граф, в котором вершины являются достижимыми

разметками сети (N,M0), а дуги соответствуют срабатываниям переходов. В

графе достижимости дуга t между разметками М и М'существует тогда и только t

тогда, когда М ^ М'.

2.2. Развертки классических сетей Петри

Развертки используются для представления семантики истинного параллелизма (true concurrency) сетей Петри. Для верификации используются конечные префиксы развёрток. Здесь мы приводим необходимые основные понятия и определения, связанные с развертками. Более детальное описание можно найти в [26,27].

Пусть, N = (Р, Т, F) - сеть Петри. Следующие отношения определены на множестве PUT вершин в N:

• Отношение (каузальной) зависимости (обозначается <) - это транзитивное замыкание F, соответственно, < - рефлексивное замыкание <; мы говорим, что у зависит от х, если х < у.

• Отношение конфликта (обозначается #): для вершин х,уЕРи Т,х#у :=3t,t' Е Т. t Ф t' A'tH't' Ф 0At<xAt'<y;

• Отношение параллельности (обозначается со): две вершины сети параллельны, если они не находятся в конфликте и ни одна из них не зависит от другой.

Для множества вершин В мы пишем со (В) если все вершины в В являются попарно параллельными.

Сетью событий называется безопасная сеть Петри ON = (В, Е, G) такая, что:

• ON - ациклична;

• VpEB:l *р1<1;

• Vx Е В U Е множество [у | у < х] конечно, то есть каждая вершина в ON имеет конечное число предшествующих вершин;

• Vx Е В U Е:—(х#х), то есть, ни одна вершина не находится в конфликте с собой.

В сетях событий элементы из В обычно называются условиями, а элементы принадлежащие Е - событиями.

Сети событий представляют поведение системы в семантике «истинного параллелизма» (true concurrency semantics). Семантика истинного параллелизма отличается от последовательной (интерливинговой) семантики тем, что в последовательной семантике в каждый конкретный момент времени может происходить не более одного события. В семантике истинного параллелизма это не так, и несколько событий могут происходить одновременно. Внешний наблюдатель не различает эти две семантики. Также, последовательная семантика проще и более удобна для анализа поведенческих свойств, поэтому она часто используется. Тем не менее, когда модель должна учитывать время, разница между этими семантиками становится заметной. Перейдем к определению ветвящихся процессов и разверток. Конфигурацией С в сети событий ON = (В, Е, G) называют бесконфликтное подмножество вершин, которое замкнуто относительно отношения <, то есть Vx,y Е С: —(х#у) и (х < у) Ay Е С, где х ЕС. Для каждого х Е В U Е мы определяем

локальную конфигурацию x такую что [x] = {yly Е В U E,y < x}. Определение локальной конфигурации может быть обобщено на любое бесконфликтное множество вершин X £ В U E, а именно [X] = {yly Е В U Е,х Е Х,у < х}.

Определим множество ветвящихся процессов для данной маркированной сети Петри N = (P,T,F,Mq), используя, так называемое, каноническое представление.

Множество С канонических имен N определено рекурсивно, как минимальное множество такое, что если х Е Р UT и А - конечное подмножество С, то (А,х) Е С.

Сеть событий (В, Е, G) называется -сетью, если выполняются следующие условия:

• BUE £С;

• V(A,x) Е В U Е, • (А,х) = А.

Начальная разметка -сети Петри - это подмножество вершин {(0 ,x)l(0,x Е В)}. Для каждой С-сети CN определяется функция (морфизм) h, отображающая вершины CN на вершины сети N: h((A, х)) = х. Пусть S - конечное или бесконечное множество -сетей. Тогда объединение сетей из S определяется покомпонентно, то есть:

US = (^(Р,Т,Р,М)ЕБР, U(P ,Т ,F ,М)ЕБТ , ^(Р,Т,Р,М)ЕБ^,

Множество ветвящихся процессов маркированной сети Петри N = (Р, Т, F, М0) определяется как наименьшее множество -сетей, удовлетворяющее следующим условиям:

• С-сеть (1,0,0), где I = {(0,p)lp Е М0} (состоящая из условий I и не содержащая событий) - это ветвящийся процесс.

• Пусть Ъ1 - ветвящийся процесс, М - достижимая разметка для Ъ1, и М' £ М, так что h(M') =• t для некоторого t в T. Пусть Ъ2 - сеть, полученная с помощью добавления события (M',t) и условий {({(M',t)},p)lp Е t •} к Ъ1. Тогда Ъ2 - ветвящийся процесс.

• Пусть ЪЪ - конечное или бесконечное множество ветвящихся процессов. Объединение иЪЪ также является ветвящимся процессом.

На Рис.2 показан пример ветвящегося процесса для сети Петри PN1 с начальной разметкой {р1}, изображенной на Рис.1.

Ветвящийся процесс Ъ1 = ((P1,E1,F1),h1) называется префиксом ветвящегося процесса Ъ2 = ((P2,E2,F2),h2), (обозначается Ъ1 с Ъ2), если Р1£Р2 и Е1 £

Е2.

Максимальный относительно частичного порядка с ветвящийся процесс сети N называется разверткой сети N и обозначается как U (N).

Рис. 1 Сеть Петри PNI Fig. 1 Petri Net PNI

Рис. 2 Ветвящийся процесс для PN1 Fig 2 Branching process for PN1

2.3. Фундаментальное свойство разверток

Выполнение фундаментального свойства разверток означает, что для любой сети Петри поведение развертки эквивалентно поведению исходной сети. Фундаментальное свойство формулируется следующим образом. Пусть М - достижимая маркировка сети Петри N, и пусть Ми является достижимой разметкой в и(Ы) такой, что Ь(Ми) = М. Тогда:

£

если существует шаг Ми ^ Ми' в и(Ы), то существует шаг М ^ М' в N

такой, что h(tv) = t A h(M'v) = М';

t

ует шаг М ^М'в такой, что h(ta) = t A h(M' и) = M'.

t tu

если существует шаг М ^ М'в N, то существует шаг Ми ^ Ми в U(N)

Другими словами, фундаментальное свойство разверток гласит, что граф достижимости развертки изоморфен графу достижимости исходной сети Петри. Это свойство очень важно для использования разверток при анализе семантических свойств и верификации. Развертки определены и изучены для различных классов сетей Петри: для сетей Петри высокого уровня [22], контекстных сетей [28], временных сетей Петри [29], гиперсетей [30]. Все эти конструкции имеют сходные свойства, которые служат обоснованием применимости определенных в этих работах разверток для верификации. Далее будет приведено определение развертки для вложенных сетей Петри, для которого также выполняется фундаментальное свойство разверток.

2.4 Вложенные сети Петри

В этой работе мы рассматриваем вложенные сети Петри, точнее, их специальный подкласс, называемый строго консервативными вложенными сетями Петри. Более подробную информацию о вложенных сетях Петри можно найти в [1,7]. Здесь мы приводим сокращенное определение, подходящее для рассматриваемого случая.

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

В этой работе мы рассматриваем безопасные и типизированные вложенные сети Петри, то есть каждая позиция системной сети может содержать не более одной фишки: черной, либо сетевой фишки определенного типа. Пусть Туре - множество типов, Vor - множество типизированных (типами из Туре) переменных, а Lab - множество меток. Типизированной вложенной сетью Петри NP называется кортеж (SN, (EN-l,... ENk), v,A, W), где:

• SN = (PSn, Tsn, Fsn) - сеть Петри, называемая системной сетью;

• Для каждого i = 1, к, EN¿ = PENl, TEN., FEN.) есть сеть Петри, называемая элементной сетью; множества переходов и позиций в системной и элементных сетях попарно не пересекаются; каждой элементной сети приписан тип из Type;

• у: PSN ^ Type U {•} - функция типизации позиций системной сети;

• A: TNP ^ Lab - частичная функция пометки переходов, где TNP = TSN U TEN± U ... U TENk. Будем писать Ä(t) =1, если X не определена для t.

• W: Fsn ^ Var U {•} - функция пометки дуг такая, что для дуги r тип выражения W(r) совпадает с типом позиции, инцидентной r.

Маркированная элементная сеть называется сетевой фишкой. Далее для данной вложенной сети Петри через Anet = {(EN,m)l3i = 1, ...к: EN = EN^m Е M(ENi)} обозначим множество всех возможных фишек сети вместе с черными фишками (black dot token).

Элементно-автономный шаг. Пусть t - непомеченный переход в одной из сетевых фишек. Тогда срабатывание перехода t определяется стандартными правилами срабатывания перехода в сетях Петри. Сама фишка остается в той же самой позиции системной сети.

Системно-автономный шаг - это срабатывание непомеченного перехода t Е TSN в системной сети в соответствии с правилами срабатывания для высокоуровневых сетей Петри (например, раскрашенных сетей Петри [31]). Синхронный шаг. Пусть t - переход, помеченный X в системной сети SN, t активный в разметке М при означивании Ъ переменных в выражениях на дугах. Пусть далее а1, ...ап Е Anet - сетевые фишки, задействованные в срабатывании t. Тогда t может сработать при условии, что в каждой сетевой фишке аг (1 < i < п), задействованной в срабатывании t, имеется активный переход, помеченный той же синхронизационной меткой Я. Синхронный шаг выполняется в два этапа: сначала срабатывает по одному переходу, помеченному X, в каждой из сетевых фишек, задействованных в срабатывании t, и затем выполняется срабатывание t в системной сети.

Вложенная сеть NP называется безопасной, если в каждой ее достижимой разметке имеется не более одной фишки в каждой позиции в системной сети и в каждой позиции сетевых фишек. Далее мы будем рассматривать только безопасные сети.

2.5 Консервативные вложенные сети Петри

Безопасная вложенная сеть Петри N = (SN,(EN1, ...ENk),v,X,W) называется строго консервативной если

• Для каждого t Е TSN и для каждого р Е^ t, 3!р' Е t •. W(p, t) = W(t,p') или W(p,t) =•;

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

• Для каждого t Е TSN и для каждого р Е t •, 3!р' Е^ t. W(p',t) = W(t,p) или W(p,t) =•.

Строгая консервативность означает, что сетевые фишки не могут появляться или исчезать после срабатывания перехода в системной сети. Заметим, что в [15] вложенные сети Петри называются консервативными, если фишки не могут исчезать после срабатывания перехода, но могут копироваться, таким образом, количество сетевых фишек в таких консервативных вложенных сетях Петри может быть не ограничено. Здесь мы рассматриваем более узкий подкласс вложенных сетей Петри с постоянным количеством сетевых фишек

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

3. Трансляция безопасных консервативных вложенных сетей Петри в классические сети Петри

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

Алгоритм трансляции безопасных консервативных вложенных сетей Петри будет проиллюстрирован на примере вложенной сети Петри NP2, показанной на Рис. 3 (системная сеть) и Рис. 4 (элементная сеть). Эта сеть будет транслирована в безопасную классическую сеть Петри PN.

Рис. 3 Вложенная сеть Петри NP2 Fig. 3 Nested Perti Net NP2

Element net in pi

91 f •

Рис. 4 Вложенная сеть Петри NP2 Fig. 4 Nested Perti Net NP2

3.1 Алгоритм трансляции

Пусть МР = (БМ, (ЕМ^ ... ЕМк), V, А, Ш) - вложенная сеть Петри с множеством ЫТок идентифицированных сетевых фишек в начальной разметке. Через I мы обозначим множество всех идентификаторов, использованных в ЫТок, а через 1Е £ Е обозначим подкласс идентификаторов сетевых фишек типа Е. Сеть ЫР будет транслирована в сеть Петри РЫ = (Ррм, ТРЫ, Ррм) с начальной разметкой то.

• Сначала определяем множество Рры позиций целевой сети РЫ. Для каждого типа Е некоторой позиции в системной сети БЫ мы создаем множество <ВЕ позиций для Рры. Множество <ВЕбудет содержать копию каждой позиции типа Е в системной сети для каждой сетевой фишки типа Е (помеченную идентификатором сетевой фишки) и копию каждой позиции в РЕ для каждой сетевой фишки типа Е, то есть, <ВЕ = {(рЛй)1р е Р51Ч,у(р) = ЕЛйе 1Е] и {(яЛй)^ е РЕ,1й е 1Е]. Для каждой позиции в БЫ типа черной фишкой создаем только одну копию р без идентификатора. Затем множество Рры позиций для целевой сети РЫ определяется как объединение этих множеств. Результат выполнения первого шага алгоритма для вложенной сети ЫР2 изображен на Рис. 5.

Рис. 5 Создание позиций PN Fig. 5 Position creation for PN

Чтобы определить начальную разметку для сети PN разметку позиций PNP во вложенной сети Петри кодируем разметками на построенных позициях сети PPN. Если сетевая фишка ц = (id,E,m) находится в позиции р в разметке М системной сети, то в целевой сети черные фишки помещаются в позицию (р, id) и во все позиции (q, id) для всех q таких, что m(q) = 1. Если позиция типа черной точки в системной сети SN содержит черную фишку, то единственная соответствующая позиция в сети PN также будет содержать черную фишку. Легко заметить, что эта кодировка определяет взаимно-однозначное соответствие между разметками консервативной безопасной вложенной сети Петри и безопасными разметками в PN. В нашем примере первая элементная сеть находится в позиции р1, вторая - в позиции р2. Таким образом, черные фишки помещаются в позиции fa, 1) и (р2,2); а также в (q1,1) и (q1,2).

9

(Рз,1)

(Pi 12) (92,2)

(рз,'2)

Рис. 6 Системно-автономный шаг Fig. 6 System-autonomous step

• Для каждого автономного перехода t в системной сети SN мы строим множество Tt переходов следующим образом. Поскольку каждая переменная на входной дуге перехода t может быть означена, вообще говоря, любой сетевой фишкой подходящего типа, то для каждого такого означивания строится отдельный переход в PN с соответствующими входными и выходными дугами. В нашем примере для перехода t2 мы строим два перехода £21и t22.

• Для каждого автономного перехода в сетевой фишке из NTok строится соответствующий переход, инцидентный позициям, помеченным id. Так в нашем примере мы получим четыре перехода: к21, к22, к31 и к32.

Рис. 7. Элементно-автономный шаг Fig. 7. Element-autonomous step

Рис. 8 Синхронный шаг Fig 8. Synchronous step

k, '/'.«■ 1)

(и, 2)

Рис. 9 Результат трансляции NP2 в классическую сеть Петри Fig. 9. The result of NP2 translation into classical Petri Net

• Срабатывание синхронного перехода означает одновременное срабатывание перехода в системной сети и срабатывание переходов, помеченных такой же меткой в каждой задействованной в этом срабатывании сетевой фишке. Таким образом, синхронный шаг является комбинацией шага 3 и шага 4. В нашем примере есть две сетевые фишки, и переходы аг и а2 строятся для каждой из них. Таким образом мы можем моделировать синхронный шаг для каждой из возможных начальных разметок системной сети.

Корректность определенной выше трансляции обеспечивает следующая

Теорема 1.

Пусть NP - вложенная сеть Петри и PN - сеть Петри, полученная из сети NP с помощью трансляции, описанной выше. Тогда графы достижимости сетей NP и PN изоморфны.

Доказательство. Шаг 2 алгоритма определяет взаимное соответствие между достижимыми разметками сетей NP и PN. Легко заметить, что в соответствии с определением трансляции соответствующие шаги срабатывания в обеих сетях не нарушают это соответствие.

4 Построение развертки для ограниченной консервативной вложенной сети Петри

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

Сравним метод построения развертки путем трансляции вложенной сети Петри в классическую покомпонентным методом, предложенным в [4].

Теорема 2.

Развертка безопасной консервативной вложенной сети Петри NP, полученная описанным в [4] методом, изоморфна развертке классической безопасной сети Петри, полученной в результате описанной выше трансляции сети NP. Доказательство. В [4] было доказано выполнение фундаментального свойства развертки для описанных там покомпонентных разверток, а именно, что граф достижимости вложенной сети Петри изоморфен графу достижимости его покомпонентной развертки. По Теореме 1 граф достижимости классической сети, полученной в результате трансляции, изоморфен графу достижимости исходной вложенной сети. Для классических сетей Петри выполняется фундаментальное свойство разверток, т.е. граф достижимости развертки изоморфен графу достижимости сети Петри. Из всего этого следует, что развертки, построенные методом из [4] и путем трансляции в классические сети Петри, изоморфны.

Рис. 10 Ветвящийся процесс для сети NP2 Fig. 10. Branching process for NP2 net

Рис. 11 Ветвящийся процесс, построенный путем трансляции сети NP2 Fig. 11. Branching process built after NP2 translation

5 Заключение

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

Другой способ построения развертки безопасной консервативной вложенной сети Петри описан в [4]. В этой работе развертка сети строится непосредственно путем построения разверток отдельных компонентов вложенной сети Петри. Мы показали, что оба метода дают одинаковый с точностью до изоморфизма результат.

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

Поэтому интересно сравнить сложность этих двух методов: метода, предложенного в [4], и подхода, основанного на трансляции вложенных сетей Петри в классические. Нетрудно заметить, что если в начальной разметке сети имеется несколько сетевых фишек одного и того же, то трансляция вложенной сети в классическую сеть Петри ведет к значительному росту сети. Так для перехода системной сети с п входными позициями одного типа и к фишек этого типа в начальной разметке строится кп копий этого перехода в целевой сети Петри. Понятно, что этого нельзя избежать, так как необходимо различать разметки сетевых фишек, находящихся в разных позициях системной сети. Чтобы сравнить временные затраты этих двух методов на практике, нами были реализованы компьютерные программы, позволяющие выполнять

• трансляцию консервативной безопасной сетей Петри в классическую сеть Петри и построение развертки для нее;

• построение развертки для вложенной сети Петри напрямую.

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

Эксперименты с сетями небольшого размера подтвердили нашу гипотезу. Так, для сети NP2 из нашего примера время построения развертки составило 0.38 132

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

Благодарность

Работа выполнена при поддержке Программы фундаментальных исследований НИУ ВШЭ и Российского фонда фундаментальных исследований (проект 1601-00546).

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

[1]. Lomazova I.A. Nested Petri nets—a formalism for specification and verification of multi-agent distributed systems. Fundamenta Informaticae 43(1), 2000, pp. 195-214.

[2]. McMillan K.L. Using unfoldings to avoid the state explosion problem in the verification of asynchronous circuits. Computer Aided Verification, Springer, 1992, pp. 164-177.

[3]. Nielsen M., Plotkin G., Winskel G. Petri nets, event structures and domains, part I. Theoretical Computer Science 13(1), 1981, pp. 85-108.

[4]. Frumin D., Lomazova I.A. Branching processes of conservative nested Petri nets. VPT 2014. Second International Workshop on Verification and Program Transformation Vol. 28: EPiC Series. EasyChair, 2014. P. 19-35.

[5]. Lomazova I.A., van Hee K.M., Oanea O., Serebrenik A., Sidorova N., Voorhoeve M. Nested nets for adaptive systems. Application and Theory of Petri Nets and Other Models of Concurrency, LNCS, 2006, pp. 241-260.

[6]. Lomazova I.A. Modeling dynamic objects in distributed systems with nested petri nets. Fundamenta Informaticae 51(1-2), 2002, pp. 121-133.

[7]. Lomazova I.A. Nested petri nets for adaptive process modeling. Pillars of computer science. Springer, 2008, pp. 460-474

[8]. L'opez-Mellado E., Villanueva-Paredes N., Almeyda-Canepa H. Modelling of batch production systems using Petri nets with dynamic tokens. Mathematics and Computers in Simulation 67(6), 2005, pp. 541-558.

[9]. Kahloul L., Djouani K., Chaoui A. Formal study of reconfigurable manufacturing systems: A high level Petri nets based approach. Industrial Applications of Holonic and Multi-Agent Systems. Springer, 2013, pp. 106-117.

[10]. Zhang, L., Rodrigues, B. Nested coloured timed Petri nets for production configuration of product families. International journal of production research 48(6), 2010, pp. 1805-1833.

[11]. Venero M.L.F., da Silva F.S.C. Modeling and simulating interaction protocols using nested Petri nets. Software Engineering and Formal Methods. Springer, 2013, pp. 135-150.

[12]. Chang L., He X., Lian J., Shatz S. Applying a nested Petri net modeling paradigm to coordination of sensor networks with mobile agents. Proc. of Workshop on Petri Nets and Distributed Systems, Xian, China, 2008, pp. 132-145.

[13]. Cristini F., Tessier C. Nets-within-nets to model innovative space system architectures. Application and Theory of Petri Nets. Springer, 2012, pp. 348-367.

[14]. Mascheroni M., Farina F. Nets-within-nets paradigm and grid computing. Transactions on Petri Nets and Other Models of Concurrency V. Springer, 2012, pp. 201-220.

[15]. Dworza'nski L.W., Lomazova I.A. On compositionality of boundedness and liveness for nested Petri nets. Fundamenta Informaticae 120(3-4), 2012, pp. 275-293.

[16]. Dworza'nski L., Lomazova I.A. CPN tools-assisted simulation and verification of nested Petri nets. Automatic Control and Computer Sciences 47(7), 2013, pp. 393-402.

[17]. Venero M.L.F. Verifying cross-organizational workflows over multiagent based environments. Enterprise and Organizational Modeling and Simulation. Springer, 2014, pp. 38-58.

[18]. Winskel G. Event structures. Springer, 1986.

[19]. Bonet B., Haslum P., Hickmott S., Thi'ebaux S. Directed unfolding of petri nets. Transactions on Petri Nets and Other Models of Concurrency I. Springer, 2008, pp. 172-198.

[20]. McMillan K.L. A technique of state space search based on unfolding. Form. Methods Syst. Des. 6(1), 1995, pp. 45-65.

[21]. Heljanko K. Using logic programs with stable model semantics to solve deadlock and reachability problems for 1-safe petri nets. Fundamenta Informaticae 37(3), 1999, pp. 247-268.

[22]. Khomenko V., Koutny M. Branching processes of high-level Petri nets. In Garavel, H., Hatcliff, J., eds.: Tools and Algorithms for the Construction and Analysis of Systems. Volume 2619 of Lecture Notes in Computer Science. Springer, 2003, pp. 458-472.

[23]. Langerak R., Brinksma E. A complete finite prefix for process algebra. Computer Aided Verification, Springer, 1999, pp. 184-195.

[24]. Khomenko V., Koutny M., Vogler W. Canonical prefixes of Petri net unfoldings. Acta Informatica 40(2), 2003, pp. 95-118.

[25]. Khomenko V. Model Checking Based on Prefixes of Petri Net Unfoldings. Ph.D. Thesis, School of Computing Science, Newcastle University, 2003.

[26]. Esparza J., Heljanko K. Unfoldings: a partial-order approach to model checking. Springer, 2008.

[27]. Engelfriet J. Branching processes of Petri nets. Acta Informatica 28(6), 1991, pp.575-591.

[28]. Baldan P., Corradini A., Knig B., Schwoon S. Mcmillans complete prefix for contextual nets. Jensen, K., Aalst, W.M., Billington, J., eds.: Transactions on Petri Nets and Other Models of Concurrency I. Volume 5100 of Lecture Notes in Computer Science. Springer, 2008, pp. 199-220.

[29]. Fleischhack H., Stehno C. Computing a finite prefix of a time Petri net. Esparza J., Lakos C., eds.: Application and Theory of Petri Nets 2002. Volume 2360 of Lecture Notes in Computer Science. Springer, 2002, pp. 163-181.

[30]. Mascheroni, M. Hypernets: a Class of Hierarchical Petri Nets. Ph.D. Thesis, Facolt di Scienze Naturali Fisiche e Naturali, Dipartimento di Informatica Sistemistica e Comunicazione, Universifa Degli Studi Di Milano Bicocca, 2010.

[31]. Jensen K., Kristensen L.M. Coloured Petri nets: modelling and validation of concurrent systems. Springer, 2009.

Translation of Nested Petri Nets into Classical Petri Nets for Unfoldings Verification

V.O. Ermakova <ermakovavo@gmail.com> I.A. Lomazova <ilomazova@hse.ru> National Research University Higher School of Economics, 20Myasnitskaya St., Moscow, 101000, Russia

Аннотация. Nested Petri nets (NP-nets) have proved to be one of the convenient formalisms for distributed multi-agent systems modeling and analysis. It allows representing multi-agent systems structure in a natural way, since tokens in the system net are Petri nets themselves, and have their own behavior. Multi-agent systems are highly concurrent. Verification of such 134

systems with model checking method causes serious difficulties arising from the huge growth of the number of system intermediate states (state-space explosion problem). To solve this problem an approach based on unfolding system behavior was proposed in the literature. Earlier in [4] the applicability of unfolding for nested Petri nets verification was studied, and the method for constructing unfolding for safe conservative nested Petri nets was proposed. In this work we propose another method for constructing safe conservative nested Petri nets unfoldings, which is based on translation of such nets into classical Petri nets and applying standard method for unfolding construction to them. We discuss also the comparative merits of the two approaches.

Key words: multi-agent systems; verification; Petri nets; nested Petri nets; unfoldings. DOI: 10.15514/ISPRAS-2016-28(4)-7

For citation: Ermakova V.O., Lomazova I.A. Translation of Nested Petri Nets into Classical Petri Nets for Unfoldings Verification. Trudy ISP RAN/Proc. ISP RAS, vol. 28, issue 4, 2016, pp. 115-136 (in Russian). DOI: 10.15514/ISPRAS-2016-28(4)-7

References

[1]. Lomazova I.A. Nested Petri nets—a formalism for specification and verification of multi-agent distributed systems. Fundamenta Informaticae 43(1), 2000, pp. 195-214.

[2]. McMillan K.L. Using unfoldings to avoid the state explosion problem in the verification of asynchronous circuits. Computer Aided Verification, Springer, 1992, pp. 164-177.

[3]. Nielsen M., Plotkin G., Winskel G. Petri nets, event structures and domains, part I. Theoretical Computer Science 13(1), 1981, pp. 85-108.

[4]. Frumin D., Lomazova I.A. Branching processes of conservative nested Petri nets. VPT 2014. Second International Workshop on Verification and Program Transformation Vol. 28: EPiC Series. EasyChair, 2014. P. 19-35.

[5]. Lomazova I.A., van Hee K.M., Oanea O., Serebrenik A., Sidorova N., Voorhoeve M. Nested nets for adaptive systems. Application and Theory of Petri Nets and Other Models of Concurrency, Lecture Notes in Computer Science, vol. 4024, 2006, pp. 241-260.

[6]. Lomazova I.A. Modeling dynamic objects in distributed systems with nested petri nets. Fundamenta Informaticae 51(1-2), 2002, pp. 121-133.

[7]. Lomazova I.A. Nested petri nets for adaptive process modeling. Pillars of computer science. Lecture Notes in Computer Science, vol. 4800, Springer, 2008, pp. 460-474

[8]. L'opez-Mellado E., Villanueva-Paredes N., Almeyda-Canepa H. Modelling of batch production systems using Petri nets with dynamic tokens. Mathematics and Computers in Simulation 67(6), 2005, pp. 541-558.

[9]. Kahloul L., Djouani K., Chaoui A. Formal study of reconfigurable manufacturing systems: A high level Petri nets based approach. Industrial Applications of Holonic and Multi-Agent Systems. Springer, 2013, pp. 106-117.

[10]. Zhang, L., Rodrigues, B. Nested coloured timed Petri nets for production configuration of product families. International journal of production research 48(6), 2010, pp. 1805-1833.

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

[11]. Venero M.L.F., da Silva F.S.C. Modeling and simulating interaction protocols using nested Petri nets. Software Engineering and Formal Methods. Springer, 2013, pp. 135-150.

[12]. Chang L., He X., Lian J., Shatz S. Applying a nested Petri net modeling paradigm to coordination of sensor networks with mobile agents. Proc. of Workshop on Petri Nets and Distributed Systems, Xian, China, 2008, pp. 132-145.

[13]. Cristini F., Tessier C. Nets-within-nets to model innovative space system architectures. Application and Theory of Petri Nets. Springer, 2012, pp. 348-367.

[14]. Mascheroni M., Farina F. Nets-within-nets paradigm and grid computing. Transactions on Petri Nets and Other Models of Concurrency V. Springer, 2012, pp. 201-220.

[15]. Dworza'nski L.W., Lomazova I.A. On compositionality of boundedness and liveness for nested Petri nets. Fundamenta Informaticae 120(3-4), 2012, pp. 275-293.

[16]. Dworza'nski L., Lomazova I.A. CPN tools-assisted simulation and verification of nested Petri nets. Automatic Control and Computer Sciences 47(7), 2013, pp. 393-402.

[17]. Venero M.L.F. Verifying cross-organizational workflows over multiagent based environments. Enterprise and Organizational Modeling and Simulation. Springer, 2014, pp. 38-58.

[18]. Winskel G. Event structures. Springer, 1986.

[19]. Bonet B., Haslum P., Hickmott S., Thi'ebaux S. Directed unfolding of petri nets. Transactions on Petri Nets and Other Models of Concurrency I. Springer, 2008, pp. 172-198.

[20]. McMillan K.L. A technique of state space search based on unfolding. Form. Methods Syst. Des. 6(1), 1995, pp. 45-65.

[21]. Heljanko K. Using logic programs with stable model semantics to solve deadlock and reachability problems for 1-safe petri nets. Fundamenta Informaticae 37(3), 1999, pp. 247-268.

[22]. Khomenko V., Koutny M. Branching processes of high-level Petri nets. In Garavel, H., Hatcliff, J., eds.: Tools and Algorithms for the Construction and Analysis of Systems. Volume 2619 of Lecture Notes in Computer Science. Springer, 2003, pp. 458-472.

[23]. Langerak R., Brinksma E. A complete finite prefix for process algebra. Computer Aided Verification, Springer, 1999, pp. 184-195.

[24]. Khomenko V., Koutny M., Vogler W. Canonical prefixes of Petri net unfoldings. Acta Informatica 40(2), 2003, pp. 95-118.

[25]. Khomenko V. Model Checking Based on Prefixes of Petri Net Unfoldings. Ph.D. Thesis, School of Computing Science, Newcastle University, 2003.

[26]. Esparza J., Heljanko K. Unfoldings: a partial-order approach to model checking. Springer, 2008.

[27]. Engelfriet J. Branching processes of Petri nets. Acta Informatica 28(6), 1991, pp.575-591.

[28]. Baldan P., Corradini A., Knig B., Schwoon S. Mcmillans complete prefix for contextual nets. Jensen, K., Aalst, W.M., Billington, J., eds.: Transactions on Petri Nets and Other Models of Concurrency I. Volume 5100 of Lecture Notes in Computer Science. Springer, 2008, pp. 199-220.

[29]. Fleischhack H., Stehno C. Computing a finite prefix of a time Petri net. Esparza J., Lakos C., eds.: Application and Theory of Petri Nets 2002. Volume 2360 of Lecture Notes in Computer Science. Springer, 2002, pp. 163-181.

[30]. Mascheroni, M. Hypernets: a Class of Hierarchical Petri Nets. Ph.D. Thesis, Facolt di Scienze Naturali Fisiche e Naturali, Dipartimento di Informatica Sistemistica e Comunicazione, Universifa Degli Studi Di Milano Bicocca, 2010.

[31]. Jensen K., Kristensen L.M. Coloured Petri nets: modelling and validation of concurrent systems. Springer, 2009.

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