我正在使用 Processing 为复杂的数据和流程开发导航系统。作为其中的一部分,我已经深入了解了图形布局。这一切都很有趣,我对布局算法的看法是:力导向适用于娘娘腔(看看它的比例......哈哈),特征向量投影很酷,Sugiyama 层看起来不错,但在图形图上很快失败,虽然我依赖到目前为止,在特征向量上,我需要最小化边缘交叉以真正到达数据点。我知道,我知道 NP-complete 等。
我应该补充一点,我在应用xy拳击和使用类似 Sugiyama 的排列来减少跨行和列的边缘交叉方面取得了一些成功。即:图形 (|V|=90,avg degree log|V|) 可以从 11000 个交叉点 -> 1500(按盒装特征向量)-> 300 通过交替行和列排列来减少交叉点。
但是局部最小值……无论它是什么都围绕着这个标记,结果并不像它可能的那样清楚。我对 lit 的研究表明,我真的很想使用平面化算法,就像他们在 VLSI 中使用的那样:
- 使用 BFS 或其他东西来制作最大平面子图 1.a。布局平面子图 nice-like
- 巧妙地添加突出边来恢复原始图
请回复您对最快平面化算法的想法,欢迎您深入了解您熟悉的任何特定优化。
非常感谢!