Petri网模型化

Petri nets modelisation

我遇到了一个花了我很多时间的问题,但我还没有解决它,问题是在 python 中编写的应用程序使用 Petri 网进行建模看起来如何?如果有任何代码示例和 Petri 网表示(模型化),请告诉我,谢谢大家。

我知道 Petri 网由箭头、状态(位置)和转换(事件)组成

您不能只是将任何随机程序(无论是哪种语言)翻译成 Petri 网模型。模型是抽象的,因此您必须决定程序的哪些状态足够重要以成为模型的一部分。然后你必须弄清楚如何在地方用标记来表示这些状态。然后你必须弄清楚如何用转换来描述状态变化。

这对您来说是不是太含糊了?那是因为你的问题太宽泛了。您的 Python 应用程序可以是文本编辑器、HTTP 服务器、粒子模拟器、国际象棋游戏。我们无法帮助您在不知道您要建模的内容的情况下创建模型。

即使您已经用编程语言对应用程序逻辑进行了编码,也可以将应用程序的逻辑建模为 Petri 网。还可以根据应用程序逻辑的 Petri 网模型创建计算机程序(例如 JavaScript)。

将应用程序建模为 Petri 网的一种方法是将程序的变量视为位置标记、输入权重或输出权重;和计算作为输入、输出和转换的逻辑注释。

Roland Weber 问了一个很好的问题 "which states of your program are important enough to become part of the model?" 如果您认为每个变量和每个计算都很重要,那么您最终可能会得到一个对于本练习来说太大的模型。因此,考虑应用程序的一部分对于本练习来说足够小。

"A Petri Net Model for the Euclidean Algorithm" 使用动态交互图解释最大公约数函数变量与 Petri 网元素之间的关系,并讨论与 Petri 网模型相关的各种注释.