我正在寻找一种算法的想法,该算法在给定一组非循环依赖项的情况下生成类似于以下的图表(我使用此图像来表明依赖项可能很复杂)
(来源:interactivetvweb.org)
答案 0 :(得分:2)
答案 1 :(得分:2)
并不总是可以制作这样的图表。 (非循环)依赖关系:
A取决于X,Y,Z
B取决于X,Y,Z
C取决于X,Y,Z
描述了六个顶点的完整二分图,即non-planar。对于您显示的图表类型,这样做的结果是图表中的至少一个区域必须分成两个单独的部分,和/或至少其中一个区域不能直接连接到其依赖。
基于图形的可视化(例如graphvis)可避免此问题,其中边可以相互交叉。
用于生成您正在寻找的图表类型的启发式算法的大纲如下:
这不会每次都产生最好的图表(如果这样的概念定义得很好......)但是应该像你的例子那样为问题做一个合理的工作。
答案 2 :(得分:0)
STAN4J从java-code生成这种图表。