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