如何将活动图转换为Petri网、进行综合并分析?

4 投票
1 回答
1167 浏览
提问于 2025-04-16 17:38

我正在做一个关于彼得网(Petri nets)的项目。

我用UML工具Umbrello生成了一个活动图(.xmi格式)。现在我需要把它转换成彼得网,然后用Petrify工具进行合成。但是,要把活动图转换成彼得网,首先得把它转换成XML格式。

为了使用Petrify进行合成,彼得网还需要先转换成.g格式,然后再转换成.xml格式。简单来说,我需要把Umbrello、UML2owfn、Petrify和PIPE这些工具整合在一起。我该如何用Python来整合这些工具呢?

1 个回答

1

方便的是,活动图的语义和彼得罗网(Petri Nets)差不多。简单来说,你首先需要读取和解析活动图的XML文件。在Python中,有几种不错的选择可以做到这一点;除非你的活动图特别大,否则最好选择一种可以将整个XML元素树保存在内存中的方法。

接下来,把活动图转换成一个二分图。因为活动图中的活动节点(气泡)可以相邻而没有过渡(线),所以要把所有相邻的活动节点合并到彼得罗网中的一个地方。

在Python中也有几种图形库,不过这个过程相对简单,可能更容易把图表示成地点和过渡的列表,以及边的配对列表。

一旦你得到了彼得罗网图,就可以遍历它来生成Petrify的输入,这样就可以了。如果你真的需要那些中间表示,生成它们应该也不难,算是个SMOP

撰写回答