最小交点布局算法

时间:2012-05-29 15:46:08

标签: javascript graph d3.js

我想知道是否有任何关于图形的最小交点布局算法(不是基于力)的例子,所以我可以将它改编为d3.js。

1 个答案:

答案 0 :(得分:8)

计算最小化边缘交叉的图形布局是NP难的,因此没有单一的算法;有不同的算法有不同的权衡。基于力的布局(Fruchterman–Reingold)是一种方法,分层(Sugiyama)是另一种方法。还有特定类型图形的布局,例如树(Reingold–Tilford)和小世界(van Ham–van Wijk)。像Dig-CoLa(Dwyer–Koren)这样的约束布局是另一类算法。

如果您想要一种专门寻求最小化边缘交叉次数的算法,您可以使用simulated annealing。虽然这最终会找到正确的答案,但它可能会很慢。