我想知道是否有任何关于图形的最小交点布局算法(不是基于力)的例子,所以我可以将它改编为d3.js。
答案 0 :(得分:8)
计算最小化边缘交叉的图形布局是NP难的,因此没有单一的算法;有不同的算法有不同的权衡。基于力的布局(Fruchterman–Reingold)是一种方法,分层(Sugiyama)是另一种方法。还有特定类型图形的布局,例如树(Reingold–Tilford)和小世界(van Ham–van Wijk)。像Dig-CoLa(Dwyer–Koren)这样的约束布局是另一类算法。
如果您想要一种专门寻求最小化边缘交叉次数的算法,您可以使用simulated annealing。虽然这最终会找到正确的答案,但它可能会很慢。