背景:CPN-Tools是一个使用彩色 Petri 网的模型检查器,它使用 CPN ML 作为其查询语言。CPN ML是标准 ML 的扩展,是一种类型推断功能语言。
问题:CPN-Tools 广泛用于对需要状态空间分析的域进行建模。我正在使用它来模拟一个域,我需要知道从一个地方传入和传出弧的数量。不同之处在于我正在查看 Petri 网模型表示,而不是状态空间。所以当我说从一个地方计算弧线时,我指的是一个地方,而不是一个状态空间节点。到目前为止,在我的研究中,我遇到了包含地点和过渡属性的结构,并且看起来对我的探索很有希望CPN'PlaceTable
。CPN'TransitionTable
但是,我还没有找到任何 CPN ML 示例来帮助我找出一种使用这些结构来计算传入/传出弧的方法。
问题:所以我的问题,或者实际上的问题是:
- 我如何使用
CPN'PlaceTable
或任何其他方法来计算到给定位置的传入弧? - 我如何使用
CPN'TransitionTable
或任何适当的方法来计算给定过渡的传出弧?
案例示例:我正在使用这个简单的 Petri 网来了解我的期望。请查看此链接以获取插图。
在图像中,我们看到 3 个位置和 2 个转换。我理想中想要的是能够拥有 CPN ML 功能,incoming(place_name)
并且outgoing(transition_name)
以这种方式工作
incoming(Place1) = 0
incoming(Place2) = 2
incoming(Place3) = 1
outgoing(Transition1) = 2
outgoing(Transition2) = 1
其他信息:我想再次强调,我指的不是状态空间节点。CPN-Tools 中有很多关于状态空间中弧属性的文档,但我在 CPN-Tools 支持论坛上没有找到关于我所说的问题的太多信息。更糟糕的是,CPN'
通常结构在 CPN-Tools 中是高度未记录的。