是否有任何软件可以绘制 Petri 网并从那里生成任何源代码?源代码可以采用任何已知的编程语言......
稍微不太理想的选择是以某种开放格式(例如 XML 或任何其他数据语言)在基于文本的文件中输出仅包含 Petri 网图描述的文件。然后我可以自己编写代码生成器,但至少我想避免 gui/图形开发部分;))
Thanks
我正在开发y_petri在红宝石中。目前,YPetri 可以处理可视化(YPetri::Net
班级有#visualize
方法使用Graphviz画网),但不是您想要的 GUI 编辑。仅供参考,首先,Petri 网中的 GUI 编辑并不像看起来那么重要。
使用的数据语言是 Ruby 本身(更准确地说,是用 Ruby 编写的内部 DSL)。
Petri 网的一个主要问题是,它们的种类实在太多了。YPetri
试图成为一个通用的 Petri 网框架,具有 1 种位置(任意标记类型)和 4 种基本转换类型(定时/永恒 x 化学计量/非化学计量)。此外,还有第五种转换,即赋值转换,它用其函数的返回值替换目标位置的标记。我相信这可以用来描述任何动态系统,同时尽可能地简洁。
Petri网弧被理解为转移和位置之间的关系(它们属于y_petri
。我发现有一种方法可以表达 Petri 网节点(位置/转换)之间的关系,而不仅仅是表达弧线。以此目的,我基本上使用 Ted Nelson 的 ZZ 结构(ZigZag)作为关系数据库的替代品.
至于模拟(Petri网执行),一般的混合Petri网没有比隐式欧拉方法(我称之为伪欧拉)更快的模拟方法。这是因为 Petri 网可用于实现图灵机,而图灵机不可能实现一般加速。
如果你愿意用 Ruby 进行操作,你可以用以下语言描述 Petri 网:y_petri
or y_nelson
DSL 代码。我不提供到 XML 的转换,因为我不认为它优于源 DSL。可以编写这样的导出例程,但我鼓励您改用 DSL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)