Как преобразовать диаграмму деятельности в петринет, синтезировать ее и затем проанализировать?

Я делаю проект на сетях Петри.

Я сгенерировал диаграмму активности (в формате.xmi), используя инструмент UML Umbrello. Мне нужно преобразовать его в сеть Петри, а затем синтезировать его с помощью инструмента Petrify. Но чтобы преобразовать его в сеть Петри, диаграмму деятельности необходимо преобразовать в формат XML.

Чтобы синтезировать с использованием petrify, сеть Петри должна быть преобразована в формат.g, и только потом в формат.xml. Вкратце мне нужно интегрировать инструменты Umbrello, UML2owfn, Petrify и PIPE. Как я могу интегрировать эти инструменты, используя Python?

1 ответ

Удобно, диаграммы деятельности более или менее имеют семантику сетей Петри в любом случае. Вот в чем дело: сначала вам нужно прочитать и проанализировать XML-диаграмму активности. Есть несколько хороших вариантов для этого в Python; если ваши диаграммы действий не являются просто массивными, вам, вероятно, следует выбрать диаграмму, которая хранит все дерево элементов XML в памяти.

Затем преобразуйте диаграмму деятельности в двудольный граф. Так как диаграмма активности может иметь смежные узлы активности (пузырьки) без переходов (линий), сверните все смежные узлы активности в одно место в сети Петри.

В Python также есть несколько библиотек графов, но это довольно просто, и может быть проще просто представить граф в виде списков мест и переходов, а также списка пар для ребер.

Как только у вас есть график чистой сети, просто пройдитесь по нему, чтобы сгенерировать вход Petrify, и вы должны быть настроены. Если вы действительно нуждаетесь в этих промежуточных представлениях, это должен быть SMOP, чтобы также генерировать их.

Другие вопросы по тегам