【问题标题】:Performance and complexity of force-directed graph layouts?力导向图布局的性能和复杂性?
【发布时间】:2017-11-27 02:01:47
【问题描述】:

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

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

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

我找到的出版物(谷歌学术“力导向复杂性”):

【问题讨论】:

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

标签: javascript algorithm time-complexity graph-layout


【解决方案1】:

对于使用相邻节点之间的吸引力和所有节点之间的排斥力的布局算法,您可以使用Barnes--Hut 样式近似值来表示来自遥远节点的排斥力。这里只是一个简短的草图,因为 B--H 是一个常见的学校作业,并且应该有大量的教程材料。基本思想是,在每一步,对输入节点执行递归四叉树剖析,计算每个细分中的节点数。然后,为了近似特定节点上的力,递归地遍历树。如果我们到达一个远离该节点的细分,则计算斥力,就好像细分中的每个节点都位于中心一样(或预先计算平均值,只要可行)。

【讨论】:

    猜你喜欢
    • 2013-10-08
    • 1970-01-01
    • 2012-10-05
    • 2023-03-08
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    相关资源
    最近更新 更多