0

我被要求构建一个 petri 网引擎,作为内部工作流程的基础。

到目前为止,我已经能够生成所有逻辑和行为(我创建了一个“服务台”类型的工作流来测试规则和条件)并且一切正常。

然而,事实证明有点痛苦的是,将 Petri 网可视化并自动执行此可视化。

我一直在看 SVG 绘图例程,例如: http: //flowchart.js.org(流程图) https://bramp.github.io/js-sequence-diagrams/(序列图)

我很想修改其中一个或找到一个类似的作为基础,但我面临一个意想不到的问题:我完全不熟悉复杂的绘图例程和处理自动放置多个并发连接的理论和分支机构。

上面的两个例子很简单,但是在 Petri 网中,你可能有一个地方产生多个转换,如果处理不当,即使是短/简单的网络也很容易变成笨拙的图表。

解决这个问题的最佳方法是什么?

4

1 回答 1

1

由于您不熟悉该主题,我认为使用或调整提供自动大纲算法的现有工具会更容易。

试试旧的好 graphviz 包,它提供了许多用于图形的美化算法。我已经看到它适用于公司工作流程可视化(我认为是 png,并使用后端)。有一个 vis.js 版本,vis.js 及其衍生版本,d3 混合,但我从未亲自尝试过。

对于实验和小型网络,有免费服务 https://glitch.com/edit/#!/graphviz?path=README.md:1:0

SVG 是受支持的输出之一 http://www.graphviz.org/doc/info/output.html

您可能需要超过 1000 个节点的大型缓存:h​​ttp: //www.graphviz.org/content/drawing-large-petrinet

Boris Stitnicky 用 graphviz 开发了 YPetri,(我没有检查 svg)为他工作,可能为大量其他工作流可视化工具工作。

Petri 网绘图和代码生成

如果你想自己实现一些算法,可能会在 Comp Science 小组询问,有很多技术和算法可以绘制漂亮的图形。

于 2017-05-23T14:33:53.750 回答