2
A
回答
2
2
这并不总是可能的。的(无环的)依赖关系:
A依赖于X,Y,Z
B依赖于X,Y,Z
,c取决于X,Y,Z
描述了六个顶点的完整二部图,即non-planar。这对于您显示的图的类型的结果是,图中至少有一个区域必须分成两个独立的部分,并且/或者至少有一个区域不能直接连接到它的相关部分。
通过基于图形的可视化(例如graphvis)可以避免此问题,其中边缘可以相互交叉。
启发式算法的轮廓生成排序图的您正在寻找如下:
- 解析依赖关系树来计算每个项目的一个“等级”。在上面给出的例子中,X,Y和Z在每个等级1的图中将分别出现三次,分别为A,B和C(0级)的子元素
- 以明显的方式绘制树,每个'水平'上的项目在同一水平上,他们的祖先/孩子分别低于/高于他们。可以选择在每个级别放置物品的顺序。
- 根据单个项目在图形上分成多个区域的次数,计算图表的质量。如果项目的顺序是好的,并且代表相同项目的两个或多个区域彼此接触,则可以将它们融合在一起。
- 使用此度量标准可以使用组合优化算法(例如Metropolis algorithm)来优化相同级别项目的排列。
这样每次都不会产生最好的图形(如果这样的概念甚至定义得很好......),但应该为您的示例等问题做出合理的工作。
+0
是的,我很好,它是非平面的(虽然这显然不理想)。感谢您的回答。我会试一试! – Chris 2009-05-11 20:13:48
0
STAN4J从java代码生成这种图。
相关问题
- 1. 堆栈生成器
- 2. 什么是“图形软件堆栈”?
- 3. Phyloseq生成的堆栈栏
- 4. 随机理解图表堆栈生成
- 5. 递归回溯迷宫生成算法堆栈循环
- 6. 用于Web开发的高效C++软件堆栈
- 7. 列表/树/堆栈 - 算法
- 8. 使用ptrace生成堆栈转储
- 9. 堆栈跟踪错误汇总软件
- 10. Android软件堆栈如何工作?
- 11. 用于生成图表的免费软件
- 12. 计算器堆栈
- 13. 当涉及外部软件包时,堆栈会生成'找不到软件包'错误
- 14. 从堆栈项目生成Nix包
- 15. 堆栈导航生成2个标头
- 16. 地图生成算法
- 17. 用于生成无环有向图的递归算法
- 18. 用于生成图形的递归算法
- 19. 微软蓝牙堆栈进入Widcomm蓝牙堆栈?
- 20. 关于堆栈和堆栈内存使用的问题
- 21. “堆栈”是什么意思,而不是在推/弹出,但在“软件堆栈”
- 22. 不使用Fortune算法生成Voronoi图
- 23. 视图不再位于视图堆栈顶部时的事件
- 24. Highcharts - 堆栈图到钻取图表中的堆栈图
- 25. 使用2堆栈的计算器
- 26. 在LAMP堆栈中是否存在用于生成VECTOR QR代码的库?
- 27. 堆/堆栈上的类成员分配?
- 28. Java计算器堆栈
- 29. 推动堆栈参考开始使用ASM生成的类
- 30. 生成区间图的算法
谢谢,但我绝对需要一个算法。 – Chris 2009-05-11 15:02:05