Analyzing networks requires complex algorithms to extract meaningful information. Centrality metrics have shown to be correlated with the importance and loads of the nodes in network traffic. Here, we are interested in the problem of centrality-based network management. The problem has many applications such as verifying the robustness of the networks and controlling or improving the entity dissemination. It can be defined as finding a small set of topological network modifications which yield a desired closeness centrality configuration. As a fundamental building block to tackle that problem, we propose incremental algorithms which efficiently update the closeness centrality values upon changes in network topology, i.e., edge insertions and deletions. Our algorithms are proven to be efficient on many real-life networks, especially on small-world networks, which have a small diameter and a spike-shaped shortest distance distribution. In addition to closeness centrality, they can also be a great arsenal for the shortest-path-based management and analysis of the networks. We experimentally validate the efficiency of our algorithms on large networks and show that they update the closeness centrality values of the temporal DBLP-coauthorship network of 1.2 million users 460 times faster than it would take to compute them from scratch. To the best of our knowledge, this is the first work which can yield practical large-scale network management based on closeness centrality values.
Green et al. proposed a technique to update centrality scores rather than recomputing them from scratch upon edge insertions (can be extended to edge deletions) @cite_6 . The idea is storing the whole data structure used by the previous betweenness centrality update kernel. This storage is indeed useful for two main reasons: it avoids a significant amount of recomputation since some of the centrality values will stay the same. And second, it enables a partial traversal of the graph even when an update is necessary. However, as the authors state, @math values must be kept on the disk. For the Wikipedia user communication and DBLP coauthorship networks, which contain thousands of vertices and millions of edges, the technique by Green et al. requires TeraBytes of memory. The largest graph used in @cite_6 has approximately @math vertices and @math edges; the quadratic storage cost prevents their storage-based techniques to scale any higher. On the other hand, the memory footprint of our algorithms are linear and hence they are much more practical.
@cite_6
2088961699
Analysis of social networks is challenging due to the rapid changes of its members and their relationships. For many cases it impractical to recompute the metric of interest, therefore, streaming algorithms are used to reduce the total runtime following modifications to the graph. Centrality is often used for determining the relative importance of a vertex or edge in a graph. The vertex Between ness Centrality is the fraction of shortest paths going through a vertex among all shortest paths in the graph. Vertices with a high between ness centrality are usually key players in a social network or a bottleneck in a communication network. Evaluating the between ness centrality for a graph G=(V, E) is computationally demanding and the best known algorithm for unweighted graphs has an upper bound time complexity of O(V^2+VE). Consequently, it is desirable to find a way to avoid a full re-computation of between ness centrality when a new edge is inserted into the graph. In this work, we give a novel algorithm that reduces computation for the insertion of an edge into the graph. This is the first algorithm for the computation of between ness centrality in a streaming graph. While the upper bound time complexity of the new algorithm is the same as the upper bound for the static graph algorithm, we show significant speedups for both synthetic and real graphs. For synthetic graphs the speedup varies depending on the type of graph and the graph size. For synthetic graphs with 16384 vertices the average speedup is between 100X-400X. For five different real world collaboration networks the average speedup per graph is in range of 36X-148X.