【发布时间】: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