arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1311.2147cs.DS
收藏

中间性中心--增量和更快

Betweenness Centrality -- Incremental and Faster

Meghana Nasre, Matteo Pontecorvi, Vijaya Ramachandran

摘要:

我们考虑了一个大型复杂网络中所有顶点的介数中心性的增量计算,该网络被建模为一个图G =(V,E),有向或无向,具有正的实边权重。目前广泛使用的计算G中所有顶点的介数中心性的算法是Brandes算法,其运行时间为O(mn + n^2 log n),其中n = |V|且m = |E|。我们提出了一个增量算法,更新的介数中心性得分的所有顶点在G中,当一个新的边缘被添加到G,或现有的边的重量减少。我们的增量算法运行在O(m' n + n^2)次,其中m'是E* 的某个子集的大小,E * 是G中位于最短路径上的边的集合。对于顶点v的更一般的增量更新,我们实现了相同的界,其中边更新可以在与v相关的边的任何子集上执行。我们的增量算法是第一个在稀疏情况下渐近更快的算法。而不是用Brandes算法重新计算。我们的算法也可能比密集图上的Brandes算法快得多,因为m*,E* 的大小,通常接近n的线性。我们的增量算法非常简单,它使用的唯一数据结构是数组、列表和堆栈。我们给出了一个高效的缓存无关的实现,导致O(扫描(n^2)+ n排序(m '))缓存未命中,其中扫描和排序是众所周知的有效缓存的措施。我们还给出了一个计算所有顶点介数中心度的静态算法,该算法的时间复杂度为O(m* n + n^2 log n),在n log n = o(m)和m* = o(m)的图上,该算法比Brandes算法快.

英文摘要:

We consider the incremental computation of the betweenness centrality of all vertices in a large complex network modeled as a graph G = (V, E), directed or undirected, with positive real edge-weights. The current widely used algorithm to compute the betweenness centrality of all vertices in G is the Brandes algorithm that runs in O(mn + n^2 log n) time, where n = |V| and m = |E|. We present an incremental algorithm that updates the betweenness centrality score of all vertices in G when a new edge is added to G, or the weight of an existing edge is reduced. Our incremental algorithm runs in O(m' n + n^2) time, where m' is the size of a certain subset of E*, the set of edges in G that lie on a shortest path. We achieve the same bound for the more general incremental update of a vertex v, where the edge update can be performed on any subset of edges incident to v. Our incremental algorithm is the first algorithm that is asymptotically faster on sparse graphs than recomputing with the Brandes algorithm. Our algorithm is also likely to be much faster than the Brandes algorithm on dense graphs since m*, the size of E*, is often close to linear in n. Our incremental algorithm is very simple and the only data structures it uses are arrays, lists, and stack. We give an efficient cache-oblivious implementation that incurs O(scan(n^2) + n sort(m')) cache misses, where scan and sort are well-known measures for efficient caching. We also give a static algorithm for computing betweenness centrality of all vertices that runs in time O(m* n + n^2 log n), which is faster than the Brandes algorithm on any graph with n log n = o(m) and m* = o(m).

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑