Javascript 力定向图布局的性能和复杂性?

Javascript 力定向图布局的性能和复杂性?,javascript,algorithm,time-complexity,graph-layout,Javascript,Algorithm,Time Complexity,Graph Layout,我有一个包含数千个节点和边的图,我注意到Cytoscape.js和强制JavaScript布局算法(cose和cola)的性能不足 我想知道我是否应该花时间寻找其他库或算法,或者这些算法的复杂度总体上是否太高。在一个简单的算法中,我想每个节点都必须与其他节点进行比较,因此应该有二次复杂度,但通过对低连通性数据的巧妙过滤,我可以想象良好的近似值(我不需要数学上完美的结果,只需要用户直观的结果) 我的目标是在一台典型的用户机器上,在10秒内布局一个图表 我找到的出版物(Google Scholar的

我有一个包含数千个节点和边的图,我注意到Cytoscape.js和强制JavaScript布局算法(cose和cola)的性能不足

我想知道我是否应该花时间寻找其他库或算法,或者这些算法的复杂度总体上是否太高。在一个简单的算法中,我想每个节点都必须与其他节点进行比较,因此应该有二次复杂度,但通过对低连通性数据的巧妙过滤,我可以想象良好的近似值(我不需要数学上完美的结果,只需要用户直观的结果)

我的目标是在一台典型的用户机器上,在10秒内布局一个图表

我找到的出版物(Google Scholar的“力量导向的复杂性”):

  • 估算O(| V |^3)
  • 说很难精确计算(?,我不是图论家)
  • “在次二次时间和空间中生成二维、三维和更高维度的图形”,我将尝试找到该图形的JavaScript实现

对于使用相邻节点之间的吸引力和所有节点之间的斥力的布局算法,可以使用样式近似值来表示远处节点产生的斥力。这里只是一个简短的示意图,因为B--H是一个常见的学校作业,应该有大量的辅导材料。基本思想是,在每个步骤中,对输入节点执行递归四叉树解剖,计算每个细分中的节点数。然后,为了逼近特定节点上的力,递归地遍历树。如果我们到达一个远离该节点的细分区域,然后计算排斥力,就像细分区域中的每个节点都位于中心一样(或者预先计算平均值,任何似乎可行的方法)。

到目前为止,您研究了什么?分享你的发现。@Smith42:我添加了一些研究。