networkx.algorithms.centrality.edge_current_flow_betweenness_centrality¶
-
edge_current_flow_betweenness_centrality
(G, normalized=True, weight=None, dtype=<class 'float'>, solver='full')[source]¶ Compute current-flow betweenness centrality for edges.
Current-flow betweenness centrality uses an electrical current model for information spreading in contrast to betweenness centrality which uses shortest paths.
Current-flow betweenness centrality is also known as random-walk betweenness centrality 2.
- Parameters
G (graph) – A NetworkX graph
normalized (bool, optional (default=True)) – If True the betweenness values are normalized by 2/[(n-1)(n-2)] where n is the number of nodes in G.
weight (string or None, optional (default=None)) – Key for edge data used as the edge weight. If None, then use 1 as each edge weight.
dtype (data type (default=float)) – Default data type for internal matrices. Set to np.float32 for lower memory consumption.
solver (string (default=’full’)) – Type of linear solver to use for computing the flow matrix. Options are “full” (uses most memory), “lu” (recommended), and “cg” (uses least memory).
- Returns
nodes – Dictionary of edge tuples with betweenness centrality as the value.
- Return type
dictionary
- Raises
NetworkXError – The algorithm does not support DiGraphs. If the input graph is an instance of DiGraph class, NetworkXError is raised.
See also
betweenness_centrality()
,edge_betweenness_centrality()
,current_flow_betweenness_centrality()
Notes
Current-flow betweenness can be computed in \(O(I(n-1)+mn \log n)\) time 1, where \(I(n-1)\) is the time needed to compute the inverse Laplacian. For a full matrix this is \(O(n^3)\) but using sparse methods you can achieve \(O(nm{\sqrt k})\) where \(k\) is the Laplacian matrix condition number.
The space required is \(O(nw)\) where \(w\) is the width of the sparse Laplacian matrix. Worse case is \(w=n\) for \(O(n^2)\).
If the edges have a ‘weight’ attribute they will be used as weights in this algorithm. Unspecified weights are set to 1.
References
- 1
Centrality Measures Based on Current Flow. Ulrik Brandes and Daniel Fleischer, Proc. 22nd Symp. Theoretical Aspects of Computer Science (STACS ‘05). LNCS 3404, pp. 533-544. Springer-Verlag, 2005. http://algo.uni-konstanz.de/publications/bf-cmbcf-05.pdf
- 2
A measure of betweenness centrality based on random walks, M. E. J. Newman, Social Networks 27, 39-54 (2005).