我被要求构建一个 petri 网引擎,作为内部工作流程的基础。
到目前为止,我已经能够生成所有逻辑和行为(我创建了一个“服务台”类型的工作流来测试规则和条件)并且一切正常。
然而,事实证明有点痛苦的是,将 Petri 网可视化并自动执行此可视化。
我一直在看 SVG 绘图例程,例如: http: //flowchart.js.org(流程图) https://bramp.github.io/js-sequence-diagrams/(序列图)
我很想修改其中一个或找到一个类似的作为基础,但我面临一个意想不到的问题:我完全不熟悉复杂的绘图例程和处理自动放置多个并发连接的理论和分支机构。
上面的两个例子很简单,但是在 Petri 网中,你可能有一个地方产生多个转换,如果处理不当,即使是短/简单的网络也很容易变成笨拙的图表。
解决这个问题的最佳方法是什么?