Skip to main content
`Ctrl`+`K`

# edge_current_flow_betweenness_centrality_subset

edge_current_flow_betweenness_centrality_subset(G, sources, targets, normalized=True, weight=None, dtype=<class 'float'>, solver='lu')

  Compute current-flow betweenness centrality for edges using subsets of nodes.

  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

    sources: list of nodes

      Nodes to use as sources for current

    targets: list of nodes

      Nodes to use as sinks for current

    normalized bool, optional (default=True)

      If True the betweenness values are normalized by b=b/(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. The weight reflects the capacity or the strength of the edge.

    dtype: data type (float)

      Default data type for internal matrices. Set to np.float32 for lower memory consumption.

    solver: string (default=’lu’)

      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 dict

      Dictionary of edge tuples with betweenness centrality as the value.

  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. https://doi.org/10.1007/978-3-540-31856-9_44

  [2]

  A measure of betweenness centrality based on random walks, M. E. J. Newman, Social Networks 27, 39-54 (2005).