如果给出图的最短路径前驱矩阵,计算betweenness centrality的时间复杂度是多少?
前身矩阵单元看起来像这样:
感谢您的回答,
我熟悉Brandes算法。但是,Brandes算法将计算网络内所有节点的中介性。我认为为一个顶点计算CB所花费的时间与计算所有顶点的CB的时间相同,因为Brandes算法无法适应这种情况。
所以,我的想法是存储前任矩阵,并且能够为某个顶点计算CB(而不必等待所有顶点CB计算)。 我知道我无法实现更小的时间复杂度,但我认为可以通过不计算所有7000个顶点的CB来实现时间量的差异。相反,通过使用此矩阵,我能够仅为一个顶点计算CB。
我认为有可能在O(n ^ 2 * L)中计算CB,其中L是我们有前驱矩阵时的平均最短路径。
您对此概念有何看法?
答案 0 :(得分:3)
据我所知,用于计算中介中心性的最着名的算法是本文所述的算法:
您将看到此算法首先计算每对节点之间的最短路径数。以同时计算前任矩阵的方式这样做是很自然的。因此,预先计算前一个矩阵似乎没有任何好处:在执行Brandes算法时,无论如何都可以免费获得它。
(当然,这并不能证明它没有任何区别,也许其他人知道的更好。你可能想问cstheory.stackexchange.com。)