Как преобразовать диаграмму деятельности в петринет, синтезировать ее и затем проанализировать?
Я делаю проект на сетях Петри.
Я сгенерировал диаграмму активности (в формате.xmi), используя инструмент UML Umbrello. Мне нужно преобразовать его в сеть Петри, а затем синтезировать его с помощью инструмента Petrify. Но чтобы преобразовать его в сеть Петри, диаграмму деятельности необходимо преобразовать в формат XML.
Чтобы синтезировать с использованием petrify, сеть Петри должна быть преобразована в формат.g, и только потом в формат.xml. Вкратце мне нужно интегрировать инструменты Umbrello, UML2owfn, Petrify и PIPE. Как я могу интегрировать эти инструменты, используя Python?
1 ответ
Удобно, диаграммы деятельности более или менее имеют семантику сетей Петри в любом случае. Вот в чем дело: сначала вам нужно прочитать и проанализировать XML-диаграмму активности. Есть несколько хороших вариантов для этого в Python; если ваши диаграммы действий не являются просто массивными, вам, вероятно, следует выбрать диаграмму, которая хранит все дерево элементов XML в памяти.
Затем преобразуйте диаграмму деятельности в двудольный граф. Так как диаграмма активности может иметь смежные узлы активности (пузырьки) без переходов (линий), сверните все смежные узлы активности в одно место в сети Петри.
В Python также есть несколько библиотек графов, но это довольно просто, и может быть проще просто представить граф в виде списков мест и переходов, а также списка пар для ребер.
Как только у вас есть график чистой сети, просто пройдитесь по нему, чтобы сгенерировать вход Petrify, и вы должны быть настроены. Если вы действительно нуждаетесь в этих промежуточных представлениях, это должен быть SMOP, чтобы также генерировать их.