问题标签 [petri-net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
618 浏览

java - 如何在 Java 中实现彩色 petri 网的“绑定”?

我正在用 Java 实现一个彩色的 petri 网。这是一种有限状态自动机。问题是我不知道如何实现“绑定”。换句话说,颜色应该分配给地点,弧形表达式应该分配给弧线。执行转换后,网络应进入新状态。所以,我不知道如何为弧分配功能。
我希望我的问题很清楚,因为我不想在这里解释彩色培养网的基础知识。如果有人可以提供一个网络链接来示例彩色 petri 网的 Java 代码,或者提供一些如何将函数分配给弧的想法,我将不胜感激。

0 投票
1 回答
797 浏览

java - 在pnml中使用java代码来表示Colored Petri Net

当我们编写有色 Petri 网 (CP-Net) 时,我们是否可以在声明部分使用 java 代码,就像下面 PNML 中的示例一样,或者我们也必须在这部分考虑一个标准?下面的例子是一个 XML 表示,但是我们可以用同样的方式在 pnml 中表示吗?如果没有,你能帮我吗?我们该怎么做?谢谢,

0 投票
1 回答
1124 浏览

xml - 如何使用 PNML 框架解析 pnml 文件?

我试图找到如何使用 PNML 框架 http://pnml.lip6.fr/index.html来解析 pnml 文件,但我没有找到任何有用的信息,你能帮帮我吗?

0 投票
0 回答
343 浏览

ml - 在 CPN-Tools 中计算弧到位置和过渡

背景CPN-Tools是一个使用彩色 Petri 网的模型检查器,它使用 CPN ML 作为其查询语言。CPN ML是标准 ML 的扩展,是一种类型推断功能语言。

问题:CPN-Tools 广泛用于对需要状态空间分析的域进行建模。我正在使用它来模拟一个域,我需要知道从一个地方传入和传出弧的数量。不同之处在于我正在查看 Petri 网模型表示,而不是状态空间。所以当我说从一个地方计算弧线时,我指的是一个地方,而不是一个状态空间节点。到目前为止,在我的研究中,我遇到了包含地点和过渡属性的结构,并且看起来对我的探索很有希望CPN'PlaceTableCPN'TransitionTable但是,我还没有找到任何 CPN ML 示例来帮助我找出一种使用这些结构来计算传入/传出弧的方法。

问题:所以我的问题,或者实际上的问题是:

  1. 我如何使用CPN'PlaceTable或任何其他方法来计算到给定位置的传入弧?
  2. 我如何使用CPN'TransitionTable或任何适当的方法来计算给定过渡的传出弧?

案例示例:我正在使用这个简单的 Petri 网来了解我的期望。请查看此链接以获取插图。

在图像中,我们看到 3 个位置和 2 个转换。我理想中想要的是能够拥有 CPN ML 功能,incoming(place_name)并且outgoing(transition_name)以这种方式工作

其他信息:我想再次强调,我指的不是状态空间节点。CPN-Tools 中有很多关于状态空间中弧属性的文档,但我在 CPN-Tools 支持论坛上没有找到关于我所说的问题的太多信息。更糟糕的是,CPN'通常结构在 CPN-Tools 中是高度未记录的。

0 投票
0 回答
65 浏览

process - 评测网编辑

我正在寻找评估网的编辑器(E-net,Petri 网的扩展)。

就像是:

我只发现了这个问题,并没有发现任何关于他的作品的结果。

我正在使用评估网而不是 petri 网来对基于代理的协商协议进行建模,因为在本期中,图表更易于阅读。

0 投票
0 回答
229 浏览

ruby - Persisting a Ruby-based Petri net object model

I wrote a Petri net domain model in pure Ruby and I plan to persist it with MongoDB. Petri net places and transitions have "arcs" (place - transition arrows) relations, and perhaps other relations, too. So far, my nets are small, so I can store them in eg. a single Ruby file, or a YAML file. But I want to already get a taste of Mongo, which, I guess, will pay off later, should the Petri nets become huge, as common in biology. To avoid the YPetri complexities, let me provide simplified example:

Now we can create a small Petri net:

This should be enough to convey the general idea. I feel reluctant to rewrite my object model with the syntax of Mongo-related libraries. I just want to add "save" and "load" functionality to Place and Transition classes. I am new to MongoDB. MongoDB already works on my Debian. I just barely know how to connect to it from Ruby. I have hard times choosing the right tool. Bare mongo? Mongoid? Mongo_mapper? Anything else? Which one should I use, and how? With the code example that I provided, could you please give me a working code example of how to save and load a collection of places and transitions to / from MongoDB?

0 投票
1 回答
288 浏览

sml - CPN 工具中的定时索引颜色集导致未处理的异常错误

我正在使用 CPN 工具对分布式系统进行建模。CPN Tools 使用 CPN ML 是 SML 的扩展。项目主页是:cpntools.org

我从一个简单的模型开始,当我尝试为特定的索引颜色设置计时时,我得到一个“内部错误”。我的 Petri-net 模型中有另一个索引颜色集,它是定时的并且可以正常工作。我不确定如何进行故障排除,因为我不理解错误消息。你能帮我解释错误信息或给我一些提示我可能做错了什么吗?

型号为:http: //imgur.com/JUjPRHK

该模型的声明是:http: //imgur.com/DvvpyvH

错误信息是:

"

谢谢~

0 投票
1 回答
526 浏览

clojure - 是否有用于位置/转换 petri 网的既定数据结构?

我正在尝试提出一个优雅的解决方案来表示位置/过渡 petri 网。到目前为止,我将它们保存如下:

tokens是一个数字,一切都以具有相应名称的符号开头。

//edit - 更多说明: :netname 和 :name 是唯一的,因为必须可以合并 2 个网络,而这些地方又必须具有唯一的名称。数字标记由 Petri 网的用户在创建地点或边缘期间确定。

对于我的问题,我会感谢一些指向更精细/更好的数据结构的指针或链接。

//edit 2 - 由于地名的独特性,我重新设计了我的第一个数据结构。:places 现在引用哈希图。edge_in 和 out 现在也是 hashmaps,因为每条边都是唯一的,有它的起点、终点和令牌编号。

//edit 3 - 结构的使用:我会说它以相同的数量被读取和写入。使用培养网的方式,在修改网络和阅读网络之间有一个来回的过程,可能会在最后阅读更多内容。

我还稍微修改了上面的结构,所以 :edges_in 和 :edges_out 现在将三元组保存为向量而不是列表。这简化了将 hashmap 保存到文件并从中读取它,因为load-string将列表计算为表达式。

0 投票
1 回答
28 浏览

ml - 为什么 CPN TOOLS 不断还原我的编辑?

编辑声明时,我输入我的更改并单击背景,它会立即恢复我的文本。

我没有语法问题,我可以删除声明并编写一个新声明,它只是接受它只是笨拙的多莉,有什么想法导致这种令人沮丧的行为吗?

0 投票
0 回答
301 浏览

sml - 有没有一种简单的方法可以有条件地在 CPN TOOLS 网络中不生成令牌?

我遇到了一种情况,我想忽略一些输入。

在我的转换操作中,我使用一个简单的 if-then-else 表达式来测试我希望为其生成输出标记的输入,并为我想忽略的输入生成一个“NOP”标记,因为您必须有一个类型正确的表达式满足 ML。

我尝试使用if this=that then 1`goodToken else 0`goodToken(带和不带括号),但这无法对操作的输出部分进行类型正确性检查。

这些令牌被传递到下一个地方,然后分支到其保护只允许 NOP 令牌的转换或不允许 NOP 令牌的转换。

通过这种方式,我生产和消费这些“无令牌”令牌。

是否有一种简单的方法可以在 ml 内或通过巧妙的弧形表达式来完成此操作,以便我可以简化我的网络?