【问题标题】:Time complexity of betweenness centrality?中介中心性的时间复杂度?
【发布时间】:2011-06-30 08:56:34
【问题描述】:

如果给定图的最短路径前驱矩阵,计算betweenness centrality 的时间复杂度是多少?

前身矩阵单元如下所示:

  • 如果节点i和节点j直接相连,则单元格中的值为0;
  • 如果节点 i 和节点 j 未连接,则单元格中的值为 -1;
  • else cell = 前任(j) - 如果有一条最短路径,则这只能是一个前任;如果 i 和 j.

感谢您的回答,

我熟悉 Brandes 算法。然而,布兰德斯算法将计算网络内所有节点的介数。我认为计算一个顶点的 CB 所花费的时间与计算所有顶点的 CB 所花费的时间相同,因为 Brandes 算法无法适应这种情况。

所以,我的想法是存储前驱矩阵,并能够计算某个顶点的 CB(而不必等待所有顶点的 CB 计算)。 我知道我无法实现更小的时间复杂度,但我认为时间量的差异可以通过不计算所有 7000 个顶点的 CB 来实现。相反,通过拥有这个矩阵,我只能计算一个顶点的 CB。

我认为可以在 O(n^2*L) 中计算 CB,其中 L 是我们有前驱矩阵时的平均最短路径。

您对这个概念有何看法?

【问题讨论】:

    标签: algorithm graph matrix complexity-theory


    【解决方案1】:

    据我所知,计算中介中心性的最著名算法是本文中描述的算法:

    您会看到,作为第一步,此算法会计算每对节点之间的最短路径数。这样做也很自然地同时计算前驱矩阵。因此,似乎预先计算前驱矩阵没有任何好处:在执行 Brandes 算法时,您基本上可以免费获得它。

    (当然,这并不能证明它没有区别,也许其他人知道得更好。您可能想在cstheory.stackexchange.com上提问。)

    【讨论】:

    • 2013 年 11 月 18 日,Nasre、Pontecorvi 和 Ramachandran 提出了一种更快的算法。见arxiv.org/abs/1311.2147
    猜你喜欢
    • 2021-03-10
    • 2011-10-31
    • 2019-10-15
    • 2016-02-13
    • 2012-08-14
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多